From 5363b2782d906a6c6067eb840392f959ed4dfe4b Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Tue, 18 Jul 2017 20:23:07 -0400 Subject: [CCSDK-6] Populate seed code Add seed code for sli/adaptors repository Update code to use org.onap.ccsdk.sli.core Change-Id: I477c7a24f2cc1fed8fb0975fe9f33733411c27f9 Signed-off-by: Dan Timoney --- .../sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java | 489 +++++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100644 aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java b/aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java new file mode 100644 index 000000000..15a7647e4 --- /dev/null +++ b/aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java @@ -0,0 +1,489 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdnc.sli.aai.r1607; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import javax.xml.bind.SchemaOutputResolver; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamResult; + +import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.openecomp.aai.inventory.v10.GenericVnf; +import org.openecomp.aai.inventory.v10.InventoryResponseItems; +import org.openecomp.sdnc.sli.aai.AAIClient; +import org.openecomp.sdnc.sli.aai.AAIDeclarations; +import org.openecomp.sdnc.sli.aai.AAIRequest; +import org.openecomp.sdnc.sli.aai.AAIService; +import org.openecomp.sdnc.sli.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; + + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class R1607AutoGeneratedTest { + + private static final Logger LOG = LoggerFactory.getLogger(R1607AutoGeneratedTest.class); + + protected static AAIClient client; + + protected Map cache = new HashMap(); + + @BeforeClass + public static void setUp() throws Exception { +// super.setUp(); + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { +// super.tearDown(); + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + +// @Test + public void test01AutoGeneratedRequest() { + + String[] requestDefinition = { + "query|generic-vnf|generic-vnf.vnf-id:assign:value:bnfm0001v-1147" + }; + + for(String line : requestDefinition){ + // parse request line resource | key structure + String[] segments = line.split("\\|"); + String action = segments[0]; + String resource = segments[1]; + String[] tmpKeys = segments[2].split("&"); + + + String localId = null; + + List keys = new ArrayList(); + String keyLine = null; + + for(String instruction : tmpKeys) { + String[] parts = instruction.split(":"); + String identifier = parts[0]; + String method = parts[2]; + + if(identifier.startsWith(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { + localId = identifier; + } + + switch(parts[1]) { + case "assign": + String postProcesss = parts[3]; + keyLine = processAssign(identifier, method, postProcesss); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + case "cached": + keyLine = processCached(identifier, method); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + } + + } + + switch(action){ + case "save": + List x = Arrays.asList(localId.split("\\.")); + + testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + case "query": + test03AutoGeneratedQueryRequest(resource, keys); + break; + case "delete": + test03AutoGeneratedDeleteRequest(resource, keys); + break; + } + } + + LOG.info("done"); + } + + + public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + for(Field field : resourceClass.getDeclaredFields()) { + String type = field.getType().getName(); + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + SvcLogicContext ctx = new SvcLogicContext(); + try + { + + QueryStatus response = null; + + response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + + public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus response = null; + + response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + static ArrayList findSetters(Class c) { + ArrayList list = new ArrayList(); + Method[] methods = c.getDeclaredMethods(); + for (Method method : methods) + if (isGetter(method)) + list.add(method); + return list; + } + + + public static boolean isGetter(Method method) { + if (Modifier.isPublic(method.getModifiers()) && + method.getParameterTypes().length == 0) { + if (method.getName().matches("^get[A-Z].*") && + !method.getReturnType().equals(void.class)) + return true; + if (method.getName().matches("^is[A-Z].*") && + method.getReturnType().equals(boolean.class)) + return true; + } + return false; + } + + public static boolean isSetter(Method method) { + return Modifier.isPublic(method.getModifiers()) && + method.getReturnType().equals(void.class) && + method.getParameterTypes().length == 1 && + method.getName().matches("^set[A-Z].*"); + } + + private String processAssign(String identifier, String method, String postProcess) { + String value = null; + if("uuid".equals(method)) { + value = UUID.randomUUID().toString(); + } + + if("cache".equals(postProcess)) { + cache.put(identifier, value); + } + + if("value".equals(method)) { + cache.put(identifier, postProcess); + value = postProcess; + } + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + private String processCached(String identifier, String method) { + String value = cache.get(identifier); + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + LOG.debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + StringBuffer whereBuff = new StringBuffer(); + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + LOG.debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + + } + + private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + LOG.warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + +// @Test + public void test04VceDataPost() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + URL resource = this.getClass().getResource("/json/tails4.json"); + + LOG.info("Resource is " + resource.getFile()); + File requestFile = new File(resource.getFile()); + if(!requestFile.exists()) { + fail("Test file does not exist"); + } + SvcLogicContext ctx = new SvcLogicContext(); + ObjectMapper mapper = AAIService.getObjectMapper(); + InventoryResponseItems request = mapper.readValue(requestFile, InventoryResponseItems.class); + Map subnetsList = mapper.convertValue(request, Map.class); + AAIDeclarations.class.cast(client).writeMap(subnetsList, "aaiTmp", ctx); + assertNotNull(request); + + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + +static class MySchemaOutputResolver extends SchemaOutputResolver { + + public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { + File file = new File(suggestedFileName); + StreamResult result = new StreamResult(file); + result.setSystemId(file.getAbsolutePath()); + return result; + } + + } +} -- cgit 1.2.3-korg From 7aeb6339da8ab2bd346655438b65fa4a413c7405 Mon Sep 17 00:00:00 2001 From: Marcus G K Williams Date: Fri, 4 Aug 2017 14:40:55 -0700 Subject: Update sli-adaptor/aai-service package names Update package names from org.openecomp.sdnc.adaptors.* -> onap.ccsdk.sli.adaptors.* Update groupIds from org.openecomp.sdnc.adaptors -> onap.ccsdk.sli.adaptors Issue: CCSDK-19 Change-Id: I3d41c1484479645edaf0d47ad4e8fd87e707cb39 Signed-off-by: Marcus G K Williams --- .../features/src/main/resources/features.xml | 12 +- .../java/org/onap/sli/adaptors/aai/AAIClient.java | 220 ++ .../org/onap/sli/adaptors/aai/AAIDeclarations.java | 2045 ++++++++++++ .../sli/adaptors/aai/AAIExecutorInterface.java | 30 + .../java/org/onap/sli/adaptors/aai/AAIRequest.java | 420 +++ .../java/org/onap/sli/adaptors/aai/AAIService.java | 3278 ++++++++++++++++++++ .../onap/sli/adaptors/aai/AAIServiceActivator.java | 239 ++ .../onap/sli/adaptors/aai/AAIServiceException.java | 77 + .../onap/sli/adaptors/aai/AAITrinityService.java | 38 + .../onap/sli/adaptors/aai/CloudRegionRequest.java | 135 + .../onap/sli/adaptors/aai/CustomQueryRequest.java | 134 + .../org/onap/sli/adaptors/aai/EchoRequest.java | 93 + .../onap/sli/adaptors/aai/GenericQueryRequest.java | 144 + .../org/onap/sli/adaptors/aai/GenericRequest.java | 319 ++ .../onap/sli/adaptors/aai/GenericVnfRequest.java | 144 + .../aai/L3InterfaceIpv4AddressListRequest.java | 212 ++ .../aai/L3InterfaceIpv6AddressListRequest.java | 179 ++ .../onap/sli/adaptors/aai/LInterfaceRequest.java | 244 ++ .../sli/adaptors/aai/LagInterfacePnfRequest.java | 142 + .../onap/sli/adaptors/aai/NamedQueryRequest.java | 190 ++ .../onap/sli/adaptors/aai/NodesQueryRequest.java | 144 + .../sli/adaptors/aai/PInterfacePnfRequest.java | 142 + .../onap/sli/adaptors/aai/PInterfaceRequest.java | 132 + .../org/onap/sli/adaptors/aai/PathRequest.java | 88 + .../onap/sli/adaptors/aai/PhysicalLinkRequest.java | 112 + .../onap/sli/adaptors/aai/RelationshipRequest.java | 126 + .../org/onap/sli/adaptors/aai/SelfLinkRequest.java | 98 + .../onap/sli/adaptors/aai/SubInterfaceRequest.java | 184 ++ .../org/onap/sli/adaptors/aai/UpdateRequest.java | 106 + .../org/onap/sli/adaptors/aai/data/AAIDatum.java | 26 + .../onap/sli/adaptors/aai/data/EchoResponse.java | 76 + .../onap/sli/adaptors/aai/data/ErrorResponse.java | 78 + .../onap/sli/adaptors/aai/data/RequestError.java | 78 + .../sli/adaptors/aai/data/ResourceVersion.java | 28 + .../sli/adaptors/aai/data/ResponseMessage.java | 122 + .../sli/adaptors/aai/data/ResponseMessages.java | 78 + .../sli/adaptors/aai/data/ServiceException.java | 126 + .../onap/sli/adaptors/aai/data/SubInterface.java | 171 + .../org/onap/sli/adaptors/aai/data/Variables.java | 78 + .../sli/adaptors/aai/data/notify/KeyDatum.java | 99 + .../sli/adaptors/aai/data/notify/NotifyEvent.java | 170 + .../onap/sli/adaptors/aai/data/v1507/Flavor.java | 122 + .../org/onap/sli/adaptors/aai/data/v1507/Host.java | 122 + .../onap/sli/adaptors/aai/data/v1507/Image.java | 237 ++ .../sli/adaptors/aai/data/v1507/IpAddress.java | 168 + .../sli/adaptors/aai/data/v1507/Relationship.java | 147 + .../adaptors/aai/data/v1507/RelationshipDatum.java | 124 + .../adaptors/aai/data/v1507/RelationshipList.java | 101 + .../onap/sli/adaptors/aai/data/v1507/VServer.java | 262 ++ .../aai/query/FormattedQueryRequestData.java | 83 + .../aai/query/FormattedQueryResultList.java | 59 + .../sli/adaptors/aai/query/InstanceFilter.java | 133 + .../sli/adaptors/aai/query/InstanceFilters.java | 78 + .../onap/sli/adaptors/aai/query/NamedQuery.java | 76 + .../sli/adaptors/aai/query/NamedQueryData.java | 102 + .../sli/adaptors/aai/query/QueryParameters.java | 76 + .../org/onap/sli/adaptors/aai/query/Results.java | 84 + .../org/onap/sli/adaptors/aai/update/Action.java | 101 + .../onap/sli/adaptors/aai/update/ActionDatum.java | 99 + .../org/onap/sli/adaptors/aai/update/Update.java | 124 + .../sli/adaptors/aai/update/UpdateNodeKey.java | 99 + .../java/org/openecomp/sdnc/sli/aai/AAIClient.java | 220 -- .../openecomp/sdnc/sli/aai/AAIDeclarations.java | 2045 ------------ .../sdnc/sli/aai/AAIExecutorInterface.java | 30 - .../org/openecomp/sdnc/sli/aai/AAIRequest.java | 420 --- .../org/openecomp/sdnc/sli/aai/AAIService.java | 3278 -------------------- .../sdnc/sli/aai/AAIServiceActivator.java | 239 -- .../sdnc/sli/aai/AAIServiceException.java | 77 - .../openecomp/sdnc/sli/aai/AAITrinityService.java | 38 - .../openecomp/sdnc/sli/aai/CloudRegionRequest.java | 135 - .../openecomp/sdnc/sli/aai/CustomQueryRequest.java | 134 - .../org/openecomp/sdnc/sli/aai/EchoRequest.java | 93 - .../sdnc/sli/aai/GenericQueryRequest.java | 144 - .../org/openecomp/sdnc/sli/aai/GenericRequest.java | 319 -- .../openecomp/sdnc/sli/aai/GenericVnfRequest.java | 144 - .../sli/aai/L3InterfaceIpv4AddressListRequest.java | 212 -- .../sli/aai/L3InterfaceIpv6AddressListRequest.java | 179 -- .../openecomp/sdnc/sli/aai/LInterfaceRequest.java | 244 -- .../sdnc/sli/aai/LagInterfacePnfRequest.java | 142 - .../openecomp/sdnc/sli/aai/NamedQueryRequest.java | 190 -- .../openecomp/sdnc/sli/aai/NodesQueryRequest.java | 144 - .../sdnc/sli/aai/PInterfacePnfRequest.java | 142 - .../openecomp/sdnc/sli/aai/PInterfaceRequest.java | 132 - .../org/openecomp/sdnc/sli/aai/PathRequest.java | 88 - .../sdnc/sli/aai/PhysicalLinkRequest.java | 112 - .../sdnc/sli/aai/RelationshipRequest.java | 126 - .../openecomp/sdnc/sli/aai/SelfLinkRequest.java | 98 - .../sdnc/sli/aai/SubInterfaceRequest.java | 184 -- .../org/openecomp/sdnc/sli/aai/UpdateRequest.java | 106 - .../org/openecomp/sdnc/sli/aai/data/AAIDatum.java | 26 - .../openecomp/sdnc/sli/aai/data/EchoResponse.java | 76 - .../openecomp/sdnc/sli/aai/data/ErrorResponse.java | 78 - .../openecomp/sdnc/sli/aai/data/RequestError.java | 78 - .../sdnc/sli/aai/data/ResourceVersion.java | 28 - .../sdnc/sli/aai/data/ResponseMessage.java | 122 - .../sdnc/sli/aai/data/ResponseMessages.java | 78 - .../sdnc/sli/aai/data/ServiceException.java | 126 - .../openecomp/sdnc/sli/aai/data/SubInterface.java | 171 - .../org/openecomp/sdnc/sli/aai/data/Variables.java | 78 - .../sdnc/sli/aai/data/notify/KeyDatum.java | 99 - .../sdnc/sli/aai/data/notify/NotifyEvent.java | 170 - .../openecomp/sdnc/sli/aai/data/v1507/Flavor.java | 122 - .../openecomp/sdnc/sli/aai/data/v1507/Host.java | 122 - .../openecomp/sdnc/sli/aai/data/v1507/Image.java | 237 -- .../sdnc/sli/aai/data/v1507/IpAddress.java | 168 - .../sdnc/sli/aai/data/v1507/Relationship.java | 147 - .../sdnc/sli/aai/data/v1507/RelationshipDatum.java | 124 - .../sdnc/sli/aai/data/v1507/RelationshipList.java | 101 - .../openecomp/sdnc/sli/aai/data/v1507/VServer.java | 262 -- .../sli/aai/query/FormattedQueryRequestData.java | 83 - .../sli/aai/query/FormattedQueryResultList.java | 59 - .../sdnc/sli/aai/query/InstanceFilter.java | 133 - .../sdnc/sli/aai/query/InstanceFilters.java | 78 - .../openecomp/sdnc/sli/aai/query/NamedQuery.java | 76 - .../sdnc/sli/aai/query/NamedQueryData.java | 101 - .../sdnc/sli/aai/query/QueryParameters.java | 76 - .../org/openecomp/sdnc/sli/aai/query/Results.java | 84 - .../org/openecomp/sdnc/sli/aai/update/Action.java | 101 - .../openecomp/sdnc/sli/aai/update/ActionDatum.java | 99 - .../org/openecomp/sdnc/sli/aai/update/Update.java | 124 - .../sdnc/sli/aai/update/UpdateNodeKey.java | 99 - .../src/main/resources/aai-schema-bindings.xjb | 2 +- .../adaptors/aai/r1607/R1607AutoGeneratedTest.java | 489 +++ .../sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java | 489 --- .../src/test/resources/aaiclient.properties | 186 +- 125 files changed, 13531 insertions(+), 13530 deletions(-) create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java create mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIClient.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIDeclarations.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIExecutorInterface.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceActivator.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceException.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAITrinityService.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CloudRegionRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CustomQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/EchoRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericVnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv4AddressListRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv6AddressListRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LagInterfacePnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NamedQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NodesQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfacePnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PathRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PhysicalLinkRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/RelationshipRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SelfLinkRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SubInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/UpdateRequest.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/AAIDatum.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/EchoResponse.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ErrorResponse.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/RequestError.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResourceVersion.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessage.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessages.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ServiceException.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/SubInterface.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/Variables.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/KeyDatum.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/NotifyEvent.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Flavor.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Host.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Image.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/IpAddress.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Relationship.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipDatum.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipList.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/VServer.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryRequestData.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryResultList.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilter.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilters.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQuery.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQueryData.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/QueryParameters.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/Results.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Action.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/ActionDatum.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Update.java delete mode 100644 aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/UpdateNodeKey.java create mode 100644 aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java delete mode 100644 aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/features/src/main/resources/features.xml b/aai-service/features/src/main/resources/features.xml index 23ab99764..c992710a0 100644 --- a/aai-service/features/src/main/resources/features.xml +++ b/aai-service/features/src/main/resources/features.xml @@ -1,10 +1,10 @@ - mvn:org.opendaylight.mdsal/features-mdsal/${odl.mdsal.features.version}/xml/features - + odl-mdsal-broker - sdnc-sli - mvn:org.openecomp.sdnc.adaptors/aai-service-provider/${project.version} + ccsdk-sli + mvn:org.onap.ccsdk.sli.adaptors/aai-service-provider/${project.version} mvn:com.sun.jersey/jersey-client/${jersey.client.version} mvn:com.sun.jersey/jersey-core/${jersey.version} mvn:org.apache.httpcomponents/httpcore-osgi/${apache.httpcomponents.version} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java new file mode 100644 index 000000000..ba5ef587e --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java @@ -0,0 +1,220 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.openecomp.aai.inventory.v10.AvailabilityZone; +import org.openecomp.aai.inventory.v10.Complex; +import org.openecomp.aai.inventory.v10.CtagPool; +import org.openecomp.aai.inventory.v10.DvsSwitch; +import org.openecomp.aai.inventory.v10.GenericVnf; +import org.openecomp.aai.inventory.v10.L3Network; +import org.openecomp.aai.inventory.v10.OamNetwork; +import org.openecomp.aai.inventory.v10.PInterface; +import org.openecomp.aai.inventory.v10.PhysicalLink; +import org.openecomp.aai.inventory.v10.Pserver; +import org.openecomp.aai.inventory.v10.SearchResults; +import org.openecomp.aai.inventory.v10.Service; +import org.openecomp.aai.inventory.v10.ServiceInstance; +import org.openecomp.aai.inventory.v10.SitePairSet; +import org.openecomp.aai.inventory.v10.Tenant; +import org.openecomp.aai.inventory.v10.Vce; +import org.openecomp.aai.inventory.v10.VnfImage; +import org.openecomp.aai.inventory.v10.Vpe; +import org.openecomp.aai.inventory.v10.VplsPe; +import org.openecomp.aai.inventory.v10.VpnBinding; +import org.openecomp.aai.inventory.v10.Vserver; +import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; +import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; + +public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { + + // VCE + public boolean postNetworkVceData(String vnf_id, Vce request) throws AAIServiceException; + public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException; + public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // Service Inteface + public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException; + public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance request) throws AAIServiceException; + public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException; + + // VPE +// public Vpes requestNetworkVpeList() throws AAIServiceException; + public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException; + public boolean postNetworkVpeData(String vnf_id, Vpe request) throws AAIServiceException; + public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // VServers + public Vserver requestVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; + public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver request) throws AAIServiceException; + public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException; + + public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException; + public String getTenantIdFromVserverUrl(URL url); + public String getCloudOwnerFromVserverUrl(URL url); + public String getCloudRegionFromVserverUrl(URL url); + public String getVServerIdFromVserverUrl(URL url, String tennantId); + public Vserver requestVServerDataByURL(URL url) throws AAIServiceException; + + // VPLS-PE + public VplsPe requestNetworkVplsPeData(String equipment_name) throws AAIServiceException; + public boolean postNetworkVplsPeData(String vnf_id, VplsPe request) throws AAIServiceException; + public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException; + + + // Complexes + public Complex requestNetworkComplexData(String vnf_id) throws AAIServiceException; + public boolean postNetworkComplexData(String vnf_id, Complex request) throws AAIServiceException; + public boolean deleteNetworkComplexData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // CTag Pool + public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException; + + // --------------------------------- 1507 --------------------------- + // Data Change + public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException; + + public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException; + + public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException; + + public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException; + + public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException; + + public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException; + + //OAM-Network: + public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException; + //Availability-Zone: + public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException; + //Complex: + public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException; + + + /* DELETE */ + public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException; + //OAM-Network: + public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException; + //Availability-Zone: + public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException; + //Complex: + public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException; + + // ----------------- Release 1510 ---------------------- + // // GenericVNF + public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException; + public boolean postGenericVnfData(String vnf_id, GenericVnf request) throws AAIServiceException; + public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // DvsSwitch + public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException; + public boolean postDvsSwitchData(String vnf_id, DvsSwitch request) throws AAIServiceException; + public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // PInterface + public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException; + public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException; + public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException; + + // Physical Link + public PhysicalLink requestPhysicalLinkData(String vnf_id) throws AAIServiceException; + public boolean postPhysicalLinkData(String vnf_id, PhysicalLink request) throws AAIServiceException; + public boolean deletePhysicalLinkData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // PServers + public Pserver requestPServerData(String hostname) throws AAIServiceException; + public boolean postPServerData(String hostname, Pserver server) throws AAIServiceException; + public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException; + + // L3Networks + public L3Network requestL3NetworkData(String networkId) throws AAIServiceException; + public L3Network requestL3NetworkQueryByName(String networkId) throws AAIServiceException; + public boolean postL3NetworkData(String networkId, L3Network request) throws AAIServiceException; + public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException; + + // Vpn Bindings + public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException; +// public boolean postVpnBindingData(String vpnId, VpnBinding request) throws AAIServiceException; + public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException; + + //VnfImage + public VnfImage requestVnfImageData(String vpnId) throws AAIServiceException; + public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException; + public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException; + + // UBB Notify + public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException; + + // 1512 + // Site Pair Site + public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException; + public boolean postSitePairSetData(String sitePairSetId, SitePairSet request) throws AAIServiceException; + public boolean deleteSitePairSetData(String sitePairSetId, String resourceVersion) throws AAIServiceException; + + // Services + public Service requestServiceData(String serviceId) throws AAIServiceException; + public boolean postServiceData(String serviceId, Service request) throws AAIServiceException; + public boolean deleteServiceData(String serviceId, String resourceVersion) throws AAIServiceException; + + // Node Query - 1602 + public SearchResults requestNodeQuery(String type, String entityIdentifier, String entityName) throws AAIServiceException; + public String requestDataByURL(URL url) throws AAIServiceException; +// public Object requestDataInstanceNodeQuery(String type, String vnf_name) throws AAIServiceException; + public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException; + + // // tenant + public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; + public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException; + public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant request) throws AAIServiceException; +// public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; + + + public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException; + public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException; + + public void logKeyError(String keys); + + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java new file mode 100644 index 000000000..3ba453d36 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java @@ -0,0 +1,2045 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLDecoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.bind.annotation.XmlType; + +import org.apache.commons.lang.StringUtils; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.openecomp.aai.inventory.v10.GenericVnf; +import org.openecomp.aai.inventory.v10.InventoryResponseItem; +import org.openecomp.aai.inventory.v10.InventoryResponseItems; +import org.openecomp.aai.inventory.v10.L3Network; +import org.openecomp.aai.inventory.v10.LogicalLink; +import org.openecomp.aai.inventory.v10.Metadata; +import org.openecomp.aai.inventory.v10.Metadatum; +import org.openecomp.aai.inventory.v10.Pnf; +import org.openecomp.aai.inventory.v10.Relationship; +import org.openecomp.aai.inventory.v10.RelationshipData; +import org.openecomp.aai.inventory.v10.RelationshipList; +import org.openecomp.aai.inventory.v10.ResultData; +import org.openecomp.aai.inventory.v10.SearchResults; +import org.openecomp.aai.inventory.v10.ServiceInstance; +import org.openecomp.aai.inventory.v10.Vlan; +import org.openecomp.aai.inventory.v10.Vlans; +import org.openecomp.aai.inventory.v10.Vserver; +import org.onap.ccsdk.sli.adaptors.aai.AAIService.AAIRequestExecutor; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; +import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilter; +import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilters; +import org.onap.ccsdk.sli.adaptors.aai.query.NamedQuery; +import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; +import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters; +import org.onap.ccsdk.sli.adaptors.aai.query.Results; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + + +public abstract class AAIDeclarations implements AAIClient { + + public static final String TRUSTSTORE_PATH = "org.onap.ccsdk.sli.adaptors.aai.ssl.trust"; + public static final String TRUSTSTORE_PSSWD = "org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd"; + public static final String KEYSTORE_PATH = "org.onap.ccsdk.sli.adaptors.aai.ssl.key"; + public static final String KEYSTORE_PSSWD = "org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd"; + + public static final String APPLICATION_ID = "org.onap.ccsdk.sli.adaptors.aai.application"; + + public static final String CLIENT_NAME = "org.onap.ccsdk.sli.adaptors.aai.client.name"; + public static final String CLIENT_PWWD = "org.onap.ccsdk.sli.adaptors.aai.client.psswd"; + + + public static final String CONNECTION_TIMEOUT = "connection.timeout"; + public static final String READ_TIMEOUT = "read.timeout"; + + public static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri"; + + // Availability zones query + public static final String QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.query"; + + // Update + public static final String UPDATE_PATH = "org.onap.ccsdk.sli.adaptors.aai.update"; + + // Service instance + public static final String SVC_INSTANCE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.svcinst"; + public static final String SVC_INST_QRY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query"; + + // VServer + public static final String NETWORK_VSERVER_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vserver"; + + public static final String VNF_IMAGE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query"; + + public static final String PARAM_SERVICE_TYPE = "org.onap.ccsdk.sli.adaptors.aai.param.service.type"; + public static final String CERTIFICATE_HOST_ERROR = "org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore"; + + // UBB Notify + public static final String UBB_NOTIFY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.notify"; + public static final String SELFLINK_AVPN = "org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn"; + public static final String SELFLINK_FQDN = "org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn"; + + //Service + public static final String SERVICE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.service"; + + // P-Interfaces + public static final String P_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + + // site-pair-sets + public static final String SITE_PAIR_SET_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set"; + + // node query (1602) + public static final String QUERY_NODES_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; + + + protected abstract Logger getLogger(); + public abstract AAIRequestExecutor getExecutor(); + + + @Override + public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) + throws SvcLogicException { + + getLogger().debug("AAIService.query \tresource = "+resource); + + String vnfId = null; + String vnfName = null; + HashMap nameValues = keyToHashMap(key, ctx); + getLogger().debug("key = "+ nameValues.toString()); + + if(!checkOldFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + + // process data using new model + boolean useNewModelProcessing = true; + // process server query by name the old way + if(("vserver".equals(resource) || "vserver2".equals(resource))){ + if(nameValues.containsKey("vserver_name") || nameValues.containsKey("vserver-name") || nameValues.containsKey("vserver.vserver_name") || nameValues.containsKey("vserver.vserver-name")) + useNewModelProcessing = false; + } + if("generic-vnf".equals(resource)){ + if(nameValues.containsKey("vnf_name") || nameValues.containsKey("vnf-name") || nameValues.containsKey("generic_vnf.vnf_name") || nameValues.containsKey("generic-vnf.vnf-name")) + useNewModelProcessing = false; + } + + // process data using new model + if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { + + try { + return newModelQuery(resource, localOnly, select, key, prefix, orderBy, ctx); + } catch (Exception exc) { + getLogger().warn("Failed query - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + + ObjectMapper mapper = AAIService.getObjectMapper(); + Map attributes = new HashMap(); + + String modifier = null; + + if(resource.contains(":")) { + String[] tokens = resource.split(":"); + resource = tokens[0]; + if(tokens.length > 1) { + modifier = tokens[1]; + } + } + + resource = resource.toLowerCase().replace("-", "_"); + + try { + + switch(resource) { + case "generic_vnf": + vnfId = nameValues.get("vnf_id"); + if(nameValues.containsKey("vnf_id")) + vnfId = nameValues.get("vnf_id"); + else if(nameValues.containsKey("generic_vnf.vnf_name")) + vnfId = nameValues.get("generic_vnf.vserver_name"); + + if(nameValues.containsKey("vnf_name")) + vnfName = nameValues.get("vnf_name"); + else if(nameValues.containsKey("generic_vnf.vnf_name")) + vnfName = nameValues.get("generic_vnf.vnf_name"); + + if(vnfId != null && !vnfId.isEmpty()) { + // at this point of the project this part should not be executed + vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); + GenericVnf vnf = this.requestGenericVnfData(vnfId); + if(vnf == null) { + return QueryStatus.NOT_FOUND; + } + + attributes = mapper.convertValue(vnf, attributes.getClass()); + } else if(vnfName != null && !vnfName.isEmpty()) { + try { + vnfName = vnfName.trim().replace("'", "").replace("$", "").replace("'", ""); + GenericVnf vnf = this.requestGenericVnfeNodeQuery(vnfName); + if(vnf == null) { + return QueryStatus.NOT_FOUND; + } + vnfId=vnf.getVnfId(); + nameValues.put("vnf_id", vnfId); + attributes = mapper.convertValue(vnf, attributes.getClass()); + } catch (AAIServiceException exc) { + int errorCode = exc.getReturnCode(); + switch(errorCode) { + case 400: + case 404: + case 412: + break; + default: + getLogger().warn("Caught exception trying to refresh generic VNF", exc); + } + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + if(errorCode >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); + } + return QueryStatus.FAILURE; + } + } else { + getLogger().warn("No arguments are available to process generic VNF"); + return QueryStatus.FAILURE; + } + break; + case "vserver": + case "vserver2": + String vserverName = null; + if(nameValues.containsKey("vserver_name")) + vserverName = nameValues.get("vserver_name"); + else if(nameValues.containsKey("vserver.vserver_name")) + vserverName = nameValues.get("vserver.vserver_name"); + + String vserverId = null; + if(nameValues.containsKey("vserver_id")) + vserverId = nameValues.get("vserver_id"); + if(nameValues.containsKey("vserver.vserver_id")) + vserverId = nameValues.get("vserver.vserver_id"); + String tenantId = nameValues.get("teannt_id"); + + if(vserverName != null) vserverName = vserverName.trim().replace("'", "").replace("$", "").replace("'", ""); + if(vserverId != null) vserverId = vserverId.trim().replace("'", "").replace("$", "").replace("'", ""); + if(tenantId != null) tenantId = tenantId.trim().replace("'", "").replace("$", "").replace("'", ""); + + if (vserverName != null) { + URL vserverUrl = null; + try { + vserverUrl = this.requestVserverURLNodeQuery(vserverName); + } catch (AAIServiceException aaiexc) { + ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); + if (aaiexc.getReturnCode() >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if (aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + } + if (vserverUrl == null) { + return QueryStatus.NOT_FOUND; + } + + tenantId = getTenantIdFromVserverUrl(vserverUrl); + String cloudOwner = getCloudOwnerFromVserverUrl(vserverUrl); + String cloudRegionId = getCloudRegionFromVserverUrl(vserverUrl); + + Vserver vserver = null; + try { + vserver = this.requestVServerDataByURL(vserverUrl); + } catch (AAIServiceException aaiexc) { + ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); + if (aaiexc.getReturnCode() >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if (aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + } + if (vserver == null) { + return QueryStatus.NOT_FOUND; + } + attributes = mapper.convertValue(vserver, attributes.getClass()); + if (!attributes.containsKey("tenant-id") && tenantId != null) { + attributes.put("tenant-id", tenantId); + } + if (!attributes.containsKey("cloud-owner") && cloudOwner != null) { + attributes.put("cloud-owner", cloudOwner); + } + if (!attributes.containsKey("cloud-region-id") && cloudRegionId != null) { + attributes.put("cloud-region-id", cloudRegionId); + } + } else if (vserverId != null && tenantId != null) { + Vserver vserver = this.requestVServerData(tenantId, vserverId, "att-aic", "AAIAIC25"); + if(vserver == null) { + return QueryStatus.NOT_FOUND; + } + attributes = mapper.convertValue(vserver, attributes.getClass()); + if(!attributes.containsKey("tenant-id") && tenantId != null){ + attributes.put("tenant-id", tenantId); + } + } else { + return QueryStatus.FAILURE; + } + break; + + default: + return QueryStatus.FAILURE; + } + + QueryStatus retval = QueryStatus.SUCCESS; + + if (attributes == null || attributes.isEmpty()) { + retval = QueryStatus.NOT_FOUND; + getLogger().debug("No data found"); + } else { + if (ctx != null) { + if (prefix != null) { + ArrayList keys = new ArrayList(attributes.keySet()); + + int numCols = keys.size(); + + for (int i = 0; i < numCols; i++) { + String colValue = null; + String colName = keys.get(i); + Object object = attributes.get(colName); + + if(object != null && object instanceof String) { + colValue = (String)object; + + if (prefix != null) { + getLogger().debug("Setting "+prefix + "." + colName.replaceAll("_", "-")+" = "+ colValue); + ctx.setAttribute(prefix + "." + colName.replaceAll("_", "-"), colValue); + } else { + getLogger().debug("Setting " + colValue.replaceAll("_", "-")+" = "+colValue); + ctx.setAttribute(colValue.replaceAll("_", "-"), colValue); + } + } else if(object != null && object instanceof Map) { + if(colName.equals(modifier) || colName.equals("relationship-list")){ + String localNodifier = modifier; + if(localNodifier == null) + localNodifier = "relationship-list"; + Map properties = (Map)object; + writeMap(properties, prefix+"."+localNodifier, ctx); + } + } + } + } + } + } + getLogger().debug("Query - returning " + retval); + return (retval); + + } catch (Exception exc) { + getLogger().warn("Failed query - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + +// return QueryStatus.SUCCESS; + } + + private boolean checkOldFormat(String resource, HashMap nameValues) { + + switch(resource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + return true; + } + if(resource.contains(":")) { + resource = resource.substring(0, resource.indexOf(":")); + } + + Set keys = nameValues.keySet(); + for(String key : keys) { + if(!key.contains(".")) { + if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key)) + continue; + else { + getLogger().warn(String.format("key %s is incompatible with resource type '%s'", key, resource)); + return false; + } + } + } + return true; + } + + public void writeMap(Map properties, String prefix, SvcLogicContext ctx) { + Set mapKeys = properties.keySet(); + + for(String mapKey : mapKeys) { + Object entity = properties.get(mapKey); + if(entity instanceof ArrayList) { + writeList((ArrayList)entity, prefix + "." + mapKey, ctx); + } else + if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { + ctx.setAttribute(prefix + "." + mapKey, entity.toString()); + getLogger().debug(prefix + "." + mapKey + " : " + entity.toString()); + } else if(entity instanceof Map) { + String localPrefix = prefix; + if(mapKey != null) { + localPrefix = String.format("%s.%s", prefix, mapKey); + } + writeMap( (Map)entity, localPrefix, ctx); + } + } + } + + private void writeList(ArrayList list, String prefix, SvcLogicContext ctx) { + for(int i = 0; i < list.size(); i++ ) { + Object entity = list.get(i); + if(entity instanceof Map) { + writeMap( (Map)entity, prefix + "[" + i + "]", ctx); + } else + if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { + ctx.setAttribute(prefix, entity.toString()); + getLogger().debug(prefix + " : " + entity.toString()); + } + } + + if(list.size() > 0) { + ctx.setAttribute(prefix + "_length", Integer.toString(list.size())); + getLogger().debug(prefix + "_length" + " : " + Integer.toString(list.size())); + } + } + + @Override + public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) + throws SvcLogicException { + + getLogger().debug("AAIService.save\tresource="+resource); + HashMap nameValues = keyToHashMap(key, ctx); + + if(!checkOldFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + getLogger().warn("AAIService.save has unspecified resource"); + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + // keys passed + getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); + + // process params + if(params.containsKey("prefix")) { + Map tmpParams = ctxGetBeginsWith(ctx, params.get("prefix")); + if(!tmpParams.isEmpty()) { + params.putAll(tmpParams); +// params.remove("prefix"); + } + } + // params passed + getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); + + boolean useNewModelProcessing = true; + // process server query by name the old way + if(("vserver".equals(resource) || "vserver2".equals(resource))){ + if(nameValues.containsKey("vserver-name")) { + useNewModelProcessing = false; + } + + if(!params.containsKey("vserver-selflink")) { + + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + URL path = null; + try { + request.processRequestPathValues(nameValues); + path = request.getRequestUrl("GET", null); + params.put("vserver-selflink", path.toString()); + } catch (UnsupportedEncodingException | MalformedURLException e) { + // TODO : Fix this + params.put("vserver-selflink", "/vserver"); + } + } + } + + // process data using new model + if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { + + try { + if(!resource.contains(":")){ + return newModelSave(resource, force, key, params, prefix, ctx); + } else { + String[] tokens = resource.split(":"); + String localResource = tokens[0]; + String dependency = tokens[1]; + + AAIDatum instance = newModelObjectRequest( localResource, nameValues, prefix, ctx); + if(instance == null) { + return QueryStatus.NOT_FOUND; + } + + switch(dependency){ + case "relationship-list": + newModelProcessRelationshipList(instance, params, prefix, ctx); + break; + } + // create a method to update relationship-list + AAIRequest request = AAIRequest.createRequest(localResource, nameValues); + request.setRequestObject(instance); + request.processRequestPathValues(nameValues); + + getExecutor().post(request); + getLogger().debug("Save relationship list - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + } catch (Exception exc) { + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + if(exc instanceof AAIServiceException) { + AAIServiceException aaiexc = (AAIServiceException)exc; + if(aaiexc.getReturnCode() >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if(aaiexc.getReturnCode() == 404) { + return QueryStatus.NOT_FOUND; + } + } + getLogger().warn("Failed save() - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } else { + String reSource = resource.toLowerCase().replace("-", "_"); + String vnfId = null; + + try { + switch(reSource) { + case "generic_vnf": + case "generic-vnf": + vnfId = nameValues.get("vnf_id"); + if(vnfId == null) { + getLogger().debug("Save(generic-vnf) with no vnf-id specified. Returning FAILURE"); + return QueryStatus.FAILURE; + } + vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); + GenericVnf vnf = this.requestGenericVnfData(vnfId); + String status = params.get("prov-status"); + boolean updated = false; + if(status != null && !status.isEmpty()) { + vnf.setProvStatus(status); + } + if(updated) { + this.postGenericVnfData(vnfId, vnf); + } + break; + case "vpe": + return update( resource, key, params, prefix, ctx) ; + + default: + getLogger().debug("Save() executing default path - returning FAILURE"); + return QueryStatus.FAILURE; + } + } catch (Exception exc) { + getLogger().warn("Failed save - returning FAILURE", exc); + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + return QueryStatus.FAILURE; + } + } + + getLogger().debug("Save - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + + @Override + public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { + + resource = resource.toLowerCase(); + HashMap nameValues = keyToHashMap(key, ctx); + getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); + if(!checkOldFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + + getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); + + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + request = new UpdateRequest(request, params); + + String[] arguments = request.getArgsList(); + for(String name : arguments) { + String modifiedKey = name.replaceAll("-", "_"); + if(nameValues.containsKey(modifiedKey)) { + String argValue = nameValues.get(modifiedKey); + if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); + request.addRequestProperty(name, argValue); + } + } + + try { + QueryStatus retval = QueryStatus.SUCCESS; + + retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); + + if(retval == null || retval != QueryStatus.SUCCESS) { + return retval; + } + + String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); + if(resourceVersion == null) { + return QueryStatus.NOT_FOUND; + } + params.put("resource-version", resourceVersion); + + request.processRequestPathValues(nameValues); + getExecutor().patch(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + } catch (Exception exc) { + getLogger().warn("Failed update - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + + getLogger().debug("Update - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + + @Override + public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { + getLogger().debug("AAIService.delete\tresource="+resource); + HashMap nameValues = keyToHashMap(key, ctx); + getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); + + if(!checkOldFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", "aaiData"), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + ctx.setAttribute(String.format("%s.error.message", "tmpDelete"), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + + if(AAIRequest.createRequest(resource, nameValues) != null) { + if(resource.contains(":")) { + return processDeleteRelationshipList(resource, key, ctx, nameValues); + } + + + try { + QueryStatus retval = QueryStatus.SUCCESS; + + retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); + + if(retval == null || retval != QueryStatus.SUCCESS) { + return retval; + } + + String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); + if(resourceVersion == null) { + return QueryStatus.NOT_FOUND; + } + + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + request.processRequestPathValues(nameValues); + + if(getExecutor().delete(request, resourceVersion)) { + return QueryStatus.SUCCESS; + } + } catch(AAIServiceException aaiexc) { + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + + } catch (Exception exc) { + getLogger().warn("requestGenericVnfData", exc); + return QueryStatus.FAILURE; + } + + } catch (Exception exc) { + getLogger().warn("Failed delete - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } else { + String resoourceName = resource; + String identifier = null; + + if(resoourceName == null) + return QueryStatus.FAILURE; + + if(resoourceName.contains(":")) { + String[] tokens = resoourceName.split(":"); + if(tokens != null && tokens.length > 0) { + resoourceName = tokens[0]; + identifier = tokens[1]; + } + } + if("relationship-list".equals(identifier) || "relationshipList".equals(identifier)) { +// RelationshipRequest relationshipRequest = new RelationshipRequest(); + if("generic-vnf".equals(resoourceName)){ + String vnfId = nameValues.get("vnf_id"); + String relatedTo = nameValues.get("related_to"); + vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); + relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); + + GenericVnf vnf; + try { + vnf = this.requestGenericVnfData(vnfId); + if(vnf == null) + return QueryStatus.NOT_FOUND; + } catch (AAIServiceException exc) { + getLogger().warn("Failed delete - returning NOT_FOUND", exc); + return QueryStatus.NOT_FOUND; + } + boolean itemRemoved = false; + RelationshipList relationshipList = vnf.getRelationshipList(); + List relationships = relationshipList.getRelationship(); + List iterableList = new LinkedList(relationships); + for(Relationship relationship : iterableList) { + if(relationship.getRelatedTo().equals(relatedTo)) { + relationships.remove(relationship); + itemRemoved = true; + } + } + + if(!itemRemoved) + return QueryStatus.NOT_FOUND; + +// AAIRequest masterRequest = new GenericVnfRequest(); +// masterRequest.addRequestProperty(GenericVnfRequest.VNF_ID, vnfId); +// relationshipRequest.addMasterRequest(masterRequest); +// Map attributes = objectToProperties(vnf); +// try { +// Boolean result = getExecutor().delete(relationshipRequest, attributes.get(AAIRequest.RESOURCE_VERSION)); +// } catch (AAIServiceException e) { +// return QueryStatus.FAILURE; +// } + + try { + this.postGenericVnfData(vnf.getVnfId(), vnf); + } catch (AAIServiceException exc) { + if(exc.getReturnCode() == 404){ + return QueryStatus.NOT_FOUND; + } else { + getLogger().warn("Failed delete - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + return QueryStatus.SUCCESS; + } + } + } + return QueryStatus.FAILURE; + } + + @Override + public QueryStatus exists(String resource, String key, String prefix, SvcLogicContext ctx) throws SvcLogicException { + return query(resource, false, null, key, prefix, null, ctx); + } + + @Override + public QueryStatus isAvailable(String arg0, String arg1, String arg2, SvcLogicContext arg3) + throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.isAvailable() has not been implemented yet"); + } + + @Override + public QueryStatus notify(String resource, String action, String key, SvcLogicContext ctx) throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.notify() has not been implemented yet"); + } + +// @Override + public QueryStatus newModelQuery(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) { + + Object response = null; + QueryStatus retval = QueryStatus.SUCCESS; + String modifier = null; + + HashMap nameValues = keyToHashMap(key, ctx); + if(resource.contains(":")) { + modifier = resource.split(":")[1]; + } + + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + Map params = new HashMap(); + + request.processRequestPathValues(nameValues); + if(nameValues.containsKey("prefix")){ + Map tmpParams = ctxGetBeginsWith(ctx, nameValues.get("prefix")); + if(!tmpParams.isEmpty()) { + params.putAll(tmpParams); + } + if("named-query".equals(resource)) + request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params)); + } + String rv = getExecutor().get(request); + + retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, modifier); + + } catch(AAIServiceException aaiexc) { + int errorCode = aaiexc.getReturnCode(); + ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); + if(errorCode >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + + return QueryStatus.FAILURE; + } catch (Exception exc) { + getLogger().warn("requestGenericVnfData", exc); + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + return QueryStatus.FAILURE; + } + + return retval; + } + + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException + { + Object response = null; + + if(rv == null) { + return QueryStatus.NOT_FOUND; + } + + response = request.jsonStringToObject(rv); + if(response == null) { + return QueryStatus.NOT_FOUND; + } + + if("generic-query".equals(resource)) { + SearchResults rd = SearchResults.class.cast(response); + List rdList = rd.getResultData(); + if(rdList == null || rdList.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + ResultData rDatum = rdList.get(0); + nameValues.put("selflink", rDatum.getResourceLink()); + AAIRequest req2 = AAIRequest.createRequest(rDatum.getResourceType(), nameValues); + req2.processRequestPathValues(nameValues); + rv = getExecutor().get(req2); + if(rv == null) { + return QueryStatus.NOT_FOUND; + } + + response = req2.jsonStringToObject(rv); + if(response == null) { + return QueryStatus.NOT_FOUND; + } + } + + if("named-query".equals(resource)) { + InventoryResponseItems rd = InventoryResponseItems.class.cast(response); + List iRIlist = rd.getInventoryResponseItem(); + if(iRIlist == null || iRIlist.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + } + + if("nodes-query".equals(resource)) { + SearchResults rd = SearchResults.class.cast(response); + List rdList = rd.getResultData(); + if(rdList == null || rdList.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + ResultData rDatum = rdList.get(0); + response = rDatum; + } + + if("formatted-query".equals(resource)) { + FormattedQueryResultList rd = FormattedQueryResultList.class.cast(response); + List iRIlist = rd.getResults(); + if(iRIlist == null || iRIlist.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + } + + String preFix = null; + if(prefix == null || prefix.isEmpty()) { + preFix = ""; + } else { + preFix = prefix + "."; + } + + Map props = objectToProperties(response); + Set keys = props.keySet(); + for(String theKey: keys) { + if(getLogger().isTraceEnabled()) + getLogger().trace(theKey); + + Object value = props.get(theKey); + if(value == null) + continue; + Object type = value.getClass(); + if(value instanceof String) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + if(value instanceof Boolean) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + if(value instanceof Integer) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + if(value instanceof Long) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + + if(value instanceof ArrayList) { + ArrayList array = ArrayList.class.cast(value); + for(int i = 0; i < array.size(); i++) { +// ctx.setAttribute(String.format("%s%s[%d]", preFix, theKey, i), array.get(i).toString()); + writeList(array, String.format("%s.%s", prefix, theKey), ctx); + } + continue; + } + + if("relationship-list".equals(theKey)){ + Map relationshipList = (Map)value; + // we are interested in seeing just the selected relationship + if(theKey.equals(modifier)) { + List relationships = (List)relationshipList.get("relationship"); + if(relationships != null && !relationships.isEmpty()) { + + List newRelationships = new LinkedList(); + newRelationships.addAll(relationships); + + for(Object obj : newRelationships){ + if(obj instanceof Map) { + Map relProperties = (Map)obj; + if(relProperties.containsKey("related-to")) { + Object relPropsRelatedTo = relProperties.get("related-to"); + + String relatedTo = nameValues.get("related_to"); + if(relatedTo != null) { + relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); + if(!relatedTo.equals(relPropsRelatedTo)) { + relationships.remove(relProperties); + } + continue; + } else { + continue; + } + } + } + } + } + } + writeMap(relationshipList, String.format("%s.%s", prefix, theKey), ctx); + continue; + } + + if(value instanceof Map) { + Map subnetsList = (Map)value; + writeMap(subnetsList, String.format("%s.%s", prefix, theKey), ctx); + continue; + } + + } + return QueryStatus.SUCCESS; + } + + + public QueryStatus newModelBackupRequest(String resource, Map params, String prefix, SvcLogicContext ctx) { + + QueryStatus retval = QueryStatus.SUCCESS; + HashMap nameValues = new HashMap(); + + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + boolean argsFound = false; + String[] arguments = request.getArgsList(); + for(String name : arguments) { + String tmpName = name.replaceAll("-", "_"); + String value = params.get(tmpName); + if(value != null && !value.isEmpty()) { + value = value.trim().replace("'", "").replace("$", "").replace("'", ""); + request.addRequestProperty(name, value); + argsFound = true; + } + } + if(!argsFound) { + getLogger().warn("No arguments were found. Terminating backup request."); + return QueryStatus.FAILURE; + } + + String rv = getExecutor().get(request); + ctx.setAttribute(prefix, rv); + } catch(AAIServiceException aaiexc) { + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + + return QueryStatus.FAILURE; + } catch (Exception exc) { + getLogger().warn("newModelBackupRequest", exc); + return QueryStatus.FAILURE; + } + + return retval; + } + + public AAIDatum newModelObjectRequest(String resource, Map params, String prefix, SvcLogicContext ctx) + throws AAIServiceException { + + AAIDatum response = null; + + try { + AAIRequest request = AAIRequest.createRequest(resource, params); + if(request == null) { + return null; + } + + request.processRequestPathValues(params); + String rv = getExecutor().get(request); + response = request.jsonStringToObject(rv); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + getLogger().warn("newModelBackupRequest", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public QueryStatus release(String arg0, String arg1, SvcLogicContext arg2) throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.release() has not been implemented yet"); + } + + @Override + public QueryStatus reserve(String arg0, String arg1, String arg2, String arg3, SvcLogicContext arg4) + throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.reserve() has not been implemented yet"); + } + + private QueryStatus newModelSave(String resource, boolean force, String key, Map parms, String prefix, SvcLogicContext ctx) { + getLogger().debug("Executing newModelSave for resource : " + resource); + HashMap nameValues = keyToHashMap(key, ctx); + + try { + ArrayList subResources = new ArrayList(); + Set set = parms.keySet(); + Map setters = new HashMap(); + Map getters = new HashMap(); + + // 1. find class + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = request.getModelClass(); + getLogger().debug(resourceClass.getName()); + AAIDatum instance = resourceClass.newInstance(); + + { + Annotation[] annotations = resourceClass.getAnnotations(); + for(Annotation annotation : annotations) { + Class anotationType = annotation.annotationType(); + String annotationName = anotationType.getName(); +// if("com.fasterxml.jackson.annotation.JsonPropertyOrder".equals(annotationName)){ + + // 2. find string property setters and getters for the lists + if("javax.xml.bind.annotation.XmlType".equals(annotationName)){ + XmlType order = (XmlType)annotation; + String[] values = order.propOrder(); + for(String value : values) { + String id = camelCaseToDashedString(value); + Field field = resourceClass.getDeclaredField(value); + Class type = field.getType(); + Method setter = null; + try { + setter = resourceClass.getMethod("set"+StringUtils.capitalize(value), type); + if(type.getName().startsWith("java.lang") || "boolean".equals(type.getName()) || "long".equals(type.getName())) { + try { + setter.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = parms.get(id); + + if(arglist[0] != null) { + if(!type.getName().equals("java.lang.String")) { +// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); + if("boolean".equals(type.getName())) { + arglist[0] = valueOf(Boolean.class, parms.get(id)); + } else if("long".equals(type.getName())) { + arglist[0] = valueOf(Long.class, parms.get(id)); + } else { + arglist[0] = valueOf(type, parms.get(id)); + } + } + Object o = setter.invoke(instance, arglist); + } + set.remove(id); + + } catch (Exception x) { + Throwable cause = x.getCause(); + getLogger().warn("Failed process for " + resourceClass.getName(), x); + } + } else if(type.getName().equals("java.util.List")) { + List newValues = new ArrayList(); + String length = id+"_length"; + if(!parms.isEmpty() && parms.containsKey(length)) { + String tmp = parms.get(length).toString(); + int count = Integer.valueOf(tmp); + for(int i=0; i relationshipKeys = new TreeSet(); + Set vlansKeys = new TreeSet(); + Set metadataKeys = new TreeSet(); + + for(String attribute : set) { + String value = parms.get(attribute); + if(attribute.startsWith("relationship-list")) { + relationshipKeys.add(attribute); + } else if(attribute.startsWith("vlans")) { + vlansKeys.add(attribute); + } else if(attribute.startsWith("metadata")) { + metadataKeys.add(attribute); + } + } + // 3. find list property getters + for(String attribute : set) { + String value = parms.get(attribute); + Method method = getters.get(attribute); + if(method != null) { + try { + method.setAccessible(true); + Object arglist[] = new Object[0]; +// arglist[0] = value; + Class[] types = method.getParameterTypes(); + if(types.length == 0){ + Object o = method.invoke(instance, arglist); + if(o instanceof ArrayList) { + ArrayList values = (ArrayList)o; +// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); + value = value.replace("[", "").replace("]", ""); + List items = Arrays.asList(value.split("\\s*,\\s*")); + for(String s : items) { + values.add(s.trim()); + } + } + } + } catch (Exception x) { + Throwable cause = x.getCause(); + getLogger().warn("Failed process for " + resourceClass.getName(), x); + } + } + } + // 4. Process Relationships + // add relationship list + if( (subResources.contains("relationship-list") || subResources.contains("relationshipList")) && !relationshipKeys.isEmpty()) { + RelationshipList relationshipList = null; + Object obj = null; + Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + if(getRelationshipListMethod != null){ + try { + getRelationshipListMethod.setAccessible(true); + obj = getRelationshipListMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof RelationshipList){ + relationshipList = (RelationshipList)obj; + } else { + relationshipList = new RelationshipList(); + Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); + if(setRelationshipListMethod != null){ + try { + setRelationshipListMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = relationshipList; + + obj = setRelationshipListMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + List relationships = relationshipList.getRelationship(); + + int i = 0; + while(true){ + int j = 0; + String searchKey = "relationship-list.relationship[" + i + "].related-to"; + if(!parms.containsKey(searchKey)) + break; + Relationship relationship = new Relationship(); + relationships.add(relationship); + + String relatedTo = parms.get(searchKey); + relationship.setRelatedTo(relatedTo); + + List relData = relationship.getRelationshipData(); +// if(relData == null) { +// relData = new LinkedList(); +// relationship.setRelationshipData(relData); +// } + + while(true) { + String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; + String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; + if(!parms.containsKey(searchRelationshipKey)) + break; + + RelationshipData relDatum = new RelationshipData(); + relDatum.setRelationshipKey(parms.get(searchRelationshipKey)); + relDatum.setRelationshipValue(parms.get(searchRelationshipValue)); + relData.add(relDatum); + j++; + } + + i++; + } + } + + // 4. vlans + if(subResources.contains("vlans") && !vlansKeys.isEmpty()) { + Object obj = null; + Vlans vlanList = null; + Method getVLansMethod = resourceClass.getMethod("getVlans"); + if(getVLansMethod != null){ + try { + getVLansMethod.setAccessible(true); + obj = getVLansMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof Vlans){ + vlanList = (Vlans)obj; + } else { + vlanList = new Vlans(); + Method setVlansMethod = resourceClass.getMethod("setVlans", Vlans.class); + if(setVlansMethod != null){ + try { + setVlansMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = vlanList; + + obj = setVlansMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + int i = 0; + while(true){ + String searchKey = "vlans.vlan[" + i + "].vlan-interface"; + if(!parms.containsKey(searchKey)) + break; + + String vlanInterface = parms.get("vlans.vlan[" + i + "].vlan-interface"); + String vlanIdInner = parms.get("vlans.vlan[" + i + "].vlan-id-inner"); + String vlanIdOute = parms.get("vlans.vlan[" + i + "].vlan-id-outer"); + String speedValue = parms.get("vlans.vlan[" + i + "].speed-value"); + String speedUnits = parms.get("vlans.vlan[" + i + "].speed-units"); + + Vlan vlan = new Vlan(); + vlan.setVlanInterface(vlanInterface); + + if(vlanIdInner != null) { + Long iVlanIdInner = Long.parseLong(vlanIdInner); + vlan.setVlanIdInner(iVlanIdInner); + } + + if(vlanIdOute != null) { + Long iVlanIdOuter = Long.parseLong(vlanIdOute); + vlan.setVlanIdOuter(iVlanIdOuter); + } + + if(speedValue != null) { + vlan.setSpeedValue(speedValue); + vlan.setSpeedUnits(speedUnits); + } + + vlanList.getVlan().add(vlan); + i++; + } + } + + // 5. metadata + if(subResources.contains("metadata") && !metadataKeys.isEmpty()) { + Object obj = null; + Metadata metadataList = null; + Method getMetadataMethod = resourceClass.getMethod("getMetadata"); + if(getMetadataMethod != null){ + try { + getMetadataMethod.setAccessible(true); + obj = getMetadataMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof Metadata){ + metadataList = (Metadata)obj; + } else { + metadataList = new Metadata(); + Method setMetadataMethod = resourceClass.getMethod("setMetadata", Metadata.class); + if(setMetadataMethod != null){ + try { + setMetadataMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = metadataList; + + obj = setMetadataMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + if(metadataList.getMetadatum() == null) { +// metadataList.setMetadatum(new ArrayList()); + } + + // process data + int i = 0; + while(true){ + String metaKey = "metadata.metadatum[" + i + "].meta-key"; + if(!parms.containsKey(metaKey)) + break; + + String metaValue = parms.get("metadata.metadatum[" + i + "].meta-value"); + + Metadatum vlan = new Metadatum(); + vlan.setMetaname(metaKey); + vlan.setMetaval(metaValue); + + metadataList.getMetadatum().add(vlan); + i++; + } + + } + + + // 6. Prepare AAI request + String[] args = request.getArgsList(); + for(String arg : args) { + String modifiedKey = arg.replaceAll("-", "_"); + if(nameValues.containsKey(modifiedKey)) { + String argValue = nameValues.get(modifiedKey); + if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); + request.addRequestProperty(arg, argValue); + } + } + + request.processRequestPathValues(nameValues); + request.setRequestObject(instance); + Object response = getExecutor().post(request); + if(request.expectsDataFromPUTRequest()){ + if(response != null && response instanceof String) { + String rv = response.toString(); + QueryStatus retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, null); + getLogger().debug("newModelSave - returning " + retval.toString()); + return retval; + } + } + + } catch(AAIServiceException exc){ + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + int returnCode = exc.getReturnCode(); + if(returnCode >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); + } + + if(returnCode == 400 || returnCode == 412) + return QueryStatus.FAILURE; + else if(returnCode == 404) + return QueryStatus.NOT_FOUND; + else { + getLogger().warn("Failed newModelSave - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } catch(Exception exc){ + getLogger().warn("Failed newModelSave - returning FAILURE", exc); + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + return QueryStatus.FAILURE; + } + + getLogger().debug("newModelSave - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + + private static final String regex = "([A-Z][a-z,0-9]+)"; + private static final String replacement = "-$1"; + + private String camelCaseToDashedString(String propOrder) { + return propOrder.replaceAll(regex, replacement).toLowerCase(); + } + + private QueryStatus newModelProcessRelationshipList(Object instance, Map params, String prefix, SvcLogicContext ctx) throws Exception { + + Class resourceClass = instance.getClass(); + + Set relationshipKeys = new TreeSet(); + + Set set = params.keySet(); + + for(String attribute : set) { + String value = params.get(attribute); + + if(attribute.startsWith("relationship-list")) { + relationshipKeys.add(attribute); + } + } + + // 3. Process Relationships + // add relationship list + if(!relationshipKeys.isEmpty()) { + RelationshipList relationshipList = null; + Object obj = null; + Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + if(getRelationshipListMethod != null){ + try { + getRelationshipListMethod.setAccessible(true); + obj = getRelationshipListMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof RelationshipList){ + relationshipList = (RelationshipList)obj; + } else { + relationshipList = new RelationshipList(); + Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); + if(setRelationshipListMethod != null){ + try { + setRelationshipListMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = relationshipList; + + obj = setRelationshipListMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + boolean createdNewRelationships = false; + List relationships = relationshipList.getRelationship(); + if(relationships == null) { + relationships = new ArrayList(); + createdNewRelationships = true; + } + + int i = 0; + int j = 0; + while(true){ + String searchKey = "relationship-list.relationship[" + i + "].related-to"; + if(!params.containsKey(searchKey)) + break; + + j = 0; + String relatedTo = params.get(searchKey); + String relatedLinkKey = "relationship-list.relationship[" + i + "].related-link"; + String relatedLink = null; + if(params.containsKey(relatedLinkKey)) { + relatedLink = params.get(relatedLinkKey); + } + + Relationship relationship = new Relationship(); + relationships.add(relationship); + relationship.setRelatedTo(relatedTo); + if(relatedLink != null) { + relationship.setRelatedLink(relatedLink); + } else { + List relData = relationship.getRelationshipData(); + + while(true) { + String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; + String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; + if(!params.containsKey(searchRelationshipKey)) + break; + + RelationshipData relDatum = new RelationshipData(); + relDatum.setRelationshipKey(params.get(searchRelationshipKey)); + relDatum.setRelationshipValue(params.get(searchRelationshipValue)); + relData.add(relDatum); + j++; + } + } + + + i++; + } + } + + return QueryStatus.SUCCESS; + } + + private Relationship findRelationship(List relationships, String relatedTo) { + if(relatedTo == null) + return null; + + for(Relationship relationship : relationships) { + if(relationship.getRelatedTo().equals(relatedTo)){ + return relationship; + } + } + return null; + } + + protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + getLogger().debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + getLogger().debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + StringBuffer whereBuff = new StringBuffer(); + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + getLogger().debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + + } + + private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + getLogger().warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + + + public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException { + String resource = params.get("resource").toLowerCase(); + String prefix = params.get("data-key"); + + HashMap nameValues = new HashMap(); + if(AAIRequest.createRequest(resource, nameValues) != null) { + + try { + return newModelBackupRequest(resource, params, prefix, ctx); + } catch (Exception exc) { + getLogger().warn("Failed backup - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + + return QueryStatus.NOT_FOUND; + } + + @Override + public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException { + + QueryStatus retval = QueryStatus.SUCCESS; + String resource = params.get("resource").toLowerCase(); + String prefix = params.get("data-key"); + + HashMap nameValues = new HashMap(); + if(AAIRequest.createRequest(resource, nameValues) != null) { + + try { + retval = newModelBackupRequest(resource, params, "tmpRestore", ctx); + if(retval == QueryStatus.SUCCESS) { + String current_json = ctx.getAttribute("tmpRestore"); + ctx. setAttribute("tmpRestore", null); + + String snapshot_json = ctx.getAttribute(prefix); + } + } catch (Exception exc) { + getLogger().warn("Failed restore - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + + return QueryStatus.NOT_FOUND; + } + + protected Map objectToProperties(Object object) { + ObjectMapper mapper = AAIService.getObjectMapper(); + return mapper.convertValue(object, Map.class); + } + + static T valueOf(Class klazz, String arg) { + Exception cause = null; + T ret = null; + try { + ret = klazz.cast(klazz.getDeclaredMethod("valueOf", String.class).invoke(null, arg)); + } catch (NoSuchMethodException exc) { + LoggerFactory.getLogger(AAIService.class).warn("Wrong data type", exc); + ret = klazz.cast(arg); + } catch (IllegalAccessException e) { + cause = e; + } catch (InvocationTargetException e) { + cause = e; + } + if (cause == null) { + return ret; + } else { + throw new IllegalArgumentException(cause); + } + } + + private QueryStatus processDeleteRelationshipList(String resource, String key, SvcLogicContext ctx, HashMap nameValues) { + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + request.processRequestPathValues(nameValues); + URL url = request.getRequestUrl("GET", null); + + Class resourceClass = request.getModelClass(); + Object instance = getResource(url.toString(), resourceClass); + if(instance == null) + return QueryStatus.NOT_FOUND; + + // get resource version + String resourceVersion = null; + Method getResourceVersionMethod = resourceClass.getMethod("getResourceVersion"); + if(getResourceVersionMethod != null){ + try { + getResourceVersionMethod.setAccessible(true); + Object object = getResourceVersionMethod.invoke(instance); + if(object != null) + resourceVersion = object.toString(); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + + RelationshipList relationshipList = null; + Object obj = null; + Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + if(getRelationshipListMethod != null){ + try { + getRelationshipListMethod.setAccessible(true); + obj = getRelationshipListMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof RelationshipList){ + relationshipList = (RelationshipList)obj; + } else { + getLogger().debug("No relationships found to process."); + return QueryStatus.NOT_FOUND; + } + + if(relationshipList.getRelationship() == null || relationshipList.getRelationship().isEmpty()) { + return QueryStatus.NOT_FOUND; + } + String relatedTo = nameValues.get("related_to"); + if(relatedTo == null) { + return QueryStatus.FAILURE; + } + + relatedTo = relatedTo.replaceAll("_", "-"); + + String relatedLink = nameValues.get("relationship.related_link"); + if(relatedLink != null) { + relatedLink = URLDecoder.decode(relatedLink, "UTF-8"); + } + + List relationships = relationshipList.getRelationship(); + List relationshipsToDelete = new LinkedList(); + + for(Relationship relationship : relationships) { + if(relatedTo.equals(relationship.getRelatedTo())) { + if(relatedLink != null) { + if(relationship.getRelatedLink() != null ) { + String localRelatedLink = relationship.getRelatedLink(); + localRelatedLink = URLDecoder.decode(localRelatedLink, "UTF-8"); + if(localRelatedLink.endsWith(relatedLink)) { + getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); + relationshipsToDelete.add(relationship); + } + } + } else { + getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); + relationshipsToDelete.add(relationship); + } + } + } + if(relationshipsToDelete == null || relationshipsToDelete.isEmpty()) { + getLogger().info(String.format("Relationship has not been found for %s", key)); + return QueryStatus.NOT_FOUND; + } + + String path = url.toString(); + path = path + "/relationship-list/relationship"; + URL deleteUrl = new URL(path); + + ObjectMapper mapper = AAIService.getObjectMapper(); + + boolean cumulativeResponse = true; + + for(Relationship targetRelationship : relationshipsToDelete) { + String json_text = mapper.writeValueAsString(targetRelationship); + boolean response = deleteRelationshipList(deleteUrl, json_text); + if(!response) + cumulativeResponse = response; + + } + + if(!cumulativeResponse) + return QueryStatus.FAILURE; + + return QueryStatus.SUCCESS; + + } catch(Exception exc) { + getLogger().warn("processDelete", exc); + return QueryStatus.FAILURE; + } + } + + static final Map ctxGetBeginsWith( SvcLogicContext ctx, String prefix ) { + Map tmpPrefixMap = new HashMap(); + + if(prefix == null || prefix.isEmpty()){ + return tmpPrefixMap; + } + + for( String key : ctx.getAttributeKeySet() ) { + if( key.startsWith(prefix) ) { + String tmpKey = key.substring(prefix.length() + 1); + tmpPrefixMap.put( tmpKey, ctx.getAttribute(key)); + } + } + + Map prefixMap = new HashMap(); + Pattern p = Pattern.compile(".*\\[\\d\\]"); + + SortedSet keys = new TreeSet(tmpPrefixMap.keySet () ); + for(String key : keys) { + Matcher m = p.matcher(key); + if(m.matches()) { + continue; + } else if(key.endsWith("_length")) { + String listKey = key.substring(0, key.indexOf("_length")); + int max = Integer.parseInt(tmpPrefixMap.get(key)); + + ArrayList data = new ArrayList(); + for(int x = 0; x < max; x++){ + String tmpKey = String.format("%s[%d]", listKey, x); + String tmpValue = tmpPrefixMap.get(tmpKey); + if(tmpValue != null && !tmpValue.isEmpty()) { + data.add(tmpValue); + } + } + if(!data.isEmpty()) { + prefixMap.put(listKey, data.toString()); + } else { + prefixMap.put(key, tmpPrefixMap.get(key)); + } + } else { + prefixMap.put(key, tmpPrefixMap.get(key)); + } + } + + return prefixMap; + } + + /** + */ + protected NamedQueryData extractNamedQueryDataFromQueryPrefix(HashMap nameValues, Map parms) { + if(parms.isEmpty()) { + return null; + } + + NamedQueryData data = new NamedQueryData(); + + // query parameters + if(data.getQueryParameters() == null) { + data.setQueryParameters(new QueryParameters()); + } + String namedQueryUuid = nameValues.get("named-query-uuid".replaceAll("-", "_")); + if(namedQueryUuid == null) { + namedQueryUuid = parms.get("query-parameters.named-query.named-query-uuid"); + } + NamedQuery namedQuery = new NamedQuery(); + namedQuery.setNamedQueryUuid(namedQueryUuid); + data.getQueryParameters().setNamedQuery(namedQuery); + + // instance filters + if(data.getInstanceFilters() == null) { + data.setInstanceFilters(new InstanceFilters()); + } + + + String quantity = parms.get("instance-filters.instance-filter_length"); + if(quantity != null && StringUtils.isNumeric(quantity)) { + int max = Integer.parseInt(quantity); + for(int i = 0; i < max; i++) { + String keyPattern = String.format("instance-filters.instance-filter[%d].", i); + Set keys = parms.keySet(); + for(String key: keys) { + if(key.startsWith(keyPattern)){ + String value = parms.get(key); + String remainder = key.substring(keyPattern.length()); + String[] split = remainder.split("\\."); + getLogger().debug(String.format("%s", remainder)); + if("logical-link".equals(split[0])) { + InstanceFilter insf = null; + if(data.getInstanceFilters().getInstanceFilter().isEmpty()) { + insf = new InstanceFilter(); + data.getInstanceFilters().getInstanceFilter().add(insf); + } else { + insf = data.getInstanceFilters().getInstanceFilter().get(0); + } + LogicalLink logicalLink = insf.getLogicalLink(); + if(logicalLink == null) { + logicalLink = new LogicalLink(); + insf.setLogicalLink(logicalLink); + } + + switch(split[1]) { + case "link-name": + logicalLink.setLinkName(value); + break; + case "link-type": + logicalLink.setLinkType(value); + break; + case "operational-state": + logicalLink.setOperationalStatus(value); + break; + } + + } else if("pnf".equals(split[0])) { + Pnf pnf = new Pnf(); + pnf.setPnfName(value); + + InstanceFilter insf = new InstanceFilter(); + insf.setPnf(pnf); + data.getInstanceFilters().getInstanceFilter().add(insf); + + } else if("service-instance".equals(split[0])) { + ServiceInstance serviceInstance = new ServiceInstance(); + serviceInstance.setServiceInstanceId(value); + + InstanceFilter insf = new InstanceFilter(); + insf.setServiceInstance(serviceInstance); + data.getInstanceFilters().getInstanceFilter().add(insf); + + } else if("l3-network".equals(split[0])) { + L3Network l3Network = new L3Network(); + if("network-role".equals(split[1])) { + l3Network.setNetworkRole(value); + } + + InstanceFilter insf = new InstanceFilter(); + insf.setL3Network(l3Network); + data.getInstanceFilters().getInstanceFilter().add(insf); + } + } + } + } + } + + return data; + } + + public abstract T getResource(String key, Class type) throws AAIServiceException ; + protected abstract boolean deleteRelationshipList(URL url, String caller) throws AAIServiceException; +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java new file mode 100644 index 000000000..d315bad1c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java @@ -0,0 +1,30 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +public interface AAIExecutorInterface { + public Object get(AAIRequest request) throws AAIServiceException; + public Object post(AAIRequest request) throws AAIServiceException; + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException; + public Object query(AAIRequest request, Class clas) throws AAIServiceException; + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException; +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java new file mode 100644 index 000000000..4f2181f6c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java @@ -0,0 +1,420 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.BitSet; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.TreeSet; + +import org.apache.commons.lang.StringUtils; +import org.openecomp.aai.inventory.v10.GenericVnf; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public abstract class AAIRequest { + protected static final Logger LOG = LoggerFactory.getLogger(AAIRequest.class); + + protected static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri"; + + protected static final String MASTER_REQUEST = "master-request"; + + public static final String RESOURCE_VERSION = "resource-version"; + + public static final String DEPTH = "depth"; + + protected static Properties configProperties; + protected final String target_uri; + protected static AAIService aaiService; + + protected AAIDatum requestDatum; + + protected final Properties requestProperties = new Properties(); + + + public static AAIRequest createRequest(String resoourceName, Map nameValues){ + + String resoource = resoourceName; + + if(resoource == null) + return null; + + if(resoource.contains(":")) { + String[] tokens = resoource.split(":"); + if(tokens != null && tokens.length > 0) { + resoource = tokens[0]; + } + } + + if(nameValues.containsKey("selflink")){ + Class clazz = null; + try { + clazz = getClassFromResource(resoource) ; + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + + if(clazz != null) + return new SelfLinkRequest(clazz); + else + return null; + } + + switch(resoource){ + case "generic-query": + return new GenericQueryRequest(); + case "named-query": + return new NamedQueryRequest(); + case "nodes-query": + return new NodesQueryRequest(); + case "custom-query": + return new CustomQueryRequest(); + case "linterface": + return new LInterfaceRequest(LInterfaceRequest.TYPE.L2_BRIDGE_SBG); + case "l2-bridge-sbg": + return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_SBG); + case "l2-bridge-bgf": + return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_BGF); + case "echo": + case "test": + return new EchoRequest(); + + default: + { + AAIRequest request = getRequestFromResource(resoource); + if(request == null) { + return null; + } + return request; + } + } + } + + + /** + * Map containing resource tag to its bit position in bitset mapping + */ + private static Map tagValues = new LinkedHashMap(); + /** + * Map containing bitset value of the path to its path mapping + */ + private static Map bitsetPaths = new LinkedHashMap(); + + + public static void setProperties(Properties props, AAIService aaiService) { + AAIRequest.configProperties = props; + AAIRequest.aaiService = aaiService; + + try + { + URL url = null; + Bundle bundle = FrameworkUtil.getBundle(AAIServiceActivator.class); + if(bundle != null) { + BundleContext ctx = bundle.getBundleContext(); + if(ctx == null) + return; + + url = ctx.getBundle().getResource(AAIService.PATH_PROPERTIES); + } else { + url = aaiService.getClass().getResource("/aai-path.properties"); + } + + InputStream in = url.openStream(); + Reader reader = new InputStreamReader(in, "UTF-8"); + + Properties properties = new Properties(); + properties.load(reader); + LOG.info("loaded " + properties.size()); + + Set keys = properties.stringPropertyNames(); + + int index = 0; + Set resourceNames = new TreeSet(); + + for(String key : keys) { + String[] tags = key.split("\\|"); + for(String tag : tags) { + if(!resourceNames.contains(tag)) { + resourceNames.add(tag); + tagValues.put(tag, Integer.toString(++index)); + } + } + BitSet bs = new BitSet(256); + for(String tag : tags) { + String value = tagValues.get(tag); + Integer bitIndex = Integer.parseInt(value) ; + bs.set(bitIndex); + } + String path = properties.getProperty(key); + LOG.info(String.format("bitset %s\t\t%s", bs.toString(), path)); + bitsetPaths.put(bs, path); + } + LOG.info("loaded " + resourceNames.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + } + } + + public AAIRequest() { + target_uri = configProperties.getProperty(TARGET_URI); + } + + public void addRequestProperty(String key, String value) { + requestProperties.put(key, value); + } + + public final void setRequestObject(AAIDatum value) { + requestDatum = value; + } + + public final AAIDatum getRequestObject() { + return requestDatum; + } + + public final void addMasterRequest(AAIRequest masterRequest) { + requestProperties.put(MASTER_REQUEST, masterRequest); + } + + protected static String encodeQuery(String param) throws UnsupportedEncodingException { + return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); + } + + protected void handleException(AAIRequest lInterfaceRequest, JsonProcessingException exc) { + aaiService.getLogger().warn("Could not deserialize object of type " + lInterfaceRequest.getClass().getSimpleName(), exc) ; + } + +// public abstract URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException; + + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + + request_url = target_uri + getRequestPath(); + + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + +// request_url = processPathData(request_url, requestProperties); + + for(String resoourceName:uniqueResources) { + AAIRequest locRequest = AAIRequest.createRequest(resoourceName, new HashMap()); + if(locRequest != null) { + Class clazz = locRequest.getClass(); + Method function = null; + try { + function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); + request_url = (String) function.invoke(null, request_url, requestProperties); + } catch (Exception e) { + e.printStackTrace(); + } +// request_url = locRequest.processPathData(request_url, requestProperties); + } + } + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + + return http_req_url; + } + + + protected String getRequestPath() throws MalformedURLException { + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + BitSet bitset = new BitSet(); + for(String key : uniqueResources) { + if(tagValues.containsKey(key)) { + Object tmpValue = tagValues.get(key); + if(tmpValue != null) { + String value = tmpValue.toString(); + int bitIndex = Integer.parseInt(value); + bitset.set(bitIndex); + } + } + } + + String path = bitsetPaths.get(bitset); + if(path == null) { + throw new MalformedURLException("PATH not found for key string containing valies :" +requestProperties.toString()); + } + return path; + } + + public abstract URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException; + + public abstract String toJSONString(); + + public abstract String[] getArgsList(); + + public abstract Class getModelClass() ; + + public String getPrimaryResourceName(String resource) { + return resource; + } + + public String formatKey(String argument) { + return argument; + } + + public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { + if(jsonData == null) { + return null; + } + + AAIDatum response = null; + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(jsonData, getModelClass()); + return response; + } + + protected static Set extractUniqueResourceSetFromKeys(Set keySet) { + Set uniqueResources = new TreeSet(); + List keys = new ArrayList(keySet); + for(String resource : keys) { + if(resource.contains(".")) { + String [] split = resource.split("\\."); + uniqueResources.add(split[0].replaceAll("_", "-")); + } + } + return uniqueResources; + } + + public void processRequestPathValues(Map nameValues) { + Set uniqueResources = extractUniqueResourceSetFromKeys(nameValues.keySet()); + + Set tokens = new TreeSet(); + tokens.add(DEPTH); + tokens.addAll(Arrays.asList(this.getArgsList())); + + for(String resoourceName:uniqueResources) { + AAIRequest locRequest = AAIRequest.createRequest(resoourceName, nameValues); + if(locRequest != null) + tokens.addAll(Arrays.asList(locRequest.getArgsList())); + } + + String[] arguments = tokens.toArray(new String[0]); + for(String name : arguments) { + String tmpName = name.replaceAll("-", "_"); + String value = nameValues.get(tmpName); + if(value != null && !value.isEmpty()) { + value = value.trim().replace("'", "").replace("$", "").replace("'", ""); + this.addRequestProperty(name, value); + } + } + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + return request_url; + } + + public boolean isDeleteDataRequired() { + return false; + } + + ObjectMapper getObjectMapper() { + return AAIService.getObjectMapper(); + } + + protected static Class getClassFromResource(String resoourceName) throws ClassNotFoundException { + String className = GenericVnf.class.getName(); + String[] split = resoourceName.split("-"); + for(int i = 0; i < split.length; i++) { + split[i] = StringUtils.capitalize(split[i]); + } + + String caps = StringUtils.join(split); + className = className.replace("GenericVnf", caps); + Class clazz = null; + try { + clazz = (Class)Class.forName(className); + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + + return clazz; + } + + protected static AAIRequest getRequestFromResource(String resoourceName) { + + Class clazz = null; + try { + clazz = getClassFromResource(resoourceName); + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + if(clazz == null) { + return null; + } + GenericRequest request = new GenericRequest(clazz); + return request; + } + + public static Map splitQuery(String query) throws UnsupportedEncodingException { + Map query_pairs = new LinkedHashMap(); + + if(query != null && !query.isEmpty()) { + String[] pairs = query.split("&"); + for (String pair : pairs) { + int idx = pair.indexOf("="); + query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); + } + } + return query_pairs; + } + + protected boolean expectsDataFromPUTRequest() { + return false; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java new file mode 100644 index 000000000..c50178bc5 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java @@ -0,0 +1,3278 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; +import java.util.TimeZone; +import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; +import javax.ws.rs.HttpMethod; +import javax.xml.bind.annotation.XmlElement; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.onap.ccsdk.sli.core.sli.ConfigurationException; +import org.onap.ccsdk.sli.core.sli.MetricLogger; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.openecomp.aai.inventory.v10.AvailabilityZone; +import org.openecomp.aai.inventory.v10.Complex; +import org.openecomp.aai.inventory.v10.CtagPool; +import org.openecomp.aai.inventory.v10.DvsSwitch; +import org.openecomp.aai.inventory.v10.GenericVnf; +import org.openecomp.aai.inventory.v10.L3Network; +import org.openecomp.aai.inventory.v10.OamNetwork; +import org.openecomp.aai.inventory.v10.PInterface; +import org.openecomp.aai.inventory.v10.PhysicalLink; +import org.openecomp.aai.inventory.v10.Pserver; +import org.openecomp.aai.inventory.v10.ResultData; +import org.openecomp.aai.inventory.v10.SearchResults; +import org.openecomp.aai.inventory.v10.Service; +import org.openecomp.aai.inventory.v10.ServiceInstance; +import org.openecomp.aai.inventory.v10.SitePairSet; +import org.openecomp.aai.inventory.v10.Tenant; +import org.openecomp.aai.inventory.v10.Vce; +import org.openecomp.aai.inventory.v10.VnfImage; +import org.openecomp.aai.inventory.v10.VnfImages; +import org.openecomp.aai.inventory.v10.Vpe; +import org.openecomp.aai.inventory.v10.VplsPe; +import org.openecomp.aai.inventory.v10.VpnBinding; +import org.openecomp.aai.inventory.v10.Vserver; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; +import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; +import org.onap.ccsdk.sli.adaptors.aai.data.ResourceVersion; +import org.onap.ccsdk.sli.adaptors.aai.data.ServiceException; +import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; +import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; +import com.fasterxml.jackson.databind.type.TypeFactory; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; +import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.sun.jersey.client.urlconnection.HTTPSProperties; + + +public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicResource { + + public static final String AAICLIENT_PROPERTIES = "/aaiclient.properties"; + public static final String PATH_PROPERTIES = "/aai-path.properties"; + + private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); + + private final String truststore_path; + private final String truststore_password; + private final String keystore_path; + private final String keystore_password; + private final Boolean ignore_certificate_host_error; + + private final String target_uri; + private final String query_path; // = "sdn-zone-query"; + + private final String network_vserver_path; + + private final String svc_instance_path; + private final String svc_inst_qry_path; + + private final String vnf_image_query_path; + + private final String param_service_type; //= "service-type"; + + private final String ubb_notify_path; + private final String selflink_avpn; + private final String selflink_fqdn; + + private final String p_interface_path; + + private final String service_path; + private final String site_pair_set_path; + + private final int connection_timeout; + private final int read_timeout; + + // 1602 + private final String query_nodes_path; + private final String update_path; + + private final String application_id; + + // authentication credentials + private String user_name; + private String user_password; + + // runtime + private final boolean runtimeOSGI; + + private SSLContext CTX; + + private final MetricLogger ml = new MetricLogger(); + + private final AAIRequestExecutor executor; + + public AAIService(URL propURL) { + LOG.info("Entered AAIService.ctor"); + + String runtime = System.getProperty("aaiclient.runtime"); + if(runtime != null && runtime.equals("OSGI")) { + runtimeOSGI = true; + } else { + runtimeOSGI = false; + } + + Properties props = null; + try { + props = initialize(propURL); + AAIRequest.setProperties(props, this); + + } catch(Exception exc){ + LOG.error("AicAAIResource.static", exc); + } + + executor = new AAIRequestExecutor(); + + user_name = props.getProperty(CLIENT_NAME); + user_password = props.getProperty(CLIENT_PWWD); + + if(user_name == null || user_name.isEmpty()){ + LOG.debug("Basic user name is not set"); + } + if(user_password == null || user_password.isEmpty()) { + LOG.debug("Basic password is not set"); + } + + truststore_path = props.getProperty(TRUSTSTORE_PATH); + truststore_password = props.getProperty(TRUSTSTORE_PSSWD); + keystore_path = props.getProperty(KEYSTORE_PATH); + keystore_password = props.getProperty(KEYSTORE_PSSWD); + + target_uri = props.getProperty(TARGET_URI); + query_path = props.getProperty(QUERY_PATH); + update_path = props.getProperty(UPDATE_PATH); + + String applicationId =props.getProperty(APPLICATION_ID); + if(applicationId == null || applicationId.isEmpty()) { + applicationId = "SDNC"; + } + application_id = applicationId; + + // connection timeout + int tmpConnectionTimeout = 30000; + int tmpReadTimeout = 30000; + + try { + String tmpValue = null; + tmpValue = props.getProperty(CONNECTION_TIMEOUT, "30000"); + tmpConnectionTimeout = Integer.parseInt(tmpValue); + tmpValue = props.getProperty(READ_TIMEOUT, "30000"); + tmpReadTimeout = Integer.parseInt(tmpValue); + } catch(Exception exc) { + LOG.error("Failed setting connection timeout", exc); + tmpConnectionTimeout = 30000; + tmpReadTimeout = 30000; + } + connection_timeout = tmpConnectionTimeout; + read_timeout = tmpReadTimeout; + + network_vserver_path =props.getProperty(NETWORK_VSERVER_PATH); + + svc_instance_path = props.getProperty(SVC_INSTANCE_PATH); // "/aai/v1/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances"); +// "/aai/v1/business/customers/customer/ma9181-203-customerid/service-subscriptions/service-subscription/ma9181%20Hosted%20Voice/service-instances"; + +// svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH, "/aai/v1/search/generic-query?key=service-instance.service-instance-id:ma9181-204-instance&start-node-type=service-instance&include=service-instance"); + svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH); // "/aai/v1/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance"); + + + param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); + + // P-Interfaces + p_interface_path = props.getProperty(P_INTERFACE_PATH); + + vnf_image_query_path = props.getProperty(VNF_IMAGE_QUERY_PATH); + + ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); + selflink_avpn = props.getProperty(SELFLINK_AVPN); + selflink_fqdn = props.getProperty(SELFLINK_FQDN); + + service_path = props.getProperty(SERVICE_PATH); + + site_pair_set_path = props.getProperty(SITE_PAIR_SET_PATH); + + query_nodes_path = props.getProperty(QUERY_NODES_PATH); + + String iche = props.getProperty(CERTIFICATE_HOST_ERROR); + boolean host_error = false; + if(iche != null && !iche.isEmpty()) { + host_error = Boolean.valueOf(iche); + } + + ignore_certificate_host_error = host_error; + + HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ + public boolean verify(String string,SSLSession ssls) { + return ignore_certificate_host_error; + } + }); + + if(truststore_path != null && truststore_password != null && (new File(truststore_path)).exists()) { + System.setProperty("javax.net.ssl.trustStore", truststore_path); + System.setProperty("javax.net.ssl.trustStorePassword", truststore_password); + } + + if(keystore_path != null && keystore_password != null && (new File(keystore_path)).exists()) + { + DefaultClientConfig config = new DefaultClientConfig(); + //both jersey and HttpURLConnection can use this + SSLContext ctx = null; + try { + ctx = SSLContext.getInstance("TLS"); + + KeyManagerFactory kmf = null; + try { + String def = "SunX509"; + String storeType = "PKCS12"; + def = KeyStore.getDefaultType(); + kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + FileInputStream fin = new FileInputStream(keystore_path); +// KeyStore ks = KeyStore.getInstance("PKCS12"); + + String extension = keystore_path.substring(keystore_path.lastIndexOf(".") + 1); + + if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { + storeType = "JKS"; + } + KeyStore ks = KeyStore.getInstance(storeType); + + char[] pwd = keystore_password.toCharArray(); + ks.load(fin, pwd); + kmf.init(ks, pwd); + } catch (Exception ex) { + LOG.error("AAIResource", ex); + } + + ctx.init(kmf.getKeyManagers(), null, null); + config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { + @Override + public boolean verify( String s, SSLSession sslSession ) { + return ignore_certificate_host_error; + } + }, ctx)); + + CTX = ctx; + LOG.debug("SSLContext created"); + + } catch (KeyManagementException | NoSuchAlgorithmException exc) { + LOG.error("AAIResource", exc); + } + } + + LOG.info("AAIResource.ctor initialized."); + + try { + Field methodsField = HttpURLConnection.class.getDeclaredField("methods"); + methodsField.setAccessible(true); + // get the methods field modifiers + Field modifiersField = Field.class.getDeclaredField("modifiers"); + // bypass the "private" modifier + modifiersField.setAccessible(true); + + // remove the "final" modifier + modifiersField.setInt(methodsField, methodsField.getModifiers() & ~Modifier.FINAL); + + /* valid HTTP methods */ + String[] methods = { + "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" + }; + // set the new methods - including patch + methodsField.set(null, methods); + + } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { + e.printStackTrace(); + } + + } + + public void cleanUp() { + + } + + /** + * + * @param http_req_url + * @param method + * @return + * @throws Exception + */ + protected HttpURLConnection getConfiguredConnection(URL http_req_url, String method) throws Exception { + HttpURLConnection con = (HttpURLConnection) http_req_url.openConnection(); + + // Set up the connection properties + con.setRequestProperty( "Connection", "close" ); + con.setDoInput(true); + con.setDoOutput(true); + con.setUseCaches(false); + con.setConnectTimeout( connection_timeout ); + con.setReadTimeout( read_timeout ); + con.setRequestMethod( method ); + con.setRequestProperty( "Accept", "application/json" ); + con.setRequestProperty( "Content-Type", "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json" ); + con.setRequestProperty("X-FromAppId", application_id); + con.setRequestProperty("X-TransactionId",TransactionIdTracker.getNextTransactionId()); + con.setRequestProperty(MetricLogger.REQUEST_ID, ml.getRequestID()); + + if(user_name != null && !user_name.isEmpty() && user_password != null && !user_password.isEmpty()) { + String basicAuth = "Basic " + new String(Base64.encodeBase64((user_name + ":" + user_password).getBytes())); + con.setRequestProperty ("Authorization", basicAuth); + } + + if(con instanceof HttpsURLConnection && CTX != null) { + SSLSocketFactory sockFact = CTX.getSocketFactory(); + HttpsURLConnection.class.cast(con).setSSLSocketFactory( sockFact ); + } + return con; + } + + + @Override + public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException { + GenericVnf response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); + request.addRequestProperty("generic-vnf.vnf-id", vnf_id); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, GenericVnf.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + + return response; + + } + + @Override + public boolean postGenericVnfData(String vnf_id, GenericVnf data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); + request.addRequestProperty("generic-vnf.vnf-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); + request.addRequestProperty("generic-vnf.vnf-id", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteGenericVnfData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + /* (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) + */ + @Override + public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException { + Vce response = null; + try { + AAIRequest request = AAIRequest.getRequestFromResource("vce"); + request.addRequestProperty("vce.vnf-id", vnf_id); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Vce.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + /* (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) + */ + @Override + public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vce"); + request.addRequestProperty("vce.vnf-id", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteNetworkVceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + /* (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#postNetworkVceData(java.lang.String, org.onap.ccsdk.sli.adaptors.resource.aic.aai.VCERequest) + */ + @Override + public boolean postNetworkVceData(String vnf_id, Vce data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vce"); + request.addRequestProperty("vce.vnf-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + + @Override + public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException { + SearchResults response = null; + InputStream inputStream = null; + + try { + String path = svc_inst_qry_path; + path = path.replace("{svc-instance-id}", encodeQuery(svc_instance_id)); + + String request_url = target_uri+path; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + LOGwriteDateTrace("svc_instance_id", svc_instance_id); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { +// StringBuilder stringBuilder = new StringBuilder("\n"); +// String line = null; +// while( ( line = reader.readLine() ) != null ) { +// stringBuilder.append("\n").append( line ); +// } +// LOG.info(stringBuilder.toString()); + response = mapper.readValue(reader, SearchResults.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestServiceInstanceURL", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException { + ServiceInstance response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); + request.addRequestProperty("customer.global-customer-id", customer_id); + request.addRequestProperty("ervice-subscription.service-type", service_type); + request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, ServiceInstance.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestServiceInterfaceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); + request.addRequestProperty("customer.customer-id", customer_id); + request.addRequestProperty("service-subscription.service-type", service_type); + request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + + private static Properties initialize(URL url ) throws ConfigurationException { + + if(url == null) { + throw new NullPointerException(); + } + + InputStream is = null; + Properties props = new Properties(); + + try { + if(LOG.isDebugEnabled()) + LOG.info("Property file is: " + url.toString()); + + is = url.openStream(); + + props.load(is); + if(LOG.isDebugEnabled()) { + LOG.info("Properties loaded: " + props.size()); + Enumeration en = props.keys(); + + while(en.hasMoreElements()) { + String key = (String)en.nextElement(); + String property = props.getProperty(key); + LOG.debug(key + " : " + property); + } + } + } catch (Exception e) { + throw new ConfigurationException("Could not load properties file.", e); + } + return props; + } + + static class TransactionIdTracker { +// protected static AtomicLong tracker = new AtomicLong(); + + public static String getNextTransactionId() { +// long id = tracker.getAndIncrement(); +// String transactionId = String.format("N%016X", id); + String transactionId = UUID.randomUUID().toString(); + return transactionId; + } + + } + + protected void LOGwriteFirstTrace(String method, String url) { + String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); + LOG.info("A&AI transaction :"); + LOG.info("Request Time : " + time + ", Method : " + method); + LOG.info("Request URL : "+ url); + } + + protected void LOGwriteDateTrace(String name, String data) { + LOG.info("Input - " + name + " : " + data); + } + + protected void LOGwriteEndingTrace(int response_code, String comment, String data) { + LOG.info("Response code : " + response_code +", " + comment); + LOG.info(String.format("Response data : %s", data)); + } + + protected String encodeQuery(String param) throws UnsupportedEncodingException { + return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); + } + + private String encodeCustomerURL(final String selection) + { + String encrypted_url = selection; + String apnpattern = + "/aai/v10/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)/service-instances/service-instance/(.+)/"; + Pattern pattern = Pattern.compile(apnpattern); + + try { + URL url = new URL(selection); + String path = url.getPath(); + + LOG.info("Trying to match apn to <" + path + ">"); + + Matcher matcher = pattern.matcher(path); + + while(matcher.find()) { + String customer = matcher.group(1); + String subscription = matcher.group(2); + String service = matcher.group(3); + + encrypted_url = selection.replace(customer, encodeQuery(customer)); + encrypted_url = encrypted_url.replace(subscription, encodeQuery(subscription)); + encrypted_url = encrypted_url.replace(service, encodeQuery(service)); + } + } catch (Exception e) { + LOG.warn("", e); + } + + return encrypted_url; + } + + @Override + public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException { + Vpe response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpe"); + request.addRequestProperty("vpe.vnf-id", vnf_id); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Vpe.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postNetworkVpeData(String vnf_id, Vpe data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpe"); + request.addRequestProperty("vpe.vnf-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpe"); + request.addRequestProperty("vpe.vnf-id", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public VplsPe requestNetworkVplsPeData(String equipment_name)throws AAIServiceException { + VplsPe response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); + request.addRequestProperty("vpls-pe.equipment-name", equipment_name); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, VplsPe.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postNetworkVplsPeData(String equipment_name, VplsPe data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); + request.addRequestProperty("vpls-pe.equipment-name", equipment_name); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); + request.addRequestProperty("vpls-pe.equipment-name", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteNetworkVplsPeData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public Complex requestNetworkComplexData(String pLocId) throws AAIServiceException { + Complex response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("complex"); + request.addRequestProperty("complex.physical-location-id", pLocId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Complex.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNetworkComplexData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public boolean postNetworkComplexData(String vnf_id, Complex data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("complex"); + request.addRequestProperty("complex.physical-location-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postNetworkComplexData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteNetworkComplexData(String pLocId, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("complex"); + request.addRequestProperty("complex.physical-location-id", pLocId); + + response = executor.delete(request, resourceVersion); + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteNetworkComplexData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + /* + * (non-Javadoc) + * @see org.openecomp.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String) + */ + @Override + public Vserver requestVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId) throws AAIServiceException { + Vserver response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vserver"); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + request.addRequestProperty("tenant.tenant-id", tenantId); + request.addRequestProperty("vserver.vserver-id", vserverId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Vserver.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + + @Override + public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vserver"); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + request.addRequestProperty("tenant.tenant-id", tenantId); + request.addRequestProperty("vserver.vserver-id", vserverId); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postNetworkComplexData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException { + boolean response = false; + InputStream inputStream = null; + + try { + String local_network_complexes_path = network_vserver_path.replace("{tenant-id}", encodeQuery(tenant_id)); + local_network_complexes_path = local_network_complexes_path.replace("{vserver-id}", encodeQuery(vserver_id)); + local_network_complexes_path = local_network_complexes_path.replace("{cloud-owner}", encodeQuery(cloudOwner)); + local_network_complexes_path = local_network_complexes_path.replace("{cloud-region-id}", encodeQuery(cloudRegionId)); + + String request_url = target_uri+local_network_complexes_path; + if(resourceVersion!=null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); + + LOGwriteFirstTrace(HttpMethod.DELETE, http_req_url.toString()); + LOGwriteDateTrace("tenant_id", tenant_id); + LOGwriteDateTrace("vserver_id", vserver_id); + LOGwriteDateTrace("cloud-owner", cloudOwner); + LOGwriteDateTrace("cloud-region-id", cloudRegionId); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteVServerData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + + /* + * (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.aai.AAIClient#requestCtagPoolData(String) + */ + @Override + public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException { + CtagPool response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("ctag-pool"); + + request.addRequestProperty("ctag-pool.target-pe", target_pe); + request.addRequestProperty("ctag-pool.availability-zone-name", availability_zone_name); + request.addRequestProperty("complex.physical-location-id", physical_location_id); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, CtagPool.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNetworkVceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + //==================== DvsSwitch ====================== + @Override + public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException { + DvsSwitch response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); + request.addRequestProperty("dvs-switch.switch-name", vnf_id); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, DvsSwitch.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestDvsSwitchData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public boolean postDvsSwitchData(String switch_name, DvsSwitch data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); + request.addRequestProperty("dvs-switch.switch-name", switch_name); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); + request.addRequestProperty("dvs-switch.switch-name", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteDvsSwitchData", exc); + throw new AAIServiceException(exc); + } + return response; + } + //================== End of DvsSwitch ================= + //==================== PhysicalLink ====================== + @Override + public PhysicalLink requestPhysicalLinkData(String linkName) throws AAIServiceException { + PhysicalLink response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, PhysicalLink.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestPhysicalLinkData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postPhysicalLinkData(String linkName, PhysicalLink data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deletePhysicalLinkData(String linkName, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deletePhysicalLinkData", exc); + throw new AAIServiceException(exc); + } + return response; + } + //================== End of PhysicalLink ================= + //==================== PInterface ====================== + @Override + public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException { + PInterface response = null; + + try { + AAIRequest request = new PInterfaceRequest(); + request.addRequestProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME, interfaceName); + request.addRequestProperty(PInterfaceRequest.PSERVER_HOSTNAME, hostname); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, PInterface.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException { + InputStream inputStream = null; + + try { + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(request); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+p_interface_path; + String encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf) ; + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("hostname", hostname); + LOGwriteDateTrace("interface-name", interfaceName); + LOGwriteDateTrace("PInterface", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postPInterfaceData", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); + request.addRequestProperty("p-interface.interface-name", interfaceName); + request.addRequestProperty("pserver.hostname", hostname); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deletePInterfaceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + //================== End of PInterface ================= + //==================== SitePairSet ====================== + @Override + public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException { + SitePairSet response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); + request.addRequestProperty("site-pair-set.site-pair-set-id", sitePairSetId); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, SitePairSet.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postSitePairSetData(String linkName, SitePairSet request) throws AAIServiceException { + InputStream inputStream = null; + + try { + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(request); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+site_pair_set_path; + String encoded_vnf = encodeQuery(linkName); + request_url = request_url.replace("{site-pair-set-id}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("link-name", linkName); + LOGwriteDateTrace("SitePairSet", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postSitePairSetData", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public boolean deleteSitePairSetData(String linkName, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); + request.addRequestProperty("site-pair-set.site-pair-set-id", linkName); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteSitePairSetData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + //================== End of SitePairSet ================= + //==================== Service ====================== + @Override + public Service requestServiceData(String serviceId) throws AAIServiceException { + Service response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("service"); + request.addRequestProperty("service.service-id", serviceId); + + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Service.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestServiceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postServiceData(String linkName, Service request) throws AAIServiceException { + InputStream inputStream = null; + + try { + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(request); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+service_path; + String encoded_vnf = encodeQuery(linkName); + request_url = request_url.replace("{service-id}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("service-id", linkName); + LOGwriteDateTrace("Service", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postServiceData", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public boolean deleteServiceData(String service_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("service"); + request.addRequestProperty("service.service-id", service_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteServiceData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + //================== End of Service ================= + + + + // 1507 - Request + @Override + public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), VServer.class); + } + + @Override + public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), Pserver.class); + } + + @Override + public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), CtagPool.class); + } + + @Override + public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), VplsPe.class); + } + + @Override + public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), Vpe.class); + } + + @Override + public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), DvsSwitch.class); + } + + @Override + public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), OamNetwork.class); + } + + @Override + public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), AvailabilityZone.class); + } + + @Override + public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), Complex.class); + } + + /* DELETE */ + public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + //OAM-Network: + public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + //Availability-Zone: + public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + //Complex: + public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + private boolean deleteAAIEntity(URL url, String caller) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + boolean response = false; + InputStream inputStream = null; + + try { + URL http_req_url = url; + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); + +// SSLSocketFactory sockFact = CTX.getSocketFactory(); +// con.setSSLSocketFactory( sockFact ); + + LOGwriteFirstTrace("DELETE", http_req_url.toString()); + + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(caller, exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + /** + * Generic method to GET json data from an A&AI callback URL. + * Then convert that json to an Object. + * If successful the Object is attempted to be cast to the type parameter. + * + * @param key + * callback url for A&AI + * @param type + * the class of object that A&AI will return + * @return the object created from json or null if the response code is not 200 + * + * @throws AAIServiceException + * if empty or null key and or type or there's an error with processing + */ + public T dataChangeRequestAaiData(String key, Class type) throws AAIServiceException { + if (StringUtils.isEmpty(key) || type == null) { + throw new AAIServiceException("Key is empty or null and or type is null"); + } + + T response = null; + + SvcLogicContext ctx = new SvcLogicContext(); + if(!key.contains(" = ") && isValidURL(key)) { + key = String.format("selflink = '%s'", key); + } + HashMap nameValues = keyToHashMap(key, ctx); + + SelfLinkRequest request = new SelfLinkRequest(type); + request.processRequestPathValues(nameValues); + Object obj = this.getExecutor().query(request, type); + response = type.cast(obj); + + return response != null ? type.cast(response) : response; + } + + @Override + public Pserver requestPServerData(String hostname) throws AAIServiceException { + Pserver response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("pserver"); + request.addRequestProperty("pserver.hostname", hostname); + + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Pserver.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestPServerData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postPServerData(String hostname, Pserver data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("pserver"); + request.addRequestProperty("pserver.hostname", hostname); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("pserver"); + request.addRequestProperty("pserver.hostname", hostname); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deletePServerData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public L3Network requestL3NetworkData(String networkId) throws AAIServiceException { + L3Network response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-id", networkId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, L3Network.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestL3NetworkData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public L3Network requestL3NetworkQueryByName(String networkName) throws AAIServiceException { + L3Network response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-name", networkName); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, L3Network.class); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestL3NetworkQueryByName", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public boolean postL3NetworkData(String networkId, L3Network data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-id", networkId); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-id", networkId); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteL3NetworkData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException { + VpnBinding response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); + request.addRequestProperty("vpn-binding.vpn-id", vpnId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, VpnBinding.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestVpnBindingData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); + request.addRequestProperty("vpn-binding.vpn-id", vpnId); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteVpnBindingData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + + @Override + public VnfImage requestVnfImageData(String att_uuid) throws AAIServiceException { + VnfImage response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vnf-image"); + request.addRequestProperty("vnf-image.att-uuid", att_uuid); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, VnfImage.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestVnfImageData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException { + return requestVnfImageDataByVendorModelVersion(vendor, model, null); + } + + @Override + public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException + { + List responseList = new ArrayList(); + VnfImage response = null; + InputStream inputStream = null; + + try { + String request_url = target_uri+vnf_image_query_path + (version==null? "": "&application-version={application_version}"); + request_url = request_url.replace("{application_vendor}", encodeQuery(vendor)) ; + request_url = request_url.replace("{application_model}", encodeQuery(model)) ; + if(version != null) { + request_url = request_url.replace("{application_version}", encodeQuery(version)) ; + } + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + LOGwriteDateTrace("application_vendor", vendor); + LOGwriteDateTrace("application_model", model); + if(version != null) { + LOGwriteDateTrace("application_version", version); + } + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { +// StringBuilder stringBuilder = new StringBuilder("\n"); +// String line = null; +// while( ( line = reader.readLine() ) != null ) { +// stringBuilder.append("\n").append( line ); +// } +// LOG.info(stringBuilder.toString()); + response = mapper.readValue(reader, VnfImage.class); + String original_buffer = mapper.writeValueAsString(response); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", original_buffer); + if(response.getApplicationVendor() == null /*&& response.getAdditionalProperties() != null && !response.getAdditionalProperties().isEmpty()*/){ + LOG.warn("A List of multiple VNF-IMAGE entries has been returned"); + VnfImages listOfObjects = mapper.readValue(original_buffer, VnfImages.class); + if(!listOfObjects.getVnfImage().isEmpty()) { + response = listOfObjects.getVnfImage().get(0); + } + } + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestVnfImageData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + + public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException { + InputStream inputStream = null; + + try { + + String selfLink = selflink_fqdn; + if(SELFLINK_AVPN != null && SELFLINK_AVPN.equals(pathCode)) { + selfLink = selflink_avpn; + } + selfLink = selfLink.replace("{service-instance-id}", encodeQuery(serviceInstanceId)); + event.setSelflink(selfLink); + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(event); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+ubb_notify_path; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("NotifyEvent", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("sendNotify", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public SearchResults requestNodeQuery(String node_type, String entityIdentifier, String entityName) throws AAIServiceException { + SearchResults response = null; + InputStream inputStream = null; + + try { + String request_url = target_uri+query_nodes_path; + request_url = request_url.replace("{node-type}", encodeQuery(node_type)) ; + request_url = request_url.replace("{entity-identifier}", entityIdentifier) ; + request_url = request_url.replace("{entity-name}", encodeQuery(entityName)) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + LOGwriteDateTrace("node_type", node_type); + LOGwriteDateTrace("vnf_name", entityName); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + response = mapper.readValue(reader, SearchResults.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNodeQuery", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + + } + + + @Override + public String requestDataByURL(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + String response = null; + InputStream inputStream = null; + + try { + URL http_req_url = url; + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + StringBuilder stringBuilder = new StringBuilder("\n"); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOG.info(stringBuilder.toString()); +// response = mapper.readValue(reader, String.class); + response = stringBuilder.toString(); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = null; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNetworkVceData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + + @Override + public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException { + + if(vnf_name == null) { + throw new NullPointerException(); + } + + GenericVnf entity = null; + SearchResults resp = this.requestNodeQuery("generic-vnf", "vnf-name", vnf_name); + + List resultDataList = resp.getResultData(); + + try { + for (ResultData datum : resultDataList) { + String data_type = datum.getResourceType(); + URL url = new URL(datum.getResourceLink()); + entity = this.getResource(url.toString(), GenericVnf.class); + } + } + catch (Exception e) + { + LOG.error("Caught exception", e); + } + return entity; + } + + @Override + public Vserver requestVServerDataByURL(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + Vserver entity = null; + + try { + entity = this.getResource(url.toString(), Vserver.class); + } catch (AAIServiceException exc) { + throw exc; + } catch (Exception e) { + throw new AAIServiceException(e); + } + return entity; + } + + @Override + public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException { + + if(vserver_name == null) { + throw new NullPointerException(); + } + + URL entity = null; + SearchResults resp = this.requestNodeQuery("vserver", "vserver-name", vserver_name); + + List resultDataList = resp.getResultData(); + + try { + for (ResultData datum : resultDataList) { + String data_type = datum.getResourceType(); + entity = new URL(datum.getResourceLink()); + } + } catch (Exception e) { + throw new AAIServiceException(e); + } + return entity; + } + + class AAIRequestExecutor implements AAIExecutorInterface { + + @Override + public String get(AAIRequest request) throws AAIServiceException { + String response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + + String requestId = UUID.randomUUID().toString(); + + try { + + if(request.getRequestObject() != null) { + requestUrl = request.getRequestUrl(HttpMethod.POST, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.POST); + String json_text = request.toJSONString(); + LOGwriteDateTrace("data", json_text); + logMetricRequest(requestId, "POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + } else { + requestUrl = request.getRequestUrl(HttpMethod.GET, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.GET); + logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); + } + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(requestId, responseCode, responseMessage); + + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + response = stringBuilder.toString(); + try { + Object object = mapper.readValue(response, Object.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); + } catch(Exception exc) { + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); + } + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + ErrorResponse errorresponse = null; + try { + errorresponse = mapper.readValue(reader, ErrorResponse.class); + } catch(Exception exc) { + errorresponse = new ErrorResponse(); + RequestError requestError = new RequestError(); + ServiceException serviceException = new ServiceException(); + serviceException.setText("Entry does not exist."); + requestError.setServiceException(serviceException); + errorresponse.setRequestError(requestError ); + } + throw new AAIServiceException(responseCode, errorresponse); + } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + ServiceException serviceException = new ServiceException(); + serviceException.setMessageId("HTTP_UNAUTHORIZED"); + serviceException.setText(stringBuilder.toString()); + RequestError requestError = new RequestError(); + requestError.setServiceException(serviceException); + ErrorResponse errorresponse = new ErrorResponse(); + errorresponse.setRequestError(requestError); + throw new AAIServiceException(responseCode, errorresponse); + } else { +// +// StringBuilder stringBuilder = new StringBuilder("\n"); +// String line = null; +// while( ( line = reader.readLine() ) != null ) { +// stringBuilder.append("\n").append( line ); +// } +// LOG.info(stringBuilder.toString()); +// +// ErrorResponse errorresponse = mapper.readValue(stringBuilder.toString(), ErrorResponse.class); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("GET", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { + + String depth = request.requestProperties.getProperty("depth", "1"); + String path = requestUrl.toString(); + if(path.contains("?depth=") || path.contains("&depth=")) { + return requestUrl; + } else { + if(path.contains("?")) { + path = String.format("%s&depth=%s", path, depth); + } else { + path = String.format("%s?depth=%s", path, depth); + } + return new URL(path); + } + } + + @Override + public String post(AAIRequest request) throws AAIServiceException { + InputStream inputStream = null; + String requestId = UUID.randomUUID().toString(); + + try { + String resourceVersion = null; + AAIDatum instance = request.getRequestObject(); + + Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); + if(getResourceVersionMethod != null){ + try { + getResourceVersionMethod.setAccessible(true); + Object object = getResourceVersionMethod.invoke(instance); + if(object != null) + resourceVersion = object.toString(); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); + ObjectMapper mapper = getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest(requestId, "PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(requestId,responseCode, responseMessage); + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return stringBuilder.toString(); + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.post", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { + Boolean response = null; + InputStream inputStream = null; + String requestId = UUID.randomUUID().toString(); + + if(resourceVersion == null) { + throw new AAIServiceException("resource-version is required for DELETE request"); + } + + try { + URL requestUrl = null; + HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); + logMetricRequest(requestId, "DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); + conn.setDoOutput(true); +// if(request.isDeleteDataRequired()) { +// String json_text = request.toJSONString(); +// +// LOGwriteDateTrace("data", json_text); +// OutputStream os = con.getOutputStream(); +// OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); +// osw.write(json_text); +// osw.flush(); +// } + + // Check for errors + String responseMessage = conn.getResponseMessage(); + int responseCode = conn.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = conn.getInputStream(); + } else { + inputStream = conn.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(requestId,responseCode, responseMessage); + + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("delete", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public Object query(AAIRequest request, Class clas) throws AAIServiceException { + Object response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + String requestId = UUID.randomUUID().toString(); + + try { + con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); + logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + logMetricResponse(requestId,responseCode, responseMessage); + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + // Process the response + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + response = mapper.readValue(reader, clas); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("GET", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + con = null; + } + return response; + } + + @Override + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { + InputStream inputStream = null; + String requestId = UUID.randomUUID().toString(); + + try { + AAIDatum instance = request.getRequestObject(); + if(instance instanceof ResourceVersion) { + resourceVersion = ((ResourceVersion)instance).getResourceVersion(); + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); + ObjectMapper mapper = getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest(requestId, "PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); + logMetricResponse(requestId,responseCode, responseMessage); + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append("\n").append( line ); + } + LOG.info(stringBuilder.toString()); + + + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.patch", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + } + + @Override + public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException { + Tenant response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("tenant"); + request.addRequestProperty("tenant.tenant-id", tenant_id); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Tenant.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestTenantData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + @Override + public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException { + Tenant response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("tenant"); + request.addRequestProperty("tenant.tenant-name", tenant_name); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + Object rv = executor.query(request, Tenant.class); + if(rv == null) + return (Tenant)null; + else + response = (Tenant)rv; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestTenantDataByName", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant tenannt) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("tenant"); + request.addRequestProperty("tenant.tenant-id", tenant_id); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + request.setRequestObject(tenannt); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postTenantData", exc); + throw new AAIServiceException(exc); + } + } + + + @Override + public String getTenantIdFromVserverUrl(URL url) { + + String path = url.getPath(); + + String[] split = path.split("/tenants/tenant/"); + if(split.length > 1) { + split = split[1].split("/"); + return split[0]; + } else { + return null; + } + } + + @Override + public String getCloudOwnerFromVserverUrl(URL url) { + + String path = url.getPath(); + + String[] split = path.split("/cloud-regions/cloud-region/"); + if(split.length > 1) { + split = split[1].split("/"); + return split[0]; + } else { + return null; + } + } + + @Override + public String getCloudRegionFromVserverUrl(URL url) { + + String path = url.getPath(); + + String[] split = path.split("/cloud-regions/cloud-region/"); + if(split.length > 1) { + split = split[1].split("/"); + return split[1]; + } else { + return null; + } + } + + @Override + public String getVServerIdFromVserverUrl(URL url, String tenantId) { + String pattern = network_vserver_path; + pattern = pattern.replace("{tenant-id}", tenantId); + + int end = pattern.indexOf("{vserver-id}"); + String prefix = pattern.substring(0, end); + + String path = url.getPath(); + + if(path.startsWith(prefix)) { + path = path.substring(prefix.length()); + } + + return path; + } + + protected Logger getLogger(){ + return LOG; + } + + + @Override + public AAIRequestExecutor getExecutor() { + return executor; + } + + /** + * Creates a current time stamp in UTC i.e. 2016-03-08T22:15:13.343Z. + * If there are any parameters the values are appended to the time stamp. + * + * @param parameters + * values to be appended to current time stamp + * @param ctx + * used to set an attribute for a DG + * @throws SvcLogicException + */ + public void setStatusMethod(Map parameters, SvcLogicContext ctx) throws SvcLogicException { + if (ctx == null) { + throw new SvcLogicException("SvcLogicContext is null."); + } + + StringBuilder sb = new StringBuilder(); + sb.append(String.format("%tFT% entry : parameters.entrySet()) { + sb.append(entry.getValue()).append(" "); + } + + if (sb.length() > 0) { + sb.setLength(sb.length() - 2); + } + + ctx.setAttribute("aai-summary-status-message", sb.toString()); + LOG.info("aai-summary-status-message: " + sb.toString()); + } + + /** + * Generic method to GET json data from an A&AI using key structure. + * Then convert that json to an Object. + * If successful the Object is attempted to be cast to the type parameter. + * + * @param key + * key identifying the resource to be retrieved from AAI + * @param type + * the class of object that A&AI will return + * @return the object created from json or null if the response code is not 200 + * + * @throws AAIServiceException + * if empty or null key and or type or there's an error with processing + */ + + public T getResource(String key, Class type) throws AAIServiceException { + if (StringUtils.isEmpty(key) || type == null) { + throw new AAIServiceException("Key is empty or null and or type is null"); + } + + T response = null; + + SvcLogicContext ctx = new SvcLogicContext(); + if(!key.contains(" = ")) { + if(isValidURL(key)) { + key = String.format("selflink = '%s'", key); + } else { + return response; + } + } + + HashMap nameValues = keyToHashMap(key, ctx); + + AAIRequest request = new SelfLinkRequest(type); + if(nameValues.containsKey(PathRequest.RESOURCE_PATH.replaceAll("-", "_"))) { + request = new PathRequest(type); + } + + request.processRequestPathValues(nameValues); + Object obj = this.getExecutor().query(request, type); + response = type.cast(obj); + + return response != null ? type.cast(response) : response; + } + + public boolean isValidURL(String url) { + + URL u = null; + + try { + u = new URL(url); + } catch (MalformedURLException e) { + return false; + } + + try { + u.toURI(); + } catch (URISyntaxException e) { + return false; + } + + return true; + } + + @Override + protected boolean deleteRelationshipList(URL httpReqUrl, String json_text) throws AAIServiceException { + if(httpReqUrl == null) { + throw new NullPointerException(); + } + + boolean response = false; + InputStream inputStream = null; + + try { + HttpURLConnection con = getConfiguredConnection(httpReqUrl, HttpMethod.DELETE); + +// SSLSocketFactory sockFact = CTX.getSocketFactory(); +// con.setSSLSocketFactory( sockFact ); + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("DELETE", httpReqUrl.toString()); + LOGwriteDateTrace("data", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteRelationshipList", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + public static ObjectMapper getObjectMapper() { + ObjectMapper mapper = new ObjectMapper(); + AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); + AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); + mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + mapper.setSerializationInclusion(Include.NON_NULL); + return mapper; + } + + public void logMetricRequest(String requestId, String targetServiceName, String msg, String path){ + String svcInstanceId = ""; + String svcName = null; + String partnerName = null; + String targetEntity = "A&AI"; + String targetVirtualEntity = null; + + targetServiceName = ""; + + ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); + } + + public void logMetricResponse(String requestId, int responseCode, String responseDescription){ + ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); + } + + public void logKeyError(String keys){ + LOG.error("Atleast one of the keys [" + keys + "] should have been populated. This will cause a NPE."); + } + + + /** + * Retrofit code + */ + @Override + public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) + throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + return super.save(resource, force, localOnly, key, params, prefix, ctx); + } + + @Override + public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) + throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + + return super.query(resource, localOnly, select, key, prefix, orderBy, ctx); + } + + @Override + public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + + return super.delete(resource, key, ctx); + } + + @Override + public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + + return super.update(resource, key, params, prefix, ctx); + } + + private String rewriteKey(String resource, String key, SvcLogicContext ctx) { + LOG.info("AAI Deprecation - the format of request key is no longer supported. Please rewrite this key : " + key); + + String normResource = resource.split(":")[0]; + Class clazz = null; + try { + clazz = AAIRequest.getClassFromResource(normResource) ; + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return key; + } + if(clazz == null) + return key; + + List fieldAnnotatedNames = new LinkedList(); + + Field[] fields = clazz.getDeclaredFields(); + for(Field field : fields) { + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + if(annotation == null) + continue; + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + fieldAnnotatedNames.add(primaryId); + } + + HashMap nameValues = keyToHashMap(key, ctx); + Set keyset = nameValues.keySet(); + for(String keyName : keyset) { + if(keyName.contains(".")) + continue; + else { + String tmpKeyName = keyName.replaceAll("_", "-"); + if(fieldAnnotatedNames.contains(tmpKeyName)) { + key = key.replace(tmpKeyName, String.format("%s.%s", normResource, tmpKeyName)); + } + } + } + + + return key; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java new file mode 100644 index 000000000..45c3d3d20 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java @@ -0,0 +1,239 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FilenameFilter; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Properties; +import java.util.Set; + +import org.onap.ccsdk.sli.core.sli.ConfigurationException; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AAIServiceActivator implements BundleActivator { + + private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; + private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; + private static final String DEFAULT_KEYWORD = "default"; + + private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; + + private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; + private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; + + private Set registrationSet = new HashSet(); + + private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); + + @Override + public void start(BundleContext ctx) throws Exception { + + System.setProperty("aaiclient.runtime", "OSGI"); + + String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); + + // check SDNC CONFIG DIR system property + if(sdnConfigDirectory == null ) { + LOG.error("System property SDNC_CONFIG_DIR is not defined."); + LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); + sdnConfigDirectory = "/opt/sdnc/data/properties/"; + } + + LOG.debug("Configuration directory used : " + sdnConfigDirectory); + + // check existance of properties directory + File configDirectory = new File(sdnConfigDirectory); + if(!configDirectory.exists() || !configDirectory.isDirectory()){ + LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); + return; + } + + Properties properties = new Properties(); + InputStream input = null; + + // find aaiclient config file + File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); + + // read the aai config data + if(files != null && files.length > 0) { + LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); + try { + input = new FileInputStream(files[0]); + properties.load(input); + LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); + } catch (IOException exc) { + LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); + } finally { + if(input != null ) { + try { + input.close(); + } catch(Exception exc) { + // ignore + } + } + int size = properties.keySet().size() ; + if(size == 0) { + LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); + properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); + } + } + } else { + LOG.debug("No configuration entries were found. Adding the default entry"); + properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); + } + + Set entrySet = properties. stringPropertyNames(); + String value = null; + + // initialize AAI Service for each aai client property files + for(String entry : entrySet) { + value = properties.getProperty(entry); + if(value != null && !value.isEmpty()) { + + final String fileName = value; + + File[] propertyFileList = findFiles(configDirectory, fileName); + + for(File propertiesFile : propertyFileList) { + LOG.info(propertiesFile.getName()); + // Advertise AAI resource adaptor + AAIClient impl = null; + switch(entry) { + case DEFAULT_KEYWORD: + impl = new AAIService(propertiesFile.toURI().toURL()); + break; + case "trinity": + impl = new AAITrinityService(propertiesFile.toURI().toURL()); + break; + default: + LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); + continue; + } + String regName = impl.getClass().getName(); + + LOG.debug("Registering AAIService service "+regName); + ServiceRegistration registration = ctx.registerService(regName, impl, null); + registrationSet.add(registration); + + } + } + } + } + +// @Override + @Deprecated + public void start1(BundleContext ctx) throws Exception { + + String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); + String propertiesPath = null; + + if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { + String filename = DEFAULT_SDNC_PROPERTY_FILE; + File file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + filename = BVC_PROPERTY_FILE; + file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); + } + } + } else { + propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; + LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); + } + + File propFile = new File(propertiesPath); + if(!propFile.exists()) { + String filename = DEFAULT_SDNC_PROPERTY_FILE; + File file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + filename = BVC_PROPERTY_FILE; + file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); + throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); + } + } + } + + // Advertise AAI resource adaptor + AAIClient impl = new AAIService(propFile.toURI().toURL()); + String regName = impl.getClass().getName(); + + LOG.debug("Registering AAIService service "+regName); + ServiceRegistration registration = ctx.registerService(regName, impl, null); + registrationSet.add(registration); + } + + @Override + public void stop(BundleContext ctx) throws Exception { + + Set localRegistrationSet = new HashSet(); + localRegistrationSet.addAll(registrationSet); + + for(ServiceRegistration registration : localRegistrationSet) { + if (registration != null) { + try { + AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); + registration.unregister(); + registrationSet.remove(registration); + if(aaiService != null) { + aaiService.cleanUp(); + } + } catch(Exception exc) { + if(LOG.isDebugEnabled()) + LOG.debug(exc.getMessage()); + } + } + } + } + + private File[] findFiles(File configDirectory, final String filter) { + File[] files = configDirectory.listFiles(new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.equalsIgnoreCase(filter); + } + }); + + return files; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java new file mode 100644 index 000000000..8d57db43a --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; + +public class AAIServiceException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -9039257722542999522L; + + protected ErrorResponse errorResponse = null; + protected int returnCode = -1; + + public AAIServiceException() { + + } + + public AAIServiceException(String message) { + super(message); + } + + public AAIServiceException(Throwable cause) { + super(cause); + } + + public AAIServiceException(String message, Throwable cause) { + super(message, cause); + } + + public AAIServiceException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + + public AAIServiceException(int returnCode, ErrorResponse errorresponse) { + this.errorResponse = errorresponse; + this.returnCode = returnCode; + } + + public ErrorResponse getErrorResponse() { + return errorResponse; + } + + public int getReturnCode() { + return returnCode; + } + + public String getMessage() { + if(errorResponse != null) { + return errorResponse.getRequestError().getServiceException().getText(); + } else { + return super.getMessage(); + } + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java new file mode 100644 index 000000000..6fffc6e8f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java @@ -0,0 +1,38 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.net.URL; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AAITrinityService extends AAIService { + + private static final Logger LOG = LoggerFactory.getLogger(AAITrinityService.class); + + public AAITrinityService(URL propURL) { + super(propURL); + LOG.info("Entered AAITrinityService.ctor"); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java new file mode 100644 index 000000000..0de0d2bd0 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java @@ -0,0 +1,135 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.CloudRegion; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class CloudRegionRequest extends AAIRequest { + + public static final String CLOUD_REGION_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.cloud.region"; + + private final String cloud_region_path; + + public static final String CLOUD_REGION_CLOUD_OWNER = "cloud-region.cloud-owner"; + public static final String CLOUD_REGION_CLOUD_REGION_ID = "cloud-region.cloud-region-id"; + + + public CloudRegionRequest() { + cloud_region_path = configProperties.getProperty(CLOUD_REGION_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+cloud_region_path; + + request_url = processPathData(request_url, requestProperties); + + Map query = new HashMap(); + if(requestProperties.containsKey(DEPTH)) { + query.put(DEPTH, requestProperties.getProperty(DEPTH)); + } + + if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; + query.put(RESOURCE_VERSION, resourceVersion); + } + + if(!query.isEmpty()) { + Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); + String queryString = mapJoiner.join(query); + request_url = String.format("%s?%s", request_url, queryString); + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + CloudRegion vnfc = (CloudRegion)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = + { + CLOUD_REGION_CLOUD_OWNER, + CLOUD_REGION_CLOUD_REGION_ID, + DEPTH + }; + + return args; + } + + @Override + public Class getModelClass() { + return CloudRegion.class; + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + if(!requestProperties.containsKey(CLOUD_REGION_CLOUD_OWNER) || !requestProperties.containsKey(CLOUD_REGION_CLOUD_REGION_ID)) { + aaiService.logKeyError(String.format("%s,%s", CLOUD_REGION_CLOUD_OWNER, CLOUD_REGION_CLOUD_REGION_ID)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); + request_url = request_url.replace("{cloud-owner}", encoded_vnf) ; + + encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); + request_url = request_url.replace("{cloud-region-id}", encoded_vnf) ; + + aaiService.LOGwriteDateTrace("cloud-owner", requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); + aaiService.LOGwriteDateTrace("cloud-region-id", requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java new file mode 100644 index 000000000..994f1b6bf --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java @@ -0,0 +1,134 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryRequestData; +import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + + +public class CustomQueryRequest extends AAIRequest { + + public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; + + private final String generic_search_path; + + public static final String FORMAT = "format"; + + + public CustomQueryRequest() { + String tmp_generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); + tmp_generic_search_path = tmp_generic_search_path.split("search")[0]; + generic_search_path = tmp_generic_search_path +"query"; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_search_path; + + request_url = processPathData(request_url, requestProperties); + + String formatQuery = requestProperties.getProperty(FORMAT); + + if(formatQuery != null) { + request_url = request_url +"?format="+formatQuery; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + FormattedQueryRequestData tenant = (FormattedQueryRequestData)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {FORMAT}; + return args; + } + + + @Override + public Class getModelClass() { + return FormattedQueryRequestData.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = FORMAT; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); + + return request_url; + } + + public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { + if(jsonData == null) { + return null; + } + + AAIDatum response = null; + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(jsonData, FormattedQueryResultList.class); + return response; + } + + protected boolean expectsDataFromPUTRequest() { + return true; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java new file mode 100644 index 000000000..86e2d5f5e --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.data.EchoResponse; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class EchoRequest extends AAIRequest { + + + + private final String echo_path; + + public EchoRequest() { + echo_path = "/aai/util/echo"; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+echo_path; + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + EchoResponse tenant = (EchoResponse)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {}; + return args; + } + + + @Override + public Class getModelClass() { + return EchoResponse.class; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java new file mode 100644 index 000000000..476aed94a --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.ResultData; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class GenericQueryRequest extends AAIRequest { + + public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; + + private final String generic_search_path; + + public static final String START_NODE_TYPE = "start-node-type"; + public static final String IDENTIFIER = "identifier"; + public static final String VALUE = "value"; + + + public GenericQueryRequest() { + generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); + } + + +// @Override +// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { +// +// String request_url = target_uri+generic_search_path; +// String key = START_NODE_TYPE; +// +// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); +// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; +// +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } +// URL http_req_url = new URL(request_url); +// +// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); +// +// +// return http_req_url; +// } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + ResultData tenant = (ResultData)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {START_NODE_TYPE, IDENTIFIER, VALUE}; + return args; + } + + + @Override + public Class getModelClass() { + return ResultData.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = IDENTIFIER; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); + + key = VALUE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{value}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("value", requestProperties.getProperty(key)); + + key = START_NODE_TYPE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{start-node-type}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("start-node-type", requestProperties.getProperty(key)); + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java new file mode 100644 index 000000000..427ea7e38 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java @@ -0,0 +1,319 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import javax.xml.bind.annotation.XmlElement; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.L3Network; +import org.openecomp.aai.inventory.v10.L3Networks; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class GenericRequest extends AAIRequest { + + + protected Class model; + + public GenericRequest(Class clazz) { + model = clazz; + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + String originalPath = null; + String pathSubstitute = null; + + request_url = target_uri + getRequestPath(); + + Map queryParams = new HashMap (); + if(resourceVersion != null) { + queryParams.put("resource-version",resourceVersion); + } + + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + + String[] keys = requestProperties.keySet().toArray(new String[0]); + for(String key : keys) { + if("cloud-region.cloud-region-id".equals(key)) + continue; + if("entitlement.resource-uuid".equals(key)) + continue; + if("license.resource-uuid".equals(key)) + continue; + + + String value = requestProperties.getProperty(key); + if(key.contains(".")) { + String[] splitKey = key.split("\\."); + if("cloud-region".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); + aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); + String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("entitlement".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("license".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else { + Class clazz = null; + try { + clazz = getClassFromResource(splitKey[0]); + } catch (ClassNotFoundException exc) { + LOG.warn("AAIRequest does not support class: " + exc.getMessage()); + return null; + } + + if(clazz != null) { + if(clazz == this.model) { + Field[] fields = this.model.getDeclaredFields(); + Field field = fields[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + + String token = String.format("%s/{%s}", splitKey[0], primaryId); + + if(splitKey[1].equals(primaryId)) { + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } else { + queryParams.put(splitKey[1], encodeQuery(value)); + originalPath = token; + pathSubstitute = String.format("%s", splitKey[0]); + } + } else if(L3Networks.class == this.model) { + Field[] fields = L3Network.class.getDeclaredFields(); + Field field = fields[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + + String token = String.format("%s/{%s}", splitKey[0], primaryId); + originalPath = token; + pathSubstitute = String.format(""); + + queryParams.put(splitKey[1], encodeQuery(value)); + } else { + String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } + } + + } + aaiService.LOGwriteDateTrace(splitKey[1], value); + } + } + + if(originalPath != null && pathSubstitute != null) + request_url = request_url.replace(originalPath, pathSubstitute); + + if(!queryParams.isEmpty()) { + Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); + String queryString = mapJoiner.join(queryParams); + request_url = String.format("%s?%s", request_url, queryString); + } + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + + return http_req_url; + } + + + public URL OriginalgetRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + + request_url = target_uri + getRequestPath(); + + Map keyValuepairs = new HashMap (); + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + + String[] keys = requestProperties.keySet().toArray(new String[0]); + for(String key : keys) { + if("cloud-region.cloud-region-id".equals(key)) + continue; + if("entitlement.resource-uuid".equals(key)) + continue; + if("license.resource-uuid".equals(key)) + continue; + + + String value = requestProperties.getProperty(key); + if(key.contains(".")) { + String[] splitKey = key.split("\\."); + if("cloud-region".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); + aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); + String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("entitlement".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("license".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else { + Class clazz = null; + try { + clazz = getClassFromResource(splitKey[0]); + } catch (ClassNotFoundException exc) { + LOG.warn("AAIRequest does not support class: " + exc.getMessage()); + return null; + } + + if(clazz != null) { + if(clazz == this.model) { + Field[] fields = this.model.getDeclaredFields(); + Field field = fields[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + + String token = String.format("%s/{%s}", splitKey[0], primaryId); + + if(splitKey[1].equals(primaryId)) { + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } else { + String replacement = String.format("%s?%s=%s", splitKey[0], splitKey[1], encodeQuery(value)); + if(request_url.contains(token)) + request_url = request_url.replace(token, replacement); + } + } else { + String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } + } + + } + aaiService.LOGwriteDateTrace(splitKey[1], value); + } + } + + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + + String json_text = null; + try { + json_text = mapper.writeValueAsString(requestDatum); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {}; + return args; + } + + @Override + public Class getModelClass() { + return model; + } + + public void processRequestPathValues(Map nameValues) { + // identify unique resources + Set uniqueResources = AAIRequest.extractUniqueResourceSetFromKeys(nameValues.keySet()); + + String[] arguments = nameValues.keySet().toArray(new String[0]); + for(String name : arguments) { + String tmpName = name.replaceAll("-", "_"); + String value = nameValues.get(tmpName); + if(value != null && !value.isEmpty()) { + value = value.trim().replace("'", "").replace("$", "").replace("'", ""); + tmpName = name.replaceAll("_", "-"); + this.addRequestProperty(tmpName, value); + } + } + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java new file mode 100644 index 000000000..3915940f5 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.GenericVnf; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class GenericVnfRequest extends AAIRequest { + + // tenant (1602) + public static final String GENERIC_VNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf"; + public static final String GENERIC_VNF_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.query"; + + private final String generic_vnf_path; + private final String generic_vnf_query_path; + + public static final String GENERIC_VNF_ID = "generic_vnf.vnf_id"; + public static final String VNF_ID = "vnf_id"; + + + public GenericVnfRequest() { + generic_vnf_path = configProperties.getProperty(GENERIC_VNF_PATH); + generic_vnf_query_path = configProperties.getProperty(GENERIC_VNF_QUERY_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_vnf_path; + String key = VNF_ID; + if(requestProperties.containsKey(GENERIC_VNF_ID)) { + key = GENERIC_VNF_ID; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{vnf-id}", encoded_vnf) ; + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_vnf_path; + + String key = VNF_ID; + if(requestProperties.containsKey(GENERIC_VNF_ID)) { + key = GENERIC_VNF_ID; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{vnf-id}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + GenericVnf tenant = (GenericVnf)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {VNF_ID, GENERIC_VNF_ID}; + return args; + } + + + @Override + public Class getModelClass() { + return GenericVnf.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = VNF_ID; + if(requestProperties.containsKey(GENERIC_VNF_ID)) { + key = GENERIC_VNF_ID; + } + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{vnf-id}", encoded_vnf) ; + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java new file mode 100644 index 000000000..e1431bead --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java @@ -0,0 +1,212 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.L3InterfaceIpv4AddressList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class L3InterfaceIpv4AddressListRequest extends AAIRequest { + + /* + * Note: there are 3 possible paths: + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + */ + + public static final String L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list"; + public static final String VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list"; + + private final String l3_interface_ipv4_address_list_path; + private final String vlan_l3_interface_ipv4_address_list_path; + + public static final String L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address"; + public static final String LIST_L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address-list.l3-interface-ipv4-address"; + public static final String VLAN_INTERFACE = "vlan-interface"; + public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; + + public L3InterfaceIpv4AddressListRequest() { + l3_interface_ipv4_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); + vlan_l3_interface_ipv4_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+l3_interface_ipv4_address_list_path; + + if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ + request_url = target_uri+vlan_l3_interface_ipv4_address_list_path; + request_url = processVLanRequestPathData(request_url, requestProperties); + } + + request_url = processPathData(request_url, requestProperties); + request_url = LInterfaceRequest.processPathData(request_url, requestProperties); +// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = null; + + if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { + key = VLAN_VLAN_INTERFACE; + } else if(requestProperties.containsKey(VLAN_INTERFACE)) { + key = VLAN_INTERFACE; + } else { + aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); + return request_url; + } + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + L3InterfaceIpv4AddressList vnfc = (L3InterfaceIpv4AddressList)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = + { + L3_INTERFACE_IPV4_ADDRESS, + LIST_L3_INTERFACE_IPV4_ADDRESS, + VLAN_INTERFACE, + VLAN_VLAN_INTERFACE, + LInterfaceRequest.INTERFACE_NAME, + LInterfaceRequest.LINTERFACE_INTERFACE_NAME, + "generic-vnf.vnf-id" + }; + + return args; + } + + @Override + public Class getModelClass() { + return L3InterfaceIpv4AddressList.class; + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = L3_INTERFACE_IPV4_ADDRESS; + if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV4_ADDRESS)) { + key = LIST_L3_INTERFACE_IPV4_ADDRESS; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV4_ADDRESS, LIST_L3_INTERFACE_IPV4_ADDRESS)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{l3-interface-ipv4-address}", encoded_vnf) ; + + aaiService.LOGwriteDateTrace("l3-interface-ipv4-address", requestProperties.getProperty(key)); + return request_url; + } + + /* + * (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.aai.PathConfigurator#configurePath(java.lang.String) + */ +// @Override +// public void processRequestPathValues(Map nameValues) { +// String[] paths = +// { +// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", +// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", +// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", +// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}" +// }; +// +// Listkeys = new LinkedList(); +// keys.addAll(nameValues.keySet()); +// for(String key : keys) { +// if(key.contains(".")) { +// key = key.replaceAll("_", "-"); +// if(!LIST_L3_INTERFACE_IPV4_ADDRESS.equals(key)) { +// int index = key.indexOf("."); +// String resource = key.substring(0, index); +// AAIRequest rx = createRequest(resource, nameValues); +// if(rx != null) { +// pathElements.add(rx); +// } +// } +// } +// } +// super.processRequestPathValues(nameValues); +// } +// List pathElements = new LinkedList(); + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java new file mode 100644 index 000000000..5cdc0de64 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java @@ -0,0 +1,179 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.L3InterfaceIpv6AddressList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class L3InterfaceIpv6AddressListRequest extends AAIRequest { + + /* + * Note: there are 3 possible paths: + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + */ + + public static final String L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list"; + public static final String VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list"; + + private final String l3_interface_ipv6_address_list_path; + private final String vlan_l3_interface_ipv6_address_list_path; + + public static final String L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address"; + public static final String LIST_L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address-list.l3-interface-ipv6-address"; + public static final String VLAN_INTERFACE = "vlan-interface"; + public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; + + public L3InterfaceIpv6AddressListRequest() { + l3_interface_ipv6_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); + vlan_l3_interface_ipv6_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+l3_interface_ipv6_address_list_path; + + if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ + request_url = target_uri+vlan_l3_interface_ipv6_address_list_path; + request_url = processVLanRequestPathData(request_url, requestProperties); + } + + request_url = processPathData(request_url, requestProperties); + request_url = LInterfaceRequest.processPathData(request_url, requestProperties); +// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = null; + + if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { + key = VLAN_VLAN_INTERFACE; + } else if(requestProperties.containsKey(VLAN_INTERFACE)) { + key = VLAN_INTERFACE; + } else { + aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); + return request_url; + } + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + L3InterfaceIpv6AddressList vnfc = (L3InterfaceIpv6AddressList)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = + { + L3_INTERFACE_IPV6_ADDRESS, + LIST_L3_INTERFACE_IPV6_ADDRESS, + VLAN_INTERFACE, + VLAN_VLAN_INTERFACE, + LInterfaceRequest.INTERFACE_NAME, + LInterfaceRequest.LINTERFACE_INTERFACE_NAME, + "generic-vnf.vnf-id" + + }; + + return args; + } + + @Override + public Class getModelClass() { + return L3InterfaceIpv6AddressList.class; + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = L3_INTERFACE_IPV6_ADDRESS; + if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV6_ADDRESS)) { + key = LIST_L3_INTERFACE_IPV6_ADDRESS; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV6_ADDRESS, LIST_L3_INTERFACE_IPV6_ADDRESS)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{l3-interface-ipv6-address}", encoded_vnf) ; + + aaiService.LOGwriteDateTrace("l3-interface-ipv6-address", requestProperties.getProperty(key)); + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java new file mode 100644 index 000000000..a9da4e45c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java @@ -0,0 +1,244 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.LInterface; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class LInterfaceRequest extends AAIRequest { + + // tenant (1602) + public static final String LAGINTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface"; + public static final String LAGINTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.query"; + + public static final String P_INTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface"; + public static final String P_INTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.query"; + + public static final String LAGINTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf"; + public static final String P_INTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf"; + + private final String laginterface_linterface_path; + private final String laginterface_linterface_query_path; + private final String p_interface_linterface_path; + private final String p_interface_linterface_query_path; + + private final String laginterface_linterface_pnf_path; + private final String p_interface_linterface_pnf_path; + + public static final String INTERFACE_NAME = "interface-name"; + public static final String LINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; + public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; + public static final String P_INTERFACE_INTERFACE_NAME = "p-interface.interface-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + + public static final String ROUTER_NAME = "router-name"; + public static final String HOSTNAME = "hostname"; + + + public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; + + private final TYPE type; + + public LInterfaceRequest(TYPE type) { + this.type = type; + + laginterface_linterface_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PATH); + laginterface_linterface_query_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_QUERY_PATH); + + p_interface_linterface_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PATH); + p_interface_linterface_query_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_QUERY_PATH); + + laginterface_linterface_pnf_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PNF_PATH); + p_interface_linterface_pnf_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PNF_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + String encoded_vnf = null; + String hostname = null; + String pnfname = null; + String interfaceName = null; + + if(type == TYPE.L2_BRIDGE_SBG) { + if(requestProperties.containsKey(PNF_PNF_NAME)) { + request_url = target_uri + laginterface_linterface_pnf_path; + } else { + request_url = target_uri + laginterface_linterface_path; + } + + if(requestProperties.containsKey(ROUTER_NAME)) { + hostname = requestProperties.getProperty(ROUTER_NAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(HOSTNAME)) { + hostname = requestProperties.getProperty(HOSTNAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + if(interfaceName == null || interfaceName.isEmpty()) { + interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); + } + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + } + if(type == TYPE.L2_BRIDGE_BGF) { + if(requestProperties.containsKey(PNF_PNF_NAME)) { + request_url = target_uri + p_interface_linterface_pnf_path; + } else { + request_url = target_uri + p_interface_linterface_path; + } + + + if(requestProperties.containsKey(ROUTER_NAME)) { + hostname = requestProperties.getProperty(ROUTER_NAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(HOSTNAME)) { + hostname = requestProperties.getProperty(HOSTNAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + if(interfaceName == null || interfaceName.isEmpty()) { + interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); + } + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + } + + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + if(hostname != null) + aaiService.LOGwriteDateTrace("hostname", hostname); + if(pnfname != null) + aaiService.LOGwriteDateTrace("pnf-name", pnfname); + if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + } + if(requestProperties.containsKey(P_INTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); + } + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + LInterface vnfc = (LInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {}; + if(type == TYPE.L2_BRIDGE_SBG) { + String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + if(type == TYPE.L2_BRIDGE_BGF) { + String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, P_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + + return args; + } + + @Override + public Class getModelClass() { + return LInterface.class; + } + + @Override + public String getPrimaryResourceName(String resource) { + return "l-interface"; + } + + public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String interfaceName = requestProperties.getProperty(INTERFACE_NAME); + if(interfaceName == null || interfaceName.isEmpty()) { + interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); + } + + request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java new file mode 100644 index 000000000..5f84553db --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java @@ -0,0 +1,142 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.LagInterface; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class LagInterfacePnfRequest extends AAIRequest { + + // tenant (1602) + public static final String LAG_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + public static final String LAG_INTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; + public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; + + private final String lag_interface_path; + private final String lag_interface_query_path; + + public static final String INTERFACE_NAME = "interface-name"; + public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; + public static final String PNF_NAME = "pnf-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + + + public LagInterfacePnfRequest() { + lag_interface_path = configProperties.getProperty(PNF_PATH) + "/lag-interfaces/lag-interface/{interface-name}"; + lag_interface_query_path = configProperties.getProperty(LAG_INTERFACE_QUERY_PATH); + LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + lag_interface_path); + LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + lag_interface_query_path); + if(lag_interface_path == null) { + LoggerFactory.getLogger(LagInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); + } + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + lag_interface_path; + String encoded_vnf = null; + + String interfaceName = null; + + if(requestProperties.containsKey(INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + } else + if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME); + } + + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + request_url = processPnfRequestPathData(request_url,requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = PNF_NAME; + if(requestProperties.containsKey(PNF_PNF_NAME)) { + key = PNF_PNF_NAME; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{pnf-name}", encoded_vnf) ; + + return request_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + LagInterface vnfc = (LagInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; + + return args; + } + + @Override + public Class getModelClass() { + return LagInterface.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java new file mode 100644 index 000000000..e1528a617 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java @@ -0,0 +1,190 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.InventoryResponseItems; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.type.TypeFactory; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; + +public class NamedQueryRequest extends AAIRequest { + + public static final String NAMED_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.named"; + + private final String named_search_path; + + public static final String NAMED_QUERY_UUID = "named-query-uuid"; + public static final String PREFIX = "prefix"; + + + public NamedQueryRequest() { + named_search_path = configProperties.getProperty(NAMED_SEARCH_PATH); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+named_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = AAIService.getObjectMapper(); + mapper.setSerializationInclusion(Include.NON_NULL); + mapper.setSerializationInclusion(Include.NON_EMPTY); + mapper.setSerializationInclusion(Include.NON_DEFAULT); + + AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); + AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); + mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + AAIDatum tenant = (AAIDatum)requestDatum; + String json_text = null; + try { + ObjectNode node = mapper.valueToTree(tenant); + Iterator it = node.elements(); + while(it.hasNext()){ + JsonNode jn = it.next(); + JsonNode child = jn.get("instance-filter"); + if(child != null) { + child = child.get(0); + if(child.has("l3-network")) { + JsonNode innerChild = child.get("l3-network"); + if(innerChild != null) { + if(innerChild instanceof ObjectNode) { + ObjectNode on = ObjectNode.class.cast(innerChild); + List namesToDelete = new ArrayList(); + Iterator names = on.fieldNames(); + while(names.hasNext()) { + String name = names.next(); + if(name != null && name.startsWith("is-")) { + namesToDelete.add(name); + } + } + for(String nameToDelete : namesToDelete) { + on.remove(nameToDelete); + } + } + } + } else if(child.has("pnf")) { + JsonNode innerChild = child.get("pnf"); + if(innerChild != null) { + if(innerChild instanceof ObjectNode) { + ObjectNode on = ObjectNode.class.cast(innerChild); + List namesToDelete = new ArrayList(); + Iterator names = on.fieldNames(); + while(names.hasNext()) { + String name = names.next(); + if(name != null && name.startsWith("in-maint")) { + namesToDelete.add(name); + } + } + for(String nameToDelete : namesToDelete) { + on.remove(nameToDelete); + } + } + } + } + } + } + json_text = node.toString(); + if(json_text == null) + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {NAMED_QUERY_UUID, PREFIX}; + return args; + } + + + @Override + public Class getModelClass() { + return InventoryResponseItems.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + + String encoded_vnf ; + String key = NAMED_QUERY_UUID; + + if(requestProperties.containsKey(key)) { + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{named-query-uuid}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("named-query-uuid", requestProperties.getProperty(key)); + } + + key = PREFIX; + + if(requestProperties.containsKey(key)) { + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{prefix}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("prefix", requestProperties.getProperty(key)); + } + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java new file mode 100644 index 000000000..ba4da3d7e --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.SearchResults; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class NodesQueryRequest extends AAIRequest { + + public static final String NODES_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; + + private final String nodes_search_path; + + public static final String NODE_TYPE = "node-type"; + public static final String ENTITY_IDENTIFIER = "entity-identifier"; + public static final String ENTITY_VALUE = "entity-value"; + + + public NodesQueryRequest() { + nodes_search_path = configProperties.getProperty(NODES_SEARCH_PATH); + } + + +// @Override +// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { +// +// String request_url = target_uri+generic_search_path; +// String key = START_NODE_TYPE; +// +// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); +// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; +// +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } +// URL http_req_url = new URL(request_url); +// +// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); +// +// +// return http_req_url; +// } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+nodes_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + SearchResults tenant = (SearchResults)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {NODE_TYPE, ENTITY_IDENTIFIER, ENTITY_VALUE}; + return args; + } + + + @Override + public Class getModelClass() { + return SearchResults.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = ENTITY_IDENTIFIER; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{entity-identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("entity-identifier", requestProperties.getProperty(key)); + + key = ENTITY_VALUE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{entity-name}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("entity-name", requestProperties.getProperty(key)); + + key = NODE_TYPE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{node-type}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("node-type", requestProperties.getProperty(key)); + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java new file mode 100644 index 000000000..ea669f232 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java @@ -0,0 +1,142 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.PInterface; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PInterfacePnfRequest extends AAIRequest { + + // tenant (1602) + public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; + public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; + + private final String pinterface_path; + private final String pinterface_query_path; + + public static final String INTERFACE_NAME = "interface-name"; + public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; + public static final String PNF_NAME = "pnf-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + + + public PInterfacePnfRequest() { + pinterface_path = configProperties.getProperty(PNF_PATH) + "/p-interfaces/p-interface/{interface-name}"; + pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); + LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); + LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); + if(pinterface_path == null) { + LoggerFactory.getLogger(PInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); + } + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + pinterface_path; + String encoded_vnf = null; + + String interfaceName = null; + + if(requestProperties.containsKey(INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + } else + if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); + } + + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + request_url = processPnfRequestPathData(request_url,requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = PNF_NAME; + if(requestProperties.containsKey(PNF_PNF_NAME)) { + key = PNF_PNF_NAME; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{pnf-name}", encoded_vnf) ; + + return request_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + PInterface vnfc = (PInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {INTERFACE_NAME, PINTERFACE_INTERFACE_NAME, PNF_NAME, PNF_PNF_NAME}; + + return args; + } + + @Override + public Class getModelClass() { + return PInterface.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java new file mode 100644 index 000000000..378e125dd --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.PInterface; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PInterfaceRequest extends AAIRequest { + + // tenant (1602) + public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; + + private final String pinterface_path; + private final String pinterface_query_path; + + public static final String HOSTNAME = "hostname"; + public static final String PSERVER_HOSTNAME = "pserver.hostname"; + public static final String INTERFACE_NAME = "interface-name"; + public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; + + + public PInterfaceRequest() { + pinterface_path = configProperties.getProperty(PINTERFACE_PATH); + pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); + LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); + LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); + if(pinterface_path == null) { + LoggerFactory.getLogger(PInterfaceRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); + } + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + pinterface_path; + String encoded_vnf = null; + + String hostname = null; + String interfaceName = null; + + if(requestProperties.containsKey(HOSTNAME)) { + hostname = requestProperties.getProperty(HOSTNAME); + } + if(requestProperties.containsKey(PSERVER_HOSTNAME)) { + hostname = requestProperties.getProperty(PSERVER_HOSTNAME); + } + + if(requestProperties.containsKey(INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + } + if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); + } + + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf) ; + + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("hostname", hostname); + aaiService.LOGwriteDateTrace("interface-name", hostname); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + PInterface vnfc = (PInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {HOSTNAME, PSERVER_HOSTNAME, INTERFACE_NAME, PINTERFACE_INTERFACE_NAME}; + return args; + } + + @Override + public Class getModelClass() { + return PInterface.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java new file mode 100644 index 000000000..a42e045bb --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PathRequest extends AAIRequest { + + private final Class classType; + + public static final String RESOURCE_PATH = "resource-path"; + + public PathRequest(Class type) { + classType = (Class)type; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + "{resource-path}"; + + String encoded_vnf = requestProperties.getProperty(RESOURCE_PATH); + request_url = request_url.replace("{resource-path}", encoded_vnf) ; + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + String json_text = null; + try { + json_text = mapper.writeValueAsString(classType); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {RESOURCE_PATH}; + return args; + } + + @Override + public Class getModelClass() { + return classType; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java new file mode 100644 index 000000000..4db95df1c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java @@ -0,0 +1,112 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.PhysicalLink; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PhysicalLinkRequest extends AAIRequest { + + // physical link + public static final String PHYSICAL_LINK_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link"; + public static final String PHYSICAL_LINK_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link.query"; + + private final String physical_link_path; + private final String physical_link_query_path; + + public static final String LINK_NAME = "link-name"; + public static final String PHYSICAL_LINK_NAME = "physical-link.link-name"; + + + public PhysicalLinkRequest() { + physical_link_path = configProperties.getProperty(PHYSICAL_LINK_PATH); + physical_link_query_path = configProperties.getProperty(PHYSICAL_LINK_QUERY_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+physical_link_path; + + String linkName = null; + if(requestProperties.containsKey(LINK_NAME)) { + linkName = requestProperties.getProperty(LINK_NAME); + } + + if(requestProperties.containsKey(PHYSICAL_LINK_NAME)) { + linkName = requestProperties.getProperty(PHYSICAL_LINK_NAME); + } + + + String encoded_vnf = encodeQuery(linkName); + request_url = request_url.replace("{link-name}", encoded_vnf) ; + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("link-name", linkName); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + PhysicalLink vpe = (PhysicalLink)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vpe); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {LINK_NAME, PHYSICAL_LINK_NAME}; + + return args; + } + + @Override + public Class getModelClass() { + return PhysicalLink.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java new file mode 100644 index 000000000..8c3d107cb --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java @@ -0,0 +1,126 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.RelationshipList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class RelationshipRequest extends AAIRequest { + + // tenant (1602) + public static final String RELATIONSHIP_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list"; + public static final String RELATIONSHIP_LIST_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list.query"; + + private final String relationship_path; + private final String relationship_query_path; + + public static final String RELATED_TO = "related-to"; + public static final String RELATIONSHIP_KEY = "relationship-key"; + + public RelationshipRequest() { + relationship_path = configProperties.getProperty(RELATIONSHIP_LIST_PATH, "/relationship-list/relationship"); + relationship_query_path = configProperties.getProperty(RELATIONSHIP_LIST_QUERY_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + AAIRequest masterRequest = (AAIRequest)requestProperties.get(MASTER_REQUEST); + URL masterURL = masterRequest.getRequestUrl(method, null); + + String request_url = masterURL.toString(); + request_url = request_url + relationship_path; + + if(request_url.contains("//")) { + request_url = request_url.replaceAll("//", "/"); + } + + if(requestProperties.containsKey(RELATED_TO)) { + String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATED_TO)); + request_url = request_url.replace("{related-to}", encoded_vnf) ; + } + +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("related-to", requestProperties.getProperty(RELATED_TO)); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+relationship_query_path; + String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATIONSHIP_KEY)); + request_url = request_url.replace("{tenant-name}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("tenant_name", requestProperties.getProperty(RELATIONSHIP_KEY)); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + Object tenant = requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {RELATED_TO, RELATIONSHIP_KEY}; + return args; + } + + + @Override + public Class getModelClass() { + return RelationshipList.class; + } + + public boolean isDeleteDataRequired() { + return true; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java new file mode 100644 index 000000000..e4fd3d938 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java @@ -0,0 +1,98 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class SelfLinkRequest extends AAIRequest { + + private final Class classType; + + public static final String SELFLINK = "selflink"; + + public SelfLinkRequest(Class type) { + classType = (Class)type; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + + request_url = requestProperties.getProperty(SELFLINK); + + String query = null; + + if(request_url.contains("?")) { + query = request_url.substring(request_url.indexOf("?")); + Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("="); +// String queryString = mapJoiner.join(query); + } else { + request_url = request_url + "?depth=1"; + } + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + String json_text = null; + try { + json_text = mapper.writeValueAsString(classType); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {SELFLINK}; + return args; + } + + @Override + public Class getModelClass() { + return classType; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java new file mode 100644 index 000000000..3cbe187c0 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java @@ -0,0 +1,184 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.LInterface; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class SubInterfaceRequest extends AAIRequest { + + // tenant (1602) + public static final String PNF_LAGINTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface"; + public static final String PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface.query"; + + public static final String PNF_P_INTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface"; + public static final String PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface.query"; + + private final String pnf_laginterface_subinterface_path; + private final String pnf_laginterface_subinterface_query_path; + private final String pnf_p_interface_subinterface_path; + private final String pnf_p_interface_subinterface_query_path; + + public static final String SUBINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; + public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; + + private final TYPE type; + + public SubInterfaceRequest(TYPE type) { + this.type = type; + + pnf_laginterface_subinterface_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_PATH); + pnf_laginterface_subinterface_query_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH); + + pnf_p_interface_subinterface_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_PATH); + pnf_p_interface_subinterface_query_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + String encoded_vnf = null; + + String pnfname = null; + String interfaceName = null; + + if(type == TYPE.L2_BRIDGE_SBG) { + request_url = target_uri + pnf_laginterface_subinterface_path; + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + } + if(type == TYPE.L2_BRIDGE_BGF) { + request_url = target_uri + pnf_p_interface_subinterface_path; + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + } + + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + if(pnfname != null) + aaiService.LOGwriteDateTrace("pnf-name", pnfname); + if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + } + if(requestProperties.containsKey(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); + } + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + LInterface vnfc = (LInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {}; + if(type == TYPE.L2_BRIDGE_SBG) { + String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + if(type == TYPE.L2_BRIDGE_BGF) { + String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, PInterfaceRequest.PINTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + + return args; + } + + @Override + public Class getModelClass() { + return LInterface.class; + } + + @Override + public String getPrimaryResourceName(String resource) { + return "sub-interface"; + } + + public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); + request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java new file mode 100644 index 000000000..705f53d28 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Map; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class UpdateRequest extends AAIRequest { + + private AAIRequest request; + private Map params; + + public UpdateRequest(AAIRequest request, Map parms) { + this.request = request; + this.params = parms; + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) + throws UnsupportedEncodingException, MalformedURLException { + return request.getRequestUrl(method, resourceVersion); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return request.getRequestQueryUrl(method); + } + + @Override + public String toJSONString() { + ObjectMapper mapper = AAIService.getObjectMapper(); + String json = null; + + try { + json = mapper.writeValueAsString(params); + } catch (JsonProcessingException e) { + LOG.error("Could not convert parameters of " + request.getRequestObject().getClass().getName(), e); + } + + return json; + } + + @Override + public String[] getArgsList() { + return request.getArgsList(); + } + + @Override + public Class getModelClass() { + return request.getModelClass(); + } + + @Override + public void addRequestProperty(String key, String value) { + request.requestProperties.put(key, value); + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + +// if(request != null) { +// Class clazz = request.getClass(); +// Method function = null; +// try { +// function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); +// request_url = (String) function.invoke(null, request_url, requestProperties); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + +// request.processPathData(request_url, requestProperties); + return request_url; + } + + public void processRequestPathValues(Map nameValues) { + request.processRequestPathValues(nameValues); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java new file mode 100644 index 000000000..84323176b --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java @@ -0,0 +1,26 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +public interface AAIDatum { + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java new file mode 100644 index 000000000..576c15701 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "responseMessages" +}) +public class EchoResponse implements AAIDatum { + + @JsonProperty("responseMessages") + private ResponseMessages responseMessages; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The responseMessages + */ + @JsonProperty("responseMessages") + public ResponseMessages getResponseMessages() { + return responseMessages; + } + + /** + * + * @param responseMessages + * The responseMessages + */ + @JsonProperty("responseMessages") + public void setResponseMessages(ResponseMessages responseMessages) { + this.responseMessages = responseMessages; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java new file mode 100644 index 000000000..6a255fcf1 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "requestError" +}) +public class ErrorResponse { + + @JsonProperty("requestError") + private RequestError requestError; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The requestError + */ + @JsonProperty("requestError") + public RequestError getRequestError() { + return requestError; + } + + /** + * + * @param requestError + * The requestError + */ + @JsonProperty("requestError") + public void setRequestError(RequestError requestError) { + this.requestError = requestError; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java new file mode 100644 index 000000000..9bbca18f5 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "serviceException" +}) +public class RequestError { + + @JsonProperty("serviceException") + private ServiceException serviceException; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The serviceException + */ + @JsonProperty("serviceException") + public ServiceException getServiceException() { + return serviceException; + } + + /** + * + * @param serviceException + * The serviceException + */ + @JsonProperty("serviceException") + public void setServiceException(ServiceException serviceException) { + this.serviceException = serviceException; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java new file mode 100644 index 000000000..f5901a8be --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java @@ -0,0 +1,28 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +public interface ResourceVersion { + + public String getResourceVersion(); + public void setResourceVersion(String resourceVersion); +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java new file mode 100644 index 000000000..db3778792 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "messageId", + "text", + "variables" +}) +public class ResponseMessage { + + @JsonProperty("messageId") + private String messageId; + @JsonProperty("text") + private String text; + @JsonProperty("variables") + private Variables variables; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The messageId + */ + @JsonProperty("messageId") + public String getMessageId() { + return messageId; + } + + /** + * + * @param messageId + * The messageId + */ + @JsonProperty("messageId") + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * + * @return + * The text + */ + @JsonProperty("text") + public String getText() { + return text; + } + + /** + * + * @param text + * The text + */ + @JsonProperty("text") + public void setText(String text) { + this.text = text; + } + + /** + * + * @return + * The variables + */ + @JsonProperty("variables") + public Variables getVariables() { + return variables; + } + + /** + * + * @param variables + * The variables + */ + @JsonProperty("variables") + public void setVariables(Variables variables) { + this.variables = variables; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java new file mode 100644 index 000000000..a23878084 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "responseMessage" +}) +public class ResponseMessages { + + @JsonProperty("responseMessage") + private List responseMessage = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The responseMessage + */ + @JsonProperty("responseMessage") + public List getResponseMessage() { + return responseMessage; + } + + /** + * + * @param responseMessage + * The responseMessage + */ + @JsonProperty("responseMessage") + public void setResponseMessage(List responseMessage) { + this.responseMessage = responseMessage; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java new file mode 100644 index 000000000..b98d3d8fc --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java @@ -0,0 +1,126 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "messageId", + "text", + "variables" +}) +public class ServiceException { + + @JsonProperty("messageId") + private String messageId; + @JsonProperty("text") + private String text; + @JsonProperty("variables") + private List variables = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The messageId + */ + @JsonProperty("messageId") + public String getMessageId() { + return messageId; + } + + /** + * + * @param messageId + * The messageId + */ + @JsonProperty("messageId") + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * + * @return + * The text + */ + @JsonProperty("text") + public String getText() { + return text; + } + + /** + * + * @param text + * The text + */ + @JsonProperty("text") + public void setText(String text) { + this.text = text; + } + + /** + * + * @return + * The variables + */ + @JsonProperty("variables") + public List getVariables() { + return variables; + } + + /** + * + * @param variables + * The variables + */ + @JsonProperty("variables") + public void setVariables(List variables) { + this.variables = variables; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java new file mode 100644 index 000000000..f15507800 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java @@ -0,0 +1,171 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import org.openecomp.aai.inventory.v10.RelationshipList; +import org.openecomp.aai.inventory.v10.Vlans; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "interface-name", + "interface-role", + "resource-version", + "vlans", + "relationshipList" +}) +public class SubInterface implements AAIDatum { + + @JsonProperty("interface-name") + private String interfaceName; + @JsonProperty("interface-role") + private String interfaceRole; + @JsonProperty("resource-version") + private String resourceVersion; + @JsonProperty("vlans") + private Vlans vlans; + @JsonProperty("relationshipList") + private RelationshipList relationshipList; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The interfaceName + */ + @JsonProperty("interface-name") + public String getInterfaceName() { + return interfaceName; + } + + /** + * + * @param interfaceName + * The interface-name + */ + @JsonProperty("interface-name") + public void setInterfaceName(String interfaceName) { + this.interfaceName = interfaceName; + } + + /** + * + * @return + * The interfaceRole + */ + @JsonProperty("interface-role") + public String getInterfaceRole() { + return interfaceRole; + } + + /** + * + * @param interfaceRole + * The interface-role + */ + @JsonProperty("interface-role") + public void setInterfaceRole(String interfaceRole) { + this.interfaceRole = interfaceRole; + } + + /** + * + * @return + * The resourceVersion + */ + @JsonProperty("resource-version") + public String getResourceVersion() { + return resourceVersion; + } + + /** + * + * @param resourceVersion + * The resource-version + */ + @JsonProperty("resource-version") + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + } + + /** + * + * @return + * The vlans + */ + @JsonProperty("vlans") + public Vlans getVlans() { + return vlans; + } + + /** + * + * @param vlans + * The vlans + */ + @JsonProperty("vlans") + public void setVlans(Vlans vlans) { + this.vlans = vlans; + } + + /** + * + * @return + * The relationshipList + */ + @JsonProperty("relationshipList") + public RelationshipList getRelationshipList() { + return relationshipList; + } + + /** + * + * @param relationshipList + * The relationshipList + */ + @JsonProperty("relationshipList") + public void setRelationshipList(RelationshipList relationshipList) { + this.relationshipList = relationshipList; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java new file mode 100644 index 000000000..3b03ba472 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "variable" +}) +public class Variables { + + @JsonProperty("variable") + private List variable = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The variable + */ + @JsonProperty("variable") + public List getVariable() { + return variable; + } + + /** + * + * @param variable + * The variable + */ + @JsonProperty("variable") + public void setVariable(List variable) { + this.variable = variable; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java new file mode 100644 index 000000000..641a8abde --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.notify; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "key-name", + "key-value" +}) +public class KeyDatum { + + @JsonProperty("key-name") + private String keyName; + @JsonProperty("key-value") + private String keyValue; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The keyName + */ + @JsonProperty("key-name") + public String getKeyName() { + return keyName; + } + + /** + * + * @param keyName + * The key-name + */ + @JsonProperty("key-name") + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + /** + * + * @return + * The keyValue + */ + @JsonProperty("key-value") + public String getKeyValue() { + return keyValue; + } + + /** + * + * @param keyValue + * The key-value + */ + @JsonProperty("key-value") + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java new file mode 100644 index 000000000..d97b35239 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java @@ -0,0 +1,170 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.notify; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "event-id", + "event-trigger", + "key-data", + "node-type", + "selflink" +}) +public class NotifyEvent { + + @JsonProperty("event-id") + private String eventId; + @JsonProperty("event-trigger") + private String eventTrigger; + @JsonProperty("key-data") + private List keyData = new ArrayList(); + @JsonProperty("node-type") + private String nodeType; + @JsonProperty("selflink") + private String selflink; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The eventId + */ + @JsonProperty("event-id") + public String getEventId() { + return eventId; + } + + /** + * + * @param eventId + * The event-id + */ + @JsonProperty("event-id") + public void setEventId(String eventId) { + this.eventId = eventId; + } + + /** + * + * @return + * The eventTrigger + */ + @JsonProperty("event-trigger") + public String getEventTrigger() { + return eventTrigger; + } + + /** + * + * @param eventTrigger + * The event-trigger + */ + @JsonProperty("event-trigger") + public void setEventTrigger(String eventTrigger) { + this.eventTrigger = eventTrigger; + } + + /** + * + * @return + * The keyData + */ + @JsonProperty("key-data") + public List getKeyData() { + return keyData; + } + + /** + * + * @param keyData + * The key-data + */ + @JsonProperty("key-data") + public void setKeyData(List keyData) { + this.keyData = keyData; + } + + /** + * + * @return + * The nodeType + */ + @JsonProperty("node-type") + public String getNodeType() { + return nodeType; + } + + /** + * + * @param nodeType + * The node-type + */ + @JsonProperty("node-type") + public void setNodeType(String nodeType) { + this.nodeType = nodeType; + } + + /** + * + * @return + * The selflink + */ + @JsonProperty("selflink") + public String getSelflink() { + return selflink; + } + + /** + * + * @param selflink + * The selflink + */ + @JsonProperty("selflink") + public void setSelflink(String selflink) { + this.selflink = selflink; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java new file mode 100644 index 000000000..6ffc30c45 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "flavorId", + "flavorName", + "flavorLink" +}) +public class Flavor { + + @JsonProperty("flavorId") + private String flavorId; + @JsonProperty("flavorName") + private String flavorName; + @JsonProperty("flavorLink") + private String flavorLink; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The flavorId + */ + @JsonProperty("flavorId") + public String getFlavorId() { + return flavorId; + } + + /** + * + * @param flavorId + * The flavorId + */ + @JsonProperty("flavorId") + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + /** + * + * @return + * The flavorName + */ + @JsonProperty("flavorName") + public String getFlavorName() { + return flavorName; + } + + /** + * + * @param flavorName + * The flavorName + */ + @JsonProperty("flavorName") + public void setFlavorName(String flavorName) { + this.flavorName = flavorName; + } + + /** + * + * @return + * The flavorLink + */ + @JsonProperty("flavorLink") + public String getFlavorLink() { + return flavorLink; + } + + /** + * + * @param flavorLink + * The flavorLink + */ + @JsonProperty("flavorLink") + public void setFlavorLink(String flavorLink) { + this.flavorLink = flavorLink; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java new file mode 100644 index 000000000..7c171ebd9 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "hostId", + "hostname", + "hostLoc" +}) +public class Host { + + @JsonProperty("hostId") + private String hostId; + @JsonProperty("hostname") + private String hostname; + @JsonProperty("hostLoc") + private String hostLoc; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The hostId + */ + @JsonProperty("hostId") + public String getHostId() { + return hostId; + } + + /** + * + * @param hostId + * The hostId + */ + @JsonProperty("hostId") + public void setHostId(String hostId) { + this.hostId = hostId; + } + + /** + * + * @return + * The hostname + */ + @JsonProperty("hostname") + public String getHostname() { + return hostname; + } + + /** + * + * @param hostname + * The hostname + */ + @JsonProperty("hostname") + public void setHostname(String hostname) { + this.hostname = hostname; + } + + /** + * + * @return + * The hostLoc + */ + @JsonProperty("hostLoc") + public String getHostLoc() { + return hostLoc; + } + + /** + * + * @param hostLoc + * The hostLoc + */ + @JsonProperty("hostLoc") + public void setHostLoc(String hostLoc) { + this.hostLoc = hostLoc; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java new file mode 100644 index 000000000..0e27c5418 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java @@ -0,0 +1,237 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "imageId", + "imageName", + "osType", + "osVersion", + "application", + "applicationVersion", + "applicationVendor", + "imageLink" +}) +public class Image { + + @JsonProperty("imageId") + private String imageId; + @JsonProperty("imageName") + private String imageName; + @JsonProperty("osType") + private String osType; + @JsonProperty("osVersion") + private String osVersion; + @JsonProperty("application") + private String application; + @JsonProperty("applicationVersion") + private String applicationVersion; + @JsonProperty("applicationVendor") + private String applicationVendor; + @JsonProperty("imageLink") + private String imageLink; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The imageId + */ + @JsonProperty("imageId") + public String getImageId() { + return imageId; + } + + /** + * + * @param imageId + * The imageId + */ + @JsonProperty("imageId") + public void setImageId(String imageId) { + this.imageId = imageId; + } + + /** + * + * @return + * The imageName + */ + @JsonProperty("imageName") + public String getImageName() { + return imageName; + } + + /** + * + * @param imageName + * The imageName + */ + @JsonProperty("imageName") + public void setImageName(String imageName) { + this.imageName = imageName; + } + + /** + * + * @return + * The osType + */ + @JsonProperty("osType") + public String getOsType() { + return osType; + } + + /** + * + * @param osType + * The osType + */ + @JsonProperty("osType") + public void setOsType(String osType) { + this.osType = osType; + } + + /** + * + * @return + * The osVersion + */ + @JsonProperty("osVersion") + public String getOsVersion() { + return osVersion; + } + + /** + * + * @param osVersion + * The osVersion + */ + @JsonProperty("osVersion") + public void setOsVersion(String osVersion) { + this.osVersion = osVersion; + } + + /** + * + * @return + * The application + */ + @JsonProperty("application") + public String getApplication() { + return application; + } + + /** + * + * @param application + * The application + */ + @JsonProperty("application") + public void setApplication(String application) { + this.application = application; + } + + /** + * + * @return + * The applicationVersion + */ + @JsonProperty("applicationVersion") + public String getApplicationVersion() { + return applicationVersion; + } + + /** + * + * @param applicationVersion + * The applicationVersion + */ + @JsonProperty("applicationVersion") + public void setApplicationVersion(String applicationVersion) { + this.applicationVersion = applicationVersion; + } + + /** + * + * @return + * The applicationVendor + */ + @JsonProperty("applicationVendor") + public String getApplicationVendor() { + return applicationVendor; + } + + /** + * + * @param applicationVendor + * The applicationVendor + */ + @JsonProperty("applicationVendor") + public void setApplicationVendor(String applicationVendor) { + this.applicationVendor = applicationVendor; + } + + /** + * + * @return + * The imageLink + */ + @JsonProperty("imageLink") + public String getImageLink() { + return imageLink; + } + + /** + * + * @param imageLink + * The imageLink + */ + @JsonProperty("imageLink") + public void setImageLink(String imageLink) { + this.imageLink = imageLink; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java new file mode 100644 index 000000000..19a9bf6a9 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java @@ -0,0 +1,168 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "addrId", + "addr", + "version", + "type", + "networkName" +}) +public class IpAddress { + + @JsonProperty("addrId") + private String addrId; + @JsonProperty("addr") + private String addr; + @JsonProperty("version") + private String version; + @JsonProperty("type") + private String type; + @JsonProperty("networkName") + private String networkName; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The addrId + */ + @JsonProperty("addrId") + public String getAddrId() { + return addrId; + } + + /** + * + * @param addrId + * The addrId + */ + @JsonProperty("addrId") + public void setAddrId(String addrId) { + this.addrId = addrId; + } + + /** + * + * @return + * The addr + */ + @JsonProperty("addr") + public String getAddr() { + return addr; + } + + /** + * + * @param addr + * The addr + */ + @JsonProperty("addr") + public void setAddr(String addr) { + this.addr = addr; + } + + /** + * + * @return + * The version + */ + @JsonProperty("version") + public String getVersion() { + return version; + } + + /** + * + * @param version + * The version + */ + @JsonProperty("version") + public void setVersion(String version) { + this.version = version; + } + + /** + * + * @return + * The type + */ + @JsonProperty("type") + public String getType() { + return type; + } + + /** + * + * @param type + * The type + */ + @JsonProperty("type") + public void setType(String type) { + this.type = type; + } + + /** + * + * @return + * The networkName + */ + @JsonProperty("networkName") + public String getNetworkName() { + return networkName; + } + + /** + * + * @param networkName + * The networkName + */ + @JsonProperty("networkName") + public void setNetworkName(String networkName) { + this.networkName = networkName; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java new file mode 100644 index 000000000..8e04e35f5 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java @@ -0,0 +1,147 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "relatedTo", + "relatedLink", + "relationshipData", + "any" +}) +public class Relationship { + + @JsonProperty("relatedTo") + private String relatedTo; + @JsonProperty("relatedLink") + private String relatedLink; + @JsonProperty("relationshipData") + private List relationshipData = new ArrayList(); + @JsonProperty("any") + private List any = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The relatedTo + */ + @JsonProperty("relatedTo") + public String getRelatedTo() { + return relatedTo; + } + + /** + * + * @param relatedTo + * The relatedTo + */ + @JsonProperty("relatedTo") + public void setRelatedTo(String relatedTo) { + this.relatedTo = relatedTo; + } + + /** + * + * @return + * The relatedLink + */ + @JsonProperty("relatedLink") + public String getRelatedLink() { + return relatedLink; + } + + /** + * + * @param relatedLink + * The relatedLink + */ + @JsonProperty("relatedLink") + public void setRelatedLink(String relatedLink) { + this.relatedLink = relatedLink; + } + + /** + * + * @return + * The relationshipData + */ + @JsonProperty("relationshipData") + public List getRelationshipData() { + return relationshipData; + } + + /** + * + * @param relationshipData + * The relationshipData + */ + @JsonProperty("relationshipData") + public void setRelationshipData(List relationshipData) { + this.relationshipData = relationshipData; + } + + /** + * + * @return + * The any + */ + @JsonProperty("any") + public List getAny() { + return any; + } + + /** + * + * @param any + * The any + */ + @JsonProperty("any") + public void setAny(List any) { + this.any = any; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java new file mode 100644 index 000000000..1ac21640c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java @@ -0,0 +1,124 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "relationshipKey", + "relationshipValue", + "any" +}) +public class RelationshipDatum { + + @JsonProperty("relationshipKey") + private String relationshipKey; + @JsonProperty("relationshipValue") + private String relationshipValue; + @JsonProperty("any") + private List any = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The relationshipKey + */ + @JsonProperty("relationshipKey") + public String getRelationshipKey() { + return relationshipKey; + } + + /** + * + * @param relationshipKey + * The relationshipKey + */ + @JsonProperty("relationshipKey") + public void setRelationshipKey(String relationshipKey) { + this.relationshipKey = relationshipKey; + } + + /** + * + * @return + * The relationshipValue + */ + @JsonProperty("relationshipValue") + public String getRelationshipValue() { + return relationshipValue; + } + + /** + * + * @param relationshipValue + * The relationshipValue + */ + @JsonProperty("relationshipValue") + public void setRelationshipValue(String relationshipValue) { + this.relationshipValue = relationshipValue; + } + + /** + * + * @return + * The any + */ + @JsonProperty("any") + public List getAny() { + return any; + } + + /** + * + * @param any + * The any + */ + @JsonProperty("any") + public void setAny(List any) { + this.any = any; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java new file mode 100644 index 000000000..3c46d21bd --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "relationship", + "any" +}) +public class RelationshipList { + + @JsonProperty("relationship") + private List relationship = new ArrayList(); + @JsonProperty("any") + private List any = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The relationship + */ + @JsonProperty("relationship") + public List getRelationship() { + return relationship; + } + + /** + * + * @param relationship + * The relationship + */ + @JsonProperty("relationship") + public void setRelationship(List relationship) { + this.relationship = relationship; + } + + /** + * + * @return + * The any + */ + @JsonProperty("any") + public List getAny() { + return any; + } + + /** + * + * @param any + * The any + */ + @JsonProperty("any") + public void setAny(List any) { + this.any = any; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java new file mode 100644 index 000000000..45d725530 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java @@ -0,0 +1,262 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "vmId", + "vmName", + "vmName2", + "host", + "image", + "flavor", + "ipAddresses", + "vserverLink", + "relationshipList" +}) +public class VServer { + + @JsonProperty("vmId") + private String vmId; + @JsonProperty("vmName") + private String vmName; + @JsonProperty("vmName2") + private String vmName2; + @JsonProperty("host") + private Host host; + @JsonProperty("image") + private Image image; + @JsonProperty("flavor") + private Flavor flavor; + @JsonProperty("ipAddresses") + private List ipAddresses = new ArrayList(); + @JsonProperty("vserverLink") + private String vserverLink; + @JsonProperty("relationshipList") + private RelationshipList relationshipList; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The vmId + */ + @JsonProperty("vmId") + public String getVmId() { + return vmId; + } + + /** + * + * @param vmId + * The vmId + */ + @JsonProperty("vmId") + public void setVmId(String vmId) { + this.vmId = vmId; + } + + /** + * + * @return + * The vmName + */ + @JsonProperty("vmName") + public String getVmName() { + return vmName; + } + + /** + * + * @param vmName + * The vmName + */ + @JsonProperty("vmName") + public void setVmName(String vmName) { + this.vmName = vmName; + } + + /** + * + * @return + * The vmName2 + */ + @JsonProperty("vmName2") + public String getVmName2() { + return vmName2; + } + + /** + * + * @param vmName2 + * The vmName2 + */ + @JsonProperty("vmName2") + public void setVmName2(String vmName2) { + this.vmName2 = vmName2; + } + + /** + * + * @return + * The host + */ + @JsonProperty("host") + public Host getHost() { + return host; + } + + /** + * + * @param host + * The host + */ + @JsonProperty("host") + public void setHost(Host host) { + this.host = host; + } + + /** + * + * @return + * The image + */ + @JsonProperty("image") + public Image getImage() { + return image; + } + + /** + * + * @param image + * The image + */ + @JsonProperty("image") + public void setImage(Image image) { + this.image = image; + } + + /** + * + * @return + * The flavor + */ + @JsonProperty("flavor") + public Flavor getFlavor() { + return flavor; + } + + /** + * + * @param flavor + * The flavor + */ + @JsonProperty("flavor") + public void setFlavor(Flavor flavor) { + this.flavor = flavor; + } + + /** + * + * @return + * The ipAddresses + */ + @JsonProperty("ipAddresses") + public List getIpAddresses() { + return ipAddresses; + } + + /** + * + * @param ipAddresses + * The ipAddresses + */ + @JsonProperty("ipAddresses") + public void setIpAddresses(List ipAddresses) { + this.ipAddresses = ipAddresses; + } + + /** + * + * @return + * The vserverLink + */ + @JsonProperty("vserverLink") + public String getVserverLink() { + return vserverLink; + } + + /** + * + * @param vserverLink + * The vserverLink + */ + @JsonProperty("vserverLink") + public void setVserverLink(String vserverLink) { + this.vserverLink = vserverLink; + } + + /** + * + * @return + * The relationshipList + */ + @JsonProperty("relationshipList") + public RelationshipList getRelationshipList() { + return relationshipList; + } + + /** + * + * @param relationshipList + * The relationshipList + */ + @JsonProperty("relationshipList") + public void setRelationshipList(RelationshipList relationshipList) { + this.relationshipList = relationshipList; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java new file mode 100644 index 000000000..e533a164f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.annotation.JsonProperty; + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "start", + "query" +}) +@XmlRootElement(name = "query-request") +public class FormattedQueryRequestData implements AAIDatum { + + @JsonProperty("start") + protected List start; + + @JsonProperty("query") + private String query; + + @JsonProperty("start") + public List getStart () + { + return start; + } + + @JsonProperty("start") + public void setStart (List start) + { + this.start = start; + } + + @JsonProperty("query") + public String getQuery () + { + return query; + } + + @JsonProperty("query") + public void setQuery (String query) + { + this.query = query; + } + + @Override + public String toString() + { + return " [start = "+start+", query = "+query+"]"; + } + + public String getResourceVersion() { + return null; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java new file mode 100644 index 000000000..248cd9597 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "results" +}) +@XmlRootElement(name = "result-list") +public class FormattedQueryResultList implements AAIDatum { + + @XmlElement(name = "results") + private List results; + @XmlElement(name = "results") + public List getResults () + { + return results; + } + @XmlElement(name = "results") + public void setResults (List results) + { + this.results = results; + } + + @Override + public String toString() + { + return "ClassPojo [results = "+results+"]"; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java new file mode 100644 index 000000000..ccd637294 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java @@ -0,0 +1,133 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import org.openecomp.aai.inventory.v10.L3Network; +import org.openecomp.aai.inventory.v10.Pnf; +import org.openecomp.aai.inventory.v10.LogicalLink; +import org.openecomp.aai.inventory.v10.ServiceInstance; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "logical-link", + "pnf", + "l3-network", + "service-instance" +}) +public class InstanceFilter { + + @JsonProperty("logical-link") + private LogicalLink logicalLink; + @JsonProperty("pnf") + private Pnf pnf; + @JsonProperty("l3-network") + private L3Network l3Network; + @JsonProperty("service-instance") + private ServiceInstance serviceInstance; + + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The logicalLink + */ + @JsonProperty("logical-link") + public LogicalLink getLogicalLink() { + return logicalLink; + } + + /** + * + * @param logicalLink + * The logical-link + */ + @JsonProperty("logical-link") + public void setLogicalLink(LogicalLink logicalLink) { + this.logicalLink = logicalLink; + } + + /** + * + * @return + * The pnf + */ + @JsonProperty("pnf") + public Pnf getPnf() { + return pnf; + } + + /** + * + * @param pnf + * The pnf + */ + @JsonProperty("pnf") + public void setPnf(Pnf pnf) { + this.pnf = pnf; + } + + @JsonProperty("l3-network") + public L3Network getL3Network() { + return l3Network; + } + + @JsonProperty("l3-network") + public void setL3Network(L3Network l3Network) { + this.l3Network = l3Network; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + + @JsonProperty("service-instance") + public ServiceInstance getServiceInstance() { + return serviceInstance; + } + + @JsonProperty("service-instance") + public void setServiceInstance(ServiceInstance serviceInstance) { + this.serviceInstance = serviceInstance; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java new file mode 100644 index 000000000..265c1866c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "instance-filter" +}) +public class InstanceFilters { + + @JsonProperty("instance-filter") + private List instanceFilter = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The instanceFilter + */ + @JsonProperty("instance-filter") + public List getInstanceFilter() { + return instanceFilter; + } + + /** + * + * @param instanceFilter + * The instance-filter + */ + @JsonProperty("instance-filter") + public void setInstanceFilter(List instanceFilter) { + this.instanceFilter = instanceFilter; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java new file mode 100644 index 000000000..65350c23d --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "named-query-uuid" +}) +public class NamedQuery { + + @JsonProperty("named-query-uuid") + private String namedQueryUuid; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The namedQueryUuid + */ + @JsonProperty("named-query-uuid") + public String getNamedQueryUuid() { + return namedQueryUuid; + } + + /** + * + * @param namedQueryUuid + * The named-query-uuid + */ + @JsonProperty("named-query-uuid") + public void setNamedQueryUuid(String namedQueryUuid) { + this.namedQueryUuid = namedQueryUuid; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java new file mode 100644 index 000000000..8188acf23 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "query-parameters", + "instance-filters" +}) +public class NamedQueryData implements AAIDatum { + + @JsonProperty("query-parameters") + private QueryParameters queryParameters; + @JsonProperty("instance-filters") + private InstanceFilters instanceFilters; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The queryParameters + */ + @JsonProperty("query-parameters") + public QueryParameters getQueryParameters() { + return queryParameters; + } + + /** + * + * @param queryParameters + * The query-parameters + */ + @JsonProperty("query-parameters") + public void setQueryParameters(QueryParameters queryParameters) { + this.queryParameters = queryParameters; + } + + /** + * + * @return + * The instanceFilters + */ + @JsonProperty("instance-filters") + public InstanceFilters getInstanceFilters() { + return instanceFilters; + } + + /** + * + * @param instanceFilters + * The instance-filters + */ + @JsonProperty("instance-filters") + public void setInstanceFilters(InstanceFilters instanceFilters) { + this.instanceFilters = instanceFilters; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java new file mode 100644 index 000000000..c6ddbcbca --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "named-query" +}) +public class QueryParameters { + + @JsonProperty("named-query") + private NamedQuery namedQuery; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The namedQuery + */ + @JsonProperty("named-query") + public NamedQuery getNamedQuery() { + return namedQuery; + } + + /** + * + * @param namedQuery + * The named-query + */ + @JsonProperty("named-query") + public void setNamedQuery(NamedQuery namedQuery) { + this.namedQuery = namedQuery; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java new file mode 100644 index 000000000..ff2269a49 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.openecomp.aai.inventory.v10.*; + + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "genericVnf", + "pserver", + "complex" +}) +@XmlRootElement(name = "results") +public class Results { + + @XmlElement(name = "generic-vnf") + private GenericVnf genericVnf; + + @XmlElement(name = "complex") + private Complex complex; + + @XmlElement(name = "pserver") + private Pserver pserver; + + + @XmlElement(name = "generic-vnf") + public GenericVnf getGenericVnf () + { + return genericVnf; + } + @XmlElement(name = "generic-vnf") + public void setGenericVnf (GenericVnf genericVnf) + { + this.genericVnf = genericVnf; + } + + @Override + public String toString() + { + return " [generic-vnf = "+genericVnf+"]"; + } + @XmlElement(name = "complex") + public Complex getComplex() { + return complex; + } + @XmlElement(name = "complex") + public void setComplex(Complex complex) { + this.complex = complex; + } + @XmlElement(name = "pserver") + public Pserver getPserver() { + return pserver; + } + @XmlElement(name = "pserver") + public void setPserver(Pserver pserver) { + this.pserver = pserver; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java new file mode 100644 index 000000000..f3d509987 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "action-data", + "action-type" +}) +public class Action { + + @JsonProperty("action-data") + private List actionData = new ArrayList(); + @JsonProperty("action-type") + private String actionType; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The actionData + */ + @JsonProperty("action-data") + public List getActionData() { + return actionData; + } + + /** + * + * @param actionData + * The action-data + */ + @JsonProperty("action-data") + public void setActionData(List actionData) { + this.actionData = actionData; + } + + /** + * + * @return + * The actionType + */ + @JsonProperty("action-type") + public String getActionType() { + return actionType; + } + + /** + * + * @param actionType + * The action-type + */ + @JsonProperty("action-type") + public void setActionType(String actionType) { + this.actionType = actionType; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java new file mode 100644 index 000000000..0cd70012f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "property-name", + "property-value" +}) +public class ActionDatum { + + @JsonProperty("property-name") + private String propertyName; + @JsonProperty("property-value") + private String propertyValue; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The propertyName + */ + @JsonProperty("property-name") + public String getPropertyName() { + return propertyName; + } + + /** + * + * @param propertyName + * The property-name + */ + @JsonProperty("property-name") + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + /** + * + * @return + * The propertyValue + */ + @JsonProperty("property-value") + public String getPropertyValue() { + return propertyValue; + } + + /** + * + * @param propertyValue + * The property-value + */ + @JsonProperty("property-value") + public void setPropertyValue(String propertyValue) { + this.propertyValue = propertyValue; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java new file mode 100644 index 000000000..43f912dfa --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java @@ -0,0 +1,124 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "update-node-type", + "update-node-key", + "action" +}) +public class Update { + + @JsonProperty("update-node-type") + private String updateNodeType; + @JsonProperty("action") + private List action = new ArrayList(); + @JsonProperty("update-node-key") + private List updateNodeKey = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The updateNodeType + */ + @JsonProperty("update-node-type") + public String getUpdateNodeType() { + return updateNodeType; + } + + /** + * + * @param updateNodeType + * The update-node-type + */ + @JsonProperty("update-node-type") + public void setUpdateNodeType(String updateNodeType) { + this.updateNodeType = updateNodeType; + } + + /** + * + * @return + * The action + */ + @JsonProperty("action") + public List getAction() { + return action; + } + + /** + * + * @param action + * The action + */ + @JsonProperty("action") + public void setAction(List action) { + this.action = action; + } + + /** + * + * @return + * The updateNodeKey + */ + @JsonProperty("update-node-key") + public List getUpdateNodeKey() { + return updateNodeKey; + } + + /** + * + * @param updateNodeKey + * The update-node-key + */ + @JsonProperty("update-node-key") + public void setUpdateNodeKey(List updateNodeKey) { + this.updateNodeKey = updateNodeKey; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java new file mode 100644 index 000000000..caa1de450 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "key-name", + "key-value" +}) +public class UpdateNodeKey { + + @JsonProperty("key-name") + private String keyName; + @JsonProperty("key-value") + private String keyValue; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The keyName + */ + @JsonProperty("key-name") + public String getKeyName() { + return keyName; + } + + /** + * + * @param keyName + * The key-name + */ + @JsonProperty("key-name") + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + /** + * + * @return + * The keyValue + */ + @JsonProperty("key-value") + public String getKeyValue() { + return keyValue; + } + + /** + * + * @param keyValue + * The key-value + */ + @JsonProperty("key-value") + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIClient.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIClient.java deleted file mode 100644 index 059212031..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIClient.java +++ /dev/null @@ -1,220 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.IOException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v10.AvailabilityZone; -import org.openecomp.aai.inventory.v10.Complex; -import org.openecomp.aai.inventory.v10.CtagPool; -import org.openecomp.aai.inventory.v10.DvsSwitch; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.OamNetwork; -import org.openecomp.aai.inventory.v10.PInterface; -import org.openecomp.aai.inventory.v10.PhysicalLink; -import org.openecomp.aai.inventory.v10.Pserver; -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.aai.inventory.v10.Service; -import org.openecomp.aai.inventory.v10.ServiceInstance; -import org.openecomp.aai.inventory.v10.SitePairSet; -import org.openecomp.aai.inventory.v10.Tenant; -import org.openecomp.aai.inventory.v10.Vce; -import org.openecomp.aai.inventory.v10.VnfImage; -import org.openecomp.aai.inventory.v10.Vpe; -import org.openecomp.aai.inventory.v10.VplsPe; -import org.openecomp.aai.inventory.v10.VpnBinding; -import org.openecomp.aai.inventory.v10.Vserver; -import org.openecomp.sdnc.sli.aai.data.notify.NotifyEvent; -import org.openecomp.sdnc.sli.aai.data.v1507.VServer; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; - -public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { - - // VCE - public boolean postNetworkVceData(String vnf_id, Vce request) throws AAIServiceException; - public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException; - public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // Service Inteface - public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException; - public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance request) throws AAIServiceException; - public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException; - - // VPE -// public Vpes requestNetworkVpeList() throws AAIServiceException; - public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException; - public boolean postNetworkVpeData(String vnf_id, Vpe request) throws AAIServiceException; - public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // VServers - public Vserver requestVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver request) throws AAIServiceException; - public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException; - - public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException; - public String getTenantIdFromVserverUrl(URL url); - public String getCloudOwnerFromVserverUrl(URL url); - public String getCloudRegionFromVserverUrl(URL url); - public String getVServerIdFromVserverUrl(URL url, String tennantId); - public Vserver requestVServerDataByURL(URL url) throws AAIServiceException; - - // VPLS-PE - public VplsPe requestNetworkVplsPeData(String equipment_name) throws AAIServiceException; - public boolean postNetworkVplsPeData(String vnf_id, VplsPe request) throws AAIServiceException; - public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException; - - - // Complexes - public Complex requestNetworkComplexData(String vnf_id) throws AAIServiceException; - public boolean postNetworkComplexData(String vnf_id, Complex request) throws AAIServiceException; - public boolean deleteNetworkComplexData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // CTag Pool - public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException; - - // --------------------------------- 1507 --------------------------- - // Data Change - public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException; - - public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException; - - public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException; - - public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException; - - public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException; - - public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException; - - //OAM-Network: - public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException; - //Availability-Zone: - public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException; - //Complex: - public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException; - - - /* DELETE */ - public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException; - //OAM-Network: - public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException; - //Availability-Zone: - public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException; - //Complex: - public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException; - - // ----------------- Release 1510 ---------------------- - // // GenericVNF - public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException; - public boolean postGenericVnfData(String vnf_id, GenericVnf request) throws AAIServiceException; - public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // DvsSwitch - public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException; - public boolean postDvsSwitchData(String vnf_id, DvsSwitch request) throws AAIServiceException; - public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // PInterface - public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException; - public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException; - public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException; - - // Physical Link - public PhysicalLink requestPhysicalLinkData(String vnf_id) throws AAIServiceException; - public boolean postPhysicalLinkData(String vnf_id, PhysicalLink request) throws AAIServiceException; - public boolean deletePhysicalLinkData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // PServers - public Pserver requestPServerData(String hostname) throws AAIServiceException; - public boolean postPServerData(String hostname, Pserver server) throws AAIServiceException; - public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException; - - // L3Networks - public L3Network requestL3NetworkData(String networkId) throws AAIServiceException; - public L3Network requestL3NetworkQueryByName(String networkId) throws AAIServiceException; - public boolean postL3NetworkData(String networkId, L3Network request) throws AAIServiceException; - public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException; - - // Vpn Bindings - public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException; -// public boolean postVpnBindingData(String vpnId, VpnBinding request) throws AAIServiceException; - public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException; - - //VnfImage - public VnfImage requestVnfImageData(String vpnId) throws AAIServiceException; - public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException; - public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException; - - // UBB Notify - public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException; - - // 1512 - // Site Pair Site - public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException; - public boolean postSitePairSetData(String sitePairSetId, SitePairSet request) throws AAIServiceException; - public boolean deleteSitePairSetData(String sitePairSetId, String resourceVersion) throws AAIServiceException; - - // Services - public Service requestServiceData(String serviceId) throws AAIServiceException; - public boolean postServiceData(String serviceId, Service request) throws AAIServiceException; - public boolean deleteServiceData(String serviceId, String resourceVersion) throws AAIServiceException; - - // Node Query - 1602 - public SearchResults requestNodeQuery(String type, String entityIdentifier, String entityName) throws AAIServiceException; - public String requestDataByURL(URL url) throws AAIServiceException; -// public Object requestDataInstanceNodeQuery(String type, String vnf_name) throws AAIServiceException; - public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException; - - // // tenant - public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant request) throws AAIServiceException; -// public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; - - - public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException; - public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException; - - public void logKeyError(String keys); - - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIDeclarations.java deleted file mode 100644 index cee0847b0..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIDeclarations.java +++ /dev/null @@ -1,2045 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLDecoder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.xml.bind.annotation.XmlType; - -import org.apache.commons.lang.StringUtils; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.InventoryResponseItem; -import org.openecomp.aai.inventory.v10.InventoryResponseItems; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.LogicalLink; -import org.openecomp.aai.inventory.v10.Metadata; -import org.openecomp.aai.inventory.v10.Metadatum; -import org.openecomp.aai.inventory.v10.Pnf; -import org.openecomp.aai.inventory.v10.Relationship; -import org.openecomp.aai.inventory.v10.RelationshipData; -import org.openecomp.aai.inventory.v10.RelationshipList; -import org.openecomp.aai.inventory.v10.ResultData; -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.aai.inventory.v10.ServiceInstance; -import org.openecomp.aai.inventory.v10.Vlan; -import org.openecomp.aai.inventory.v10.Vlans; -import org.openecomp.aai.inventory.v10.Vserver; -import org.openecomp.sdnc.sli.aai.AAIService.AAIRequestExecutor; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.openecomp.sdnc.sli.aai.query.FormattedQueryResultList; -import org.openecomp.sdnc.sli.aai.query.InstanceFilter; -import org.openecomp.sdnc.sli.aai.query.InstanceFilters; -import org.openecomp.sdnc.sli.aai.query.NamedQuery; -import org.openecomp.sdnc.sli.aai.query.NamedQueryData; -import org.openecomp.sdnc.sli.aai.query.QueryParameters; -import org.openecomp.sdnc.sli.aai.query.Results; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - - -public abstract class AAIDeclarations implements AAIClient { - - public static final String TRUSTSTORE_PATH = "org.openecomp.sdnc.sli.aai.ssl.trust"; - public static final String TRUSTSTORE_PSSWD = "org.openecomp.sdnc.sli.aai.ssl.trust.psswd"; - public static final String KEYSTORE_PATH = "org.openecomp.sdnc.sli.aai.ssl.key"; - public static final String KEYSTORE_PSSWD = "org.openecomp.sdnc.sli.aai.ssl.key.psswd"; - - public static final String APPLICATION_ID = "org.openecomp.sdnc.sli.aai.application"; - - public static final String CLIENT_NAME = "org.openecomp.sdnc.sli.aai.client.name"; - public static final String CLIENT_PWWD = "org.openecomp.sdnc.sli.aai.client.psswd"; - - - public static final String CONNECTION_TIMEOUT = "connection.timeout"; - public static final String READ_TIMEOUT = "read.timeout"; - - public static final String TARGET_URI = "org.openecomp.sdnc.sli.aai.uri"; - - // Availability zones query - public static final String QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.query"; - - // Update - public static final String UPDATE_PATH = "org.openecomp.sdnc.sli.aai.update"; - - // Service instance - public static final String SVC_INSTANCE_PATH = "org.openecomp.sdnc.sli.aai.path.svcinst"; - public static final String SVC_INST_QRY_PATH = "org.openecomp.sdnc.sli.aai.path.svcinst.query"; - - // VServer - public static final String NETWORK_VSERVER_PATH = "org.openecomp.sdnc.sli.aai.path.vserver"; - - public static final String VNF_IMAGE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.vnf.image.query"; - - public static final String PARAM_SERVICE_TYPE = "org.openecomp.sdnc.sli.aai.param.service.type"; - public static final String CERTIFICATE_HOST_ERROR = "org.openecomp.sdnc.sli.aai.host.certificate.ignore"; - - // UBB Notify - public static final String UBB_NOTIFY_PATH = "org.openecomp.sdnc.sli.aai.path.notify"; - public static final String SELFLINK_AVPN = "org.openecomp.sdnc.sli.aai.notify.selflink.avpn"; - public static final String SELFLINK_FQDN = "org.openecomp.sdnc.sli.aai.notify.selflink.fqdn"; - - //Service - public static final String SERVICE_PATH = "org.openecomp.sdnc.sli.aai.path.service"; - - // P-Interfaces - public static final String P_INTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface"; - - // site-pair-sets - public static final String SITE_PAIR_SET_PATH = "org.openecomp.sdnc.sli.aai.path.site.pair.set"; - - // node query (1602) - public static final String QUERY_NODES_PATH = "org.openecomp.sdnc.sli.aai.query.nodes"; - - - protected abstract Logger getLogger(); - public abstract AAIRequestExecutor getExecutor(); - - - @Override - public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) - throws SvcLogicException { - - getLogger().debug("AAIService.query \tresource = "+resource); - - String vnfId = null; - String vnfName = null; - HashMap nameValues = keyToHashMap(key, ctx); - getLogger().debug("key = "+ nameValues.toString()); - - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - - // process data using new model - boolean useNewModelProcessing = true; - // process server query by name the old way - if(("vserver".equals(resource) || "vserver2".equals(resource))){ - if(nameValues.containsKey("vserver_name") || nameValues.containsKey("vserver-name") || nameValues.containsKey("vserver.vserver_name") || nameValues.containsKey("vserver.vserver-name")) - useNewModelProcessing = false; - } - if("generic-vnf".equals(resource)){ - if(nameValues.containsKey("vnf_name") || nameValues.containsKey("vnf-name") || nameValues.containsKey("generic_vnf.vnf_name") || nameValues.containsKey("generic-vnf.vnf-name")) - useNewModelProcessing = false; - } - - // process data using new model - if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { - - try { - return newModelQuery(resource, localOnly, select, key, prefix, orderBy, ctx); - } catch (Exception exc) { - getLogger().warn("Failed query - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - - ObjectMapper mapper = AAIService.getObjectMapper(); - Map attributes = new HashMap(); - - String modifier = null; - - if(resource.contains(":")) { - String[] tokens = resource.split(":"); - resource = tokens[0]; - if(tokens.length > 1) { - modifier = tokens[1]; - } - } - - resource = resource.toLowerCase().replace("-", "_"); - - try { - - switch(resource) { - case "generic_vnf": - vnfId = nameValues.get("vnf_id"); - if(nameValues.containsKey("vnf_id")) - vnfId = nameValues.get("vnf_id"); - else if(nameValues.containsKey("generic_vnf.vnf_name")) - vnfId = nameValues.get("generic_vnf.vserver_name"); - - if(nameValues.containsKey("vnf_name")) - vnfName = nameValues.get("vnf_name"); - else if(nameValues.containsKey("generic_vnf.vnf_name")) - vnfName = nameValues.get("generic_vnf.vnf_name"); - - if(vnfId != null && !vnfId.isEmpty()) { - // at this point of the project this part should not be executed - vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); - GenericVnf vnf = this.requestGenericVnfData(vnfId); - if(vnf == null) { - return QueryStatus.NOT_FOUND; - } - - attributes = mapper.convertValue(vnf, attributes.getClass()); - } else if(vnfName != null && !vnfName.isEmpty()) { - try { - vnfName = vnfName.trim().replace("'", "").replace("$", "").replace("'", ""); - GenericVnf vnf = this.requestGenericVnfeNodeQuery(vnfName); - if(vnf == null) { - return QueryStatus.NOT_FOUND; - } - vnfId=vnf.getVnfId(); - nameValues.put("vnf_id", vnfId); - attributes = mapper.convertValue(vnf, attributes.getClass()); - } catch (AAIServiceException exc) { - int errorCode = exc.getReturnCode(); - switch(errorCode) { - case 400: - case 404: - case 412: - break; - default: - getLogger().warn("Caught exception trying to refresh generic VNF", exc); - } - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - if(errorCode >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); - } - return QueryStatus.FAILURE; - } - } else { - getLogger().warn("No arguments are available to process generic VNF"); - return QueryStatus.FAILURE; - } - break; - case "vserver": - case "vserver2": - String vserverName = null; - if(nameValues.containsKey("vserver_name")) - vserverName = nameValues.get("vserver_name"); - else if(nameValues.containsKey("vserver.vserver_name")) - vserverName = nameValues.get("vserver.vserver_name"); - - String vserverId = null; - if(nameValues.containsKey("vserver_id")) - vserverId = nameValues.get("vserver_id"); - if(nameValues.containsKey("vserver.vserver_id")) - vserverId = nameValues.get("vserver.vserver_id"); - String tenantId = nameValues.get("teannt_id"); - - if(vserverName != null) vserverName = vserverName.trim().replace("'", "").replace("$", "").replace("'", ""); - if(vserverId != null) vserverId = vserverId.trim().replace("'", "").replace("$", "").replace("'", ""); - if(tenantId != null) tenantId = tenantId.trim().replace("'", "").replace("$", "").replace("'", ""); - - if (vserverName != null) { - URL vserverUrl = null; - try { - vserverUrl = this.requestVserverURLNodeQuery(vserverName); - } catch (AAIServiceException aaiexc) { - ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); - if (aaiexc.getReturnCode() >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if (aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - } - if (vserverUrl == null) { - return QueryStatus.NOT_FOUND; - } - - tenantId = getTenantIdFromVserverUrl(vserverUrl); - String cloudOwner = getCloudOwnerFromVserverUrl(vserverUrl); - String cloudRegionId = getCloudRegionFromVserverUrl(vserverUrl); - - Vserver vserver = null; - try { - vserver = this.requestVServerDataByURL(vserverUrl); - } catch (AAIServiceException aaiexc) { - ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); - if (aaiexc.getReturnCode() >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if (aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - } - if (vserver == null) { - return QueryStatus.NOT_FOUND; - } - attributes = mapper.convertValue(vserver, attributes.getClass()); - if (!attributes.containsKey("tenant-id") && tenantId != null) { - attributes.put("tenant-id", tenantId); - } - if (!attributes.containsKey("cloud-owner") && cloudOwner != null) { - attributes.put("cloud-owner", cloudOwner); - } - if (!attributes.containsKey("cloud-region-id") && cloudRegionId != null) { - attributes.put("cloud-region-id", cloudRegionId); - } - } else if (vserverId != null && tenantId != null) { - Vserver vserver = this.requestVServerData(tenantId, vserverId, "att-aic", "AAIAIC25"); - if(vserver == null) { - return QueryStatus.NOT_FOUND; - } - attributes = mapper.convertValue(vserver, attributes.getClass()); - if(!attributes.containsKey("tenant-id") && tenantId != null){ - attributes.put("tenant-id", tenantId); - } - } else { - return QueryStatus.FAILURE; - } - break; - - default: - return QueryStatus.FAILURE; - } - - QueryStatus retval = QueryStatus.SUCCESS; - - if (attributes == null || attributes.isEmpty()) { - retval = QueryStatus.NOT_FOUND; - getLogger().debug("No data found"); - } else { - if (ctx != null) { - if (prefix != null) { - ArrayList keys = new ArrayList(attributes.keySet()); - - int numCols = keys.size(); - - for (int i = 0; i < numCols; i++) { - String colValue = null; - String colName = keys.get(i); - Object object = attributes.get(colName); - - if(object != null && object instanceof String) { - colValue = (String)object; - - if (prefix != null) { - getLogger().debug("Setting "+prefix + "." + colName.replaceAll("_", "-")+" = "+ colValue); - ctx.setAttribute(prefix + "." + colName.replaceAll("_", "-"), colValue); - } else { - getLogger().debug("Setting " + colValue.replaceAll("_", "-")+" = "+colValue); - ctx.setAttribute(colValue.replaceAll("_", "-"), colValue); - } - } else if(object != null && object instanceof Map) { - if(colName.equals(modifier) || colName.equals("relationship-list")){ - String localNodifier = modifier; - if(localNodifier == null) - localNodifier = "relationship-list"; - Map properties = (Map)object; - writeMap(properties, prefix+"."+localNodifier, ctx); - } - } - } - } - } - } - getLogger().debug("Query - returning " + retval); - return (retval); - - } catch (Exception exc) { - getLogger().warn("Failed query - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - -// return QueryStatus.SUCCESS; - } - - private boolean checkOldFormat(String resource, HashMap nameValues) { - - switch(resource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - return true; - } - if(resource.contains(":")) { - resource = resource.substring(0, resource.indexOf(":")); - } - - Set keys = nameValues.keySet(); - for(String key : keys) { - if(!key.contains(".")) { - if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key)) - continue; - else { - getLogger().warn(String.format("key %s is incompatible with resource type '%s'", key, resource)); - return false; - } - } - } - return true; - } - - public void writeMap(Map properties, String prefix, SvcLogicContext ctx) { - Set mapKeys = properties.keySet(); - - for(String mapKey : mapKeys) { - Object entity = properties.get(mapKey); - if(entity instanceof ArrayList) { - writeList((ArrayList)entity, prefix + "." + mapKey, ctx); - } else - if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { - ctx.setAttribute(prefix + "." + mapKey, entity.toString()); - getLogger().debug(prefix + "." + mapKey + " : " + entity.toString()); - } else if(entity instanceof Map) { - String localPrefix = prefix; - if(mapKey != null) { - localPrefix = String.format("%s.%s", prefix, mapKey); - } - writeMap( (Map)entity, localPrefix, ctx); - } - } - } - - private void writeList(ArrayList list, String prefix, SvcLogicContext ctx) { - for(int i = 0; i < list.size(); i++ ) { - Object entity = list.get(i); - if(entity instanceof Map) { - writeMap( (Map)entity, prefix + "[" + i + "]", ctx); - } else - if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { - ctx.setAttribute(prefix, entity.toString()); - getLogger().debug(prefix + " : " + entity.toString()); - } - } - - if(list.size() > 0) { - ctx.setAttribute(prefix + "_length", Integer.toString(list.size())); - getLogger().debug(prefix + "_length" + " : " + Integer.toString(list.size())); - } - } - - @Override - public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) - throws SvcLogicException { - - getLogger().debug("AAIService.save\tresource="+resource); - HashMap nameValues = keyToHashMap(key, ctx); - - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - getLogger().warn("AAIService.save has unspecified resource"); - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - // keys passed - getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); - - // process params - if(params.containsKey("prefix")) { - Map tmpParams = ctxGetBeginsWith(ctx, params.get("prefix")); - if(!tmpParams.isEmpty()) { - params.putAll(tmpParams); -// params.remove("prefix"); - } - } - // params passed - getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); - - boolean useNewModelProcessing = true; - // process server query by name the old way - if(("vserver".equals(resource) || "vserver2".equals(resource))){ - if(nameValues.containsKey("vserver-name")) { - useNewModelProcessing = false; - } - - if(!params.containsKey("vserver-selflink")) { - - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - URL path = null; - try { - request.processRequestPathValues(nameValues); - path = request.getRequestUrl("GET", null); - params.put("vserver-selflink", path.toString()); - } catch (UnsupportedEncodingException | MalformedURLException e) { - // TODO : Fix this - params.put("vserver-selflink", "/vserver"); - } - } - } - - // process data using new model - if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { - - try { - if(!resource.contains(":")){ - return newModelSave(resource, force, key, params, prefix, ctx); - } else { - String[] tokens = resource.split(":"); - String localResource = tokens[0]; - String dependency = tokens[1]; - - AAIDatum instance = newModelObjectRequest( localResource, nameValues, prefix, ctx); - if(instance == null) { - return QueryStatus.NOT_FOUND; - } - - switch(dependency){ - case "relationship-list": - newModelProcessRelationshipList(instance, params, prefix, ctx); - break; - } - // create a method to update relationship-list - AAIRequest request = AAIRequest.createRequest(localResource, nameValues); - request.setRequestObject(instance); - request.processRequestPathValues(nameValues); - - getExecutor().post(request); - getLogger().debug("Save relationship list - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - } catch (Exception exc) { - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - if(exc instanceof AAIServiceException) { - AAIServiceException aaiexc = (AAIServiceException)exc; - if(aaiexc.getReturnCode() >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if(aaiexc.getReturnCode() == 404) { - return QueryStatus.NOT_FOUND; - } - } - getLogger().warn("Failed save() - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } else { - String reSource = resource.toLowerCase().replace("-", "_"); - String vnfId = null; - - try { - switch(reSource) { - case "generic_vnf": - case "generic-vnf": - vnfId = nameValues.get("vnf_id"); - if(vnfId == null) { - getLogger().debug("Save(generic-vnf) with no vnf-id specified. Returning FAILURE"); - return QueryStatus.FAILURE; - } - vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); - GenericVnf vnf = this.requestGenericVnfData(vnfId); - String status = params.get("prov-status"); - boolean updated = false; - if(status != null && !status.isEmpty()) { - vnf.setProvStatus(status); - } - if(updated) { - this.postGenericVnfData(vnfId, vnf); - } - break; - case "vpe": - return update( resource, key, params, prefix, ctx) ; - - default: - getLogger().debug("Save() executing default path - returning FAILURE"); - return QueryStatus.FAILURE; - } - } catch (Exception exc) { - getLogger().warn("Failed save - returning FAILURE", exc); - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - return QueryStatus.FAILURE; - } - } - - getLogger().debug("Save - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - - @Override - public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { - - resource = resource.toLowerCase(); - HashMap nameValues = keyToHashMap(key, ctx); - getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - - getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); - - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - request = new UpdateRequest(request, params); - - String[] arguments = request.getArgsList(); - for(String name : arguments) { - String modifiedKey = name.replaceAll("-", "_"); - if(nameValues.containsKey(modifiedKey)) { - String argValue = nameValues.get(modifiedKey); - if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); - request.addRequestProperty(name, argValue); - } - } - - try { - QueryStatus retval = QueryStatus.SUCCESS; - - retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); - - if(retval == null || retval != QueryStatus.SUCCESS) { - return retval; - } - - String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); - if(resourceVersion == null) { - return QueryStatus.NOT_FOUND; - } - params.put("resource-version", resourceVersion); - - request.processRequestPathValues(nameValues); - getExecutor().patch(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - } catch (Exception exc) { - getLogger().warn("Failed update - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - - getLogger().debug("Update - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - - @Override - public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { - getLogger().debug("AAIService.delete\tresource="+resource); - HashMap nameValues = keyToHashMap(key, ctx); - getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); - - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", "aaiData"), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - ctx.setAttribute(String.format("%s.error.message", "tmpDelete"), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - - if(AAIRequest.createRequest(resource, nameValues) != null) { - if(resource.contains(":")) { - return processDeleteRelationshipList(resource, key, ctx, nameValues); - } - - - try { - QueryStatus retval = QueryStatus.SUCCESS; - - retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); - - if(retval == null || retval != QueryStatus.SUCCESS) { - return retval; - } - - String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); - if(resourceVersion == null) { - return QueryStatus.NOT_FOUND; - } - - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - request.processRequestPathValues(nameValues); - - if(getExecutor().delete(request, resourceVersion)) { - return QueryStatus.SUCCESS; - } - } catch(AAIServiceException aaiexc) { - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - - } catch (Exception exc) { - getLogger().warn("requestGenericVnfData", exc); - return QueryStatus.FAILURE; - } - - } catch (Exception exc) { - getLogger().warn("Failed delete - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } else { - String resoourceName = resource; - String identifier = null; - - if(resoourceName == null) - return QueryStatus.FAILURE; - - if(resoourceName.contains(":")) { - String[] tokens = resoourceName.split(":"); - if(tokens != null && tokens.length > 0) { - resoourceName = tokens[0]; - identifier = tokens[1]; - } - } - if("relationship-list".equals(identifier) || "relationshipList".equals(identifier)) { -// RelationshipRequest relationshipRequest = new RelationshipRequest(); - if("generic-vnf".equals(resoourceName)){ - String vnfId = nameValues.get("vnf_id"); - String relatedTo = nameValues.get("related_to"); - vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); - relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); - - GenericVnf vnf; - try { - vnf = this.requestGenericVnfData(vnfId); - if(vnf == null) - return QueryStatus.NOT_FOUND; - } catch (AAIServiceException exc) { - getLogger().warn("Failed delete - returning NOT_FOUND", exc); - return QueryStatus.NOT_FOUND; - } - boolean itemRemoved = false; - RelationshipList relationshipList = vnf.getRelationshipList(); - List relationships = relationshipList.getRelationship(); - List iterableList = new LinkedList(relationships); - for(Relationship relationship : iterableList) { - if(relationship.getRelatedTo().equals(relatedTo)) { - relationships.remove(relationship); - itemRemoved = true; - } - } - - if(!itemRemoved) - return QueryStatus.NOT_FOUND; - -// AAIRequest masterRequest = new GenericVnfRequest(); -// masterRequest.addRequestProperty(GenericVnfRequest.VNF_ID, vnfId); -// relationshipRequest.addMasterRequest(masterRequest); -// Map attributes = objectToProperties(vnf); -// try { -// Boolean result = getExecutor().delete(relationshipRequest, attributes.get(AAIRequest.RESOURCE_VERSION)); -// } catch (AAIServiceException e) { -// return QueryStatus.FAILURE; -// } - - try { - this.postGenericVnfData(vnf.getVnfId(), vnf); - } catch (AAIServiceException exc) { - if(exc.getReturnCode() == 404){ - return QueryStatus.NOT_FOUND; - } else { - getLogger().warn("Failed delete - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - return QueryStatus.SUCCESS; - } - } - } - return QueryStatus.FAILURE; - } - - @Override - public QueryStatus exists(String resource, String key, String prefix, SvcLogicContext ctx) throws SvcLogicException { - return query(resource, false, null, key, prefix, null, ctx); - } - - @Override - public QueryStatus isAvailable(String arg0, String arg1, String arg2, SvcLogicContext arg3) - throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.isAvailable() has not been implemented yet"); - } - - @Override - public QueryStatus notify(String resource, String action, String key, SvcLogicContext ctx) throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.notify() has not been implemented yet"); - } - -// @Override - public QueryStatus newModelQuery(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) { - - Object response = null; - QueryStatus retval = QueryStatus.SUCCESS; - String modifier = null; - - HashMap nameValues = keyToHashMap(key, ctx); - if(resource.contains(":")) { - modifier = resource.split(":")[1]; - } - - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - Map params = new HashMap(); - - request.processRequestPathValues(nameValues); - if(nameValues.containsKey("prefix")){ - Map tmpParams = ctxGetBeginsWith(ctx, nameValues.get("prefix")); - if(!tmpParams.isEmpty()) { - params.putAll(tmpParams); - } - if("named-query".equals(resource)) - request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params)); - } - String rv = getExecutor().get(request); - - retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, modifier); - - } catch(AAIServiceException aaiexc) { - int errorCode = aaiexc.getReturnCode(); - ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); - if(errorCode >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - - return QueryStatus.FAILURE; - } catch (Exception exc) { - getLogger().warn("requestGenericVnfData", exc); - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - return QueryStatus.FAILURE; - } - - return retval; - } - - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException - { - Object response = null; - - if(rv == null) { - return QueryStatus.NOT_FOUND; - } - - response = request.jsonStringToObject(rv); - if(response == null) { - return QueryStatus.NOT_FOUND; - } - - if("generic-query".equals(resource)) { - SearchResults rd = SearchResults.class.cast(response); - List rdList = rd.getResultData(); - if(rdList == null || rdList.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - ResultData rDatum = rdList.get(0); - nameValues.put("selflink", rDatum.getResourceLink()); - AAIRequest req2 = AAIRequest.createRequest(rDatum.getResourceType(), nameValues); - req2.processRequestPathValues(nameValues); - rv = getExecutor().get(req2); - if(rv == null) { - return QueryStatus.NOT_FOUND; - } - - response = req2.jsonStringToObject(rv); - if(response == null) { - return QueryStatus.NOT_FOUND; - } - } - - if("named-query".equals(resource)) { - InventoryResponseItems rd = InventoryResponseItems.class.cast(response); - List iRIlist = rd.getInventoryResponseItem(); - if(iRIlist == null || iRIlist.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - } - - if("nodes-query".equals(resource)) { - SearchResults rd = SearchResults.class.cast(response); - List rdList = rd.getResultData(); - if(rdList == null || rdList.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - ResultData rDatum = rdList.get(0); - response = rDatum; - } - - if("formatted-query".equals(resource)) { - FormattedQueryResultList rd = FormattedQueryResultList.class.cast(response); - List iRIlist = rd.getResults(); - if(iRIlist == null || iRIlist.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - } - - String preFix = null; - if(prefix == null || prefix.isEmpty()) { - preFix = ""; - } else { - preFix = prefix + "."; - } - - Map props = objectToProperties(response); - Set keys = props.keySet(); - for(String theKey: keys) { - if(getLogger().isTraceEnabled()) - getLogger().trace(theKey); - - Object value = props.get(theKey); - if(value == null) - continue; - Object type = value.getClass(); - if(value instanceof String) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - if(value instanceof Boolean) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - if(value instanceof Integer) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - if(value instanceof Long) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - - if(value instanceof ArrayList) { - ArrayList array = ArrayList.class.cast(value); - for(int i = 0; i < array.size(); i++) { -// ctx.setAttribute(String.format("%s%s[%d]", preFix, theKey, i), array.get(i).toString()); - writeList(array, String.format("%s.%s", prefix, theKey), ctx); - } - continue; - } - - if("relationship-list".equals(theKey)){ - Map relationshipList = (Map)value; - // we are interested in seeing just the selected relationship - if(theKey.equals(modifier)) { - List relationships = (List)relationshipList.get("relationship"); - if(relationships != null && !relationships.isEmpty()) { - - List newRelationships = new LinkedList(); - newRelationships.addAll(relationships); - - for(Object obj : newRelationships){ - if(obj instanceof Map) { - Map relProperties = (Map)obj; - if(relProperties.containsKey("related-to")) { - Object relPropsRelatedTo = relProperties.get("related-to"); - - String relatedTo = nameValues.get("related_to"); - if(relatedTo != null) { - relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); - if(!relatedTo.equals(relPropsRelatedTo)) { - relationships.remove(relProperties); - } - continue; - } else { - continue; - } - } - } - } - } - } - writeMap(relationshipList, String.format("%s.%s", prefix, theKey), ctx); - continue; - } - - if(value instanceof Map) { - Map subnetsList = (Map)value; - writeMap(subnetsList, String.format("%s.%s", prefix, theKey), ctx); - continue; - } - - } - return QueryStatus.SUCCESS; - } - - - public QueryStatus newModelBackupRequest(String resource, Map params, String prefix, SvcLogicContext ctx) { - - QueryStatus retval = QueryStatus.SUCCESS; - HashMap nameValues = new HashMap(); - - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - boolean argsFound = false; - String[] arguments = request.getArgsList(); - for(String name : arguments) { - String tmpName = name.replaceAll("-", "_"); - String value = params.get(tmpName); - if(value != null && !value.isEmpty()) { - value = value.trim().replace("'", "").replace("$", "").replace("'", ""); - request.addRequestProperty(name, value); - argsFound = true; - } - } - if(!argsFound) { - getLogger().warn("No arguments were found. Terminating backup request."); - return QueryStatus.FAILURE; - } - - String rv = getExecutor().get(request); - ctx.setAttribute(prefix, rv); - } catch(AAIServiceException aaiexc) { - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - - return QueryStatus.FAILURE; - } catch (Exception exc) { - getLogger().warn("newModelBackupRequest", exc); - return QueryStatus.FAILURE; - } - - return retval; - } - - public AAIDatum newModelObjectRequest(String resource, Map params, String prefix, SvcLogicContext ctx) - throws AAIServiceException { - - AAIDatum response = null; - - try { - AAIRequest request = AAIRequest.createRequest(resource, params); - if(request == null) { - return null; - } - - request.processRequestPathValues(params); - String rv = getExecutor().get(request); - response = request.jsonStringToObject(rv); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - getLogger().warn("newModelBackupRequest", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public QueryStatus release(String arg0, String arg1, SvcLogicContext arg2) throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.release() has not been implemented yet"); - } - - @Override - public QueryStatus reserve(String arg0, String arg1, String arg2, String arg3, SvcLogicContext arg4) - throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.reserve() has not been implemented yet"); - } - - private QueryStatus newModelSave(String resource, boolean force, String key, Map parms, String prefix, SvcLogicContext ctx) { - getLogger().debug("Executing newModelSave for resource : " + resource); - HashMap nameValues = keyToHashMap(key, ctx); - - try { - ArrayList subResources = new ArrayList(); - Set set = parms.keySet(); - Map setters = new HashMap(); - Map getters = new HashMap(); - - // 1. find class - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = request.getModelClass(); - getLogger().debug(resourceClass.getName()); - AAIDatum instance = resourceClass.newInstance(); - - { - Annotation[] annotations = resourceClass.getAnnotations(); - for(Annotation annotation : annotations) { - Class anotationType = annotation.annotationType(); - String annotationName = anotationType.getName(); -// if("com.fasterxml.jackson.annotation.JsonPropertyOrder".equals(annotationName)){ - - // 2. find string property setters and getters for the lists - if("javax.xml.bind.annotation.XmlType".equals(annotationName)){ - XmlType order = (XmlType)annotation; - String[] values = order.propOrder(); - for(String value : values) { - String id = camelCaseToDashedString(value); - Field field = resourceClass.getDeclaredField(value); - Class type = field.getType(); - Method setter = null; - try { - setter = resourceClass.getMethod("set"+StringUtils.capitalize(value), type); - if(type.getName().startsWith("java.lang") || "boolean".equals(type.getName()) || "long".equals(type.getName())) { - try { - setter.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = parms.get(id); - - if(arglist[0] != null) { - if(!type.getName().equals("java.lang.String")) { -// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); - if("boolean".equals(type.getName())) { - arglist[0] = valueOf(Boolean.class, parms.get(id)); - } else if("long".equals(type.getName())) { - arglist[0] = valueOf(Long.class, parms.get(id)); - } else { - arglist[0] = valueOf(type, parms.get(id)); - } - } - Object o = setter.invoke(instance, arglist); - } - set.remove(id); - - } catch (Exception x) { - Throwable cause = x.getCause(); - getLogger().warn("Failed process for " + resourceClass.getName(), x); - } - } else if(type.getName().equals("java.util.List")) { - List newValues = new ArrayList(); - String length = id+"_length"; - if(!parms.isEmpty() && parms.containsKey(length)) { - String tmp = parms.get(length).toString(); - int count = Integer.valueOf(tmp); - for(int i=0; i relationshipKeys = new TreeSet(); - Set vlansKeys = new TreeSet(); - Set metadataKeys = new TreeSet(); - - for(String attribute : set) { - String value = parms.get(attribute); - if(attribute.startsWith("relationship-list")) { - relationshipKeys.add(attribute); - } else if(attribute.startsWith("vlans")) { - vlansKeys.add(attribute); - } else if(attribute.startsWith("metadata")) { - metadataKeys.add(attribute); - } - } - // 3. find list property getters - for(String attribute : set) { - String value = parms.get(attribute); - Method method = getters.get(attribute); - if(method != null) { - try { - method.setAccessible(true); - Object arglist[] = new Object[0]; -// arglist[0] = value; - Class[] types = method.getParameterTypes(); - if(types.length == 0){ - Object o = method.invoke(instance, arglist); - if(o instanceof ArrayList) { - ArrayList values = (ArrayList)o; -// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); - value = value.replace("[", "").replace("]", ""); - List items = Arrays.asList(value.split("\\s*,\\s*")); - for(String s : items) { - values.add(s.trim()); - } - } - } - } catch (Exception x) { - Throwable cause = x.getCause(); - getLogger().warn("Failed process for " + resourceClass.getName(), x); - } - } - } - // 4. Process Relationships - // add relationship list - if( (subResources.contains("relationship-list") || subResources.contains("relationshipList")) && !relationshipKeys.isEmpty()) { - RelationshipList relationshipList = null; - Object obj = null; - Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - if(getRelationshipListMethod != null){ - try { - getRelationshipListMethod.setAccessible(true); - obj = getRelationshipListMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof RelationshipList){ - relationshipList = (RelationshipList)obj; - } else { - relationshipList = new RelationshipList(); - Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); - if(setRelationshipListMethod != null){ - try { - setRelationshipListMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = relationshipList; - - obj = setRelationshipListMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - List relationships = relationshipList.getRelationship(); - - int i = 0; - while(true){ - int j = 0; - String searchKey = "relationship-list.relationship[" + i + "].related-to"; - if(!parms.containsKey(searchKey)) - break; - Relationship relationship = new Relationship(); - relationships.add(relationship); - - String relatedTo = parms.get(searchKey); - relationship.setRelatedTo(relatedTo); - - List relData = relationship.getRelationshipData(); -// if(relData == null) { -// relData = new LinkedList(); -// relationship.setRelationshipData(relData); -// } - - while(true) { - String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; - String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; - if(!parms.containsKey(searchRelationshipKey)) - break; - - RelationshipData relDatum = new RelationshipData(); - relDatum.setRelationshipKey(parms.get(searchRelationshipKey)); - relDatum.setRelationshipValue(parms.get(searchRelationshipValue)); - relData.add(relDatum); - j++; - } - - i++; - } - } - - // 4. vlans - if(subResources.contains("vlans") && !vlansKeys.isEmpty()) { - Object obj = null; - Vlans vlanList = null; - Method getVLansMethod = resourceClass.getMethod("getVlans"); - if(getVLansMethod != null){ - try { - getVLansMethod.setAccessible(true); - obj = getVLansMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof Vlans){ - vlanList = (Vlans)obj; - } else { - vlanList = new Vlans(); - Method setVlansMethod = resourceClass.getMethod("setVlans", Vlans.class); - if(setVlansMethod != null){ - try { - setVlansMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = vlanList; - - obj = setVlansMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - int i = 0; - while(true){ - String searchKey = "vlans.vlan[" + i + "].vlan-interface"; - if(!parms.containsKey(searchKey)) - break; - - String vlanInterface = parms.get("vlans.vlan[" + i + "].vlan-interface"); - String vlanIdInner = parms.get("vlans.vlan[" + i + "].vlan-id-inner"); - String vlanIdOute = parms.get("vlans.vlan[" + i + "].vlan-id-outer"); - String speedValue = parms.get("vlans.vlan[" + i + "].speed-value"); - String speedUnits = parms.get("vlans.vlan[" + i + "].speed-units"); - - Vlan vlan = new Vlan(); - vlan.setVlanInterface(vlanInterface); - - if(vlanIdInner != null) { - Long iVlanIdInner = Long.parseLong(vlanIdInner); - vlan.setVlanIdInner(iVlanIdInner); - } - - if(vlanIdOute != null) { - Long iVlanIdOuter = Long.parseLong(vlanIdOute); - vlan.setVlanIdOuter(iVlanIdOuter); - } - - if(speedValue != null) { - vlan.setSpeedValue(speedValue); - vlan.setSpeedUnits(speedUnits); - } - - vlanList.getVlan().add(vlan); - i++; - } - } - - // 5. metadata - if(subResources.contains("metadata") && !metadataKeys.isEmpty()) { - Object obj = null; - Metadata metadataList = null; - Method getMetadataMethod = resourceClass.getMethod("getMetadata"); - if(getMetadataMethod != null){ - try { - getMetadataMethod.setAccessible(true); - obj = getMetadataMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof Metadata){ - metadataList = (Metadata)obj; - } else { - metadataList = new Metadata(); - Method setMetadataMethod = resourceClass.getMethod("setMetadata", Metadata.class); - if(setMetadataMethod != null){ - try { - setMetadataMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = metadataList; - - obj = setMetadataMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - if(metadataList.getMetadatum() == null) { -// metadataList.setMetadatum(new ArrayList()); - } - - // process data - int i = 0; - while(true){ - String metaKey = "metadata.metadatum[" + i + "].meta-key"; - if(!parms.containsKey(metaKey)) - break; - - String metaValue = parms.get("metadata.metadatum[" + i + "].meta-value"); - - Metadatum vlan = new Metadatum(); - vlan.setMetaname(metaKey); - vlan.setMetaval(metaValue); - - metadataList.getMetadatum().add(vlan); - i++; - } - - } - - - // 6. Prepare AAI request - String[] args = request.getArgsList(); - for(String arg : args) { - String modifiedKey = arg.replaceAll("-", "_"); - if(nameValues.containsKey(modifiedKey)) { - String argValue = nameValues.get(modifiedKey); - if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); - request.addRequestProperty(arg, argValue); - } - } - - request.processRequestPathValues(nameValues); - request.setRequestObject(instance); - Object response = getExecutor().post(request); - if(request.expectsDataFromPUTRequest()){ - if(response != null && response instanceof String) { - String rv = response.toString(); - QueryStatus retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, null); - getLogger().debug("newModelSave - returning " + retval.toString()); - return retval; - } - } - - } catch(AAIServiceException exc){ - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - int returnCode = exc.getReturnCode(); - if(returnCode >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); - } - - if(returnCode == 400 || returnCode == 412) - return QueryStatus.FAILURE; - else if(returnCode == 404) - return QueryStatus.NOT_FOUND; - else { - getLogger().warn("Failed newModelSave - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } catch(Exception exc){ - getLogger().warn("Failed newModelSave - returning FAILURE", exc); - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - return QueryStatus.FAILURE; - } - - getLogger().debug("newModelSave - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - - private static final String regex = "([A-Z][a-z,0-9]+)"; - private static final String replacement = "-$1"; - - private String camelCaseToDashedString(String propOrder) { - return propOrder.replaceAll(regex, replacement).toLowerCase(); - } - - private QueryStatus newModelProcessRelationshipList(Object instance, Map params, String prefix, SvcLogicContext ctx) throws Exception { - - Class resourceClass = instance.getClass(); - - Set relationshipKeys = new TreeSet(); - - Set set = params.keySet(); - - for(String attribute : set) { - String value = params.get(attribute); - - if(attribute.startsWith("relationship-list")) { - relationshipKeys.add(attribute); - } - } - - // 3. Process Relationships - // add relationship list - if(!relationshipKeys.isEmpty()) { - RelationshipList relationshipList = null; - Object obj = null; - Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - if(getRelationshipListMethod != null){ - try { - getRelationshipListMethod.setAccessible(true); - obj = getRelationshipListMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof RelationshipList){ - relationshipList = (RelationshipList)obj; - } else { - relationshipList = new RelationshipList(); - Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); - if(setRelationshipListMethod != null){ - try { - setRelationshipListMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = relationshipList; - - obj = setRelationshipListMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - boolean createdNewRelationships = false; - List relationships = relationshipList.getRelationship(); - if(relationships == null) { - relationships = new ArrayList(); - createdNewRelationships = true; - } - - int i = 0; - int j = 0; - while(true){ - String searchKey = "relationship-list.relationship[" + i + "].related-to"; - if(!params.containsKey(searchKey)) - break; - - j = 0; - String relatedTo = params.get(searchKey); - String relatedLinkKey = "relationship-list.relationship[" + i + "].related-link"; - String relatedLink = null; - if(params.containsKey(relatedLinkKey)) { - relatedLink = params.get(relatedLinkKey); - } - - Relationship relationship = new Relationship(); - relationships.add(relationship); - relationship.setRelatedTo(relatedTo); - if(relatedLink != null) { - relationship.setRelatedLink(relatedLink); - } else { - List relData = relationship.getRelationshipData(); - - while(true) { - String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; - String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; - if(!params.containsKey(searchRelationshipKey)) - break; - - RelationshipData relDatum = new RelationshipData(); - relDatum.setRelationshipKey(params.get(searchRelationshipKey)); - relDatum.setRelationshipValue(params.get(searchRelationshipValue)); - relData.add(relDatum); - j++; - } - } - - - i++; - } - } - - return QueryStatus.SUCCESS; - } - - private Relationship findRelationship(List relationships, String relatedTo) { - if(relatedTo == null) - return null; - - for(Relationship relationship : relationships) { - if(relationship.getRelatedTo().equals(relatedTo)){ - return relationship; - } - } - return null; - } - - protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { - if (key == null) { - return (null); - } - - getLogger().debug("Converting key [" + key + "] to where clause"); - - if (key.startsWith("'") && key.endsWith("'")) { - key = key.substring(1, key.length() - 1); - - getLogger().debug("Stripped outer single quotes - key is now [" + key + "]"); - } - - String[] keyTerms = key.split("\\s+"); - - StringBuffer whereBuff = new StringBuffer(); - String term1 = null; - String op = null; - String term2 = null; - HashMap results = new HashMap(); - - for (int i = 0; i < keyTerms.length; i++) { - if (term1 == null) { - if ("and".equalsIgnoreCase(keyTerms[i]) - || "or".equalsIgnoreCase(keyTerms[i])) { - // Skip over ADD/OR - } else { - term1 = resolveTerm(keyTerms[i], ctx); - } - } else if (op == null) { - if ("==".equals(keyTerms[i])) { - op = "="; - } else { - op = keyTerms[i]; - } - } else { - term2 = resolveTerm(keyTerms[i], ctx); - term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); - results.put(term1, term2); - - term1 = null; - op = null; - term2 = null; - } - } - - return (results); - } - - private String resolveTerm(String term, SvcLogicContext ctx) { - if (term == null) { - return (null); - } - - getLogger().debug("resolveTerm: term is " + term); - - if (term.startsWith("$") && (ctx != null)) { - // Resolve any index variables. - - return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); - } else if (term.startsWith("'") || term.startsWith("\"")) { - return (term); - } else { - return (term.replaceAll("-", "_")); - - } - - } - - private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { - - if (ctxVarName.indexOf('[') == -1) { - // Ctx variable contains no arrays - return (ctx.getAttribute(ctxVarName)); - } - - // Resolve any array references - StringBuffer sbuff = new StringBuffer(); - String[] ctxVarParts = ctxVarName.split("\\["); - sbuff.append(ctxVarParts[0]); - for (int i = 1; i < ctxVarParts.length; i++) { - if (ctxVarParts[i].startsWith("$")) { - int endBracketLoc = ctxVarParts[i].indexOf("]"); - if (endBracketLoc == -1) { - // Missing end bracket ... give up parsing - getLogger().warn("Variable reference " + ctxVarName - + " seems to be missing a ']'"); - return (ctx.getAttribute(ctxVarName)); - } - - String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); - String remainder = ctxVarParts[i].substring(endBracketLoc); - - sbuff.append("["); - sbuff.append(ctx.getAttribute(idxVarName)); - sbuff.append(remainder); - - } else { - // Index is not a variable reference - sbuff.append("["); - sbuff.append(ctxVarParts[i]); - } - } - - return (ctx.getAttribute(sbuff.toString())); - } - - - public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException { - String resource = params.get("resource").toLowerCase(); - String prefix = params.get("data-key"); - - HashMap nameValues = new HashMap(); - if(AAIRequest.createRequest(resource, nameValues) != null) { - - try { - return newModelBackupRequest(resource, params, prefix, ctx); - } catch (Exception exc) { - getLogger().warn("Failed backup - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - - return QueryStatus.NOT_FOUND; - } - - @Override - public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException { - - QueryStatus retval = QueryStatus.SUCCESS; - String resource = params.get("resource").toLowerCase(); - String prefix = params.get("data-key"); - - HashMap nameValues = new HashMap(); - if(AAIRequest.createRequest(resource, nameValues) != null) { - - try { - retval = newModelBackupRequest(resource, params, "tmpRestore", ctx); - if(retval == QueryStatus.SUCCESS) { - String current_json = ctx.getAttribute("tmpRestore"); - ctx. setAttribute("tmpRestore", null); - - String snapshot_json = ctx.getAttribute(prefix); - } - } catch (Exception exc) { - getLogger().warn("Failed restore - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - - return QueryStatus.NOT_FOUND; - } - - protected Map objectToProperties(Object object) { - ObjectMapper mapper = AAIService.getObjectMapper(); - return mapper.convertValue(object, Map.class); - } - - static T valueOf(Class klazz, String arg) { - Exception cause = null; - T ret = null; - try { - ret = klazz.cast(klazz.getDeclaredMethod("valueOf", String.class).invoke(null, arg)); - } catch (NoSuchMethodException exc) { - LoggerFactory.getLogger(AAIService.class).warn("Wrong data type", exc); - ret = klazz.cast(arg); - } catch (IllegalAccessException e) { - cause = e; - } catch (InvocationTargetException e) { - cause = e; - } - if (cause == null) { - return ret; - } else { - throw new IllegalArgumentException(cause); - } - } - - private QueryStatus processDeleteRelationshipList(String resource, String key, SvcLogicContext ctx, HashMap nameValues) { - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - request.processRequestPathValues(nameValues); - URL url = request.getRequestUrl("GET", null); - - Class resourceClass = request.getModelClass(); - Object instance = getResource(url.toString(), resourceClass); - if(instance == null) - return QueryStatus.NOT_FOUND; - - // get resource version - String resourceVersion = null; - Method getResourceVersionMethod = resourceClass.getMethod("getResourceVersion"); - if(getResourceVersionMethod != null){ - try { - getResourceVersionMethod.setAccessible(true); - Object object = getResourceVersionMethod.invoke(instance); - if(object != null) - resourceVersion = object.toString(); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - - RelationshipList relationshipList = null; - Object obj = null; - Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - if(getRelationshipListMethod != null){ - try { - getRelationshipListMethod.setAccessible(true); - obj = getRelationshipListMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof RelationshipList){ - relationshipList = (RelationshipList)obj; - } else { - getLogger().debug("No relationships found to process."); - return QueryStatus.NOT_FOUND; - } - - if(relationshipList.getRelationship() == null || relationshipList.getRelationship().isEmpty()) { - return QueryStatus.NOT_FOUND; - } - String relatedTo = nameValues.get("related_to"); - if(relatedTo == null) { - return QueryStatus.FAILURE; - } - - relatedTo = relatedTo.replaceAll("_", "-"); - - String relatedLink = nameValues.get("relationship.related_link"); - if(relatedLink != null) { - relatedLink = URLDecoder.decode(relatedLink, "UTF-8"); - } - - List relationships = relationshipList.getRelationship(); - List relationshipsToDelete = new LinkedList(); - - for(Relationship relationship : relationships) { - if(relatedTo.equals(relationship.getRelatedTo())) { - if(relatedLink != null) { - if(relationship.getRelatedLink() != null ) { - String localRelatedLink = relationship.getRelatedLink(); - localRelatedLink = URLDecoder.decode(localRelatedLink, "UTF-8"); - if(localRelatedLink.endsWith(relatedLink)) { - getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); - relationshipsToDelete.add(relationship); - } - } - } else { - getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); - relationshipsToDelete.add(relationship); - } - } - } - if(relationshipsToDelete == null || relationshipsToDelete.isEmpty()) { - getLogger().info(String.format("Relationship has not been found for %s", key)); - return QueryStatus.NOT_FOUND; - } - - String path = url.toString(); - path = path + "/relationship-list/relationship"; - URL deleteUrl = new URL(path); - - ObjectMapper mapper = AAIService.getObjectMapper(); - - boolean cumulativeResponse = true; - - for(Relationship targetRelationship : relationshipsToDelete) { - String json_text = mapper.writeValueAsString(targetRelationship); - boolean response = deleteRelationshipList(deleteUrl, json_text); - if(!response) - cumulativeResponse = response; - - } - - if(!cumulativeResponse) - return QueryStatus.FAILURE; - - return QueryStatus.SUCCESS; - - } catch(Exception exc) { - getLogger().warn("processDelete", exc); - return QueryStatus.FAILURE; - } - } - - static final Map ctxGetBeginsWith( SvcLogicContext ctx, String prefix ) { - Map tmpPrefixMap = new HashMap(); - - if(prefix == null || prefix.isEmpty()){ - return tmpPrefixMap; - } - - for( String key : ctx.getAttributeKeySet() ) { - if( key.startsWith(prefix) ) { - String tmpKey = key.substring(prefix.length() + 1); - tmpPrefixMap.put( tmpKey, ctx.getAttribute(key)); - } - } - - Map prefixMap = new HashMap(); - Pattern p = Pattern.compile(".*\\[\\d\\]"); - - SortedSet keys = new TreeSet(tmpPrefixMap.keySet () ); - for(String key : keys) { - Matcher m = p.matcher(key); - if(m.matches()) { - continue; - } else if(key.endsWith("_length")) { - String listKey = key.substring(0, key.indexOf("_length")); - int max = Integer.parseInt(tmpPrefixMap.get(key)); - - ArrayList data = new ArrayList(); - for(int x = 0; x < max; x++){ - String tmpKey = String.format("%s[%d]", listKey, x); - String tmpValue = tmpPrefixMap.get(tmpKey); - if(tmpValue != null && !tmpValue.isEmpty()) { - data.add(tmpValue); - } - } - if(!data.isEmpty()) { - prefixMap.put(listKey, data.toString()); - } else { - prefixMap.put(key, tmpPrefixMap.get(key)); - } - } else { - prefixMap.put(key, tmpPrefixMap.get(key)); - } - } - - return prefixMap; - } - - /** - */ - protected NamedQueryData extractNamedQueryDataFromQueryPrefix(HashMap nameValues, Map parms) { - if(parms.isEmpty()) { - return null; - } - - NamedQueryData data = new NamedQueryData(); - - // query parameters - if(data.getQueryParameters() == null) { - data.setQueryParameters(new QueryParameters()); - } - String namedQueryUuid = nameValues.get("named-query-uuid".replaceAll("-", "_")); - if(namedQueryUuid == null) { - namedQueryUuid = parms.get("query-parameters.named-query.named-query-uuid"); - } - NamedQuery namedQuery = new NamedQuery(); - namedQuery.setNamedQueryUuid(namedQueryUuid); - data.getQueryParameters().setNamedQuery(namedQuery); - - // instance filters - if(data.getInstanceFilters() == null) { - data.setInstanceFilters(new InstanceFilters()); - } - - - String quantity = parms.get("instance-filters.instance-filter_length"); - if(quantity != null && StringUtils.isNumeric(quantity)) { - int max = Integer.parseInt(quantity); - for(int i = 0; i < max; i++) { - String keyPattern = String.format("instance-filters.instance-filter[%d].", i); - Set keys = parms.keySet(); - for(String key: keys) { - if(key.startsWith(keyPattern)){ - String value = parms.get(key); - String remainder = key.substring(keyPattern.length()); - String[] split = remainder.split("\\."); - getLogger().debug(String.format("%s", remainder)); - if("logical-link".equals(split[0])) { - InstanceFilter insf = null; - if(data.getInstanceFilters().getInstanceFilter().isEmpty()) { - insf = new InstanceFilter(); - data.getInstanceFilters().getInstanceFilter().add(insf); - } else { - insf = data.getInstanceFilters().getInstanceFilter().get(0); - } - LogicalLink logicalLink = insf.getLogicalLink(); - if(logicalLink == null) { - logicalLink = new LogicalLink(); - insf.setLogicalLink(logicalLink); - } - - switch(split[1]) { - case "link-name": - logicalLink.setLinkName(value); - break; - case "link-type": - logicalLink.setLinkType(value); - break; - case "operational-state": - logicalLink.setOperationalStatus(value); - break; - } - - } else if("pnf".equals(split[0])) { - Pnf pnf = new Pnf(); - pnf.setPnfName(value); - - InstanceFilter insf = new InstanceFilter(); - insf.setPnf(pnf); - data.getInstanceFilters().getInstanceFilter().add(insf); - - } else if("service-instance".equals(split[0])) { - ServiceInstance serviceInstance = new ServiceInstance(); - serviceInstance.setServiceInstanceId(value); - - InstanceFilter insf = new InstanceFilter(); - insf.setServiceInstance(serviceInstance); - data.getInstanceFilters().getInstanceFilter().add(insf); - - } else if("l3-network".equals(split[0])) { - L3Network l3Network = new L3Network(); - if("network-role".equals(split[1])) { - l3Network.setNetworkRole(value); - } - - InstanceFilter insf = new InstanceFilter(); - insf.setL3Network(l3Network); - data.getInstanceFilters().getInstanceFilter().add(insf); - } - } - } - } - } - - return data; - } - - public abstract T getResource(String key, Class type) throws AAIServiceException ; - protected abstract boolean deleteRelationshipList(URL url, String caller) throws AAIServiceException; -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIExecutorInterface.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIExecutorInterface.java deleted file mode 100644 index 5b94f258c..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIExecutorInterface.java +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -public interface AAIExecutorInterface { - public Object get(AAIRequest request) throws AAIServiceException; - public Object post(AAIRequest request) throws AAIServiceException; - public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException; - public Object query(AAIRequest request, Class clas) throws AAIServiceException; - public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException; -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIRequest.java deleted file mode 100644 index f806ef4ec..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIRequest.java +++ /dev/null @@ -1,420 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.BitSet; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.TreeSet; - -import org.apache.commons.lang.StringUtils; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public abstract class AAIRequest { - protected static final Logger LOG = LoggerFactory.getLogger(AAIRequest.class); - - protected static final String TARGET_URI = "org.openecomp.sdnc.sli.aai.uri"; - - protected static final String MASTER_REQUEST = "master-request"; - - public static final String RESOURCE_VERSION = "resource-version"; - - public static final String DEPTH = "depth"; - - protected static Properties configProperties; - protected final String target_uri; - protected static AAIService aaiService; - - protected AAIDatum requestDatum; - - protected final Properties requestProperties = new Properties(); - - - public static AAIRequest createRequest(String resoourceName, Map nameValues){ - - String resoource = resoourceName; - - if(resoource == null) - return null; - - if(resoource.contains(":")) { - String[] tokens = resoource.split(":"); - if(tokens != null && tokens.length > 0) { - resoource = tokens[0]; - } - } - - if(nameValues.containsKey("selflink")){ - Class clazz = null; - try { - clazz = getClassFromResource(resoource) ; - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return null; - } - - if(clazz != null) - return new SelfLinkRequest(clazz); - else - return null; - } - - switch(resoource){ - case "generic-query": - return new GenericQueryRequest(); - case "named-query": - return new NamedQueryRequest(); - case "nodes-query": - return new NodesQueryRequest(); - case "custom-query": - return new CustomQueryRequest(); - case "linterface": - return new LInterfaceRequest(LInterfaceRequest.TYPE.L2_BRIDGE_SBG); - case "l2-bridge-sbg": - return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_SBG); - case "l2-bridge-bgf": - return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_BGF); - case "echo": - case "test": - return new EchoRequest(); - - default: - { - AAIRequest request = getRequestFromResource(resoource); - if(request == null) { - return null; - } - return request; - } - } - } - - - /** - * Map containing resource tag to its bit position in bitset mapping - */ - private static Map tagValues = new LinkedHashMap(); - /** - * Map containing bitset value of the path to its path mapping - */ - private static Map bitsetPaths = new LinkedHashMap(); - - - public static void setProperties(Properties props, AAIService aaiService) { - AAIRequest.configProperties = props; - AAIRequest.aaiService = aaiService; - - try - { - URL url = null; - Bundle bundle = FrameworkUtil.getBundle(AAIServiceActivator.class); - if(bundle != null) { - BundleContext ctx = bundle.getBundleContext(); - if(ctx == null) - return; - - url = ctx.getBundle().getResource(AAIService.PATH_PROPERTIES); - } else { - url = aaiService.getClass().getResource("/aai-path.properties"); - } - - InputStream in = url.openStream(); - Reader reader = new InputStreamReader(in, "UTF-8"); - - Properties properties = new Properties(); - properties.load(reader); - LOG.info("loaded " + properties.size()); - - Set keys = properties.stringPropertyNames(); - - int index = 0; - Set resourceNames = new TreeSet(); - - for(String key : keys) { - String[] tags = key.split("\\|"); - for(String tag : tags) { - if(!resourceNames.contains(tag)) { - resourceNames.add(tag); - tagValues.put(tag, Integer.toString(++index)); - } - } - BitSet bs = new BitSet(256); - for(String tag : tags) { - String value = tagValues.get(tag); - Integer bitIndex = Integer.parseInt(value) ; - bs.set(bitIndex); - } - String path = properties.getProperty(key); - LOG.info(String.format("bitset %s\t\t%s", bs.toString(), path)); - bitsetPaths.put(bs, path); - } - LOG.info("loaded " + resourceNames.toString()); - } - catch (Exception e) - { - LOG.error("Caught exception", e); - } - } - - public AAIRequest() { - target_uri = configProperties.getProperty(TARGET_URI); - } - - public void addRequestProperty(String key, String value) { - requestProperties.put(key, value); - } - - public final void setRequestObject(AAIDatum value) { - requestDatum = value; - } - - public final AAIDatum getRequestObject() { - return requestDatum; - } - - public final void addMasterRequest(AAIRequest masterRequest) { - requestProperties.put(MASTER_REQUEST, masterRequest); - } - - protected static String encodeQuery(String param) throws UnsupportedEncodingException { - return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); - } - - protected void handleException(AAIRequest lInterfaceRequest, JsonProcessingException exc) { - aaiService.getLogger().warn("Could not deserialize object of type " + lInterfaceRequest.getClass().getSimpleName(), exc) ; - } - -// public abstract URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException; - - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - - request_url = target_uri + getRequestPath(); - - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - -// request_url = processPathData(request_url, requestProperties); - - for(String resoourceName:uniqueResources) { - AAIRequest locRequest = AAIRequest.createRequest(resoourceName, new HashMap()); - if(locRequest != null) { - Class clazz = locRequest.getClass(); - Method function = null; - try { - function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); - request_url = (String) function.invoke(null, request_url, requestProperties); - } catch (Exception e) { - e.printStackTrace(); - } -// request_url = locRequest.processPathData(request_url, requestProperties); - } - } - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - - return http_req_url; - } - - - protected String getRequestPath() throws MalformedURLException { - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - BitSet bitset = new BitSet(); - for(String key : uniqueResources) { - if(tagValues.containsKey(key)) { - Object tmpValue = tagValues.get(key); - if(tmpValue != null) { - String value = tmpValue.toString(); - int bitIndex = Integer.parseInt(value); - bitset.set(bitIndex); - } - } - } - - String path = bitsetPaths.get(bitset); - if(path == null) { - throw new MalformedURLException("PATH not found for key string containing valies :" +requestProperties.toString()); - } - return path; - } - - public abstract URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException; - - public abstract String toJSONString(); - - public abstract String[] getArgsList(); - - public abstract Class getModelClass() ; - - public String getPrimaryResourceName(String resource) { - return resource; - } - - public String formatKey(String argument) { - return argument; - } - - public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { - if(jsonData == null) { - return null; - } - - AAIDatum response = null; - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(jsonData, getModelClass()); - return response; - } - - protected static Set extractUniqueResourceSetFromKeys(Set keySet) { - Set uniqueResources = new TreeSet(); - List keys = new ArrayList(keySet); - for(String resource : keys) { - if(resource.contains(".")) { - String [] split = resource.split("\\."); - uniqueResources.add(split[0].replaceAll("_", "-")); - } - } - return uniqueResources; - } - - public void processRequestPathValues(Map nameValues) { - Set uniqueResources = extractUniqueResourceSetFromKeys(nameValues.keySet()); - - Set tokens = new TreeSet(); - tokens.add(DEPTH); - tokens.addAll(Arrays.asList(this.getArgsList())); - - for(String resoourceName:uniqueResources) { - AAIRequest locRequest = AAIRequest.createRequest(resoourceName, nameValues); - if(locRequest != null) - tokens.addAll(Arrays.asList(locRequest.getArgsList())); - } - - String[] arguments = tokens.toArray(new String[0]); - for(String name : arguments) { - String tmpName = name.replaceAll("-", "_"); - String value = nameValues.get(tmpName); - if(value != null && !value.isEmpty()) { - value = value.trim().replace("'", "").replace("$", "").replace("'", ""); - this.addRequestProperty(name, value); - } - } - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - return request_url; - } - - public boolean isDeleteDataRequired() { - return false; - } - - ObjectMapper getObjectMapper() { - return AAIService.getObjectMapper(); - } - - protected static Class getClassFromResource(String resoourceName) throws ClassNotFoundException { - String className = GenericVnf.class.getName(); - String[] split = resoourceName.split("-"); - for(int i = 0; i < split.length; i++) { - split[i] = StringUtils.capitalize(split[i]); - } - - String caps = StringUtils.join(split); - className = className.replace("GenericVnf", caps); - Class clazz = null; - try { - clazz = (Class)Class.forName(className); - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return null; - } - - return clazz; - } - - protected static AAIRequest getRequestFromResource(String resoourceName) { - - Class clazz = null; - try { - clazz = getClassFromResource(resoourceName); - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return null; - } - if(clazz == null) { - return null; - } - GenericRequest request = new GenericRequest(clazz); - return request; - } - - public static Map splitQuery(String query) throws UnsupportedEncodingException { - Map query_pairs = new LinkedHashMap(); - - if(query != null && !query.isEmpty()) { - String[] pairs = query.split("&"); - for (String pair : pairs) { - int idx = pair.indexOf("="); - query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); - } - } - return query_pairs; - } - - protected boolean expectsDataFromPUTRequest() { - return false; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java deleted file mode 100644 index 3f62374a7..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java +++ /dev/null @@ -1,3278 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.NoSuchAlgorithmException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.TimeZone; -import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import javax.net.ssl.SSLSocketFactory; -import javax.ws.rs.HttpMethod; -import javax.xml.bind.annotation.XmlElement; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.lang3.StringUtils; -import org.onap.ccsdk.sli.core.sli.ConfigurationException; -import org.onap.ccsdk.sli.core.sli.MetricLogger; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.openecomp.aai.inventory.v10.AvailabilityZone; -import org.openecomp.aai.inventory.v10.Complex; -import org.openecomp.aai.inventory.v10.CtagPool; -import org.openecomp.aai.inventory.v10.DvsSwitch; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.OamNetwork; -import org.openecomp.aai.inventory.v10.PInterface; -import org.openecomp.aai.inventory.v10.PhysicalLink; -import org.openecomp.aai.inventory.v10.Pserver; -import org.openecomp.aai.inventory.v10.ResultData; -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.aai.inventory.v10.Service; -import org.openecomp.aai.inventory.v10.ServiceInstance; -import org.openecomp.aai.inventory.v10.SitePairSet; -import org.openecomp.aai.inventory.v10.Tenant; -import org.openecomp.aai.inventory.v10.Vce; -import org.openecomp.aai.inventory.v10.VnfImage; -import org.openecomp.aai.inventory.v10.VnfImages; -import org.openecomp.aai.inventory.v10.Vpe; -import org.openecomp.aai.inventory.v10.VplsPe; -import org.openecomp.aai.inventory.v10.VpnBinding; -import org.openecomp.aai.inventory.v10.Vserver; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.openecomp.sdnc.sli.aai.data.ErrorResponse; -import org.openecomp.sdnc.sli.aai.data.RequestError; -import org.openecomp.sdnc.sli.aai.data.ResourceVersion; -import org.openecomp.sdnc.sli.aai.data.ServiceException; -import org.openecomp.sdnc.sli.aai.data.notify.NotifyEvent; -import org.openecomp.sdnc.sli.aai.data.v1507.VServer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.databind.AnnotationIntrospector; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; -import com.fasterxml.jackson.databind.type.TypeFactory; -import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; -import com.sun.jersey.api.client.config.DefaultClientConfig; -import com.sun.jersey.client.urlconnection.HTTPSProperties; - - -public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicResource { - - public static final String AAICLIENT_PROPERTIES = "/aaiclient.properties"; - public static final String PATH_PROPERTIES = "/aai-path.properties"; - - private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); - - private final String truststore_path; - private final String truststore_password; - private final String keystore_path; - private final String keystore_password; - private final Boolean ignore_certificate_host_error; - - private final String target_uri; - private final String query_path; // = "sdn-zone-query"; - - private final String network_vserver_path; - - private final String svc_instance_path; - private final String svc_inst_qry_path; - - private final String vnf_image_query_path; - - private final String param_service_type; //= "service-type"; - - private final String ubb_notify_path; - private final String selflink_avpn; - private final String selflink_fqdn; - - private final String p_interface_path; - - private final String service_path; - private final String site_pair_set_path; - - private final int connection_timeout; - private final int read_timeout; - - // 1602 - private final String query_nodes_path; - private final String update_path; - - private final String application_id; - - // authentication credentials - private String user_name; - private String user_password; - - // runtime - private final boolean runtimeOSGI; - - private SSLContext CTX; - - private final MetricLogger ml = new MetricLogger(); - - private final AAIRequestExecutor executor; - - public AAIService(URL propURL) { - LOG.info("Entered AAIService.ctor"); - - String runtime = System.getProperty("aaiclient.runtime"); - if(runtime != null && runtime.equals("OSGI")) { - runtimeOSGI = true; - } else { - runtimeOSGI = false; - } - - Properties props = null; - try { - props = initialize(propURL); - AAIRequest.setProperties(props, this); - - } catch(Exception exc){ - LOG.error("AicAAIResource.static", exc); - } - - executor = new AAIRequestExecutor(); - - user_name = props.getProperty(CLIENT_NAME); - user_password = props.getProperty(CLIENT_PWWD); - - if(user_name == null || user_name.isEmpty()){ - LOG.debug("Basic user name is not set"); - } - if(user_password == null || user_password.isEmpty()) { - LOG.debug("Basic password is not set"); - } - - truststore_path = props.getProperty(TRUSTSTORE_PATH); - truststore_password = props.getProperty(TRUSTSTORE_PSSWD); - keystore_path = props.getProperty(KEYSTORE_PATH); - keystore_password = props.getProperty(KEYSTORE_PSSWD); - - target_uri = props.getProperty(TARGET_URI); - query_path = props.getProperty(QUERY_PATH); - update_path = props.getProperty(UPDATE_PATH); - - String applicationId =props.getProperty(APPLICATION_ID); - if(applicationId == null || applicationId.isEmpty()) { - applicationId = "SDNC"; - } - application_id = applicationId; - - // connection timeout - int tmpConnectionTimeout = 30000; - int tmpReadTimeout = 30000; - - try { - String tmpValue = null; - tmpValue = props.getProperty(CONNECTION_TIMEOUT, "30000"); - tmpConnectionTimeout = Integer.parseInt(tmpValue); - tmpValue = props.getProperty(READ_TIMEOUT, "30000"); - tmpReadTimeout = Integer.parseInt(tmpValue); - } catch(Exception exc) { - LOG.error("Failed setting connection timeout", exc); - tmpConnectionTimeout = 30000; - tmpReadTimeout = 30000; - } - connection_timeout = tmpConnectionTimeout; - read_timeout = tmpReadTimeout; - - network_vserver_path =props.getProperty(NETWORK_VSERVER_PATH); - - svc_instance_path = props.getProperty(SVC_INSTANCE_PATH); // "/aai/v1/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances"); -// "/aai/v1/business/customers/customer/ma9181-203-customerid/service-subscriptions/service-subscription/ma9181%20Hosted%20Voice/service-instances"; - -// svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH, "/aai/v1/search/generic-query?key=service-instance.service-instance-id:ma9181-204-instance&start-node-type=service-instance&include=service-instance"); - svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH); // "/aai/v1/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance"); - - - param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); - - // P-Interfaces - p_interface_path = props.getProperty(P_INTERFACE_PATH); - - vnf_image_query_path = props.getProperty(VNF_IMAGE_QUERY_PATH); - - ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); - selflink_avpn = props.getProperty(SELFLINK_AVPN); - selflink_fqdn = props.getProperty(SELFLINK_FQDN); - - service_path = props.getProperty(SERVICE_PATH); - - site_pair_set_path = props.getProperty(SITE_PAIR_SET_PATH); - - query_nodes_path = props.getProperty(QUERY_NODES_PATH); - - String iche = props.getProperty(CERTIFICATE_HOST_ERROR); - boolean host_error = false; - if(iche != null && !iche.isEmpty()) { - host_error = Boolean.valueOf(iche); - } - - ignore_certificate_host_error = host_error; - - HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ - public boolean verify(String string,SSLSession ssls) { - return ignore_certificate_host_error; - } - }); - - if(truststore_path != null && truststore_password != null && (new File(truststore_path)).exists()) { - System.setProperty("javax.net.ssl.trustStore", truststore_path); - System.setProperty("javax.net.ssl.trustStorePassword", truststore_password); - } - - if(keystore_path != null && keystore_password != null && (new File(keystore_path)).exists()) - { - DefaultClientConfig config = new DefaultClientConfig(); - //both jersey and HttpURLConnection can use this - SSLContext ctx = null; - try { - ctx = SSLContext.getInstance("TLS"); - - KeyManagerFactory kmf = null; - try { - String def = "SunX509"; - String storeType = "PKCS12"; - def = KeyStore.getDefaultType(); - kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - FileInputStream fin = new FileInputStream(keystore_path); -// KeyStore ks = KeyStore.getInstance("PKCS12"); - - String extension = keystore_path.substring(keystore_path.lastIndexOf(".") + 1); - - if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { - storeType = "JKS"; - } - KeyStore ks = KeyStore.getInstance(storeType); - - char[] pwd = keystore_password.toCharArray(); - ks.load(fin, pwd); - kmf.init(ks, pwd); - } catch (Exception ex) { - LOG.error("AAIResource", ex); - } - - ctx.init(kmf.getKeyManagers(), null, null); - config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { - @Override - public boolean verify( String s, SSLSession sslSession ) { - return ignore_certificate_host_error; - } - }, ctx)); - - CTX = ctx; - LOG.debug("SSLContext created"); - - } catch (KeyManagementException | NoSuchAlgorithmException exc) { - LOG.error("AAIResource", exc); - } - } - - LOG.info("AAIResource.ctor initialized."); - - try { - Field methodsField = HttpURLConnection.class.getDeclaredField("methods"); - methodsField.setAccessible(true); - // get the methods field modifiers - Field modifiersField = Field.class.getDeclaredField("modifiers"); - // bypass the "private" modifier - modifiersField.setAccessible(true); - - // remove the "final" modifier - modifiersField.setInt(methodsField, methodsField.getModifiers() & ~Modifier.FINAL); - - /* valid HTTP methods */ - String[] methods = { - "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" - }; - // set the new methods - including patch - methodsField.set(null, methods); - - } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { - e.printStackTrace(); - } - - } - - public void cleanUp() { - - } - - /** - * - * @param http_req_url - * @param method - * @return - * @throws Exception - */ - protected HttpURLConnection getConfiguredConnection(URL http_req_url, String method) throws Exception { - HttpURLConnection con = (HttpURLConnection) http_req_url.openConnection(); - - // Set up the connection properties - con.setRequestProperty( "Connection", "close" ); - con.setDoInput(true); - con.setDoOutput(true); - con.setUseCaches(false); - con.setConnectTimeout( connection_timeout ); - con.setReadTimeout( read_timeout ); - con.setRequestMethod( method ); - con.setRequestProperty( "Accept", "application/json" ); - con.setRequestProperty( "Content-Type", "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json" ); - con.setRequestProperty("X-FromAppId", application_id); - con.setRequestProperty("X-TransactionId",TransactionIdTracker.getNextTransactionId()); - con.setRequestProperty(MetricLogger.REQUEST_ID, ml.getRequestID()); - - if(user_name != null && !user_name.isEmpty() && user_password != null && !user_password.isEmpty()) { - String basicAuth = "Basic " + new String(Base64.encodeBase64((user_name + ":" + user_password).getBytes())); - con.setRequestProperty ("Authorization", basicAuth); - } - - if(con instanceof HttpsURLConnection && CTX != null) { - SSLSocketFactory sockFact = CTX.getSocketFactory(); - HttpsURLConnection.class.cast(con).setSSLSocketFactory( sockFact ); - } - return con; - } - - - @Override - public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException { - GenericVnf response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, GenericVnf.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - - return response; - - } - - @Override - public boolean postGenericVnfData(String vnf_id, GenericVnf data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteGenericVnfData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* (non-Javadoc) - * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException { - Vce response = null; - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vce.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - /* (non-Javadoc) - * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkVceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* (non-Javadoc) - * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#postNetworkVceData(java.lang.String, org.openecomp.sdnc.sli.resource.aic.aai.VCERequest) - */ - @Override - public boolean postNetworkVceData(String vnf_id, Vce data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - - @Override - public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException { - SearchResults response = null; - InputStream inputStream = null; - - try { - String path = svc_inst_qry_path; - path = path.replace("{svc-instance-id}", encodeQuery(svc_instance_id)); - - String request_url = target_uri+path; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("svc_instance_id", svc_instance_id); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { -// StringBuilder stringBuilder = new StringBuilder("\n"); -// String line = null; -// while( ( line = reader.readLine() ) != null ) { -// stringBuilder.append("\n").append( line ); -// } -// LOG.info(stringBuilder.toString()); - response = mapper.readValue(reader, SearchResults.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceInstanceURL", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException { - ServiceInstance response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); - request.addRequestProperty("customer.global-customer-id", customer_id); - request.addRequestProperty("ervice-subscription.service-type", service_type); - request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, ServiceInstance.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceInterfaceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); - request.addRequestProperty("customer.customer-id", customer_id); - request.addRequestProperty("service-subscription.service-type", service_type); - request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - - private static Properties initialize(URL url ) throws ConfigurationException { - - if(url == null) { - throw new NullPointerException(); - } - - InputStream is = null; - Properties props = new Properties(); - - try { - if(LOG.isDebugEnabled()) - LOG.info("Property file is: " + url.toString()); - - is = url.openStream(); - - props.load(is); - if(LOG.isDebugEnabled()) { - LOG.info("Properties loaded: " + props.size()); - Enumeration en = props.keys(); - - while(en.hasMoreElements()) { - String key = (String)en.nextElement(); - String property = props.getProperty(key); - LOG.debug(key + " : " + property); - } - } - } catch (Exception e) { - throw new ConfigurationException("Could not load properties file.", e); - } - return props; - } - - static class TransactionIdTracker { -// protected static AtomicLong tracker = new AtomicLong(); - - public static String getNextTransactionId() { -// long id = tracker.getAndIncrement(); -// String transactionId = String.format("N%016X", id); - String transactionId = UUID.randomUUID().toString(); - return transactionId; - } - - } - - protected void LOGwriteFirstTrace(String method, String url) { - String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); - LOG.info("A&AI transaction :"); - LOG.info("Request Time : " + time + ", Method : " + method); - LOG.info("Request URL : "+ url); - } - - protected void LOGwriteDateTrace(String name, String data) { - LOG.info("Input - " + name + " : " + data); - } - - protected void LOGwriteEndingTrace(int response_code, String comment, String data) { - LOG.info("Response code : " + response_code +", " + comment); - LOG.info(String.format("Response data : %s", data)); - } - - protected String encodeQuery(String param) throws UnsupportedEncodingException { - return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); - } - - private String encodeCustomerURL(final String selection) - { - String encrypted_url = selection; - String apnpattern = - "/aai/v10/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)/service-instances/service-instance/(.+)/"; - Pattern pattern = Pattern.compile(apnpattern); - - try { - URL url = new URL(selection); - String path = url.getPath(); - - LOG.info("Trying to match apn to <" + path + ">"); - - Matcher matcher = pattern.matcher(path); - - while(matcher.find()) { - String customer = matcher.group(1); - String subscription = matcher.group(2); - String service = matcher.group(3); - - encrypted_url = selection.replace(customer, encodeQuery(customer)); - encrypted_url = encrypted_url.replace(subscription, encodeQuery(subscription)); - encrypted_url = encrypted_url.replace(service, encodeQuery(service)); - } - } catch (Exception e) { - LOG.warn("", e); - } - - return encrypted_url; - } - - @Override - public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException { - Vpe response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpe"); - request.addRequestProperty("vpe.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vpe.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postNetworkVpeData(String vnf_id, Vpe data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpe"); - request.addRequestProperty("vpe.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpe"); - request.addRequestProperty("vpe.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public VplsPe requestNetworkVplsPeData(String equipment_name)throws AAIServiceException { - VplsPe response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", equipment_name); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VplsPe.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postNetworkVplsPeData(String equipment_name, VplsPe data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", equipment_name); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkVplsPeData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public Complex requestNetworkComplexData(String pLocId) throws AAIServiceException { - Complex response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", pLocId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Complex.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkComplexData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public boolean postNetworkComplexData(String vnf_id, Complex data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkComplexData(String pLocId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", pLocId); - - response = executor.delete(request, resourceVersion); - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* - * (non-Javadoc) - * @see org.openecomp.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String) - */ - @Override - public Vserver requestVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Vserver response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.addRequestProperty("tenant.tenant-id", tenantId); - request.addRequestProperty("vserver.vserver-id", vserverId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vserver.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - - @Override - public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.addRequestProperty("tenant.tenant-id", tenantId); - request.addRequestProperty("vserver.vserver-id", vserverId); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException { - boolean response = false; - InputStream inputStream = null; - - try { - String local_network_complexes_path = network_vserver_path.replace("{tenant-id}", encodeQuery(tenant_id)); - local_network_complexes_path = local_network_complexes_path.replace("{vserver-id}", encodeQuery(vserver_id)); - local_network_complexes_path = local_network_complexes_path.replace("{cloud-owner}", encodeQuery(cloudOwner)); - local_network_complexes_path = local_network_complexes_path.replace("{cloud-region-id}", encodeQuery(cloudRegionId)); - - String request_url = target_uri+local_network_complexes_path; - if(resourceVersion!=null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); - - LOGwriteFirstTrace(HttpMethod.DELETE, http_req_url.toString()); - LOGwriteDateTrace("tenant_id", tenant_id); - LOGwriteDateTrace("vserver_id", vserver_id); - LOGwriteDateTrace("cloud-owner", cloudOwner); - LOGwriteDateTrace("cloud-region-id", cloudRegionId); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteVServerData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - - /* - * (non-Javadoc) - * @see org.openecomp.sdnc.sli.aai.AAIClient#requestCtagPoolData(String) - */ - @Override - public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException { - CtagPool response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("ctag-pool"); - - request.addRequestProperty("ctag-pool.target-pe", target_pe); - request.addRequestProperty("ctag-pool.availability-zone-name", availability_zone_name); - request.addRequestProperty("complex.physical-location-id", physical_location_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, CtagPool.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkVceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - //==================== DvsSwitch ====================== - @Override - public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException { - DvsSwitch response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", vnf_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, DvsSwitch.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestDvsSwitchData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public boolean postDvsSwitchData(String switch_name, DvsSwitch data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", switch_name); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteDvsSwitchData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of DvsSwitch ================= - //==================== PhysicalLink ====================== - @Override - public PhysicalLink requestPhysicalLinkData(String linkName) throws AAIServiceException { - PhysicalLink response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, PhysicalLink.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestPhysicalLinkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPhysicalLinkData(String linkName, PhysicalLink data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deletePhysicalLinkData(String linkName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePhysicalLinkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of PhysicalLink ================= - //==================== PInterface ====================== - @Override - public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException { - PInterface response = null; - - try { - AAIRequest request = new PInterfaceRequest(); - request.addRequestProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME, interfaceName); - request.addRequestProperty(PInterfaceRequest.PSERVER_HOSTNAME, hostname); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, PInterface.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+p_interface_path; - String encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf) ; - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("hostname", hostname); - LOGwriteDateTrace("interface-name", interfaceName); - LOGwriteDateTrace("PInterface", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postPInterfaceData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); - request.addRequestProperty("p-interface.interface-name", interfaceName); - request.addRequestProperty("pserver.hostname", hostname); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePInterfaceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of PInterface ================= - //==================== SitePairSet ====================== - @Override - public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException { - SitePairSet response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); - request.addRequestProperty("site-pair-set.site-pair-set-id", sitePairSetId); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, SitePairSet.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postSitePairSetData(String linkName, SitePairSet request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+site_pair_set_path; - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{site-pair-set-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("link-name", linkName); - LOGwriteDateTrace("SitePairSet", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postSitePairSetData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deleteSitePairSetData(String linkName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); - request.addRequestProperty("site-pair-set.site-pair-set-id", linkName); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteSitePairSetData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - //================== End of SitePairSet ================= - //==================== Service ====================== - @Override - public Service requestServiceData(String serviceId) throws AAIServiceException { - Service response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service"); - request.addRequestProperty("service.service-id", serviceId); - - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Service.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postServiceData(String linkName, Service request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+service_path; - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{service-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("service-id", linkName); - LOGwriteDateTrace("Service", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postServiceData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deleteServiceData(String service_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service"); - request.addRequestProperty("service.service-id", service_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteServiceData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - //================== End of Service ================= - - - - // 1507 - Request - @Override - public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), VServer.class); - } - - @Override - public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Pserver.class); - } - - @Override - public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), CtagPool.class); - } - - @Override - public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), VplsPe.class); - } - - @Override - public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Vpe.class); - } - - @Override - public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), DvsSwitch.class); - } - - @Override - public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), OamNetwork.class); - } - - @Override - public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), AvailabilityZone.class); - } - - @Override - public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Complex.class); - } - - /* DELETE */ - public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - //OAM-Network: - public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - //Availability-Zone: - public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - //Complex: - public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - private boolean deleteAAIEntity(URL url, String caller) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - boolean response = false; - InputStream inputStream = null; - - try { - URL http_req_url = url; - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); - -// SSLSocketFactory sockFact = CTX.getSocketFactory(); -// con.setSSLSocketFactory( sockFact ); - - LOGwriteFirstTrace("DELETE", http_req_url.toString()); - - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(caller, exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - /** - * Generic method to GET json data from an A&AI callback URL. - * Then convert that json to an Object. - * If successful the Object is attempted to be cast to the type parameter. - * - * @param key - * callback url for A&AI - * @param type - * the class of object that A&AI will return - * @return the object created from json or null if the response code is not 200 - * - * @throws AAIServiceException - * if empty or null key and or type or there's an error with processing - */ - public T dataChangeRequestAaiData(String key, Class type) throws AAIServiceException { - if (StringUtils.isEmpty(key) || type == null) { - throw new AAIServiceException("Key is empty or null and or type is null"); - } - - T response = null; - - SvcLogicContext ctx = new SvcLogicContext(); - if(!key.contains(" = ") && isValidURL(key)) { - key = String.format("selflink = '%s'", key); - } - HashMap nameValues = keyToHashMap(key, ctx); - - SelfLinkRequest request = new SelfLinkRequest(type); - request.processRequestPathValues(nameValues); - Object obj = this.getExecutor().query(request, type); - response = type.cast(obj); - - return response != null ? type.cast(response) : response; - } - - @Override - public Pserver requestPServerData(String hostname) throws AAIServiceException { - Pserver response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Pserver.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestPServerData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPServerData(String hostname, Pserver data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePServerData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public L3Network requestL3NetworkData(String networkId) throws AAIServiceException { - L3Network response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, L3Network.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestL3NetworkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public L3Network requestL3NetworkQueryByName(String networkName) throws AAIServiceException { - L3Network response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-name", networkName); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, L3Network.class); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestL3NetworkQueryByName", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public boolean postL3NetworkData(String networkId, L3Network data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteL3NetworkData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException { - VpnBinding response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); - request.addRequestProperty("vpn-binding.vpn-id", vpnId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VpnBinding.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVpnBindingData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); - request.addRequestProperty("vpn-binding.vpn-id", vpnId); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteVpnBindingData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - - @Override - public VnfImage requestVnfImageData(String att_uuid) throws AAIServiceException { - VnfImage response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vnf-image"); - request.addRequestProperty("vnf-image.att-uuid", att_uuid); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VnfImage.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVnfImageData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException { - return requestVnfImageDataByVendorModelVersion(vendor, model, null); - } - - @Override - public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException - { - List responseList = new ArrayList(); - VnfImage response = null; - InputStream inputStream = null; - - try { - String request_url = target_uri+vnf_image_query_path + (version==null? "": "&application-version={application_version}"); - request_url = request_url.replace("{application_vendor}", encodeQuery(vendor)) ; - request_url = request_url.replace("{application_model}", encodeQuery(model)) ; - if(version != null) { - request_url = request_url.replace("{application_version}", encodeQuery(version)) ; - } - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("application_vendor", vendor); - LOGwriteDateTrace("application_model", model); - if(version != null) { - LOGwriteDateTrace("application_version", version); - } - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { -// StringBuilder stringBuilder = new StringBuilder("\n"); -// String line = null; -// while( ( line = reader.readLine() ) != null ) { -// stringBuilder.append("\n").append( line ); -// } -// LOG.info(stringBuilder.toString()); - response = mapper.readValue(reader, VnfImage.class); - String original_buffer = mapper.writeValueAsString(response); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", original_buffer); - if(response.getApplicationVendor() == null /*&& response.getAdditionalProperties() != null && !response.getAdditionalProperties().isEmpty()*/){ - LOG.warn("A List of multiple VNF-IMAGE entries has been returned"); - VnfImages listOfObjects = mapper.readValue(original_buffer, VnfImages.class); - if(!listOfObjects.getVnfImage().isEmpty()) { - response = listOfObjects.getVnfImage().get(0); - } - } - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVnfImageData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - - public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException { - InputStream inputStream = null; - - try { - - String selfLink = selflink_fqdn; - if(SELFLINK_AVPN != null && SELFLINK_AVPN.equals(pathCode)) { - selfLink = selflink_avpn; - } - selfLink = selfLink.replace("{service-instance-id}", encodeQuery(serviceInstanceId)); - event.setSelflink(selfLink); - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(event); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+ubb_notify_path; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("NotifyEvent", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("sendNotify", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public SearchResults requestNodeQuery(String node_type, String entityIdentifier, String entityName) throws AAIServiceException { - SearchResults response = null; - InputStream inputStream = null; - - try { - String request_url = target_uri+query_nodes_path; - request_url = request_url.replace("{node-type}", encodeQuery(node_type)) ; - request_url = request_url.replace("{entity-identifier}", entityIdentifier) ; - request_url = request_url.replace("{entity-name}", encodeQuery(entityName)) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("node_type", node_type); - LOGwriteDateTrace("vnf_name", entityName); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - response = mapper.readValue(reader, SearchResults.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNodeQuery", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - - } - - - @Override - public String requestDataByURL(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - String response = null; - InputStream inputStream = null; - - try { - URL http_req_url = url; - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - StringBuilder stringBuilder = new StringBuilder("\n"); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOG.info(stringBuilder.toString()); -// response = mapper.readValue(reader, String.class); - response = stringBuilder.toString(); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = null; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkVceData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - - @Override - public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException { - - if(vnf_name == null) { - throw new NullPointerException(); - } - - GenericVnf entity = null; - SearchResults resp = this.requestNodeQuery("generic-vnf", "vnf-name", vnf_name); - - List resultDataList = resp.getResultData(); - - try { - for (ResultData datum : resultDataList) { - String data_type = datum.getResourceType(); - URL url = new URL(datum.getResourceLink()); - entity = this.getResource(url.toString(), GenericVnf.class); - } - } - catch (Exception e) - { - LOG.error("Caught exception", e); - } - return entity; - } - - @Override - public Vserver requestVServerDataByURL(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - Vserver entity = null; - - try { - entity = this.getResource(url.toString(), Vserver.class); - } catch (AAIServiceException exc) { - throw exc; - } catch (Exception e) { - throw new AAIServiceException(e); - } - return entity; - } - - @Override - public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException { - - if(vserver_name == null) { - throw new NullPointerException(); - } - - URL entity = null; - SearchResults resp = this.requestNodeQuery("vserver", "vserver-name", vserver_name); - - List resultDataList = resp.getResultData(); - - try { - for (ResultData datum : resultDataList) { - String data_type = datum.getResourceType(); - entity = new URL(datum.getResourceLink()); - } - } catch (Exception e) { - throw new AAIServiceException(e); - } - return entity; - } - - class AAIRequestExecutor implements AAIExecutorInterface { - - @Override - public String get(AAIRequest request) throws AAIServiceException { - String response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - - String requestId = UUID.randomUUID().toString(); - - try { - - if(request.getRequestObject() != null) { - requestUrl = request.getRequestUrl(HttpMethod.POST, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.POST); - String json_text = request.toJSONString(); - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - } else { - requestUrl = request.getRequestUrl(HttpMethod.GET, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.GET); - logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); - } - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId, responseCode, responseMessage); - - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - response = stringBuilder.toString(); - try { - Object object = mapper.readValue(response, Object.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); - } catch(Exception exc) { - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); - } - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - ErrorResponse errorresponse = null; - try { - errorresponse = mapper.readValue(reader, ErrorResponse.class); - } catch(Exception exc) { - errorresponse = new ErrorResponse(); - RequestError requestError = new RequestError(); - ServiceException serviceException = new ServiceException(); - serviceException.setText("Entry does not exist."); - requestError.setServiceException(serviceException); - errorresponse.setRequestError(requestError ); - } - throw new AAIServiceException(responseCode, errorresponse); - } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - ServiceException serviceException = new ServiceException(); - serviceException.setMessageId("HTTP_UNAUTHORIZED"); - serviceException.setText(stringBuilder.toString()); - RequestError requestError = new RequestError(); - requestError.setServiceException(serviceException); - ErrorResponse errorresponse = new ErrorResponse(); - errorresponse.setRequestError(requestError); - throw new AAIServiceException(responseCode, errorresponse); - } else { -// -// StringBuilder stringBuilder = new StringBuilder("\n"); -// String line = null; -// while( ( line = reader.readLine() ) != null ) { -// stringBuilder.append("\n").append( line ); -// } -// LOG.info(stringBuilder.toString()); -// -// ErrorResponse errorresponse = mapper.readValue(stringBuilder.toString(), ErrorResponse.class); - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("GET", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { - - String depth = request.requestProperties.getProperty("depth", "1"); - String path = requestUrl.toString(); - if(path.contains("?depth=") || path.contains("&depth=")) { - return requestUrl; - } else { - if(path.contains("?")) { - path = String.format("%s&depth=%s", path, depth); - } else { - path = String.format("%s?depth=%s", path, depth); - } - return new URL(path); - } - } - - @Override - public String post(AAIRequest request) throws AAIServiceException { - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - try { - String resourceVersion = null; - AAIDatum instance = request.getRequestObject(); - - Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); - if(getResourceVersionMethod != null){ - try { - getResourceVersionMethod.setAccessible(true); - Object object = getResourceVersionMethod.invoke(instance); - if(object != null) - resourceVersion = object.toString(); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); - ObjectMapper mapper = getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return stringBuilder.toString(); - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.post", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { - Boolean response = null; - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - if(resourceVersion == null) { - throw new AAIServiceException("resource-version is required for DELETE request"); - } - - try { - URL requestUrl = null; - HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); - logMetricRequest(requestId, "DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); - conn.setDoOutput(true); -// if(request.isDeleteDataRequired()) { -// String json_text = request.toJSONString(); -// -// LOGwriteDateTrace("data", json_text); -// OutputStream os = con.getOutputStream(); -// OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); -// osw.write(json_text); -// osw.flush(); -// } - - // Check for errors - String responseMessage = conn.getResponseMessage(); - int responseCode = conn.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = conn.getInputStream(); - } else { - inputStream = conn.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("delete", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public Object query(AAIRequest request, Class clas) throws AAIServiceException { - Object response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - String requestId = UUID.randomUUID().toString(); - - try { - con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); - logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - logMetricResponse(requestId,responseCode, responseMessage); - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - // Process the response - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - response = mapper.readValue(reader, clas); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("GET", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - con = null; - } - return response; - } - - @Override - public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - try { - AAIDatum instance = request.getRequestObject(); - if(instance instanceof ResourceVersion) { - resourceVersion = ((ResourceVersion)instance).getResourceVersion(); - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); - ObjectMapper mapper = getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append("\n").append( line ); - } - LOG.info(stringBuilder.toString()); - - - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.patch", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - } - - @Override - public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Tenant response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Tenant.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestTenantData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - @Override - public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Tenant response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-name", tenant_name); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - Object rv = executor.query(request, Tenant.class); - if(rv == null) - return (Tenant)null; - else - response = (Tenant)rv; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestTenantDataByName", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant tenannt) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.setRequestObject(tenannt); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postTenantData", exc); - throw new AAIServiceException(exc); - } - } - - - @Override - public String getTenantIdFromVserverUrl(URL url) { - - String path = url.getPath(); - - String[] split = path.split("/tenants/tenant/"); - if(split.length > 1) { - split = split[1].split("/"); - return split[0]; - } else { - return null; - } - } - - @Override - public String getCloudOwnerFromVserverUrl(URL url) { - - String path = url.getPath(); - - String[] split = path.split("/cloud-regions/cloud-region/"); - if(split.length > 1) { - split = split[1].split("/"); - return split[0]; - } else { - return null; - } - } - - @Override - public String getCloudRegionFromVserverUrl(URL url) { - - String path = url.getPath(); - - String[] split = path.split("/cloud-regions/cloud-region/"); - if(split.length > 1) { - split = split[1].split("/"); - return split[1]; - } else { - return null; - } - } - - @Override - public String getVServerIdFromVserverUrl(URL url, String tenantId) { - String pattern = network_vserver_path; - pattern = pattern.replace("{tenant-id}", tenantId); - - int end = pattern.indexOf("{vserver-id}"); - String prefix = pattern.substring(0, end); - - String path = url.getPath(); - - if(path.startsWith(prefix)) { - path = path.substring(prefix.length()); - } - - return path; - } - - protected Logger getLogger(){ - return LOG; - } - - - @Override - public AAIRequestExecutor getExecutor() { - return executor; - } - - /** - * Creates a current time stamp in UTC i.e. 2016-03-08T22:15:13.343Z. - * If there are any parameters the values are appended to the time stamp. - * - * @param parameters - * values to be appended to current time stamp - * @param ctx - * used to set an attribute for a DG - * @throws SvcLogicException - */ - public void setStatusMethod(Map parameters, SvcLogicContext ctx) throws SvcLogicException { - if (ctx == null) { - throw new SvcLogicException("SvcLogicContext is null."); - } - - StringBuilder sb = new StringBuilder(); - sb.append(String.format("%tFT% entry : parameters.entrySet()) { - sb.append(entry.getValue()).append(" "); - } - - if (sb.length() > 0) { - sb.setLength(sb.length() - 2); - } - - ctx.setAttribute("aai-summary-status-message", sb.toString()); - LOG.info("aai-summary-status-message: " + sb.toString()); - } - - /** - * Generic method to GET json data from an A&AI using key structure. - * Then convert that json to an Object. - * If successful the Object is attempted to be cast to the type parameter. - * - * @param key - * key identifying the resource to be retrieved from AAI - * @param type - * the class of object that A&AI will return - * @return the object created from json or null if the response code is not 200 - * - * @throws AAIServiceException - * if empty or null key and or type or there's an error with processing - */ - - public T getResource(String key, Class type) throws AAIServiceException { - if (StringUtils.isEmpty(key) || type == null) { - throw new AAIServiceException("Key is empty or null and or type is null"); - } - - T response = null; - - SvcLogicContext ctx = new SvcLogicContext(); - if(!key.contains(" = ")) { - if(isValidURL(key)) { - key = String.format("selflink = '%s'", key); - } else { - return response; - } - } - - HashMap nameValues = keyToHashMap(key, ctx); - - AAIRequest request = new SelfLinkRequest(type); - if(nameValues.containsKey(PathRequest.RESOURCE_PATH.replaceAll("-", "_"))) { - request = new PathRequest(type); - } - - request.processRequestPathValues(nameValues); - Object obj = this.getExecutor().query(request, type); - response = type.cast(obj); - - return response != null ? type.cast(response) : response; - } - - public boolean isValidURL(String url) { - - URL u = null; - - try { - u = new URL(url); - } catch (MalformedURLException e) { - return false; - } - - try { - u.toURI(); - } catch (URISyntaxException e) { - return false; - } - - return true; - } - - @Override - protected boolean deleteRelationshipList(URL httpReqUrl, String json_text) throws AAIServiceException { - if(httpReqUrl == null) { - throw new NullPointerException(); - } - - boolean response = false; - InputStream inputStream = null; - - try { - HttpURLConnection con = getConfiguredConnection(httpReqUrl, HttpMethod.DELETE); - -// SSLSocketFactory sockFact = CTX.getSocketFactory(); -// con.setSSLSocketFactory( sockFact ); - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("DELETE", httpReqUrl.toString()); - LOGwriteDateTrace("data", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteRelationshipList", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - public static ObjectMapper getObjectMapper() { - ObjectMapper mapper = new ObjectMapper(); - AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); - AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); - mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - mapper.setSerializationInclusion(Include.NON_NULL); - return mapper; - } - - public void logMetricRequest(String requestId, String targetServiceName, String msg, String path){ - String svcInstanceId = ""; - String svcName = null; - String partnerName = null; - String targetEntity = "A&AI"; - String targetVirtualEntity = null; - - targetServiceName = ""; - - ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); - } - - public void logMetricResponse(String requestId, int responseCode, String responseDescription){ - ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); - } - - public void logKeyError(String keys){ - LOG.error("Atleast one of the keys [" + keys + "] should have been populated. This will cause a NPE."); - } - - - /** - * Retrofit code - */ - @Override - public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) - throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - return super.save(resource, force, localOnly, key, params, prefix, ctx); - } - - @Override - public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) - throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - - return super.query(resource, localOnly, select, key, prefix, orderBy, ctx); - } - - @Override - public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - - return super.delete(resource, key, ctx); - } - - @Override - public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - - return super.update(resource, key, params, prefix, ctx); - } - - private String rewriteKey(String resource, String key, SvcLogicContext ctx) { - LOG.info("AAI Deprecation - the format of request key is no longer supported. Please rewrite this key : " + key); - - String normResource = resource.split(":")[0]; - Class clazz = null; - try { - clazz = AAIRequest.getClassFromResource(normResource) ; - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return key; - } - if(clazz == null) - return key; - - List fieldAnnotatedNames = new LinkedList(); - - Field[] fields = clazz.getDeclaredFields(); - for(Field field : fields) { - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - if(annotation == null) - continue; - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - fieldAnnotatedNames.add(primaryId); - } - - HashMap nameValues = keyToHashMap(key, ctx); - Set keyset = nameValues.keySet(); - for(String keyName : keyset) { - if(keyName.contains(".")) - continue; - else { - String tmpKeyName = keyName.replaceAll("_", "-"); - if(fieldAnnotatedNames.contains(tmpKeyName)) { - key = key.replace(tmpKeyName, String.format("%s.%s", normResource, tmpKeyName)); - } - } - } - - - return key; - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceActivator.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceActivator.java deleted file mode 100644 index 288877388..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceActivator.java +++ /dev/null @@ -1,239 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FilenameFilter; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashSet; -import java.util.Properties; -import java.util.Set; - -import org.onap.ccsdk.sli.core.sli.ConfigurationException; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AAIServiceActivator implements BundleActivator { - - private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; - private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; - private static final String DEFAULT_KEYWORD = "default"; - - private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; - - private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; - private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; - - private Set registrationSet = new HashSet(); - - private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); - - @Override - public void start(BundleContext ctx) throws Exception { - - System.setProperty("aaiclient.runtime", "OSGI"); - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - - // check SDNC CONFIG DIR system property - if(sdnConfigDirectory == null ) { - LOG.error("System property SDNC_CONFIG_DIR is not defined."); - LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); - sdnConfigDirectory = "/opt/sdnc/data/properties/"; - } - - LOG.debug("Configuration directory used : " + sdnConfigDirectory); - - // check existance of properties directory - File configDirectory = new File(sdnConfigDirectory); - if(!configDirectory.exists() || !configDirectory.isDirectory()){ - LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); - return; - } - - Properties properties = new Properties(); - InputStream input = null; - - // find aaiclient config file - File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); - - // read the aai config data - if(files != null && files.length > 0) { - LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); - try { - input = new FileInputStream(files[0]); - properties.load(input); - LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); - } catch (IOException exc) { - LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); - } finally { - if(input != null ) { - try { - input.close(); - } catch(Exception exc) { - // ignore - } - } - int size = properties.keySet().size() ; - if(size == 0) { - LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - } - } else { - LOG.debug("No configuration entries were found. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - - Set entrySet = properties. stringPropertyNames(); - String value = null; - - // initialize AAI Service for each aai client property files - for(String entry : entrySet) { - value = properties.getProperty(entry); - if(value != null && !value.isEmpty()) { - - final String fileName = value; - - File[] propertyFileList = findFiles(configDirectory, fileName); - - for(File propertiesFile : propertyFileList) { - LOG.info(propertiesFile.getName()); - // Advertise AAI resource adaptor - AAIClient impl = null; - switch(entry) { - case DEFAULT_KEYWORD: - impl = new AAIService(propertiesFile.toURI().toURL()); - break; - case "trinity": - impl = new AAITrinityService(propertiesFile.toURI().toURL()); - break; - default: - LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); - continue; - } - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - - } - } - } - } - -// @Override - @Deprecated - public void start1(BundleContext ctx) throws Exception { - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - String propertiesPath = null; - - if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); - } - } - } else { - propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; - LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); - } - - File propFile = new File(propertiesPath); - if(!propFile.exists()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); - throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); - } - } - } - - // Advertise AAI resource adaptor - AAIClient impl = new AAIService(propFile.toURI().toURL()); - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - } - - @Override - public void stop(BundleContext ctx) throws Exception { - - Set localRegistrationSet = new HashSet(); - localRegistrationSet.addAll(registrationSet); - - for(ServiceRegistration registration : localRegistrationSet) { - if (registration != null) { - try { - AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); - registration.unregister(); - registrationSet.remove(registration); - if(aaiService != null) { - aaiService.cleanUp(); - } - } catch(Exception exc) { - if(LOG.isDebugEnabled()) - LOG.debug(exc.getMessage()); - } - } - } - } - - private File[] findFiles(File configDirectory, final String filter) { - File[] files = configDirectory.listFiles(new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.equalsIgnoreCase(filter); - } - }); - - return files; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceException.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceException.java deleted file mode 100644 index cda60a8c1..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIServiceException.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import org.openecomp.sdnc.sli.aai.data.ErrorResponse; - -public class AAIServiceException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -9039257722542999522L; - - protected ErrorResponse errorResponse = null; - protected int returnCode = -1; - - public AAIServiceException() { - - } - - public AAIServiceException(String message) { - super(message); - } - - public AAIServiceException(Throwable cause) { - super(cause); - } - - public AAIServiceException(String message, Throwable cause) { - super(message, cause); - } - - public AAIServiceException(String message, Throwable cause, - boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - - public AAIServiceException(int returnCode, ErrorResponse errorresponse) { - this.errorResponse = errorresponse; - this.returnCode = returnCode; - } - - public ErrorResponse getErrorResponse() { - return errorResponse; - } - - public int getReturnCode() { - return returnCode; - } - - public String getMessage() { - if(errorResponse != null) { - return errorResponse.getRequestError().getServiceException().getText(); - } else { - return super.getMessage(); - } - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAITrinityService.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAITrinityService.java deleted file mode 100644 index ed5295cfc..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAITrinityService.java +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.net.URL; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AAITrinityService extends AAIService { - - private static final Logger LOG = LoggerFactory.getLogger(AAITrinityService.class); - - public AAITrinityService(URL propURL) { - super(propURL); - LOG.info("Entered AAITrinityService.ctor"); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CloudRegionRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CloudRegionRequest.java deleted file mode 100644 index 08c86a27b..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CloudRegionRequest.java +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.CloudRegion; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class CloudRegionRequest extends AAIRequest { - - public static final String CLOUD_REGION_PATH = "org.openecomp.sdnc.sli.aai.path.cloud.region"; - - private final String cloud_region_path; - - public static final String CLOUD_REGION_CLOUD_OWNER = "cloud-region.cloud-owner"; - public static final String CLOUD_REGION_CLOUD_REGION_ID = "cloud-region.cloud-region-id"; - - - public CloudRegionRequest() { - cloud_region_path = configProperties.getProperty(CLOUD_REGION_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+cloud_region_path; - - request_url = processPathData(request_url, requestProperties); - - Map query = new HashMap(); - if(requestProperties.containsKey(DEPTH)) { - query.put(DEPTH, requestProperties.getProperty(DEPTH)); - } - - if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; - query.put(RESOURCE_VERSION, resourceVersion); - } - - if(!query.isEmpty()) { - Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); - String queryString = mapJoiner.join(query); - request_url = String.format("%s?%s", request_url, queryString); - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - CloudRegion vnfc = (CloudRegion)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - CLOUD_REGION_CLOUD_OWNER, - CLOUD_REGION_CLOUD_REGION_ID, - DEPTH - }; - - return args; - } - - @Override - public Class getModelClass() { - return CloudRegion.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - if(!requestProperties.containsKey(CLOUD_REGION_CLOUD_OWNER) || !requestProperties.containsKey(CLOUD_REGION_CLOUD_REGION_ID)) { - aaiService.logKeyError(String.format("%s,%s", CLOUD_REGION_CLOUD_OWNER, CLOUD_REGION_CLOUD_REGION_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); - request_url = request_url.replace("{cloud-owner}", encoded_vnf) ; - - encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); - request_url = request_url.replace("{cloud-region-id}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("cloud-owner", requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); - aaiService.LOGwriteDateTrace("cloud-region-id", requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CustomQueryRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CustomQueryRequest.java deleted file mode 100644 index d61a4ea89..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/CustomQueryRequest.java +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.openecomp.sdnc.sli.aai.query.FormattedQueryRequestData; -import org.openecomp.sdnc.sli.aai.query.FormattedQueryResultList; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - - -public class CustomQueryRequest extends AAIRequest { - - public static final String GENERIC_SEARCH_PATH = "org.openecomp.sdnc.sli.aai.query.generic"; - - private final String generic_search_path; - - public static final String FORMAT = "format"; - - - public CustomQueryRequest() { - String tmp_generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); - tmp_generic_search_path = tmp_generic_search_path.split("search")[0]; - generic_search_path = tmp_generic_search_path +"query"; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_search_path; - - request_url = processPathData(request_url, requestProperties); - - String formatQuery = requestProperties.getProperty(FORMAT); - - if(formatQuery != null) { - request_url = request_url +"?format="+formatQuery; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - FormattedQueryRequestData tenant = (FormattedQueryRequestData)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {FORMAT}; - return args; - } - - - @Override - public Class getModelClass() { - return FormattedQueryRequestData.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = FORMAT; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); - - return request_url; - } - - public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { - if(jsonData == null) { - return null; - } - - AAIDatum response = null; - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(jsonData, FormattedQueryResultList.class); - return response; - } - - protected boolean expectsDataFromPUTRequest() { - return true; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/EchoRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/EchoRequest.java deleted file mode 100644 index 7352c4022..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/EchoRequest.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.openecomp.sdnc.sli.aai.data.EchoResponse; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class EchoRequest extends AAIRequest { - - - - private final String echo_path; - - public EchoRequest() { - echo_path = "/aai/util/echo"; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+echo_path; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - EchoResponse tenant = (EchoResponse)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - return args; - } - - - @Override - public Class getModelClass() { - return EchoResponse.class; - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericQueryRequest.java deleted file mode 100644 index 0f1dda0e5..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericQueryRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.ResultData; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class GenericQueryRequest extends AAIRequest { - - public static final String GENERIC_SEARCH_PATH = "org.openecomp.sdnc.sli.aai.query.generic"; - - private final String generic_search_path; - - public static final String START_NODE_TYPE = "start-node-type"; - public static final String IDENTIFIER = "identifier"; - public static final String VALUE = "value"; - - - public GenericQueryRequest() { - generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); - } - - -// @Override -// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { -// -// String request_url = target_uri+generic_search_path; -// String key = START_NODE_TYPE; -// -// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); -// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; -// -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } -// URL http_req_url = new URL(request_url); -// -// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); -// -// -// return http_req_url; -// } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - ResultData tenant = (ResultData)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {START_NODE_TYPE, IDENTIFIER, VALUE}; - return args; - } - - - @Override - public Class getModelClass() { - return ResultData.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = IDENTIFIER; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); - - key = VALUE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{value}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("value", requestProperties.getProperty(key)); - - key = START_NODE_TYPE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{start-node-type}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("start-node-type", requestProperties.getProperty(key)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericRequest.java deleted file mode 100644 index 0da40abe9..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericRequest.java +++ /dev/null @@ -1,319 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Field; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.xml.bind.annotation.XmlElement; - -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.L3Networks; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class GenericRequest extends AAIRequest { - - - protected Class model; - - public GenericRequest(Class clazz) { - model = clazz; - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String originalPath = null; - String pathSubstitute = null; - - request_url = target_uri + getRequestPath(); - - Map queryParams = new HashMap (); - if(resourceVersion != null) { - queryParams.put("resource-version",resourceVersion); - } - - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - - String[] keys = requestProperties.keySet().toArray(new String[0]); - for(String key : keys) { - if("cloud-region.cloud-region-id".equals(key)) - continue; - if("entitlement.resource-uuid".equals(key)) - continue; - if("license.resource-uuid".equals(key)) - continue; - - - String value = requestProperties.getProperty(key); - if(key.contains(".")) { - String[] splitKey = key.split("\\."); - if("cloud-region".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); - aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); - String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("entitlement".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("license".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else { - Class clazz = null; - try { - clazz = getClassFromResource(splitKey[0]); - } catch (ClassNotFoundException exc) { - LOG.warn("AAIRequest does not support class: " + exc.getMessage()); - return null; - } - - if(clazz != null) { - if(clazz == this.model) { - Field[] fields = this.model.getDeclaredFields(); - Field field = fields[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - - String token = String.format("%s/{%s}", splitKey[0], primaryId); - - if(splitKey[1].equals(primaryId)) { - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } else { - queryParams.put(splitKey[1], encodeQuery(value)); - originalPath = token; - pathSubstitute = String.format("%s", splitKey[0]); - } - } else if(L3Networks.class == this.model) { - Field[] fields = L3Network.class.getDeclaredFields(); - Field field = fields[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - - String token = String.format("%s/{%s}", splitKey[0], primaryId); - originalPath = token; - pathSubstitute = String.format(""); - - queryParams.put(splitKey[1], encodeQuery(value)); - } else { - String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } - } - - } - aaiService.LOGwriteDateTrace(splitKey[1], value); - } - } - - if(originalPath != null && pathSubstitute != null) - request_url = request_url.replace(originalPath, pathSubstitute); - - if(!queryParams.isEmpty()) { - Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); - String queryString = mapJoiner.join(queryParams); - request_url = String.format("%s?%s", request_url, queryString); - } - - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - - return http_req_url; - } - - - public URL OriginalgetRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - - request_url = target_uri + getRequestPath(); - - Map keyValuepairs = new HashMap (); - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - - String[] keys = requestProperties.keySet().toArray(new String[0]); - for(String key : keys) { - if("cloud-region.cloud-region-id".equals(key)) - continue; - if("entitlement.resource-uuid".equals(key)) - continue; - if("license.resource-uuid".equals(key)) - continue; - - - String value = requestProperties.getProperty(key); - if(key.contains(".")) { - String[] splitKey = key.split("\\."); - if("cloud-region".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); - aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); - String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("entitlement".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("license".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else { - Class clazz = null; - try { - clazz = getClassFromResource(splitKey[0]); - } catch (ClassNotFoundException exc) { - LOG.warn("AAIRequest does not support class: " + exc.getMessage()); - return null; - } - - if(clazz != null) { - if(clazz == this.model) { - Field[] fields = this.model.getDeclaredFields(); - Field field = fields[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - - String token = String.format("%s/{%s}", splitKey[0], primaryId); - - if(splitKey[1].equals(primaryId)) { - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } else { - String replacement = String.format("%s?%s=%s", splitKey[0], splitKey[1], encodeQuery(value)); - if(request_url.contains(token)) - request_url = request_url.replace(token, replacement); - } - } else { - String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } - } - - } - aaiService.LOGwriteDateTrace(splitKey[1], value); - } - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - - String json_text = null; - try { - json_text = mapper.writeValueAsString(requestDatum); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {}; - return args; - } - - @Override - public Class getModelClass() { - return model; - } - - public void processRequestPathValues(Map nameValues) { - // identify unique resources - Set uniqueResources = AAIRequest.extractUniqueResourceSetFromKeys(nameValues.keySet()); - - String[] arguments = nameValues.keySet().toArray(new String[0]); - for(String name : arguments) { - String tmpName = name.replaceAll("-", "_"); - String value = nameValues.get(tmpName); - if(value != null && !value.isEmpty()) { - value = value.trim().replace("'", "").replace("$", "").replace("'", ""); - tmpName = name.replaceAll("_", "-"); - this.addRequestProperty(tmpName, value); - } - } - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericVnfRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericVnfRequest.java deleted file mode 100644 index f8c9a18bc..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/GenericVnfRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class GenericVnfRequest extends AAIRequest { - - // tenant (1602) - public static final String GENERIC_VNF_PATH = "org.openecomp.sdnc.sli.aai.path.generic.vnf"; - public static final String GENERIC_VNF_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.generic.vnf.query"; - - private final String generic_vnf_path; - private final String generic_vnf_query_path; - - public static final String GENERIC_VNF_ID = "generic_vnf.vnf_id"; - public static final String VNF_ID = "vnf_id"; - - - public GenericVnfRequest() { - generic_vnf_path = configProperties.getProperty(GENERIC_VNF_PATH); - generic_vnf_query_path = configProperties.getProperty(GENERIC_VNF_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_vnf_path; - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_vnf_path; - - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - GenericVnf tenant = (GenericVnf)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {VNF_ID, GENERIC_VNF_ID}; - return args; - } - - - @Override - public Class getModelClass() { - return GenericVnf.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv4AddressListRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv4AddressListRequest.java deleted file mode 100644 index 762d43bb9..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv4AddressListRequest.java +++ /dev/null @@ -1,212 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.L3InterfaceIpv4AddressList; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class L3InterfaceIpv4AddressListRequest extends AAIRequest { - - /* - * Note: there are 3 possible paths: - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - */ - - public static final String L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.l3.interface.ipv4.address.list"; - public static final String VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.vlan.l3.interface.ipv4.address.list"; - - private final String l3_interface_ipv4_address_list_path; - private final String vlan_l3_interface_ipv4_address_list_path; - - public static final String L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address"; - public static final String LIST_L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address-list.l3-interface-ipv4-address"; - public static final String VLAN_INTERFACE = "vlan-interface"; - public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; - - public L3InterfaceIpv4AddressListRequest() { - l3_interface_ipv4_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); - vlan_l3_interface_ipv4_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+l3_interface_ipv4_address_list_path; - - if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ - request_url = target_uri+vlan_l3_interface_ipv4_address_list_path; - request_url = processVLanRequestPathData(request_url, requestProperties); - } - - request_url = processPathData(request_url, requestProperties); - request_url = LInterfaceRequest.processPathData(request_url, requestProperties); -// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = null; - - if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { - key = VLAN_VLAN_INTERFACE; - } else if(requestProperties.containsKey(VLAN_INTERFACE)) { - key = VLAN_INTERFACE; - } else { - aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); - return request_url; - } - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - L3InterfaceIpv4AddressList vnfc = (L3InterfaceIpv4AddressList)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - L3_INTERFACE_IPV4_ADDRESS, - LIST_L3_INTERFACE_IPV4_ADDRESS, - VLAN_INTERFACE, - VLAN_VLAN_INTERFACE, - LInterfaceRequest.INTERFACE_NAME, - LInterfaceRequest.LINTERFACE_INTERFACE_NAME, - "generic-vnf.vnf-id" - }; - - return args; - } - - @Override - public Class getModelClass() { - return L3InterfaceIpv4AddressList.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = L3_INTERFACE_IPV4_ADDRESS; - if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV4_ADDRESS)) { - key = LIST_L3_INTERFACE_IPV4_ADDRESS; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV4_ADDRESS, LIST_L3_INTERFACE_IPV4_ADDRESS)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{l3-interface-ipv4-address}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("l3-interface-ipv4-address", requestProperties.getProperty(key)); - return request_url; - } - - /* - * (non-Javadoc) - * @see org.openecomp.sdnc.sli.aai.PathConfigurator#configurePath(java.lang.String) - */ -// @Override -// public void processRequestPathValues(Map nameValues) { -// String[] paths = -// { -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}" -// }; -// -// Listkeys = new LinkedList(); -// keys.addAll(nameValues.keySet()); -// for(String key : keys) { -// if(key.contains(".")) { -// key = key.replaceAll("_", "-"); -// if(!LIST_L3_INTERFACE_IPV4_ADDRESS.equals(key)) { -// int index = key.indexOf("."); -// String resource = key.substring(0, index); -// AAIRequest rx = createRequest(resource, nameValues); -// if(rx != null) { -// pathElements.add(rx); -// } -// } -// } -// } -// super.processRequestPathValues(nameValues); -// } -// List pathElements = new LinkedList(); - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv6AddressListRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv6AddressListRequest.java deleted file mode 100644 index b87f4079d..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/L3InterfaceIpv6AddressListRequest.java +++ /dev/null @@ -1,179 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.L3InterfaceIpv6AddressList; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class L3InterfaceIpv6AddressListRequest extends AAIRequest { - - /* - * Note: there are 3 possible paths: - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - */ - - public static final String L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.l3.interface.ipv6.address.list"; - public static final String VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.vlan.l3.interface.ipv6.address.list"; - - private final String l3_interface_ipv6_address_list_path; - private final String vlan_l3_interface_ipv6_address_list_path; - - public static final String L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address"; - public static final String LIST_L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address-list.l3-interface-ipv6-address"; - public static final String VLAN_INTERFACE = "vlan-interface"; - public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; - - public L3InterfaceIpv6AddressListRequest() { - l3_interface_ipv6_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); - vlan_l3_interface_ipv6_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+l3_interface_ipv6_address_list_path; - - if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ - request_url = target_uri+vlan_l3_interface_ipv6_address_list_path; - request_url = processVLanRequestPathData(request_url, requestProperties); - } - - request_url = processPathData(request_url, requestProperties); - request_url = LInterfaceRequest.processPathData(request_url, requestProperties); -// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = null; - - if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { - key = VLAN_VLAN_INTERFACE; - } else if(requestProperties.containsKey(VLAN_INTERFACE)) { - key = VLAN_INTERFACE; - } else { - aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); - return request_url; - } - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - L3InterfaceIpv6AddressList vnfc = (L3InterfaceIpv6AddressList)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - L3_INTERFACE_IPV6_ADDRESS, - LIST_L3_INTERFACE_IPV6_ADDRESS, - VLAN_INTERFACE, - VLAN_VLAN_INTERFACE, - LInterfaceRequest.INTERFACE_NAME, - LInterfaceRequest.LINTERFACE_INTERFACE_NAME, - "generic-vnf.vnf-id" - - }; - - return args; - } - - @Override - public Class getModelClass() { - return L3InterfaceIpv6AddressList.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = L3_INTERFACE_IPV6_ADDRESS; - if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV6_ADDRESS)) { - key = LIST_L3_INTERFACE_IPV6_ADDRESS; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV6_ADDRESS, LIST_L3_INTERFACE_IPV6_ADDRESS)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{l3-interface-ipv6-address}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("l3-interface-ipv6-address", requestProperties.getProperty(key)); - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LInterfaceRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LInterfaceRequest.java deleted file mode 100644 index 2553037d2..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LInterfaceRequest.java +++ /dev/null @@ -1,244 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.LInterface; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class LInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String LAGINTERFACE_LINTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.lag.interface.l.interface"; - public static final String LAGINTERFACE_LINTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.lag.interface.l.interface.query"; - - public static final String P_INTERFACE_LINTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.p.interface.l.interface"; - public static final String P_INTERFACE_LINTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.p.interface.l.interface.query"; - - public static final String LAGINTERFACE_LINTERFACE_PNF_PATH = "org.openecomp.sdnc.sli.aai.path.lag.interface.l.interface.pnf"; - public static final String P_INTERFACE_LINTERFACE_PNF_PATH = "org.openecomp.sdnc.sli.aai.path.p.interface.l.interface.pnf"; - - private final String laginterface_linterface_path; - private final String laginterface_linterface_query_path; - private final String p_interface_linterface_path; - private final String p_interface_linterface_query_path; - - private final String laginterface_linterface_pnf_path; - private final String p_interface_linterface_pnf_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String LINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String P_INTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - public static final String ROUTER_NAME = "router-name"; - public static final String HOSTNAME = "hostname"; - - - public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; - - private final TYPE type; - - public LInterfaceRequest(TYPE type) { - this.type = type; - - laginterface_linterface_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PATH); - laginterface_linterface_query_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_QUERY_PATH); - - p_interface_linterface_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PATH); - p_interface_linterface_query_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_QUERY_PATH); - - laginterface_linterface_pnf_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PNF_PATH); - p_interface_linterface_pnf_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PNF_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String encoded_vnf = null; - String hostname = null; - String pnfname = null; - String interfaceName = null; - - if(type == TYPE.L2_BRIDGE_SBG) { - if(requestProperties.containsKey(PNF_PNF_NAME)) { - request_url = target_uri + laginterface_linterface_pnf_path; - } else { - request_url = target_uri + laginterface_linterface_path; - } - - if(requestProperties.containsKey(ROUTER_NAME)) { - hostname = requestProperties.getProperty(ROUTER_NAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - } - if(type == TYPE.L2_BRIDGE_BGF) { - if(requestProperties.containsKey(PNF_PNF_NAME)) { - request_url = target_uri + p_interface_linterface_pnf_path; - } else { - request_url = target_uri + p_interface_linterface_path; - } - - - if(requestProperties.containsKey(ROUTER_NAME)) { - hostname = requestProperties.getProperty(ROUTER_NAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - if(hostname != null) - aaiService.LOGwriteDateTrace("hostname", hostname); - if(pnfname != null) - aaiService.LOGwriteDateTrace("pnf-name", pnfname); - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - } - if(requestProperties.containsKey(P_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); - } - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LInterface vnfc = (LInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - if(type == TYPE.L2_BRIDGE_SBG) { - String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - if(type == TYPE.L2_BRIDGE_BGF) { - String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, P_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - - return args; - } - - @Override - public Class getModelClass() { - return LInterface.class; - } - - @Override - public String getPrimaryResourceName(String resource) { - return "l-interface"; - } - - public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - - request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LagInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LagInterfacePnfRequest.java deleted file mode 100644 index 2c1036233..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/LagInterfacePnfRequest.java +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.LagInterface; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class LagInterfacePnfRequest extends AAIRequest { - - // tenant (1602) - public static final String LAG_INTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface"; - public static final String LAG_INTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface.query"; - public static final String PNF_PATH = "org.openecomp.sdnc.sli.aai.path.pnf"; - - private final String lag_interface_path; - private final String lag_interface_query_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String PNF_NAME = "pnf-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - - public LagInterfacePnfRequest() { - lag_interface_path = configProperties.getProperty(PNF_PATH) + "/lag-interfaces/lag-interface/{interface-name}"; - lag_interface_query_path = configProperties.getProperty(LAG_INTERFACE_QUERY_PATH); - LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.openecomp.sdnc.sli.aai.path.pserver.pinterface=\t" + lag_interface_path); - LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.openecomp.sdnc.sli.aai.path.pserver.pinterface.query=\t" + lag_interface_query_path); - if(lag_interface_path == null) { - LoggerFactory.getLogger(LagInterfacePnfRequest.class).warn("org.openecomp.sdnc.sli.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + lag_interface_path; - String encoded_vnf = null; - - String interfaceName = null; - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } else - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - request_url = processPnfRequestPathData(request_url,requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = PNF_NAME; - if(requestProperties.containsKey(PNF_PNF_NAME)) { - key = PNF_PNF_NAME; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{pnf-name}", encoded_vnf) ; - - return request_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LagInterface vnfc = (LagInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return LagInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NamedQueryRequest.java deleted file mode 100644 index 4ee517458..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NamedQueryRequest.java +++ /dev/null @@ -1,190 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.InventoryResponseItems; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.AnnotationIntrospector; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.databind.type.TypeFactory; -import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; - -public class NamedQueryRequest extends AAIRequest { - - public static final String NAMED_SEARCH_PATH = "org.openecomp.sdnc.sli.aai.query.named"; - - private final String named_search_path; - - public static final String NAMED_QUERY_UUID = "named-query-uuid"; - public static final String PREFIX = "prefix"; - - - public NamedQueryRequest() { - named_search_path = configProperties.getProperty(NAMED_SEARCH_PATH); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+named_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = AAIService.getObjectMapper(); - mapper.setSerializationInclusion(Include.NON_NULL); - mapper.setSerializationInclusion(Include.NON_EMPTY); - mapper.setSerializationInclusion(Include.NON_DEFAULT); - - AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); - AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); - mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - AAIDatum tenant = (AAIDatum)requestDatum; - String json_text = null; - try { - ObjectNode node = mapper.valueToTree(tenant); - Iterator it = node.elements(); - while(it.hasNext()){ - JsonNode jn = it.next(); - JsonNode child = jn.get("instance-filter"); - if(child != null) { - child = child.get(0); - if(child.has("l3-network")) { - JsonNode innerChild = child.get("l3-network"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("is-")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } else if(child.has("pnf")) { - JsonNode innerChild = child.get("pnf"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("in-maint")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } - } - } - json_text = node.toString(); - if(json_text == null) - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {NAMED_QUERY_UUID, PREFIX}; - return args; - } - - - @Override - public Class getModelClass() { - return InventoryResponseItems.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - - String encoded_vnf ; - String key = NAMED_QUERY_UUID; - - if(requestProperties.containsKey(key)) { - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{named-query-uuid}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("named-query-uuid", requestProperties.getProperty(key)); - } - - key = PREFIX; - - if(requestProperties.containsKey(key)) { - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{prefix}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("prefix", requestProperties.getProperty(key)); - } - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NodesQueryRequest.java deleted file mode 100644 index c4141876e..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/NodesQueryRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class NodesQueryRequest extends AAIRequest { - - public static final String NODES_SEARCH_PATH = "org.openecomp.sdnc.sli.aai.query.nodes"; - - private final String nodes_search_path; - - public static final String NODE_TYPE = "node-type"; - public static final String ENTITY_IDENTIFIER = "entity-identifier"; - public static final String ENTITY_VALUE = "entity-value"; - - - public NodesQueryRequest() { - nodes_search_path = configProperties.getProperty(NODES_SEARCH_PATH); - } - - -// @Override -// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { -// -// String request_url = target_uri+generic_search_path; -// String key = START_NODE_TYPE; -// -// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); -// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; -// -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } -// URL http_req_url = new URL(request_url); -// -// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); -// -// -// return http_req_url; -// } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+nodes_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - SearchResults tenant = (SearchResults)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {NODE_TYPE, ENTITY_IDENTIFIER, ENTITY_VALUE}; - return args; - } - - - @Override - public Class getModelClass() { - return SearchResults.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = ENTITY_IDENTIFIER; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{entity-identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("entity-identifier", requestProperties.getProperty(key)); - - key = ENTITY_VALUE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{entity-name}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("entity-name", requestProperties.getProperty(key)); - - key = NODE_TYPE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{node-type}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("node-type", requestProperties.getProperty(key)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfacePnfRequest.java deleted file mode 100644 index 99bce9d15..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfacePnfRequest.java +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.PInterface; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PInterfacePnfRequest extends AAIRequest { - - // tenant (1602) - public static final String PINTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface"; - public static final String PINTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface.query"; - public static final String PNF_PATH = "org.openecomp.sdnc.sli.aai.path.pnf"; - - private final String pinterface_path; - private final String pinterface_query_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - public static final String PNF_NAME = "pnf-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - - public PInterfacePnfRequest() { - pinterface_path = configProperties.getProperty(PNF_PATH) + "/p-interfaces/p-interface/{interface-name}"; - pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); - LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.openecomp.sdnc.sli.aai.path.pserver.pinterface=\t" + pinterface_path); - LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.openecomp.sdnc.sli.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); - if(pinterface_path == null) { - LoggerFactory.getLogger(PInterfacePnfRequest.class).warn("org.openecomp.sdnc.sli.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + pinterface_path; - String encoded_vnf = null; - - String interfaceName = null; - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } else - if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - request_url = processPnfRequestPathData(request_url,requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = PNF_NAME; - if(requestProperties.containsKey(PNF_PNF_NAME)) { - key = PNF_PNF_NAME; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{pnf-name}", encoded_vnf) ; - - return request_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PInterface vnfc = (PInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {INTERFACE_NAME, PINTERFACE_INTERFACE_NAME, PNF_NAME, PNF_PNF_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return PInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfaceRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfaceRequest.java deleted file mode 100644 index a08a39298..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PInterfaceRequest.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.openecomp.aai.inventory.v10.PInterface; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String PINTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface"; - public static final String PINTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.pserver.pinterface.query"; - - private final String pinterface_path; - private final String pinterface_query_path; - - public static final String HOSTNAME = "hostname"; - public static final String PSERVER_HOSTNAME = "pserver.hostname"; - public static final String INTERFACE_NAME = "interface-name"; - public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - - - public PInterfaceRequest() { - pinterface_path = configProperties.getProperty(PINTERFACE_PATH); - pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); - LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.openecomp.sdnc.sli.aai.path.pserver.pinterface=\t" + pinterface_path); - LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.openecomp.sdnc.sli.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); - if(pinterface_path == null) { - LoggerFactory.getLogger(PInterfaceRequest.class).warn("org.openecomp.sdnc.sli.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + pinterface_path; - String encoded_vnf = null; - - String hostname = null; - String interfaceName = null; - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - } - if(requestProperties.containsKey(PSERVER_HOSTNAME)) { - hostname = requestProperties.getProperty(PSERVER_HOSTNAME); - } - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } - if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf) ; - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("hostname", hostname); - aaiService.LOGwriteDateTrace("interface-name", hostname); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PInterface vnfc = (PInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {HOSTNAME, PSERVER_HOSTNAME, INTERFACE_NAME, PINTERFACE_INTERFACE_NAME}; - return args; - } - - @Override - public Class getModelClass() { - return PInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PathRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PathRequest.java deleted file mode 100644 index 0e110a110..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PathRequest.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PathRequest extends AAIRequest { - - private final Class classType; - - public static final String RESOURCE_PATH = "resource-path"; - - public PathRequest(Class type) { - classType = (Class)type; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + "{resource-path}"; - - String encoded_vnf = requestProperties.getProperty(RESOURCE_PATH); - request_url = request_url.replace("{resource-path}", encoded_vnf) ; - - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - String json_text = null; - try { - json_text = mapper.writeValueAsString(classType); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {RESOURCE_PATH}; - return args; - } - - @Override - public Class getModelClass() { - return classType; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PhysicalLinkRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PhysicalLinkRequest.java deleted file mode 100644 index a03298ae8..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/PhysicalLinkRequest.java +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.openecomp.aai.inventory.v10.PhysicalLink; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PhysicalLinkRequest extends AAIRequest { - - // physical link - public static final String PHYSICAL_LINK_PATH = "org.openecomp.sdnc.sli.aai.path.physical.link"; - public static final String PHYSICAL_LINK_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.physical.link.query"; - - private final String physical_link_path; - private final String physical_link_query_path; - - public static final String LINK_NAME = "link-name"; - public static final String PHYSICAL_LINK_NAME = "physical-link.link-name"; - - - public PhysicalLinkRequest() { - physical_link_path = configProperties.getProperty(PHYSICAL_LINK_PATH); - physical_link_query_path = configProperties.getProperty(PHYSICAL_LINK_QUERY_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+physical_link_path; - - String linkName = null; - if(requestProperties.containsKey(LINK_NAME)) { - linkName = requestProperties.getProperty(LINK_NAME); - } - - if(requestProperties.containsKey(PHYSICAL_LINK_NAME)) { - linkName = requestProperties.getProperty(PHYSICAL_LINK_NAME); - } - - - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{link-name}", encoded_vnf) ; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("link-name", linkName); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PhysicalLink vpe = (PhysicalLink)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vpe); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {LINK_NAME, PHYSICAL_LINK_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return PhysicalLink.class; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/RelationshipRequest.java deleted file mode 100644 index f15cbb591..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/RelationshipRequest.java +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.openecomp.aai.inventory.v10.RelationshipList; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class RelationshipRequest extends AAIRequest { - - // tenant (1602) - public static final String RELATIONSHIP_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.relationship.list"; - public static final String RELATIONSHIP_LIST_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.relationship.list.query"; - - private final String relationship_path; - private final String relationship_query_path; - - public static final String RELATED_TO = "related-to"; - public static final String RELATIONSHIP_KEY = "relationship-key"; - - public RelationshipRequest() { - relationship_path = configProperties.getProperty(RELATIONSHIP_LIST_PATH, "/relationship-list/relationship"); - relationship_query_path = configProperties.getProperty(RELATIONSHIP_LIST_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - AAIRequest masterRequest = (AAIRequest)requestProperties.get(MASTER_REQUEST); - URL masterURL = masterRequest.getRequestUrl(method, null); - - String request_url = masterURL.toString(); - request_url = request_url + relationship_path; - - if(request_url.contains("//")) { - request_url = request_url.replaceAll("//", "/"); - } - - if(requestProperties.containsKey(RELATED_TO)) { - String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATED_TO)); - request_url = request_url.replace("{related-to}", encoded_vnf) ; - } - -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("related-to", requestProperties.getProperty(RELATED_TO)); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+relationship_query_path; - String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATIONSHIP_KEY)); - request_url = request_url.replace("{tenant-name}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("tenant_name", requestProperties.getProperty(RELATIONSHIP_KEY)); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - Object tenant = requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {RELATED_TO, RELATIONSHIP_KEY}; - return args; - } - - - @Override - public Class getModelClass() { - return RelationshipList.class; - } - - public boolean isDeleteDataRequired() { - return true; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SelfLinkRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SelfLinkRequest.java deleted file mode 100644 index 7c3076521..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SelfLinkRequest.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class SelfLinkRequest extends AAIRequest { - - private final Class classType; - - public static final String SELFLINK = "selflink"; - - public SelfLinkRequest(Class type) { - classType = (Class)type; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - - request_url = requestProperties.getProperty(SELFLINK); - - String query = null; - - if(request_url.contains("?")) { - query = request_url.substring(request_url.indexOf("?")); - Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("="); -// String queryString = mapJoiner.join(query); - } else { - request_url = request_url + "?depth=1"; - } - - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - String json_text = null; - try { - json_text = mapper.writeValueAsString(classType); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {SELFLINK}; - return args; - } - - @Override - public Class getModelClass() { - return classType; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SubInterfaceRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SubInterfaceRequest.java deleted file mode 100644 index 1220ee9ac..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/SubInterfaceRequest.java +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.openecomp.aai.inventory.v10.LInterface; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class SubInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String PNF_LAGINTERFACE_SUBINTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.pnf.lag.interface.subinterface"; - public static final String PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.pnf.lag.interface.subinterface.query"; - - public static final String PNF_P_INTERFACE_SUBINTERFACE_PATH = "org.openecomp.sdnc.sli.aai.path.pnf.p.interface.l.interface"; - public static final String PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH = "org.openecomp.sdnc.sli.aai.path.pnf.p.interface.l.interface.query"; - - private final String pnf_laginterface_subinterface_path; - private final String pnf_laginterface_subinterface_query_path; - private final String pnf_p_interface_subinterface_path; - private final String pnf_p_interface_subinterface_query_path; - - public static final String SUBINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; - - private final TYPE type; - - public SubInterfaceRequest(TYPE type) { - this.type = type; - - pnf_laginterface_subinterface_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_PATH); - pnf_laginterface_subinterface_query_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH); - - pnf_p_interface_subinterface_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_PATH); - pnf_p_interface_subinterface_query_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String encoded_vnf = null; - - String pnfname = null; - String interfaceName = null; - - if(type == TYPE.L2_BRIDGE_SBG) { - request_url = target_uri + pnf_laginterface_subinterface_path; - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - } - if(type == TYPE.L2_BRIDGE_BGF) { - request_url = target_uri + pnf_p_interface_subinterface_path; - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - if(pnfname != null) - aaiService.LOGwriteDateTrace("pnf-name", pnfname); - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - } - if(requestProperties.containsKey(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); - } - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LInterface vnfc = (LInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - if(type == TYPE.L2_BRIDGE_SBG) { - String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - if(type == TYPE.L2_BRIDGE_BGF) { - String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, PInterfaceRequest.PINTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - - return args; - } - - @Override - public Class getModelClass() { - return LInterface.class; - } - - @Override - public String getPrimaryResourceName(String resource) { - return "sub-interface"; - } - - public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/UpdateRequest.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/UpdateRequest.java deleted file mode 100644 index 696f30bdb..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/UpdateRequest.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Map; -import java.util.Properties; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class UpdateRequest extends AAIRequest { - - private AAIRequest request; - private Map params; - - public UpdateRequest(AAIRequest request, Map parms) { - this.request = request; - this.params = parms; - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) - throws UnsupportedEncodingException, MalformedURLException { - return request.getRequestUrl(method, resourceVersion); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return request.getRequestQueryUrl(method); - } - - @Override - public String toJSONString() { - ObjectMapper mapper = AAIService.getObjectMapper(); - String json = null; - - try { - json = mapper.writeValueAsString(params); - } catch (JsonProcessingException e) { - LOG.error("Could not convert parameters of " + request.getRequestObject().getClass().getName(), e); - } - - return json; - } - - @Override - public String[] getArgsList() { - return request.getArgsList(); - } - - @Override - public Class getModelClass() { - return request.getModelClass(); - } - - @Override - public void addRequestProperty(String key, String value) { - request.requestProperties.put(key, value); - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - -// if(request != null) { -// Class clazz = request.getClass(); -// Method function = null; -// try { -// function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); -// request_url = (String) function.invoke(null, request_url, requestProperties); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } - -// request.processPathData(request_url, requestProperties); - return request_url; - } - - public void processRequestPathValues(Map nameValues) { - request.processRequestPathValues(nameValues); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/AAIDatum.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/AAIDatum.java deleted file mode 100644 index fe238026e..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/AAIDatum.java +++ /dev/null @@ -1,26 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -public interface AAIDatum { - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/EchoResponse.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/EchoResponse.java deleted file mode 100644 index 1b9cb8d4a..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/EchoResponse.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "responseMessages" -}) -public class EchoResponse implements AAIDatum { - - @JsonProperty("responseMessages") - private ResponseMessages responseMessages; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The responseMessages - */ - @JsonProperty("responseMessages") - public ResponseMessages getResponseMessages() { - return responseMessages; - } - - /** - * - * @param responseMessages - * The responseMessages - */ - @JsonProperty("responseMessages") - public void setResponseMessages(ResponseMessages responseMessages) { - this.responseMessages = responseMessages; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ErrorResponse.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ErrorResponse.java deleted file mode 100644 index be5368d1b..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ErrorResponse.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.HashMap; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "requestError" -}) -public class ErrorResponse { - - @JsonProperty("requestError") - private RequestError requestError; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The requestError - */ - @JsonProperty("requestError") - public RequestError getRequestError() { - return requestError; - } - - /** - * - * @param requestError - * The requestError - */ - @JsonProperty("requestError") - public void setRequestError(RequestError requestError) { - this.requestError = requestError; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/RequestError.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/RequestError.java deleted file mode 100644 index df875f8c6..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/RequestError.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.HashMap; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "serviceException" -}) -public class RequestError { - - @JsonProperty("serviceException") - private ServiceException serviceException; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The serviceException - */ - @JsonProperty("serviceException") - public ServiceException getServiceException() { - return serviceException; - } - - /** - * - * @param serviceException - * The serviceException - */ - @JsonProperty("serviceException") - public void setServiceException(ServiceException serviceException) { - this.serviceException = serviceException; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResourceVersion.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResourceVersion.java deleted file mode 100644 index 5ac06e6bd..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResourceVersion.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -public interface ResourceVersion { - - public String getResourceVersion(); - public void setResourceVersion(String resourceVersion); -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessage.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessage.java deleted file mode 100644 index c1f9582af..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessage.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "messageId", - "text", - "variables" -}) -public class ResponseMessage { - - @JsonProperty("messageId") - private String messageId; - @JsonProperty("text") - private String text; - @JsonProperty("variables") - private Variables variables; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The messageId - */ - @JsonProperty("messageId") - public String getMessageId() { - return messageId; - } - - /** - * - * @param messageId - * The messageId - */ - @JsonProperty("messageId") - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - /** - * - * @return - * The text - */ - @JsonProperty("text") - public String getText() { - return text; - } - - /** - * - * @param text - * The text - */ - @JsonProperty("text") - public void setText(String text) { - this.text = text; - } - - /** - * - * @return - * The variables - */ - @JsonProperty("variables") - public Variables getVariables() { - return variables; - } - - /** - * - * @param variables - * The variables - */ - @JsonProperty("variables") - public void setVariables(Variables variables) { - this.variables = variables; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessages.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessages.java deleted file mode 100644 index 5af83aaeb..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ResponseMessages.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "responseMessage" -}) -public class ResponseMessages { - - @JsonProperty("responseMessage") - private List responseMessage = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The responseMessage - */ - @JsonProperty("responseMessage") - public List getResponseMessage() { - return responseMessage; - } - - /** - * - * @param responseMessage - * The responseMessage - */ - @JsonProperty("responseMessage") - public void setResponseMessage(List responseMessage) { - this.responseMessage = responseMessage; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ServiceException.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ServiceException.java deleted file mode 100644 index b02b448ee..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/ServiceException.java +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "messageId", - "text", - "variables" -}) -public class ServiceException { - - @JsonProperty("messageId") - private String messageId; - @JsonProperty("text") - private String text; - @JsonProperty("variables") - private List variables = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The messageId - */ - @JsonProperty("messageId") - public String getMessageId() { - return messageId; - } - - /** - * - * @param messageId - * The messageId - */ - @JsonProperty("messageId") - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - /** - * - * @return - * The text - */ - @JsonProperty("text") - public String getText() { - return text; - } - - /** - * - * @param text - * The text - */ - @JsonProperty("text") - public void setText(String text) { - this.text = text; - } - - /** - * - * @return - * The variables - */ - @JsonProperty("variables") - public List getVariables() { - return variables; - } - - /** - * - * @param variables - * The variables - */ - @JsonProperty("variables") - public void setVariables(List variables) { - this.variables = variables; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/SubInterface.java deleted file mode 100644 index a85e02196..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/SubInterface.java +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -import org.openecomp.aai.inventory.v10.RelationshipList; -import org.openecomp.aai.inventory.v10.Vlans; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "interface-name", - "interface-role", - "resource-version", - "vlans", - "relationshipList" -}) -public class SubInterface implements AAIDatum { - - @JsonProperty("interface-name") - private String interfaceName; - @JsonProperty("interface-role") - private String interfaceRole; - @JsonProperty("resource-version") - private String resourceVersion; - @JsonProperty("vlans") - private Vlans vlans; - @JsonProperty("relationshipList") - private RelationshipList relationshipList; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The interfaceName - */ - @JsonProperty("interface-name") - public String getInterfaceName() { - return interfaceName; - } - - /** - * - * @param interfaceName - * The interface-name - */ - @JsonProperty("interface-name") - public void setInterfaceName(String interfaceName) { - this.interfaceName = interfaceName; - } - - /** - * - * @return - * The interfaceRole - */ - @JsonProperty("interface-role") - public String getInterfaceRole() { - return interfaceRole; - } - - /** - * - * @param interfaceRole - * The interface-role - */ - @JsonProperty("interface-role") - public void setInterfaceRole(String interfaceRole) { - this.interfaceRole = interfaceRole; - } - - /** - * - * @return - * The resourceVersion - */ - @JsonProperty("resource-version") - public String getResourceVersion() { - return resourceVersion; - } - - /** - * - * @param resourceVersion - * The resource-version - */ - @JsonProperty("resource-version") - public void setResourceVersion(String resourceVersion) { - this.resourceVersion = resourceVersion; - } - - /** - * - * @return - * The vlans - */ - @JsonProperty("vlans") - public Vlans getVlans() { - return vlans; - } - - /** - * - * @param vlans - * The vlans - */ - @JsonProperty("vlans") - public void setVlans(Vlans vlans) { - this.vlans = vlans; - } - - /** - * - * @return - * The relationshipList - */ - @JsonProperty("relationshipList") - public RelationshipList getRelationshipList() { - return relationshipList; - } - - /** - * - * @param relationshipList - * The relationshipList - */ - @JsonProperty("relationshipList") - public void setRelationshipList(RelationshipList relationshipList) { - this.relationshipList = relationshipList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/Variables.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/Variables.java deleted file mode 100644 index 99c42aa3c..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/Variables.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "variable" -}) -public class Variables { - - @JsonProperty("variable") - private List variable = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The variable - */ - @JsonProperty("variable") - public List getVariable() { - return variable; - } - - /** - * - * @param variable - * The variable - */ - @JsonProperty("variable") - public void setVariable(List variable) { - this.variable = variable; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/KeyDatum.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/KeyDatum.java deleted file mode 100644 index 80e633dde..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/KeyDatum.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.notify; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "key-name", - "key-value" -}) -public class KeyDatum { - - @JsonProperty("key-name") - private String keyName; - @JsonProperty("key-value") - private String keyValue; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The keyName - */ - @JsonProperty("key-name") - public String getKeyName() { - return keyName; - } - - /** - * - * @param keyName - * The key-name - */ - @JsonProperty("key-name") - public void setKeyName(String keyName) { - this.keyName = keyName; - } - - /** - * - * @return - * The keyValue - */ - @JsonProperty("key-value") - public String getKeyValue() { - return keyValue; - } - - /** - * - * @param keyValue - * The key-value - */ - @JsonProperty("key-value") - public void setKeyValue(String keyValue) { - this.keyValue = keyValue; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/NotifyEvent.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/NotifyEvent.java deleted file mode 100644 index 1be171e03..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/notify/NotifyEvent.java +++ /dev/null @@ -1,170 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.notify; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "event-id", - "event-trigger", - "key-data", - "node-type", - "selflink" -}) -public class NotifyEvent { - - @JsonProperty("event-id") - private String eventId; - @JsonProperty("event-trigger") - private String eventTrigger; - @JsonProperty("key-data") - private List keyData = new ArrayList(); - @JsonProperty("node-type") - private String nodeType; - @JsonProperty("selflink") - private String selflink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The eventId - */ - @JsonProperty("event-id") - public String getEventId() { - return eventId; - } - - /** - * - * @param eventId - * The event-id - */ - @JsonProperty("event-id") - public void setEventId(String eventId) { - this.eventId = eventId; - } - - /** - * - * @return - * The eventTrigger - */ - @JsonProperty("event-trigger") - public String getEventTrigger() { - return eventTrigger; - } - - /** - * - * @param eventTrigger - * The event-trigger - */ - @JsonProperty("event-trigger") - public void setEventTrigger(String eventTrigger) { - this.eventTrigger = eventTrigger; - } - - /** - * - * @return - * The keyData - */ - @JsonProperty("key-data") - public List getKeyData() { - return keyData; - } - - /** - * - * @param keyData - * The key-data - */ - @JsonProperty("key-data") - public void setKeyData(List keyData) { - this.keyData = keyData; - } - - /** - * - * @return - * The nodeType - */ - @JsonProperty("node-type") - public String getNodeType() { - return nodeType; - } - - /** - * - * @param nodeType - * The node-type - */ - @JsonProperty("node-type") - public void setNodeType(String nodeType) { - this.nodeType = nodeType; - } - - /** - * - * @return - * The selflink - */ - @JsonProperty("selflink") - public String getSelflink() { - return selflink; - } - - /** - * - * @param selflink - * The selflink - */ - @JsonProperty("selflink") - public void setSelflink(String selflink) { - this.selflink = selflink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Flavor.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Flavor.java deleted file mode 100644 index 69288c118..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Flavor.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "flavorId", - "flavorName", - "flavorLink" -}) -public class Flavor { - - @JsonProperty("flavorId") - private String flavorId; - @JsonProperty("flavorName") - private String flavorName; - @JsonProperty("flavorLink") - private String flavorLink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The flavorId - */ - @JsonProperty("flavorId") - public String getFlavorId() { - return flavorId; - } - - /** - * - * @param flavorId - * The flavorId - */ - @JsonProperty("flavorId") - public void setFlavorId(String flavorId) { - this.flavorId = flavorId; - } - - /** - * - * @return - * The flavorName - */ - @JsonProperty("flavorName") - public String getFlavorName() { - return flavorName; - } - - /** - * - * @param flavorName - * The flavorName - */ - @JsonProperty("flavorName") - public void setFlavorName(String flavorName) { - this.flavorName = flavorName; - } - - /** - * - * @return - * The flavorLink - */ - @JsonProperty("flavorLink") - public String getFlavorLink() { - return flavorLink; - } - - /** - * - * @param flavorLink - * The flavorLink - */ - @JsonProperty("flavorLink") - public void setFlavorLink(String flavorLink) { - this.flavorLink = flavorLink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Host.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Host.java deleted file mode 100644 index e4a5720a6..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Host.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "hostId", - "hostname", - "hostLoc" -}) -public class Host { - - @JsonProperty("hostId") - private String hostId; - @JsonProperty("hostname") - private String hostname; - @JsonProperty("hostLoc") - private String hostLoc; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The hostId - */ - @JsonProperty("hostId") - public String getHostId() { - return hostId; - } - - /** - * - * @param hostId - * The hostId - */ - @JsonProperty("hostId") - public void setHostId(String hostId) { - this.hostId = hostId; - } - - /** - * - * @return - * The hostname - */ - @JsonProperty("hostname") - public String getHostname() { - return hostname; - } - - /** - * - * @param hostname - * The hostname - */ - @JsonProperty("hostname") - public void setHostname(String hostname) { - this.hostname = hostname; - } - - /** - * - * @return - * The hostLoc - */ - @JsonProperty("hostLoc") - public String getHostLoc() { - return hostLoc; - } - - /** - * - * @param hostLoc - * The hostLoc - */ - @JsonProperty("hostLoc") - public void setHostLoc(String hostLoc) { - this.hostLoc = hostLoc; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Image.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Image.java deleted file mode 100644 index 19ae8749d..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Image.java +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "imageId", - "imageName", - "osType", - "osVersion", - "application", - "applicationVersion", - "applicationVendor", - "imageLink" -}) -public class Image { - - @JsonProperty("imageId") - private String imageId; - @JsonProperty("imageName") - private String imageName; - @JsonProperty("osType") - private String osType; - @JsonProperty("osVersion") - private String osVersion; - @JsonProperty("application") - private String application; - @JsonProperty("applicationVersion") - private String applicationVersion; - @JsonProperty("applicationVendor") - private String applicationVendor; - @JsonProperty("imageLink") - private String imageLink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The imageId - */ - @JsonProperty("imageId") - public String getImageId() { - return imageId; - } - - /** - * - * @param imageId - * The imageId - */ - @JsonProperty("imageId") - public void setImageId(String imageId) { - this.imageId = imageId; - } - - /** - * - * @return - * The imageName - */ - @JsonProperty("imageName") - public String getImageName() { - return imageName; - } - - /** - * - * @param imageName - * The imageName - */ - @JsonProperty("imageName") - public void setImageName(String imageName) { - this.imageName = imageName; - } - - /** - * - * @return - * The osType - */ - @JsonProperty("osType") - public String getOsType() { - return osType; - } - - /** - * - * @param osType - * The osType - */ - @JsonProperty("osType") - public void setOsType(String osType) { - this.osType = osType; - } - - /** - * - * @return - * The osVersion - */ - @JsonProperty("osVersion") - public String getOsVersion() { - return osVersion; - } - - /** - * - * @param osVersion - * The osVersion - */ - @JsonProperty("osVersion") - public void setOsVersion(String osVersion) { - this.osVersion = osVersion; - } - - /** - * - * @return - * The application - */ - @JsonProperty("application") - public String getApplication() { - return application; - } - - /** - * - * @param application - * The application - */ - @JsonProperty("application") - public void setApplication(String application) { - this.application = application; - } - - /** - * - * @return - * The applicationVersion - */ - @JsonProperty("applicationVersion") - public String getApplicationVersion() { - return applicationVersion; - } - - /** - * - * @param applicationVersion - * The applicationVersion - */ - @JsonProperty("applicationVersion") - public void setApplicationVersion(String applicationVersion) { - this.applicationVersion = applicationVersion; - } - - /** - * - * @return - * The applicationVendor - */ - @JsonProperty("applicationVendor") - public String getApplicationVendor() { - return applicationVendor; - } - - /** - * - * @param applicationVendor - * The applicationVendor - */ - @JsonProperty("applicationVendor") - public void setApplicationVendor(String applicationVendor) { - this.applicationVendor = applicationVendor; - } - - /** - * - * @return - * The imageLink - */ - @JsonProperty("imageLink") - public String getImageLink() { - return imageLink; - } - - /** - * - * @param imageLink - * The imageLink - */ - @JsonProperty("imageLink") - public void setImageLink(String imageLink) { - this.imageLink = imageLink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/IpAddress.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/IpAddress.java deleted file mode 100644 index 1d29857a5..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/IpAddress.java +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "addrId", - "addr", - "version", - "type", - "networkName" -}) -public class IpAddress { - - @JsonProperty("addrId") - private String addrId; - @JsonProperty("addr") - private String addr; - @JsonProperty("version") - private String version; - @JsonProperty("type") - private String type; - @JsonProperty("networkName") - private String networkName; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The addrId - */ - @JsonProperty("addrId") - public String getAddrId() { - return addrId; - } - - /** - * - * @param addrId - * The addrId - */ - @JsonProperty("addrId") - public void setAddrId(String addrId) { - this.addrId = addrId; - } - - /** - * - * @return - * The addr - */ - @JsonProperty("addr") - public String getAddr() { - return addr; - } - - /** - * - * @param addr - * The addr - */ - @JsonProperty("addr") - public void setAddr(String addr) { - this.addr = addr; - } - - /** - * - * @return - * The version - */ - @JsonProperty("version") - public String getVersion() { - return version; - } - - /** - * - * @param version - * The version - */ - @JsonProperty("version") - public void setVersion(String version) { - this.version = version; - } - - /** - * - * @return - * The type - */ - @JsonProperty("type") - public String getType() { - return type; - } - - /** - * - * @param type - * The type - */ - @JsonProperty("type") - public void setType(String type) { - this.type = type; - } - - /** - * - * @return - * The networkName - */ - @JsonProperty("networkName") - public String getNetworkName() { - return networkName; - } - - /** - * - * @param networkName - * The networkName - */ - @JsonProperty("networkName") - public void setNetworkName(String networkName) { - this.networkName = networkName; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Relationship.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Relationship.java deleted file mode 100644 index 623bd722a..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/Relationship.java +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relatedTo", - "relatedLink", - "relationshipData", - "any" -}) -public class Relationship { - - @JsonProperty("relatedTo") - private String relatedTo; - @JsonProperty("relatedLink") - private String relatedLink; - @JsonProperty("relationshipData") - private List relationshipData = new ArrayList(); - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relatedTo - */ - @JsonProperty("relatedTo") - public String getRelatedTo() { - return relatedTo; - } - - /** - * - * @param relatedTo - * The relatedTo - */ - @JsonProperty("relatedTo") - public void setRelatedTo(String relatedTo) { - this.relatedTo = relatedTo; - } - - /** - * - * @return - * The relatedLink - */ - @JsonProperty("relatedLink") - public String getRelatedLink() { - return relatedLink; - } - - /** - * - * @param relatedLink - * The relatedLink - */ - @JsonProperty("relatedLink") - public void setRelatedLink(String relatedLink) { - this.relatedLink = relatedLink; - } - - /** - * - * @return - * The relationshipData - */ - @JsonProperty("relationshipData") - public List getRelationshipData() { - return relationshipData; - } - - /** - * - * @param relationshipData - * The relationshipData - */ - @JsonProperty("relationshipData") - public void setRelationshipData(List relationshipData) { - this.relationshipData = relationshipData; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipDatum.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipDatum.java deleted file mode 100644 index 9f44c1fac..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipDatum.java +++ /dev/null @@ -1,124 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relationshipKey", - "relationshipValue", - "any" -}) -public class RelationshipDatum { - - @JsonProperty("relationshipKey") - private String relationshipKey; - @JsonProperty("relationshipValue") - private String relationshipValue; - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relationshipKey - */ - @JsonProperty("relationshipKey") - public String getRelationshipKey() { - return relationshipKey; - } - - /** - * - * @param relationshipKey - * The relationshipKey - */ - @JsonProperty("relationshipKey") - public void setRelationshipKey(String relationshipKey) { - this.relationshipKey = relationshipKey; - } - - /** - * - * @return - * The relationshipValue - */ - @JsonProperty("relationshipValue") - public String getRelationshipValue() { - return relationshipValue; - } - - /** - * - * @param relationshipValue - * The relationshipValue - */ - @JsonProperty("relationshipValue") - public void setRelationshipValue(String relationshipValue) { - this.relationshipValue = relationshipValue; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipList.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipList.java deleted file mode 100644 index 242b09119..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/RelationshipList.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relationship", - "any" -}) -public class RelationshipList { - - @JsonProperty("relationship") - private List relationship = new ArrayList(); - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relationship - */ - @JsonProperty("relationship") - public List getRelationship() { - return relationship; - } - - /** - * - * @param relationship - * The relationship - */ - @JsonProperty("relationship") - public void setRelationship(List relationship) { - this.relationship = relationship; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/VServer.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/VServer.java deleted file mode 100644 index 6c975604d..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/data/v1507/VServer.java +++ /dev/null @@ -1,262 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "vmId", - "vmName", - "vmName2", - "host", - "image", - "flavor", - "ipAddresses", - "vserverLink", - "relationshipList" -}) -public class VServer { - - @JsonProperty("vmId") - private String vmId; - @JsonProperty("vmName") - private String vmName; - @JsonProperty("vmName2") - private String vmName2; - @JsonProperty("host") - private Host host; - @JsonProperty("image") - private Image image; - @JsonProperty("flavor") - private Flavor flavor; - @JsonProperty("ipAddresses") - private List ipAddresses = new ArrayList(); - @JsonProperty("vserverLink") - private String vserverLink; - @JsonProperty("relationshipList") - private RelationshipList relationshipList; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The vmId - */ - @JsonProperty("vmId") - public String getVmId() { - return vmId; - } - - /** - * - * @param vmId - * The vmId - */ - @JsonProperty("vmId") - public void setVmId(String vmId) { - this.vmId = vmId; - } - - /** - * - * @return - * The vmName - */ - @JsonProperty("vmName") - public String getVmName() { - return vmName; - } - - /** - * - * @param vmName - * The vmName - */ - @JsonProperty("vmName") - public void setVmName(String vmName) { - this.vmName = vmName; - } - - /** - * - * @return - * The vmName2 - */ - @JsonProperty("vmName2") - public String getVmName2() { - return vmName2; - } - - /** - * - * @param vmName2 - * The vmName2 - */ - @JsonProperty("vmName2") - public void setVmName2(String vmName2) { - this.vmName2 = vmName2; - } - - /** - * - * @return - * The host - */ - @JsonProperty("host") - public Host getHost() { - return host; - } - - /** - * - * @param host - * The host - */ - @JsonProperty("host") - public void setHost(Host host) { - this.host = host; - } - - /** - * - * @return - * The image - */ - @JsonProperty("image") - public Image getImage() { - return image; - } - - /** - * - * @param image - * The image - */ - @JsonProperty("image") - public void setImage(Image image) { - this.image = image; - } - - /** - * - * @return - * The flavor - */ - @JsonProperty("flavor") - public Flavor getFlavor() { - return flavor; - } - - /** - * - * @param flavor - * The flavor - */ - @JsonProperty("flavor") - public void setFlavor(Flavor flavor) { - this.flavor = flavor; - } - - /** - * - * @return - * The ipAddresses - */ - @JsonProperty("ipAddresses") - public List getIpAddresses() { - return ipAddresses; - } - - /** - * - * @param ipAddresses - * The ipAddresses - */ - @JsonProperty("ipAddresses") - public void setIpAddresses(List ipAddresses) { - this.ipAddresses = ipAddresses; - } - - /** - * - * @return - * The vserverLink - */ - @JsonProperty("vserverLink") - public String getVserverLink() { - return vserverLink; - } - - /** - * - * @param vserverLink - * The vserverLink - */ - @JsonProperty("vserverLink") - public void setVserverLink(String vserverLink) { - this.vserverLink = vserverLink; - } - - /** - * - * @return - * The relationshipList - */ - @JsonProperty("relationshipList") - public RelationshipList getRelationshipList() { - return relationshipList; - } - - /** - * - * @param relationshipList - * The relationshipList - */ - @JsonProperty("relationshipList") - public void setRelationshipList(RelationshipList relationshipList) { - this.relationshipList = relationshipList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryRequestData.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryRequestData.java deleted file mode 100644 index 78d890aae..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryRequestData.java +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -import com.fasterxml.jackson.annotation.JsonProperty; - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "start", - "query" -}) -@XmlRootElement(name = "query-request") -public class FormattedQueryRequestData implements AAIDatum { - - @JsonProperty("start") - protected List start; - - @JsonProperty("query") - private String query; - - @JsonProperty("start") - public List getStart () - { - return start; - } - - @JsonProperty("start") - public void setStart (List start) - { - this.start = start; - } - - @JsonProperty("query") - public String getQuery () - { - return query; - } - - @JsonProperty("query") - public void setQuery (String query) - { - this.query = query; - } - - @Override - public String toString() - { - return " [start = "+start+", query = "+query+"]"; - } - - public String getResourceVersion() { - return null; - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryResultList.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryResultList.java deleted file mode 100644 index 48b2a60b0..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/FormattedQueryResultList.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "results" -}) -@XmlRootElement(name = "result-list") -public class FormattedQueryResultList implements AAIDatum { - - @XmlElement(name = "results") - private List results; - @XmlElement(name = "results") - public List getResults () - { - return results; - } - @XmlElement(name = "results") - public void setResults (List results) - { - this.results = results; - } - - @Override - public String toString() - { - return "ClassPojo [results = "+results+"]"; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilter.java deleted file mode 100644 index 33f1fec2b..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilter.java +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.HashMap; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.Pnf; -import org.openecomp.aai.inventory.v10.LogicalLink; -import org.openecomp.aai.inventory.v10.ServiceInstance; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "logical-link", - "pnf", - "l3-network", - "service-instance" -}) -public class InstanceFilter { - - @JsonProperty("logical-link") - private LogicalLink logicalLink; - @JsonProperty("pnf") - private Pnf pnf; - @JsonProperty("l3-network") - private L3Network l3Network; - @JsonProperty("service-instance") - private ServiceInstance serviceInstance; - - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The logicalLink - */ - @JsonProperty("logical-link") - public LogicalLink getLogicalLink() { - return logicalLink; - } - - /** - * - * @param logicalLink - * The logical-link - */ - @JsonProperty("logical-link") - public void setLogicalLink(LogicalLink logicalLink) { - this.logicalLink = logicalLink; - } - - /** - * - * @return - * The pnf - */ - @JsonProperty("pnf") - public Pnf getPnf() { - return pnf; - } - - /** - * - * @param pnf - * The pnf - */ - @JsonProperty("pnf") - public void setPnf(Pnf pnf) { - this.pnf = pnf; - } - - @JsonProperty("l3-network") - public L3Network getL3Network() { - return l3Network; - } - - @JsonProperty("l3-network") - public void setL3Network(L3Network l3Network) { - this.l3Network = l3Network; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - - @JsonProperty("service-instance") - public ServiceInstance getServiceInstance() { - return serviceInstance; - } - - @JsonProperty("service-instance") - public void setServiceInstance(ServiceInstance serviceInstance) { - this.serviceInstance = serviceInstance; - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilters.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilters.java deleted file mode 100644 index d38beed04..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/InstanceFilters.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "instance-filter" -}) -public class InstanceFilters { - - @JsonProperty("instance-filter") - private List instanceFilter = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The instanceFilter - */ - @JsonProperty("instance-filter") - public List getInstanceFilter() { - return instanceFilter; - } - - /** - * - * @param instanceFilter - * The instance-filter - */ - @JsonProperty("instance-filter") - public void setInstanceFilter(List instanceFilter) { - this.instanceFilter = instanceFilter; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQuery.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQuery.java deleted file mode 100644 index 5b20903df..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQuery.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "named-query-uuid" -}) -public class NamedQuery { - - @JsonProperty("named-query-uuid") - private String namedQueryUuid; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The namedQueryUuid - */ - @JsonProperty("named-query-uuid") - public String getNamedQueryUuid() { - return namedQueryUuid; - } - - /** - * - * @param namedQueryUuid - * The named-query-uuid - */ - @JsonProperty("named-query-uuid") - public void setNamedQueryUuid(String namedQueryUuid) { - this.namedQueryUuid = namedQueryUuid; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQueryData.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQueryData.java deleted file mode 100644 index e8a775296..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/NamedQueryData.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; - -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "query-parameters", - "instance-filters" -}) -public class NamedQueryData implements AAIDatum { - - @JsonProperty("query-parameters") - private QueryParameters queryParameters; - @JsonProperty("instance-filters") - private InstanceFilters instanceFilters; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The queryParameters - */ - @JsonProperty("query-parameters") - public QueryParameters getQueryParameters() { - return queryParameters; - } - - /** - * - * @param queryParameters - * The query-parameters - */ - @JsonProperty("query-parameters") - public void setQueryParameters(QueryParameters queryParameters) { - this.queryParameters = queryParameters; - } - - /** - * - * @return - * The instanceFilters - */ - @JsonProperty("instance-filters") - public InstanceFilters getInstanceFilters() { - return instanceFilters; - } - - /** - * - * @param instanceFilters - * The instance-filters - */ - @JsonProperty("instance-filters") - public void setInstanceFilters(InstanceFilters instanceFilters) { - this.instanceFilters = instanceFilters; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/QueryParameters.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/QueryParameters.java deleted file mode 100644 index bb4498cf4..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/QueryParameters.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "named-query" -}) -public class QueryParameters { - - @JsonProperty("named-query") - private NamedQuery namedQuery; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The namedQuery - */ - @JsonProperty("named-query") - public NamedQuery getNamedQuery() { - return namedQuery; - } - - /** - * - * @param namedQuery - * The named-query - */ - @JsonProperty("named-query") - public void setNamedQuery(NamedQuery namedQuery) { - this.namedQuery = namedQuery; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/Results.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/Results.java deleted file mode 100644 index 2931a7e1d..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/query/Results.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.query; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.openecomp.aai.inventory.v10.*; - - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "genericVnf", - "pserver", - "complex" -}) -@XmlRootElement(name = "results") -public class Results { - - @XmlElement(name = "generic-vnf") - private GenericVnf genericVnf; - - @XmlElement(name = "complex") - private Complex complex; - - @XmlElement(name = "pserver") - private Pserver pserver; - - - @XmlElement(name = "generic-vnf") - public GenericVnf getGenericVnf () - { - return genericVnf; - } - @XmlElement(name = "generic-vnf") - public void setGenericVnf (GenericVnf genericVnf) - { - this.genericVnf = genericVnf; - } - - @Override - public String toString() - { - return " [generic-vnf = "+genericVnf+"]"; - } - @XmlElement(name = "complex") - public Complex getComplex() { - return complex; - } - @XmlElement(name = "complex") - public void setComplex(Complex complex) { - this.complex = complex; - } - @XmlElement(name = "pserver") - public Pserver getPserver() { - return pserver; - } - @XmlElement(name = "pserver") - public void setPserver(Pserver pserver) { - this.pserver = pserver; - } -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Action.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Action.java deleted file mode 100644 index 296a3713c..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Action.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.update; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "action-data", - "action-type" -}) -public class Action { - - @JsonProperty("action-data") - private List actionData = new ArrayList(); - @JsonProperty("action-type") - private String actionType; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The actionData - */ - @JsonProperty("action-data") - public List getActionData() { - return actionData; - } - - /** - * - * @param actionData - * The action-data - */ - @JsonProperty("action-data") - public void setActionData(List actionData) { - this.actionData = actionData; - } - - /** - * - * @return - * The actionType - */ - @JsonProperty("action-type") - public String getActionType() { - return actionType; - } - - /** - * - * @param actionType - * The action-type - */ - @JsonProperty("action-type") - public void setActionType(String actionType) { - this.actionType = actionType; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/ActionDatum.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/ActionDatum.java deleted file mode 100644 index 3dfb9c379..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/ActionDatum.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.update; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "property-name", - "property-value" -}) -public class ActionDatum { - - @JsonProperty("property-name") - private String propertyName; - @JsonProperty("property-value") - private String propertyValue; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The propertyName - */ - @JsonProperty("property-name") - public String getPropertyName() { - return propertyName; - } - - /** - * - * @param propertyName - * The property-name - */ - @JsonProperty("property-name") - public void setPropertyName(String propertyName) { - this.propertyName = propertyName; - } - - /** - * - * @return - * The propertyValue - */ - @JsonProperty("property-value") - public String getPropertyValue() { - return propertyValue; - } - - /** - * - * @param propertyValue - * The property-value - */ - @JsonProperty("property-value") - public void setPropertyValue(String propertyValue) { - this.propertyValue = propertyValue; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Update.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Update.java deleted file mode 100644 index a092b6b9e..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/Update.java +++ /dev/null @@ -1,124 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.update; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "update-node-type", - "update-node-key", - "action" -}) -public class Update { - - @JsonProperty("update-node-type") - private String updateNodeType; - @JsonProperty("action") - private List action = new ArrayList(); - @JsonProperty("update-node-key") - private List updateNodeKey = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The updateNodeType - */ - @JsonProperty("update-node-type") - public String getUpdateNodeType() { - return updateNodeType; - } - - /** - * - * @param updateNodeType - * The update-node-type - */ - @JsonProperty("update-node-type") - public void setUpdateNodeType(String updateNodeType) { - this.updateNodeType = updateNodeType; - } - - /** - * - * @return - * The action - */ - @JsonProperty("action") - public List getAction() { - return action; - } - - /** - * - * @param action - * The action - */ - @JsonProperty("action") - public void setAction(List action) { - this.action = action; - } - - /** - * - * @return - * The updateNodeKey - */ - @JsonProperty("update-node-key") - public List getUpdateNodeKey() { - return updateNodeKey; - } - - /** - * - * @param updateNodeKey - * The update-node-key - */ - @JsonProperty("update-node-key") - public void setUpdateNodeKey(List updateNodeKey) { - this.updateNodeKey = updateNodeKey; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/UpdateNodeKey.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/UpdateNodeKey.java deleted file mode 100644 index ffc5cc0d3..000000000 --- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/update/UpdateNodeKey.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.update; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "key-name", - "key-value" -}) -public class UpdateNodeKey { - - @JsonProperty("key-name") - private String keyName; - @JsonProperty("key-value") - private String keyValue; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The keyName - */ - @JsonProperty("key-name") - public String getKeyName() { - return keyName; - } - - /** - * - * @param keyName - * The key-name - */ - @JsonProperty("key-name") - public void setKeyName(String keyName) { - this.keyName = keyName; - } - - /** - * - * @return - * The keyValue - */ - @JsonProperty("key-value") - public String getKeyValue() { - return keyValue; - } - - /** - * - * @param keyValue - * The key-value - */ - @JsonProperty("key-value") - public void setKeyValue(String keyValue) { - this.keyValue = keyValue; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index e6292fa1b..47d1bc2d0 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -5,7 +5,7 @@ jxb:extensionBindingPrefixes="xjc"> - + diff --git a/aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java b/aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java new file mode 100644 index 000000000..8bd2b664b --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java @@ -0,0 +1,489 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.r1607; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import javax.xml.bind.SchemaOutputResolver; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamResult; + +import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.onap.ccsdk.sli.adaptors.aai.AAIClient; +import org.onap.ccsdk.sli.adaptors.aai.AAIDeclarations; +import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v10.GenericVnf; +import org.openecomp.aai.inventory.v10.InventoryResponseItems; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; + + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class R1607AutoGeneratedTest { + + private static final Logger LOG = LoggerFactory.getLogger(R1607AutoGeneratedTest.class); + + protected static AAIClient client; + + protected Map cache = new HashMap(); + + @BeforeClass + public static void setUp() throws Exception { +// super.setUp(); + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { +// super.tearDown(); + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + +// @Test + public void test01AutoGeneratedRequest() { + + String[] requestDefinition = { + "query|generic-vnf|generic-vnf.vnf-id:assign:value:bnfm0001v-1147" + }; + + for(String line : requestDefinition){ + // parse request line resource | key structure + String[] segments = line.split("\\|"); + String action = segments[0]; + String resource = segments[1]; + String[] tmpKeys = segments[2].split("&"); + + + String localId = null; + + List keys = new ArrayList(); + String keyLine = null; + + for(String instruction : tmpKeys) { + String[] parts = instruction.split(":"); + String identifier = parts[0]; + String method = parts[2]; + + if(identifier.startsWith(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { + localId = identifier; + } + + switch(parts[1]) { + case "assign": + String postProcesss = parts[3]; + keyLine = processAssign(identifier, method, postProcesss); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + case "cached": + keyLine = processCached(identifier, method); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + } + + } + + switch(action){ + case "save": + List x = Arrays.asList(localId.split("\\.")); + + testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + case "query": + test03AutoGeneratedQueryRequest(resource, keys); + break; + case "delete": + test03AutoGeneratedDeleteRequest(resource, keys); + break; + } + } + + LOG.info("done"); + } + + + public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + for(Field field : resourceClass.getDeclaredFields()) { + String type = field.getType().getName(); + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + SvcLogicContext ctx = new SvcLogicContext(); + try + { + + QueryStatus response = null; + + response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + + public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus response = null; + + response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + static ArrayList findSetters(Class c) { + ArrayList list = new ArrayList(); + Method[] methods = c.getDeclaredMethods(); + for (Method method : methods) + if (isGetter(method)) + list.add(method); + return list; + } + + + public static boolean isGetter(Method method) { + if (Modifier.isPublic(method.getModifiers()) && + method.getParameterTypes().length == 0) { + if (method.getName().matches("^get[A-Z].*") && + !method.getReturnType().equals(void.class)) + return true; + if (method.getName().matches("^is[A-Z].*") && + method.getReturnType().equals(boolean.class)) + return true; + } + return false; + } + + public static boolean isSetter(Method method) { + return Modifier.isPublic(method.getModifiers()) && + method.getReturnType().equals(void.class) && + method.getParameterTypes().length == 1 && + method.getName().matches("^set[A-Z].*"); + } + + private String processAssign(String identifier, String method, String postProcess) { + String value = null; + if("uuid".equals(method)) { + value = UUID.randomUUID().toString(); + } + + if("cache".equals(postProcess)) { + cache.put(identifier, value); + } + + if("value".equals(method)) { + cache.put(identifier, postProcess); + value = postProcess; + } + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + private String processCached(String identifier, String method) { + String value = cache.get(identifier); + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + LOG.debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + StringBuffer whereBuff = new StringBuffer(); + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + LOG.debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + + } + + private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + LOG.warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + +// @Test + public void test04VceDataPost() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + URL resource = this.getClass().getResource("/json/tails4.json"); + + LOG.info("Resource is " + resource.getFile()); + File requestFile = new File(resource.getFile()); + if(!requestFile.exists()) { + fail("Test file does not exist"); + } + SvcLogicContext ctx = new SvcLogicContext(); + ObjectMapper mapper = AAIService.getObjectMapper(); + InventoryResponseItems request = mapper.readValue(requestFile, InventoryResponseItems.class); + Map subnetsList = mapper.convertValue(request, Map.class); + AAIDeclarations.class.cast(client).writeMap(subnetsList, "aaiTmp", ctx); + assertNotNull(request); + + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + +static class MySchemaOutputResolver extends SchemaOutputResolver { + + public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { + File file = new File(suggestedFileName); + StreamResult result = new StreamResult(file); + result.setSystemId(file.getAbsolutePath()); + return result; + } + + } +} diff --git a/aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java b/aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java deleted file mode 100644 index 15a7647e4..000000000 --- a/aai-service/provider/src/test/java/org/openecomp/sdnc/sli/aai/r1607/R1607AutoGeneratedTest.java +++ /dev/null @@ -1,489 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdnc.sli.aai.r1607; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.xml.bind.SchemaOutputResolver; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.transform.Result; -import javax.xml.transform.stream.StreamResult; - -import org.apache.commons.lang.RandomStringUtils; -import org.apache.commons.lang.StringUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.InventoryResponseItems; -import org.openecomp.sdnc.sli.aai.AAIClient; -import org.openecomp.sdnc.sli.aai.AAIDeclarations; -import org.openecomp.sdnc.sli.aai.AAIRequest; -import org.openecomp.sdnc.sli.aai.AAIService; -import org.openecomp.sdnc.sli.aai.data.AAIDatum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.ObjectMapper; - - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class R1607AutoGeneratedTest { - - private static final Logger LOG = LoggerFactory.getLogger(R1607AutoGeneratedTest.class); - - protected static AAIClient client; - - protected Map cache = new HashMap(); - - @BeforeClass - public static void setUp() throws Exception { -// super.setUp(); - URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); - client = new AAIService(url); - LOG.info("\nTaicAAIResourceTest.setUp\n"); - } - - @AfterClass - public static void tearDown() throws Exception { -// super.tearDown(); - client = null; - LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); - } - - -// @Test - public void test01AutoGeneratedRequest() { - - String[] requestDefinition = { - "query|generic-vnf|generic-vnf.vnf-id:assign:value:bnfm0001v-1147" - }; - - for(String line : requestDefinition){ - // parse request line resource | key structure - String[] segments = line.split("\\|"); - String action = segments[0]; - String resource = segments[1]; - String[] tmpKeys = segments[2].split("&"); - - - String localId = null; - - List keys = new ArrayList(); - String keyLine = null; - - for(String instruction : tmpKeys) { - String[] parts = instruction.split(":"); - String identifier = parts[0]; - String method = parts[2]; - - if(identifier.startsWith(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { - localId = identifier; - } - - switch(parts[1]) { - case "assign": - String postProcesss = parts[3]; - keyLine = processAssign(identifier, method, postProcesss); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - case "cached": - keyLine = processCached(identifier, method); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - } - - } - - switch(action){ - case "save": - List x = Arrays.asList(localId.split("\\.")); - - testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); - break; - case "query": - test03AutoGeneratedQueryRequest(resource, keys); - break; - case "delete": - test03AutoGeneratedDeleteRequest(resource, keys); - break; - } - } - - LOG.info("done"); - } - - - public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); - - Map data = new HashMap(); - - for(Field field : resourceClass.getDeclaredFields()) { - String type = field.getType().getName(); - if(type.startsWith("java.lang.")){ - Annotation[] fieldAnnotations = field.getAnnotations(); - for(int i = 0; i < fieldAnnotations.length; i++) { - Annotation a = fieldAnnotations[i]; - if(a instanceof JsonProperty){ - JsonProperty pa = (JsonProperty)a; - String name = pa.value(); - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } else - if(a instanceof javax.xml.bind.annotation.XmlElement) { - XmlElement xe = (XmlElement)a; - String name = xe.name(); - if("link-type".equals(name)){ - data.put(name, "roadmTail"); - continue; - } - if("operational-status".equals(name)){ - data.put(name, "available"); - continue; - } - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } - } - } - } - - SvcLogicContext ctx = new SvcLogicContext(); - - data.remove("resource-version"); - - QueryStatus resp = null; - - //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) - resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - SvcLogicContext ctx = new SvcLogicContext(); - try - { - - QueryStatus response = null; - - response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - - public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - SvcLogicContext ctx = new SvcLogicContext(); - - QueryStatus response = null; - - response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - static ArrayList findSetters(Class c) { - ArrayList list = new ArrayList(); - Method[] methods = c.getDeclaredMethods(); - for (Method method : methods) - if (isGetter(method)) - list.add(method); - return list; - } - - - public static boolean isGetter(Method method) { - if (Modifier.isPublic(method.getModifiers()) && - method.getParameterTypes().length == 0) { - if (method.getName().matches("^get[A-Z].*") && - !method.getReturnType().equals(void.class)) - return true; - if (method.getName().matches("^is[A-Z].*") && - method.getReturnType().equals(boolean.class)) - return true; - } - return false; - } - - public static boolean isSetter(Method method) { - return Modifier.isPublic(method.getModifiers()) && - method.getReturnType().equals(void.class) && - method.getParameterTypes().length == 1 && - method.getName().matches("^set[A-Z].*"); - } - - private String processAssign(String identifier, String method, String postProcess) { - String value = null; - if("uuid".equals(method)) { - value = UUID.randomUUID().toString(); - } - - if("cache".equals(postProcess)) { - cache.put(identifier, value); - } - - if("value".equals(method)) { - cache.put(identifier, postProcess); - value = postProcess; - } - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - private String processCached(String identifier, String method) { - String value = cache.get(identifier); - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { - if (key == null) { - return (null); - } - - LOG.debug("Converting key [" + key + "] to where clause"); - - if (key.startsWith("'") && key.endsWith("'")) { - key = key.substring(1, key.length() - 1); - - LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); - } - - String[] keyTerms = key.split("\\s+"); - - StringBuffer whereBuff = new StringBuffer(); - String term1 = null; - String op = null; - String term2 = null; - HashMap results = new HashMap(); - - for (int i = 0; i < keyTerms.length; i++) { - if (term1 == null) { - if ("and".equalsIgnoreCase(keyTerms[i]) - || "or".equalsIgnoreCase(keyTerms[i])) { - // Skip over ADD/OR - } else { - term1 = resolveTerm(keyTerms[i], ctx); - } - } else if (op == null) { - if ("==".equals(keyTerms[i])) { - op = "="; - } else { - op = keyTerms[i]; - } - } else { - term2 = resolveTerm(keyTerms[i], ctx); - term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); - results.put(term1, term2); - - term1 = null; - op = null; - term2 = null; - } - } - - return (results); - } - - private String resolveTerm(String term, SvcLogicContext ctx) { - if (term == null) { - return (null); - } - - LOG.debug("resolveTerm: term is " + term); - - if (term.startsWith("$") && (ctx != null)) { - // Resolve any index variables. - - return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); - } else if (term.startsWith("'") || term.startsWith("\"")) { - return (term); - } else { - return (term.replaceAll("-", "_")); - - } - - } - - private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { - - if (ctxVarName.indexOf('[') == -1) { - // Ctx variable contains no arrays - return (ctx.getAttribute(ctxVarName)); - } - - // Resolve any array references - StringBuffer sbuff = new StringBuffer(); - String[] ctxVarParts = ctxVarName.split("\\["); - sbuff.append(ctxVarParts[0]); - for (int i = 1; i < ctxVarParts.length; i++) { - if (ctxVarParts[i].startsWith("$")) { - int endBracketLoc = ctxVarParts[i].indexOf("]"); - if (endBracketLoc == -1) { - // Missing end bracket ... give up parsing - LOG.warn("Variable reference " + ctxVarName - + " seems to be missing a ']'"); - return (ctx.getAttribute(ctxVarName)); - } - - String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); - String remainder = ctxVarParts[i].substring(endBracketLoc); - - sbuff.append("["); - sbuff.append(ctx.getAttribute(idxVarName)); - sbuff.append(remainder); - - } else { - // Index is not a variable reference - sbuff.append("["); - sbuff.append(ctxVarParts[i]); - } - } - - return (ctx.getAttribute(sbuff.toString())); - } - -// @Test - public void test04VceDataPost() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - URL resource = this.getClass().getResource("/json/tails4.json"); - - LOG.info("Resource is " + resource.getFile()); - File requestFile = new File(resource.getFile()); - if(!requestFile.exists()) { - fail("Test file does not exist"); - } - SvcLogicContext ctx = new SvcLogicContext(); - ObjectMapper mapper = AAIService.getObjectMapper(); - InventoryResponseItems request = mapper.readValue(requestFile, InventoryResponseItems.class); - Map subnetsList = mapper.convertValue(request, Map.class); - AAIDeclarations.class.cast(client).writeMap(subnetsList, "aaiTmp", ctx); - assertNotNull(request); - - } - catch (Exception e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - -static class MySchemaOutputResolver extends SchemaOutputResolver { - - public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { - File file = new File(suggestedFileName); - StreamResult result = new StreamResult(file); - result.setSystemId(file.getAbsolutePath()); - return result; - } - - } -} diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index 260b51629..d1bd26fdb 100644 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -26,112 +26,112 @@ # # Certificate keystore and truststore # -org.openecomp.sdnc.sli.aai.ssl.trust=/opt/bvc/tls-client/truststore.client.jks -org.openecomp.sdnc.sli.aai.ssl.trust.psswd={truststore-password} -org.openecomp.sdnc.sli.aai.ssl.key=/opt/bvc/tls-client/keystore.client.jks -org.openecomp.sdnc.sli.aai.ssl.key.psswd={keystore-password} -org.openecomp.sdnc.sli.aai.host.certificate.ignore=true +org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/bvc/tls-client/truststore.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd={truststore-password} +org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/bvc/tls-client/keystore.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd={keystore-password} +org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true -org.openecomp.sdnc.sli.aai.client.name=SDNC -org.openecomp.sdnc.sli.aai.client.psswd=SDNC +org.onap.ccsdk.sli.adaptors.aai.client.name=SDNC +org.onap.ccsdk.sli.adaptors.aai.client.psswd=SDNC -org.openecomp.sdnc.sli.aai.application=openECOMP +org.onap.ccsdk.sli.adaptors.aai.application=openECOMP # # Configuration file for A&AI Client # -org.openecomp.sdnc.sli.aai.uri=https://localhost:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://localhost:8443 # query -org.openecomp.sdnc.sli.aai.path.query=/aai/v10/search/sdn-zone-query -org.openecomp.sdnc.sli.aai.query.nodes=/aai/v10/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.openecomp.sdnc.sli.aai.query.generic=/aai/v10/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v10/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v10/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v10/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 # named query -org.openecomp.sdnc.sli.aai.query.named=/aai/search/named-query +org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query #update -org.openecomp.sdnc.sli.aai.update=/aai/v10/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v10/actions/update # vce -org.openecomp.sdnc.sli.aai.path.vce =/aai/v10/network/vces/vce/ -org.openecomp.sdnc.sli.aai.path.vces=/aai/v10/network/vces/ +org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v10/network/vces/vce/ +org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v10/network/vces/ # customer -org.openecomp.sdnc.sli.aai.path.customer=/aai/v10/business/customers/customer/{customer-id} +org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v10/business/customers/customer/{customer-id} # service subscription -org.openecomp.sdnc.sli.aai.path.service.subscription=/aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} # service instance -org.openecomp.sdnc.sli.aai.path.svcinst=/aai/v10/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -org.openecomp.sdnc.sli.aai.path.svcinst.query=/aai/v10/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.openecomp.sdnc.sli.aai.path.service.instance=/aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v10/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v10/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # tenant -org.openecomp.sdnc.sli.aai.path.tenant=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -org.openecomp.sdnc.sli.aai.path.tenant.query=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} +org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} # vservers -org.openecomp.sdnc.sli.aai.path.vservers=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ -org.openecomp.sdnc.sli.aai.path.vserver=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ +org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} # vpls-pe -org.openecomp.sdnc.sli.aai.path.vpls.pes=/aai/v10/network/vpls-pes/ -org.openecomp.sdnc.sli.aai.path.vpls.pe =/aai/v10/network/vpls-pes/vpls-pe/ +org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v10/network/vpls-pes/ +org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v10/network/vpls-pes/vpls-pe/ # ctag-pool -org.openecomp.sdnc.sli.aai.path.ctag.pools=/aai/v10/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -org.openecomp.sdnc.sli.aai.path.ctag.pool=/aai/v10/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v10/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v10/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} # #-------------- 1510 ---------------------- # # pservers -org.openecomp.sdnc.sli.aai.path.pservers=/aai/v10/cloud-infrastructure/pservers -org.openecomp.sdnc.sli.aai.path.pserver=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname} +org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v10/cloud-infrastructure/pservers +org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname} # generic-vnf -#org.openecomp.sdnc.sli.aai.path.generic.vnfs=/aai/v10/network/generic-vnfs -#org.openecomp.sdnc.sli.aai.path.generic.vnf=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id} +#org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v10/network/generic-vnfs +#org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id} # dvs-switch -org.openecomp.sdnc.sli.aai.path.dvsswitches=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -org.openecomp.sdnc.sli.aai.path.dvsswitch=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} # L3 Networks -org.openecomp.sdnc.sli.aai.path.l3networks=/aai/v10/network/l3-networks -org.openecomp.sdnc.sli.aai.path.l3network=/aai/v10/network/l3-networks/l3-network/{network-id} -org.openecomp.sdnc.sli.aai.path.l3network.query.name=/aai/v10/network/l3-networks/l3-network?network-name={network-name} +org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v10/network/l3-networks +org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v10/network/l3-networks/l3-network/{network-id} +org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v10/network/l3-networks/l3-network?network-name={network-name} # P-Interfaces -org.openecomp.sdnc.sli.aai.path.pserver.pinterfaces=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.openecomp.sdnc.sli.aai.path.pserver.pinterface=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # Physical Link -org.openecomp.sdnc.sli.aai.path.physical.links=/aai/v10/network/physical-links -org.openecomp.sdnc.sli.aai.path.physical.link=/aai/v10/network/physical-links/physical-link/{link-name} +org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v10/network/physical-links +org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v10/network/physical-links/physical-link/{link-name} # VPN Bindings -org.openecomp.sdnc.sli.aai.path.vpn.bindings=/aai/v10/network/vpn-bindings/ -org.openecomp.sdnc.sli.aai.path.vpn.binding=/aai/v10/network/vpn-bindings/vpn-binding/{vpn-id} +org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v10/network/vpn-bindings/ +org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v10/network/vpn-bindings/vpn-binding/{vpn-id} # VNF IMAGES -org.openecomp.sdnc.sli.aai.path.vnf.images=/aai/v10/service-design-and-creation/vnf-images -org.openecomp.sdnc.sli.aai.path.vnf.image=/aai/v10/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -org.openecomp.sdnc.sli.aai.path.vnf.image.query=/aai/v10/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v10/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v10/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v10/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # UBB Notify -org.openecomp.sdnc.sli.aai.path.notify=/aai/v10/actions/notify -org.openecomp.sdnc.sli.aai.notify.selflink.fqdn=https://sdncodl.it.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} -org.openecomp.sdnc.sli.aai.notify.selflink.avpn=https://sdncodl-conexus.it.us.02.aic.cip.att.com:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v10/actions/notify +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://sdncodl.it.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://sdncodl-conexus.it.us.02.aic.cip.att.com:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # Service -org.openecomp.sdnc.sli.aai.path.service=/aai/v10/service-design-and-creation/services/service/{service-id} -org.openecomp.sdnc.sli.aai.path.services=/aai/v10/service-design-and-creation/services +org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v10/service-design-and-creation/services/service/{service-id} +org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v10/service-design-and-creation/services # @@ -139,99 +139,99 @@ org.openecomp.sdnc.sli.aai.path.services=/aai/v10/service-design-and-creation/se # # VNFC -org.openecomp.sdnc.sli.aai.path.vnfc=/aai/v10/network/vnfcs/vnfc/{vnfc-name} +org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v10/network/vnfcs/vnfc/{vnfc-name} # site-pair -org.openecomp.sdnc.sli.aai.path.site.pair=/aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} # routing-instance -org.openecomp.sdnc.sli.aai.path.routing.instance=/aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} # site-pair-set -org.openecomp.sdnc.sli.aai.path.site.pair.set=/aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id} +org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id} # license key resource -org.openecomp.sdnc.sli.aai.path.license.acquire=/aai/v10/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} -org.openecomp.sdnc.sli.aai.path.license=/aai/v10/license-management/license-key-resources/license-key-resource/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v10/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v10/license-management/license-key-resources/license-key-resource/{att-uuid} # logical-link -org.openecomp.sdnc.sli.aai.path.logical.link =/aai/v10/network/logical-links/logical-link/{link-name} +org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v10/network/logical-links/logical-link/{link-name} # virtual-data-center -org.openecomp.sdnc.sli.aai.path.virtual.data.center=/aai/v10/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v10/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} # wan-connector -org.openecomp.sdnc.sli.aai.path.wan.connector=/aai/v10/business/connectors/connector/{resource-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v10/business/connectors/connector/{resource-instance-id} # l-interface -org.openecomp.sdnc.sli.aai.path.lag.interface.l.interface=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.openecomp.sdnc.sli.aai.path.p.interface.l.interface=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} # l-interface pnf -org.openecomp.sdnc.sli.aai.path.lag.interface.l.interface.pnf=/aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.openecomp.sdnc.sli.aai.path.p.interface.l.interface.pnf=/aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} # subinterface -org.openecomp.sdnc.sli.aai.path.pnf.lag.interface.subinterface=/aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.openecomp.sdnc.sli.aai.path.pnf.p.interface.l.interface=/aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} # l3-interface-ipv4-address-list -org.openecomp.sdnc.sli.aai.path.l3.interface.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -org.openecomp.sdnc.sli.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} # l3-interface-ipv6-address-list -org.openecomp.sdnc.sli.aai.path.l3.interface.ipv6.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -org.openecomp.sdnc.sli.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} # ipsec-configuration -org.openecomp.sdnc.sli.aai.path.ipsec.configuration=/aai/v10/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v10/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} # vig server -org.openecomp.sdnc.sli.aai.path.vig.server=/aai/v10/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v10/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} # l3-network -org.openecomp.sdnc.sli.aai.path.l3.network=/aai/v10/network/l3-networks/l3-network/{network-id} +org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v10/network/l3-networks/l3-network/{network-id} # subnet -org.openecomp.sdnc.sli.aai.path.subnet=/aai/v10/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v10/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} # multicast-configuration -org.openecomp.sdnc.sli.aai.path.multicast.configuration=/aai/v10/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v10/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -# org.openecomp.sdnc.sli.aai.path.l.interface.ipv4.address.list -org.openecomp.sdnc.sli.aai.path.l3-interface.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -# org.openecomp.sdnc.sli.aai.path.l.interface.vlan.ipv4.address.list -org.openecomp.sdnc.sli.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -# org.openecomp.sdnc.sli.aai.path.l.interface.ipv6.address.list -org.openecomp.sdnc.sli.aai.path.l3-interface.ipv6.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list +org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} # volume.group -org.openecomp.sdnc.sli.aai.path.volume.group=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} #cloud region -org.openecomp.sdnc.sli.aai.path.cloud.region=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} # vf-module -org.openecomp.sdnc.sli.aai.path.vf.module=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} # network-policy -org.openecomp.sdnc.sli.aai.path.network.policy=/aai/v10/network/network-policies/network-policy/{network-policy-id} +org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v10/network/network-policies/network-policy/{network-policy-id} # pnf -org.openecomp.sdnc.sli.aai.path.pnf=/aai/v10/network/pnfs/pnf/{pnf-name} +org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v10/network/pnfs/pnf/{pnf-name} # oam-network -org.openecomp.sdnc.sli.aai.path.oam.network=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.oam.network=/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} # route-table-reference -org.openecomp.sdnc.sli.aai.path.route.table.reference=/aai/v10/network/route-table-references/route-table-reference/{route-table-reference-id} +org.onap.ccsdk.sli.adaptors.aai.path.route.table.reference=/aai/v10/network/route-table-references/route-table-reference/{route-table-reference-id} # # Formatting # -org.openecomp.sdnc.sli.aai.param.format=filter=%s:%s -org.openecomp.sdnc.sli.aai.param.vnf_type=vnf-type -org.openecomp.sdnc.sli.aai.param.physical.location.id=physical-location-id -org.openecomp.sdnc.sli.aai.param.service.type=service-type +org.onap.ccsdk.sli.adaptors.aai.param.format=filter=%s:%s +org.onap.ccsdk.sli.adaptors.aai.param.vnf_type=vnf-type +org.onap.ccsdk.sli.adaptors.aai.param.physical.location.id=physical-location-id +org.onap.ccsdk.sli.adaptors.aai.param.service.type=service-type -- cgit 1.2.3-korg From 8c5e6335b73edd047e9f796962ced37eee5051f2 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Thu, 10 Aug 2017 14:03:15 +0000 Subject: [SDNC-30] summary Updated code to use the latest AAI data model and latest XSD model version Change-Id: I0dc536b543c47d363c99db1fe581361fe64db317 Signed-off-by: Rich Tabedzki --- aai-service/provider/pom.xml | 8 +- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 203 + .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 1935 ++++++ .../sli/adaptors/aai/AAIExecutorInterface.java | 30 + .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 440 ++ .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 3332 ++++++++++ .../sli/adaptors/aai/AAIServiceActivator.java | 239 + .../sli/adaptors/aai/AAIServiceException.java | 77 + .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 340 + .../ccsdk/sli/adaptors/aai/AAITrinityService.java | 38 + .../ccsdk/sli/adaptors/aai/CloudRegionRequest.java | 135 + .../ccsdk/sli/adaptors/aai/CustomQueryRequest.java | 134 + .../onap/ccsdk/sli/adaptors/aai/EchoRequest.java | 93 + .../sli/adaptors/aai/GenericQueryRequest.java | 144 + .../ccsdk/sli/adaptors/aai/GenericRequest.java | 319 + .../ccsdk/sli/adaptors/aai/GenericVnfRequest.java | 144 + .../aai/L3InterfaceIpv4AddressListRequest.java | 212 + .../aai/L3InterfaceIpv6AddressListRequest.java | 179 + .../ccsdk/sli/adaptors/aai/LInterfaceRequest.java | 244 + .../sli/adaptors/aai/LagInterfacePnfRequest.java | 142 + .../ccsdk/sli/adaptors/aai/NamedQueryRequest.java | 190 + .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 144 + .../sli/adaptors/aai/PInterfacePnfRequest.java | 142 + .../ccsdk/sli/adaptors/aai/PInterfaceRequest.java | 132 + .../onap/ccsdk/sli/adaptors/aai/PathRequest.java | 88 + .../sli/adaptors/aai/PhysicalLinkRequest.java | 112 + .../sli/adaptors/aai/RelationshipRequest.java | 126 + .../ccsdk/sli/adaptors/aai/SelfLinkRequest.java | 106 + .../sli/adaptors/aai/SubInterfaceRequest.java | 184 + .../onap/ccsdk/sli/adaptors/aai/UpdateRequest.java | 106 + .../onap/ccsdk/sli/adaptors/aai/data/AAIDatum.java | 26 + .../ccsdk/sli/adaptors/aai/data/EchoResponse.java | 76 + .../ccsdk/sli/adaptors/aai/data/ErrorResponse.java | 78 + .../ccsdk/sli/adaptors/aai/data/RequestError.java | 78 + .../sli/adaptors/aai/data/ResourceVersion.java | 28 + .../sli/adaptors/aai/data/ResponseMessage.java | 122 + .../sli/adaptors/aai/data/ResponseMessages.java | 78 + .../sli/adaptors/aai/data/ServiceException.java | 126 + .../ccsdk/sli/adaptors/aai/data/SubInterface.java | 171 + .../ccsdk/sli/adaptors/aai/data/Variables.java | 78 + .../sli/adaptors/aai/data/notify/KeyDatum.java | 99 + .../sli/adaptors/aai/data/notify/NotifyEvent.java | 170 + .../ccsdk/sli/adaptors/aai/data/v1507/Flavor.java | 122 + .../ccsdk/sli/adaptors/aai/data/v1507/Host.java | 122 + .../ccsdk/sli/adaptors/aai/data/v1507/Image.java | 237 + .../sli/adaptors/aai/data/v1507/IpAddress.java | 168 + .../sli/adaptors/aai/data/v1507/Relationship.java | 147 + .../adaptors/aai/data/v1507/RelationshipDatum.java | 124 + .../adaptors/aai/data/v1507/RelationshipList.java | 101 + .../ccsdk/sli/adaptors/aai/data/v1507/VServer.java | 262 + .../aai/query/FormattedQueryRequestData.java | 83 + .../aai/query/FormattedQueryResultList.java | 59 + .../sli/adaptors/aai/query/InstanceFilter.java | 133 + .../sli/adaptors/aai/query/InstanceFilters.java | 78 + .../ccsdk/sli/adaptors/aai/query/NamedQuery.java | 76 + .../sli/adaptors/aai/query/NamedQueryData.java | 102 + .../sli/adaptors/aai/query/QueryParameters.java | 76 + .../onap/ccsdk/sli/adaptors/aai/query/Results.java | 84 + .../onap/ccsdk/sli/adaptors/aai/update/Action.java | 101 + .../ccsdk/sli/adaptors/aai/update/ActionDatum.java | 99 + .../onap/ccsdk/sli/adaptors/aai/update/Update.java | 124 + .../sli/adaptors/aai/update/UpdateNodeKey.java | 99 + .../java/org/onap/sli/adaptors/aai/AAIClient.java | 220 - .../org/onap/sli/adaptors/aai/AAIDeclarations.java | 2045 ------ .../sli/adaptors/aai/AAIExecutorInterface.java | 30 - .../java/org/onap/sli/adaptors/aai/AAIRequest.java | 420 -- .../java/org/onap/sli/adaptors/aai/AAIService.java | 3278 --------- .../onap/sli/adaptors/aai/AAIServiceActivator.java | 239 - .../onap/sli/adaptors/aai/AAIServiceException.java | 77 - .../onap/sli/adaptors/aai/AAITrinityService.java | 38 - .../onap/sli/adaptors/aai/CloudRegionRequest.java | 135 - .../onap/sli/adaptors/aai/CustomQueryRequest.java | 134 - .../org/onap/sli/adaptors/aai/EchoRequest.java | 93 - .../onap/sli/adaptors/aai/GenericQueryRequest.java | 144 - .../org/onap/sli/adaptors/aai/GenericRequest.java | 319 - .../onap/sli/adaptors/aai/GenericVnfRequest.java | 144 - .../aai/L3InterfaceIpv4AddressListRequest.java | 212 - .../aai/L3InterfaceIpv6AddressListRequest.java | 179 - .../onap/sli/adaptors/aai/LInterfaceRequest.java | 244 - .../sli/adaptors/aai/LagInterfacePnfRequest.java | 142 - .../onap/sli/adaptors/aai/NamedQueryRequest.java | 190 - .../onap/sli/adaptors/aai/NodesQueryRequest.java | 144 - .../sli/adaptors/aai/PInterfacePnfRequest.java | 142 - .../onap/sli/adaptors/aai/PInterfaceRequest.java | 132 - .../org/onap/sli/adaptors/aai/PathRequest.java | 88 - .../onap/sli/adaptors/aai/PhysicalLinkRequest.java | 112 - .../onap/sli/adaptors/aai/RelationshipRequest.java | 126 - .../org/onap/sli/adaptors/aai/SelfLinkRequest.java | 98 - .../onap/sli/adaptors/aai/SubInterfaceRequest.java | 184 - .../org/onap/sli/adaptors/aai/UpdateRequest.java | 106 - .../org/onap/sli/adaptors/aai/data/AAIDatum.java | 26 - .../onap/sli/adaptors/aai/data/EchoResponse.java | 76 - .../onap/sli/adaptors/aai/data/ErrorResponse.java | 78 - .../onap/sli/adaptors/aai/data/RequestError.java | 78 - .../sli/adaptors/aai/data/ResourceVersion.java | 28 - .../sli/adaptors/aai/data/ResponseMessage.java | 122 - .../sli/adaptors/aai/data/ResponseMessages.java | 78 - .../sli/adaptors/aai/data/ServiceException.java | 126 - .../onap/sli/adaptors/aai/data/SubInterface.java | 171 - .../org/onap/sli/adaptors/aai/data/Variables.java | 78 - .../sli/adaptors/aai/data/notify/KeyDatum.java | 99 - .../sli/adaptors/aai/data/notify/NotifyEvent.java | 170 - .../onap/sli/adaptors/aai/data/v1507/Flavor.java | 122 - .../org/onap/sli/adaptors/aai/data/v1507/Host.java | 122 - .../onap/sli/adaptors/aai/data/v1507/Image.java | 237 - .../sli/adaptors/aai/data/v1507/IpAddress.java | 168 - .../sli/adaptors/aai/data/v1507/Relationship.java | 147 - .../adaptors/aai/data/v1507/RelationshipDatum.java | 124 - .../adaptors/aai/data/v1507/RelationshipList.java | 101 - .../onap/sli/adaptors/aai/data/v1507/VServer.java | 262 - .../aai/query/FormattedQueryRequestData.java | 83 - .../aai/query/FormattedQueryResultList.java | 59 - .../sli/adaptors/aai/query/InstanceFilter.java | 133 - .../sli/adaptors/aai/query/InstanceFilters.java | 78 - .../onap/sli/adaptors/aai/query/NamedQuery.java | 76 - .../sli/adaptors/aai/query/NamedQueryData.java | 102 - .../sli/adaptors/aai/query/QueryParameters.java | 76 - .../org/onap/sli/adaptors/aai/query/Results.java | 84 - .../org/onap/sli/adaptors/aai/update/Action.java | 101 - .../onap/sli/adaptors/aai/update/ActionDatum.java | 99 - .../org/onap/sli/adaptors/aai/update/Update.java | 124 - .../sli/adaptors/aai/update/UpdateNodeKey.java | 99 - .../src/main/resources/aai-path.properties | 336 +- .../src/main/resources/aai-schema-bindings.xjb | 2 +- .../provider/src/main/resources/aai_schema_v10.xsd | 6563 ------------------ .../provider/src/main/resources/aai_schema_v11.xsd | 6943 ++++++++++++++++++++ .../adaptors/aai/r1607/R1607AutoGeneratedTest.java | 489 ++ .../adaptors/aai/r1607/R1607AutoGeneratedTest.java | 489 -- 128 files changed, 20842 insertions(+), 20167 deletions(-) create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/AAIDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/EchoResponse.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponse.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestError.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResourceVersion.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessage.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessages.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceException.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/Variables.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEvent.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestData.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultList.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilters.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Results.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Action.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatum.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Update.java create mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKey.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java delete mode 100644 aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java delete mode 100755 aai-service/provider/src/main/resources/aai_schema_v10.xsd create mode 100755 aai-service/provider/src/main/resources/aai_schema_v11.xsd create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java delete mode 100644 aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index a9aa98d74..00334b515 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -130,8 +130,8 @@ org.openecomp.sdnc.sli.aai - org.openecomp.sdnc.sli.aai.AAIServiceActivator - org.openecomp.sdnc.sli.aai.*,org.openecomp.aai.inventory.v10.* + org.onap.ccsdk.sli.adaptors.aai.AAIServiceActivator + org.onap.ccsdk.sli.adaptors.aai.*,org.openecomp.aai.inventory.v11.* org.openecomp.sdnc.sli.*,org.osgi.framework.*,org.slf4j.*,org.apache.commons.lang3.*,javax.xml.bind.annotation.*,javax.ws.rs.*,javax.ws.rs.core.*,com.fasterxml.jackson.module.jaxb.*,com.sun.jersey.client.urlconnection.*,com.sun.jersey.api.client.config.*,com.fasterxml.jackson.databind.type.*,com.fasterxml.jackson.module.jaxb.*,com.fasterxml.jackson.databind.introspect.*,com.fasterxml.jackson.annotation.*,com.fasterxml.jackson.databind.* * true @@ -155,13 +155,13 @@ ${project.basedir}/src/main/resources - aai_schema_v10.xsd + aai_schema_v11.xsd aai-schema-bindings.xjb ${project.build.directory}/generated-sources/main/java - org.openecomp.aai.inventory.v10 + org.openecomp.aai.inventory.v11 true -Xannotate diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java new file mode 100644 index 000000000..4d836b40a --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -0,0 +1,203 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.openecomp.aai.inventory.v11.*; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; +import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; + +public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { + + // VCE + public boolean postNetworkVceData(String vnf_id, Vce request) throws AAIServiceException; + public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException; + public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // Service Inteface + public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException; + public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance request) throws AAIServiceException; + public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException; + + // VPE +// public Vpes requestNetworkVpeList() throws AAIServiceException; + public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException; + public boolean postNetworkVpeData(String vnf_id, Vpe request) throws AAIServiceException; + public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // VServers + public Vserver requestVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; + public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver request) throws AAIServiceException; + public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException; + + public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException; + public String getTenantIdFromVserverUrl(URL url); + public String getCloudOwnerFromVserverUrl(URL url); + public String getCloudRegionFromVserverUrl(URL url); + public String getVServerIdFromVserverUrl(URL url, String tennantId); + public Vserver requestVServerDataByURL(URL url) throws AAIServiceException; + + // VPLS-PE + public VplsPe requestNetworkVplsPeData(String equipment_name) throws AAIServiceException; + public boolean postNetworkVplsPeData(String vnf_id, VplsPe request) throws AAIServiceException; + public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException; + + + // Complexes + public Complex requestNetworkComplexData(String vnf_id) throws AAIServiceException; + public boolean postNetworkComplexData(String vnf_id, Complex request) throws AAIServiceException; + public boolean deleteNetworkComplexData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // CTag Pool + public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException; + + // --------------------------------- 1507 --------------------------- + // Data Change + public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException; + + public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException; + + public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException; + + public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException; + + public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException; + + public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException; + + //OAM-Network: + public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException; + //Availability-Zone: + public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException; + //Complex: + public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException; + + + /* DELETE */ + public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException; + + public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException; + //OAM-Network: + public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException; + //Availability-Zone: + public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException; + //Complex: + public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException; + + // ----------------- Release 1510 ---------------------- + // // GenericVNF + public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException; + public boolean postGenericVnfData(String vnf_id, GenericVnf request) throws AAIServiceException; + public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // DvsSwitch + public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException; + public boolean postDvsSwitchData(String vnf_id, DvsSwitch request) throws AAIServiceException; + public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // PInterface + public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException; + public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException; + public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException; + + // Physical Link + public PhysicalLink requestPhysicalLinkData(String vnf_id) throws AAIServiceException; + public boolean postPhysicalLinkData(String vnf_id, PhysicalLink request) throws AAIServiceException; + public boolean deletePhysicalLinkData(String vnf_id, String resourceVersion) throws AAIServiceException; + + // PServers + public Pserver requestPServerData(String hostname) throws AAIServiceException; + public boolean postPServerData(String hostname, Pserver server) throws AAIServiceException; + public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException; + + // L3Networks + public L3Network requestL3NetworkData(String networkId) throws AAIServiceException; + public L3Network requestL3NetworkQueryByName(String networkId) throws AAIServiceException; + public boolean postL3NetworkData(String networkId, L3Network request) throws AAIServiceException; + public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException; + + // Vpn Bindings + public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException; +// public boolean postVpnBindingData(String vpnId, VpnBinding request) throws AAIServiceException; + public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException; + + //VnfImage + public VnfImage requestVnfImageData(String vpnId) throws AAIServiceException; + public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException; + public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException; + + // UBB Notify + public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException; + + // 1512 + // Site Pair Site + public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException; + public boolean postSitePairSetData(String sitePairSetId, SitePairSet request) throws AAIServiceException; + public boolean deleteSitePairSetData(String sitePairSetId, String resourceVersion) throws AAIServiceException; + + // Services + public Service requestServiceData(String serviceId) throws AAIServiceException; + public boolean postServiceData(String serviceId, Service request) throws AAIServiceException; + public boolean deleteServiceData(String serviceId, String resourceVersion) throws AAIServiceException; + + // Node Query - 1602 + public SearchResults requestNodeQuery(String type, String entityIdentifier, String entityName) throws AAIServiceException; + public String requestDataByURL(URL url) throws AAIServiceException; +// public Object requestDataInstanceNodeQuery(String type, String vnf_name) throws AAIServiceException; + public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException; + + // // tenant + public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; + public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException; + public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant request) throws AAIServiceException; +// public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; + + + public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException; + public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException; + + public void logKeyError(String keys); + + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; + public String getPathTemplateForResource(String resoourceName, String join, SvcLogicContext ctx) throws MalformedURLException; + public boolean isDeprecatedFormat(String resource, HashMap nameValues); + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java new file mode 100644 index 000000000..73c2eebbf --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -0,0 +1,1935 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLDecoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.bind.annotation.XmlType; + +import org.apache.commons.lang.StringUtils; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.InventoryResponseItem; +import org.openecomp.aai.inventory.v11.InventoryResponseItems; +import org.openecomp.aai.inventory.v11.L3Network; +import org.openecomp.aai.inventory.v11.LogicalLink; +import org.openecomp.aai.inventory.v11.Metadata; +import org.openecomp.aai.inventory.v11.Metadatum; +import org.openecomp.aai.inventory.v11.Pnf; +import org.openecomp.aai.inventory.v11.Relationship; +import org.openecomp.aai.inventory.v11.RelationshipData; +import org.openecomp.aai.inventory.v11.RelationshipList; +import org.openecomp.aai.inventory.v11.ResultData; +import org.openecomp.aai.inventory.v11.SearchResults; +import org.openecomp.aai.inventory.v11.ServiceInstance; +import org.openecomp.aai.inventory.v11.Vlan; +import org.openecomp.aai.inventory.v11.Vlans; +import org.openecomp.aai.inventory.v11.Vserver; +import org.onap.ccsdk.sli.adaptors.aai.AAIService.AAIRequestExecutor; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; +import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilter; +import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilters; +import org.onap.ccsdk.sli.adaptors.aai.query.NamedQuery; +import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; +import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters; +import org.onap.ccsdk.sli.adaptors.aai.query.Results; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + + +public abstract class AAIDeclarations implements AAIClient { + + public static final String TRUSTSTORE_PATH = "org.onap.ccsdk.sli.adaptors.aai.ssl.trust"; + public static final String TRUSTSTORE_PSSWD = "org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd"; + public static final String KEYSTORE_PATH = "org.onap.ccsdk.sli.adaptors.aai.ssl.key"; + public static final String KEYSTORE_PSSWD = "org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd"; + + public static final String APPLICATION_ID = "org.onap.ccsdk.sli.adaptors.aai.application"; + + public static final String CLIENT_NAME = "org.onap.ccsdk.sli.adaptors.aai.client.name"; + public static final String CLIENT_PWWD = "org.onap.ccsdk.sli.adaptors.aai.client.psswd"; + + + public static final String CONNECTION_TIMEOUT = "connection.timeout"; + public static final String READ_TIMEOUT = "read.timeout"; + + public static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri"; + + // Availability zones query + public static final String QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.query"; + + // Update + public static final String UPDATE_PATH = "org.onap.ccsdk.sli.adaptors.aai.update"; + + // Service instance + public static final String SVC_INSTANCE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.svcinst"; + public static final String SVC_INST_QRY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query"; + + // VServer + public static final String NETWORK_VSERVER_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vserver"; + + public static final String VNF_IMAGE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query"; + + public static final String PARAM_SERVICE_TYPE = "org.onap.ccsdk.sli.adaptors.aai.param.service.type"; + public static final String CERTIFICATE_HOST_ERROR = "org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore"; + + // UBB Notify + public static final String UBB_NOTIFY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.notify"; + public static final String SELFLINK_AVPN = "org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn"; + public static final String SELFLINK_FQDN = "org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn"; + + //Service + public static final String SERVICE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.service"; + + // P-Interfaces + public static final String P_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + + // site-pair-sets + public static final String SITE_PAIR_SET_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set"; + + // node query (1602) + public static final String QUERY_NODES_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; + + + protected abstract Logger getLogger(); + public abstract AAIRequestExecutor getExecutor(); + + + @Override + public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) + throws SvcLogicException { + + getLogger().debug("AAIService.query \tresource = "+resource); + + String vnfId = null; + String vnfName = null; + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + getLogger().debug("key = "+ nameValues.toString()); + + if(!AAIServiceUtils.isValidFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + + // process data using new model + boolean useNewModelProcessing = true; + // process server query by name the old way + if(("vserver".equals(resource) || "vserver2".equals(resource))){ + if(nameValues.containsKey("vserver_name") || nameValues.containsKey("vserver-name") || nameValues.containsKey("vserver.vserver_name") || nameValues.containsKey("vserver.vserver-name")) + useNewModelProcessing = false; + } + if("generic-vnf".equals(resource)){ + if(nameValues.containsKey("vnf_name") || nameValues.containsKey("vnf-name") || nameValues.containsKey("generic_vnf.vnf_name") || nameValues.containsKey("generic-vnf.vnf-name")) + useNewModelProcessing = false; + } + + // process data using new model + if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { + + try { + return newModelQuery(resource, localOnly, select, key, prefix, orderBy, ctx); + } catch (Exception exc) { + getLogger().warn("Failed query - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + + ObjectMapper mapper = AAIService.getObjectMapper(); + Map attributes = new HashMap(); + + String modifier = null; + + if(resource.contains(":")) { + String[] tokens = resource.split(":"); + resource = tokens[0]; + if(tokens.length > 1) { + modifier = tokens[1]; + } + } + + resource = resource.toLowerCase().replace("-", "_"); + + try { + + switch(resource) { + case "generic_vnf": + vnfId = nameValues.get("vnf_id"); + if(nameValues.containsKey("vnf_id")) + vnfId = nameValues.get("vnf_id"); + else if(nameValues.containsKey("generic_vnf.vnf_name")) + vnfId = nameValues.get("generic_vnf.vserver_name"); + + if(nameValues.containsKey("vnf_name")) + vnfName = nameValues.get("vnf_name"); + else if(nameValues.containsKey("generic_vnf.vnf_name")) + vnfName = nameValues.get("generic_vnf.vnf_name"); + + if(vnfId != null && !vnfId.isEmpty()) { + // at this point of the project this part should not be executed + vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); + GenericVnf vnf = this.requestGenericVnfData(vnfId); + if(vnf == null) { + return QueryStatus.NOT_FOUND; + } + + attributes = mapper.convertValue(vnf, attributes.getClass()); + } else if(vnfName != null && !vnfName.isEmpty()) { + try { + vnfName = vnfName.trim().replace("'", "").replace("$", "").replace("'", ""); + GenericVnf vnf = this.requestGenericVnfeNodeQuery(vnfName); + if(vnf == null) { + return QueryStatus.NOT_FOUND; + } + vnfId=vnf.getVnfId(); + nameValues.put("vnf_id", vnfId); + attributes = mapper.convertValue(vnf, attributes.getClass()); + } catch (AAIServiceException exc) { + int errorCode = exc.getReturnCode(); + switch(errorCode) { + case 400: + case 404: + case 412: + break; + default: + getLogger().warn("Caught exception trying to refresh generic VNF", exc); + } + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + if(errorCode >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); + } + return QueryStatus.FAILURE; + } + } else { + getLogger().warn("No arguments are available to process generic VNF"); + return QueryStatus.FAILURE; + } + break; + case "vserver": + case "vserver2": + String vserverName = null; + if(nameValues.containsKey("vserver_name")) + vserverName = nameValues.get("vserver_name"); + else if(nameValues.containsKey("vserver.vserver_name")) + vserverName = nameValues.get("vserver.vserver_name"); + + String vserverId = null; + if(nameValues.containsKey("vserver_id")) + vserverId = nameValues.get("vserver_id"); + if(nameValues.containsKey("vserver.vserver_id")) + vserverId = nameValues.get("vserver.vserver_id"); + String tenantId = nameValues.get("teannt_id"); + + if(vserverName != null) vserverName = vserverName.trim().replace("'", "").replace("$", "").replace("'", ""); + if(vserverId != null) vserverId = vserverId.trim().replace("'", "").replace("$", "").replace("'", ""); + if(tenantId != null) tenantId = tenantId.trim().replace("'", "").replace("$", "").replace("'", ""); + + if (vserverName != null) { + URL vserverUrl = null; + try { + vserverUrl = this.requestVserverURLNodeQuery(vserverName); + } catch (AAIServiceException aaiexc) { + ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); + if (aaiexc.getReturnCode() >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if (aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + } + if (vserverUrl == null) { + return QueryStatus.NOT_FOUND; + } + + tenantId = getTenantIdFromVserverUrl(vserverUrl); + String cloudOwner = getCloudOwnerFromVserverUrl(vserverUrl); + String cloudRegionId = getCloudRegionFromVserverUrl(vserverUrl); + + Vserver vserver = null; + try { + vserver = this.requestVServerDataByURL(vserverUrl); + } catch (AAIServiceException aaiexc) { + ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); + if (aaiexc.getReturnCode() >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if (aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + } + if (vserver == null) { + return QueryStatus.NOT_FOUND; + } + attributes = mapper.convertValue(vserver, attributes.getClass()); + if (!attributes.containsKey("tenant-id") && tenantId != null) { + attributes.put("tenant-id", tenantId); + } + if (!attributes.containsKey("cloud-owner") && cloudOwner != null) { + attributes.put("cloud-owner", cloudOwner); + } + if (!attributes.containsKey("cloud-region-id") && cloudRegionId != null) { + attributes.put("cloud-region-id", cloudRegionId); + } + } else if (vserverId != null && tenantId != null) { + Vserver vserver = this.requestVServerData(tenantId, vserverId, "att-aic", "AAIAIC25"); + if(vserver == null) { + return QueryStatus.NOT_FOUND; + } + attributes = mapper.convertValue(vserver, attributes.getClass()); + if(!attributes.containsKey("tenant-id") && tenantId != null){ + attributes.put("tenant-id", tenantId); + } + } else { + return QueryStatus.FAILURE; + } + break; + + default: + return QueryStatus.FAILURE; + } + + QueryStatus retval = QueryStatus.SUCCESS; + + if (attributes == null || attributes.isEmpty()) { + retval = QueryStatus.NOT_FOUND; + getLogger().debug("No data found"); + } else { + if (ctx != null) { + if (prefix != null) { + ArrayList keys = new ArrayList(attributes.keySet()); + + int numCols = keys.size(); + + for (int i = 0; i < numCols; i++) { + String colValue = null; + String colName = keys.get(i); + Object object = attributes.get(colName); + + if(object != null && object instanceof String) { + colValue = (String)object; + + if (prefix != null) { + getLogger().debug("Setting "+prefix + "." + colName.replaceAll("_", "-")+" = "+ colValue); + ctx.setAttribute(prefix + "." + colName.replaceAll("_", "-"), colValue); + } else { + getLogger().debug("Setting " + colValue.replaceAll("_", "-")+" = "+colValue); + ctx.setAttribute(colValue.replaceAll("_", "-"), colValue); + } + } else if(object != null && object instanceof Map) { + if(colName.equals(modifier) || colName.equals("relationship-list")){ + String localNodifier = modifier; + if(localNodifier == null) + localNodifier = "relationship-list"; + Map properties = (Map)object; + writeMap(properties, prefix+"."+localNodifier, ctx); + } + } + } + } + } + } + getLogger().debug("Query - returning " + retval); + return (retval); + + } catch (Exception exc) { + getLogger().warn("Failed query - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + +// return QueryStatus.SUCCESS; + } + + + public void writeMap(Map properties, String prefix, SvcLogicContext ctx) { + Set mapKeys = properties.keySet(); + + for(String mapKey : mapKeys) { + Object entity = properties.get(mapKey); + if(entity instanceof ArrayList) { + writeList((ArrayList)entity, prefix + "." + mapKey, ctx); + } else + if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { + ctx.setAttribute(prefix + "." + mapKey, entity.toString()); + getLogger().debug(prefix + "." + mapKey + " : " + entity.toString()); + } else if(entity instanceof Map) { + String localPrefix = prefix; + if(mapKey != null) { + localPrefix = String.format("%s.%s", prefix, mapKey); + } + writeMap( (Map)entity, localPrefix, ctx); + } + } + } + + private void writeList(ArrayList list, String prefix, SvcLogicContext ctx) { + for(int i = 0; i < list.size(); i++ ) { + Object entity = list.get(i); + if(entity instanceof Map) { + writeMap( (Map)entity, prefix + "[" + i + "]", ctx); + } else + if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { + ctx.setAttribute(prefix, entity.toString()); + getLogger().debug(prefix + " : " + entity.toString()); + } + } + + if(list.size() > 0) { + ctx.setAttribute(prefix + "_length", Integer.toString(list.size())); + getLogger().debug(prefix + "_length" + " : " + Integer.toString(list.size())); + } + } + + @Override + public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) + throws SvcLogicException { + + getLogger().debug("AAIService.save\tresource="+resource); + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + + if(!AAIServiceUtils.isValidFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + getLogger().warn("AAIService.save has unspecified resource"); + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + // keys passed + getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); + + // process params + if(params.containsKey("prefix")) { + Map tmpParams = ctxGetBeginsWith(ctx, params.get("prefix")); + if(!tmpParams.isEmpty()) { + params.putAll(tmpParams); +// params.remove("prefix"); + } + } + // params passed + getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); + + boolean useNewModelProcessing = true; + // process server query by name the old way + if(("vserver".equals(resource) || "vserver2".equals(resource))){ + if(nameValues.containsKey("vserver-name")) { + useNewModelProcessing = false; + } + + if(!params.containsKey("vserver-selflink")) { + + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + URL path = null; + try { + request.processRequestPathValues(nameValues); + path = request.getRequestUrl("GET", null); + params.put("vserver-selflink", path.toString()); + } catch (UnsupportedEncodingException | MalformedURLException e) { + // TODO : Fix this + params.put("vserver-selflink", "/vserver"); + } + } + } + + // process data using new model + if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { + + try { + if(!resource.contains(":")){ + return newModelSave(resource, force, key, params, prefix, ctx); + } else { + String[] tokens = resource.split(":"); + String localResource = tokens[0]; + String dependency = tokens[1]; + + AAIDatum instance = newModelObjectRequest( localResource, nameValues, prefix, ctx); + if(instance == null) { + return QueryStatus.NOT_FOUND; + } + + switch(dependency){ + case "relationship-list": + newModelProcessRelationshipList(instance, params, prefix, ctx); + break; + } + // create a method to update relationship-list + AAIRequest request = AAIRequest.createRequest(localResource, nameValues); + request.setRequestObject(instance); + request.processRequestPathValues(nameValues); + + getExecutor().post(request); + getLogger().debug("Save relationship list - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + } catch (Exception exc) { + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + if(exc instanceof AAIServiceException) { + AAIServiceException aaiexc = (AAIServiceException)exc; + if(aaiexc.getReturnCode() >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if(aaiexc.getReturnCode() == 404) { + return QueryStatus.NOT_FOUND; + } + } + getLogger().warn("Failed save() - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } else { + String reSource = resource.toLowerCase().replace("-", "_"); + String vnfId = null; + + try { + switch(reSource) { + case "generic_vnf": + case "generic-vnf": + vnfId = nameValues.get("vnf_id"); + if(vnfId == null) { + getLogger().debug("Save(generic-vnf) with no vnf-id specified. Returning FAILURE"); + return QueryStatus.FAILURE; + } + vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); + GenericVnf vnf = this.requestGenericVnfData(vnfId); + String status = params.get("prov-status"); + boolean updated = false; + if(status != null && !status.isEmpty()) { + vnf.setProvStatus(status); + } + if(updated) { + this.postGenericVnfData(vnfId, vnf); + } + break; + case "vpe": + return update( resource, key, params, prefix, ctx) ; + + default: + getLogger().debug("Save() executing default path - returning FAILURE"); + return QueryStatus.FAILURE; + } + } catch (Exception exc) { + getLogger().warn("Failed save - returning FAILURE", exc); + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + return QueryStatus.FAILURE; + } + } + + getLogger().debug("Save - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + + @Override + public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { + + resource = resource.toLowerCase(); + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); + if(!AAIServiceUtils.isValidFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + + getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); + + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + request = new UpdateRequest(request, params); + + String[] arguments = request.getArgsList(); + for(String name : arguments) { + String modifiedKey = name.replaceAll("-", "_"); + if(nameValues.containsKey(modifiedKey)) { + String argValue = nameValues.get(modifiedKey); + if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); + request.addRequestProperty(name, argValue); + } + } + + try { + QueryStatus retval = QueryStatus.SUCCESS; + + retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); + + if(retval == null || retval != QueryStatus.SUCCESS) { + return retval; + } + + String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); + if(resourceVersion == null) { + return QueryStatus.NOT_FOUND; + } + params.put("resource-version", resourceVersion); + + request.processRequestPathValues(nameValues); + getExecutor().patch(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + } catch (Exception exc) { + getLogger().warn("Failed update - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + + getLogger().debug("Update - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + + @Override + public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { + getLogger().debug("AAIService.delete\tresource="+resource); + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); + + if(!AAIServiceUtils.isValidFormat(resource, nameValues)) { + ctx.setAttribute(String.format("%s.error.message", "aaiData"), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); + return QueryStatus.FAILURE; + } + + if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { + ctx.setAttribute(String.format("%s.error.message", "tmpDelete"), String.format("Resource %s is not supported", resource)); + return QueryStatus.FAILURE; + } + + if(AAIRequest.createRequest(resource, nameValues) != null) { + if(resource.contains(":")) { + return processDeleteRelationshipList(resource, key, ctx, nameValues); + } + + + try { + QueryStatus retval = QueryStatus.SUCCESS; + + retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); + + if(retval == null || retval != QueryStatus.SUCCESS) { + return retval; + } + + String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); + if(resourceVersion == null) { + return QueryStatus.NOT_FOUND; + } + + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + request.processRequestPathValues(nameValues); + + if(getExecutor().delete(request, resourceVersion)) { + return QueryStatus.SUCCESS; + } + } catch(AAIServiceException aaiexc) { + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + else + return QueryStatus.FAILURE; + + } catch (Exception exc) { + getLogger().warn("requestGenericVnfData", exc); + return QueryStatus.FAILURE; + } + + } catch (Exception exc) { + getLogger().warn("Failed delete - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } else { + String resoourceName = resource; + String identifier = null; + + if(resoourceName == null) + return QueryStatus.FAILURE; + + if(resoourceName.contains(":")) { + String[] tokens = resoourceName.split(":"); + if(tokens != null && tokens.length > 0) { + resoourceName = tokens[0]; + identifier = tokens[1]; + } + } + if("relationship-list".equals(identifier) || "relationshipList".equals(identifier)) { +// RelationshipRequest relationshipRequest = new RelationshipRequest(); + if("generic-vnf".equals(resoourceName)){ + String vnfId = nameValues.get("vnf_id"); + String relatedTo = nameValues.get("related_to"); + vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); + relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); + + GenericVnf vnf; + try { + vnf = this.requestGenericVnfData(vnfId); + if(vnf == null) + return QueryStatus.NOT_FOUND; + } catch (AAIServiceException exc) { + getLogger().warn("Failed delete - returning NOT_FOUND", exc); + return QueryStatus.NOT_FOUND; + } + boolean itemRemoved = false; + RelationshipList relationshipList = vnf.getRelationshipList(); + List relationships = relationshipList.getRelationship(); + List iterableList = new LinkedList(relationships); + for(Relationship relationship : iterableList) { + if(relationship.getRelatedTo().equals(relatedTo)) { + relationships.remove(relationship); + itemRemoved = true; + } + } + + if(!itemRemoved) + return QueryStatus.NOT_FOUND; + +// AAIRequest masterRequest = new GenericVnfRequest(); +// masterRequest.addRequestProperty(GenericVnfRequest.VNF_ID, vnfId); +// relationshipRequest.addMasterRequest(masterRequest); +// Map attributes = objectToProperties(vnf); +// try { +// Boolean result = getExecutor().delete(relationshipRequest, attributes.get(AAIRequest.RESOURCE_VERSION)); +// } catch (AAIServiceException e) { +// return QueryStatus.FAILURE; +// } + + try { + this.postGenericVnfData(vnf.getVnfId(), vnf); + } catch (AAIServiceException exc) { + if(exc.getReturnCode() == 404){ + return QueryStatus.NOT_FOUND; + } else { + getLogger().warn("Failed delete - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + return QueryStatus.SUCCESS; + } + } + } + return QueryStatus.FAILURE; + } + + @Override + public QueryStatus exists(String resource, String key, String prefix, SvcLogicContext ctx) throws SvcLogicException { + return query(resource, false, null, key, prefix, null, ctx); + } + + @Override + public QueryStatus isAvailable(String arg0, String arg1, String arg2, SvcLogicContext arg3) + throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.isAvailable() has not been implemented yet"); + } + + @Override + public QueryStatus notify(String resource, String action, String key, SvcLogicContext ctx) throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.notify() has not been implemented yet"); + } + +// @Override + public QueryStatus newModelQuery(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) { + + Object response = null; + QueryStatus retval = QueryStatus.SUCCESS; + String modifier = null; + + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + if(resource.contains(":")) { + modifier = resource.split(":")[1]; + } + + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + Map params = new HashMap(); + + request.processRequestPathValues(nameValues); + if(nameValues.containsKey("prefix")){ + Map tmpParams = ctxGetBeginsWith(ctx, nameValues.get("prefix")); + if(!tmpParams.isEmpty()) { + params.putAll(tmpParams); + } + if("named-query".equals(resource)) + request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params)); + } + String rv = getExecutor().get(request); + + retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, modifier); + + } catch(AAIServiceException aaiexc) { + int errorCode = aaiexc.getReturnCode(); + ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); + if(errorCode >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); + } + + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + + return QueryStatus.FAILURE; + } catch (Exception exc) { + getLogger().warn("requestGenericVnfData", exc); + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + return QueryStatus.FAILURE; + } + + return retval; + } + + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException + { + Object response = null; + + if(rv == null) { + return QueryStatus.NOT_FOUND; + } + + response = request.jsonStringToObject(rv); + if(response == null) { + return QueryStatus.NOT_FOUND; + } + + if("generic-query".equals(resource)) { + SearchResults rd = SearchResults.class.cast(response); + List rdList = rd.getResultData(); + if(rdList == null || rdList.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + ResultData rDatum = rdList.get(0); + nameValues.put("selflink", rDatum.getResourceLink()); + AAIRequest req2 = AAIRequest.createRequest(rDatum.getResourceType(), nameValues); + req2.processRequestPathValues(nameValues); + rv = getExecutor().get(req2); + if(rv == null) { + return QueryStatus.NOT_FOUND; + } + + response = req2.jsonStringToObject(rv); + if(response == null) { + return QueryStatus.NOT_FOUND; + } + } + + if("named-query".equals(resource)) { + InventoryResponseItems rd = InventoryResponseItems.class.cast(response); + List iRIlist = rd.getInventoryResponseItem(); + if(iRIlist == null || iRIlist.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + } + + if("nodes-query".equals(resource)) { + SearchResults rd = SearchResults.class.cast(response); + List rdList = rd.getResultData(); + if(rdList == null || rdList.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + ResultData rDatum = rdList.get(0); + response = rDatum; + } + + if("formatted-query".equals(resource) || "custom-query".equals(resource)) { + FormattedQueryResultList rd = FormattedQueryResultList.class.cast(response); + List iRIlist = rd.getResults(); + if(iRIlist == null || iRIlist.isEmpty()) { + return QueryStatus.NOT_FOUND; + } + } + + // process relationship list + // this is a temporary soluton to address the realationship handling changes added in Release 17.07 + try { + Class clazz = response.getClass(); + Method getter = clazz.getMethod("getRelationshipList"); + Object obj = getter.invoke(response); + if(obj != null && obj instanceof RelationshipList) { + RelationshipList list = RelationshipList.class.cast(obj); + AAIServiceUtils.populateRelationshipDataFromPath(list); + } + } catch(Exception exc) { + getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); + } + + String preFix = null; + if(prefix == null || prefix.isEmpty()) { + preFix = ""; + } else { + preFix = prefix + "."; + } + + Map props = objectToProperties(response); + Set keys = props.keySet(); + for(String theKey: keys) { + if(getLogger().isTraceEnabled()) + getLogger().trace(theKey); + + Object value = props.get(theKey); + if(value == null) + continue; + Object type = value.getClass(); + if(value instanceof String) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + if(value instanceof Boolean) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + if(value instanceof Integer) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + if(value instanceof Long) { + ctx.setAttribute(preFix + theKey, value.toString()); + continue; + } + + if(value instanceof ArrayList) { + ArrayList array = ArrayList.class.cast(value); + for(int i = 0; i < array.size(); i++) { + writeList(array, String.format("%s.%s", prefix, theKey), ctx); + } + continue; + } + + if("relationship-list".equals(theKey)){ + Map relationshipList = (Map)value; + // we are interested in seeing just the selected relationship + if(theKey.equals(modifier)) { + List relationships = (List)relationshipList.get("relationship"); + if(relationships != null && !relationships.isEmpty()) { + + List newRelationships = new LinkedList(); + newRelationships.addAll(relationships); + + for(Object obj : newRelationships){ + if(obj instanceof Map) { + Map relProperties = (Map)obj; + if(relProperties.containsKey("related-to")) { + Object relPropsRelatedTo = relProperties.get("related-to"); + + String relatedTo = nameValues.get("related_to"); + if(relatedTo != null) { + relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); + if(!relatedTo.equals(relPropsRelatedTo)) { + relationships.remove(relProperties); + } + continue; + } else { + continue; + } + } + } + } + } + } + writeMap(relationshipList, String.format("%s.%s", prefix, theKey), ctx); + continue; + } + + if(value instanceof Map) { + Map subnetsList = (Map)value; + writeMap(subnetsList, String.format("%s.%s", prefix, theKey), ctx); + continue; + } + + } + return QueryStatus.SUCCESS; + } + + + public QueryStatus newModelBackupRequest(String resource, Map params, String prefix, SvcLogicContext ctx) { + + QueryStatus retval = QueryStatus.SUCCESS; + HashMap nameValues = new HashMap(); + + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + boolean argsFound = false; + String[] arguments = request.getArgsList(); + for(String name : arguments) { + String tmpName = name.replaceAll("-", "_"); + String value = params.get(tmpName); + if(value != null && !value.isEmpty()) { + value = value.trim().replace("'", "").replace("$", "").replace("'", ""); + request.addRequestProperty(name, value); + argsFound = true; + } + } + if(!argsFound) { + getLogger().warn("No arguments were found. Terminating backup request."); + return QueryStatus.FAILURE; + } + + String rv = getExecutor().get(request); + ctx.setAttribute(prefix, rv); + } catch(AAIServiceException aaiexc) { + if(aaiexc.getReturnCode() == 404) + return QueryStatus.NOT_FOUND; + + return QueryStatus.FAILURE; + } catch (Exception exc) { + getLogger().warn("newModelBackupRequest", exc); + return QueryStatus.FAILURE; + } + + return retval; + } + + public AAIDatum newModelObjectRequest(String resource, Map params, String prefix, SvcLogicContext ctx) + throws AAIServiceException { + + AAIDatum response = null; + + try { + AAIRequest request = AAIRequest.createRequest(resource, params); + if(request == null) { + return null; + } + + request.processRequestPathValues(params); + String rv = getExecutor().get(request); + response = request.jsonStringToObject(rv); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + getLogger().warn("newModelBackupRequest", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public QueryStatus release(String arg0, String arg1, SvcLogicContext arg2) throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.release() has not been implemented yet"); + } + + @Override + public QueryStatus reserve(String arg0, String arg1, String arg2, String arg3, SvcLogicContext arg4) + throws SvcLogicException { + // TODO Auto-generated method stub + throw new SvcLogicException("Method AAIService.reserve() has not been implemented yet"); + } + + private QueryStatus newModelSave(String resource, boolean force, String key, Map params, String prefix, SvcLogicContext ctx) { + getLogger().debug("Executing newModelSave for resource : " + resource); + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + + try { + ArrayList subResources = new ArrayList(); + Set set = params.keySet(); + Map setters = new HashMap(); + Map getters = new HashMap(); + + // 1. find class + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = request.getModelClass(); + getLogger().debug(resourceClass.getName()); + AAIDatum instance = resourceClass.newInstance(); + + { + Annotation[] annotations = resourceClass.getAnnotations(); + for(Annotation annotation : annotations) { + Class anotationType = annotation.annotationType(); + String annotationName = anotationType.getName(); + + // 2. find string property setters and getters for the lists + if("javax.xml.bind.annotation.XmlType".equals(annotationName)){ + XmlType order = (XmlType)annotation; + String[] values = order.propOrder(); + for(String value : values) { + String id = AAIServiceUtils.camelCaseToDashedString(value); + Field field = resourceClass.getDeclaredField(value); + Class type = field.getType(); + Method setter = null; + try { + setter = resourceClass.getMethod("set"+StringUtils.capitalize(value), type); + if(type.getName().startsWith("java.lang") || "boolean".equals(type.getName()) || "long".equals(type.getName())) { + try { + setter.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = params.get(id); + + if(arglist[0] != null) { + if(!type.getName().equals("java.lang.String")) { +// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); + if("boolean".equals(type.getName())) { + arglist[0] = valueOf(Boolean.class, params.get(id)); + } else if("long".equals(type.getName())) { + arglist[0] = valueOf(Long.class, params.get(id)); + } else { + arglist[0] = valueOf(type, params.get(id)); + } + } + Object o = setter.invoke(instance, arglist); + } + set.remove(id); + + } catch (Exception x) { + Throwable cause = x.getCause(); + getLogger().warn("Failed process for " + resourceClass.getName(), x); + } + } else if(type.getName().equals("java.util.List")) { + List newValues = new ArrayList(); + String length = id+"_length"; + if(!params.isEmpty() && params.containsKey(length)) { + String tmp = params.get(length).toString(); + int count = Integer.valueOf(tmp); + for(int i=0; i relationshipKeys = new TreeSet(); + Set vlansKeys = new TreeSet(); + Set metadataKeys = new TreeSet(); + + for(String attribute : set) { + String value = params.get(attribute); + if(attribute.startsWith("relationship-list")) { + relationshipKeys.add(attribute); + } else if(attribute.startsWith("vlans")) { + vlansKeys.add(attribute); + } else if(attribute.startsWith("metadata")) { + metadataKeys.add(attribute); + } + } + // 3. find list property getters + for(String attribute : set) { + String value = params.get(attribute); + Method method = getters.get(attribute); + if(method != null) { + try { + method.setAccessible(true); + Object arglist[] = new Object[0]; +// arglist[0] = value; + Class[] types = method.getParameterTypes(); + if(types.length == 0){ + Object o = method.invoke(instance, arglist); + if(o instanceof ArrayList) { + ArrayList values = (ArrayList)o; +// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); + value = value.replace("[", "").replace("]", ""); + List items = Arrays.asList(value.split("\\s*,\\s*")); + for(String s : items) { + values.add(s.trim()); + } + } + } + } catch (Exception x) { + Throwable cause = x.getCause(); + getLogger().warn("Failed process for " + resourceClass.getName(), x); + } + } + } + // 4. Process Relationships + // add relationship list + if( (subResources.contains("relationship-list") || subResources.contains("relationshipList")) && !relationshipKeys.isEmpty()) { + RelationshipList relationshipList = null; + Object obj = null; + Method getRelationshipListMethod = null; + try { + getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + } catch(Exception exc) { + getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); + } + + if(getRelationshipListMethod != null){ + try { + getRelationshipListMethod.setAccessible(true); + obj = getRelationshipListMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof RelationshipList){ + relationshipList = (RelationshipList)obj; + } else { + relationshipList = new RelationshipList(); + Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); + if(setRelationshipListMethod != null){ + try { + setRelationshipListMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = relationshipList; + + obj = setRelationshipListMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + List relationships = relationshipList.getRelationship(); + + int i = 0; + while(true){ + String searchKey = "relationship-list.relationship[" + i + "].related-to"; + if(!params.containsKey(searchKey)) + break; + int j = 0; + String relatedTo = params.get(searchKey); + String relatedLinkKey = "relationship-list.relationship[" + i + "].related-link"; + String relatedLink = null; + if(params.containsKey(relatedLinkKey)) { + relatedLink = params.get(relatedLinkKey); + } + Relationship relationship = new Relationship(); + relationships.add(relationship); + relationship.setRelatedTo(relatedTo); + if(relatedLink != null) { + relationship.setRelatedLink(relatedLink); + } else { +// List relData = relationship.getRelationshipData(); + Map relParams = new HashMap(); + + while(true) { + String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; + String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; + if(!params.containsKey(searchRelationshipKey)) + break; + + relParams.put(params.get(searchRelationshipKey), params.get(searchRelationshipValue)); + j++; + } + AAIRequest rlRequest = AAIRequest.createRequest(relatedTo, relParams); + for(String key1 : relParams.keySet()) { + rlRequest.addRequestProperty(key1, relParams.get(key1)); + } + String path = rlRequest.updatePathDataValues(null); + relationship.setRelatedLink(path); + } + i++; + } + } + + // 4. vlans + if(subResources.contains("vlans") && !vlansKeys.isEmpty()) { + Object obj = null; + Vlans vlanList = null; + Method getVLansMethod = resourceClass.getMethod("getVlans"); + if(getVLansMethod != null){ + try { + getVLansMethod.setAccessible(true); + obj = getVLansMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof Vlans){ + vlanList = (Vlans)obj; + } else { + vlanList = new Vlans(); + Method setVlansMethod = resourceClass.getMethod("setVlans", Vlans.class); + if(setVlansMethod != null){ + try { + setVlansMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = vlanList; + + obj = setVlansMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + int i = 0; + while(true){ + String searchKey = "vlans.vlan[" + i + "].vlan-interface"; + if(!params.containsKey(searchKey)) + break; + + String vlanInterface = params.get("vlans.vlan[" + i + "].vlan-interface"); + String vlanIdInner = params.get("vlans.vlan[" + i + "].vlan-id-inner"); + String vlanIdOute = params.get("vlans.vlan[" + i + "].vlan-id-outer"); + String speedValue = params.get("vlans.vlan[" + i + "].speed-value"); + String speedUnits = params.get("vlans.vlan[" + i + "].speed-units"); + + Vlan vlan = new Vlan(); + vlan.setVlanInterface(vlanInterface); + + if(vlanIdInner != null) { + Long iVlanIdInner = Long.parseLong(vlanIdInner); + vlan.setVlanIdInner(iVlanIdInner); + } + + if(vlanIdOute != null) { + Long iVlanIdOuter = Long.parseLong(vlanIdOute); + vlan.setVlanIdOuter(iVlanIdOuter); + } + + if(speedValue != null) { + vlan.setSpeedValue(speedValue); + vlan.setSpeedUnits(speedUnits); + } + + vlanList.getVlan().add(vlan); + i++; + } + } + + // 5. metadata + if(subResources.contains("metadata") && !metadataKeys.isEmpty()) { + Object obj = null; + Metadata metadataList = null; + Method getMetadataMethod = resourceClass.getMethod("getMetadata"); + if(getMetadataMethod != null){ + try { + getMetadataMethod.setAccessible(true); + obj = getMetadataMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof Metadata){ + metadataList = (Metadata)obj; + } else { + metadataList = new Metadata(); + Method setMetadataMethod = resourceClass.getMethod("setMetadata", Metadata.class); + if(setMetadataMethod != null){ + try { + setMetadataMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = metadataList; + + obj = setMetadataMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + if(metadataList.getMetadatum() == null) { +// metadataList.setMetadatum(new ArrayList()); + } + + // process data + int i = 0; + while(true){ + String metaKey = "metadata.metadatum[" + i + "].meta-key"; + if(!params.containsKey(metaKey)) + break; + + String metaValue = params.get("metadata.metadatum[" + i + "].meta-value"); + + Metadatum vlan = new Metadatum(); + vlan.setMetaname(metaKey); + vlan.setMetaval(metaValue); + + metadataList.getMetadatum().add(vlan); + i++; + } + + } + + + // 6. Prepare AAI request + String[] args = request.getArgsList(); + for(String arg : args) { + String modifiedKey = arg.replaceAll("-", "_"); + if(nameValues.containsKey(modifiedKey)) { + String argValue = nameValues.get(modifiedKey); + if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); + request.addRequestProperty(arg, argValue); + } + } + + request.processRequestPathValues(nameValues); + request.setRequestObject(instance); + Object response = getExecutor().post(request); + if(request.expectsDataFromPUTRequest()){ + if(response != null && response instanceof String) { + String rv = response.toString(); + QueryStatus retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, null); + getLogger().debug("newModelSave - returning " + retval.toString()); + return retval; + } + } + + } catch(AAIServiceException exc){ + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + int returnCode = exc.getReturnCode(); + if(returnCode >= 300) { + ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); + } + + if(returnCode == 400 || returnCode == 412) + return QueryStatus.FAILURE; + else if(returnCode == 404) + return QueryStatus.NOT_FOUND; + else { + getLogger().warn("Failed newModelSave - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } catch(Exception exc){ + getLogger().warn("Failed newModelSave - returning FAILURE", exc); + ctx.setAttribute(prefix + ".error.message", exc.getMessage()); + return QueryStatus.FAILURE; + } + + getLogger().debug("newModelSave - returning SUCCESS"); + return QueryStatus.SUCCESS; + } + + private QueryStatus newModelProcessRelationshipList(Object instance, Map params, String prefix, SvcLogicContext ctx) throws Exception { + + Class resourceClass = instance.getClass(); + + Set relationshipKeys = new TreeSet(); + + Set set = params.keySet(); + + for(String attribute : set) { + String value = params.get(attribute); + + if(attribute.startsWith("relationship-list")) { + relationshipKeys.add(attribute); + } + } + + // 3. Process Relationships + // add relationship list + if(!relationshipKeys.isEmpty()) { + RelationshipList relationshipList = null; + Object obj = null; + Method getRelationshipListMethod = null; + try { + getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + } catch(Exception exc) { + getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); + } + if(getRelationshipListMethod != null){ + try { + getRelationshipListMethod.setAccessible(true); + obj = getRelationshipListMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof RelationshipList){ + relationshipList = (RelationshipList)obj; + } else { + relationshipList = new RelationshipList(); + Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); + if(setRelationshipListMethod != null){ + try { + setRelationshipListMethod.setAccessible(true); + Object arglist[] = new Object[1]; + arglist[0] = relationshipList; + + obj = setRelationshipListMethod.invoke(instance, arglist); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } + + boolean createdNewRelationships = false; + List relationships = relationshipList.getRelationship(); + if(relationships == null) { + relationships = new ArrayList(); + createdNewRelationships = true; + } + + int i = 0; + while(true){ + String searchKey = "relationship-list.relationship[" + i + "].related-to"; + if(!params.containsKey(searchKey)) + break; + + int j = 0; + String relatedTo = params.get(searchKey); + String relatedLinkKey = "relationship-list.relationship[" + i + "].related-link"; + String relatedLink = null; + if(params.containsKey(relatedLinkKey)) { + relatedLink = params.get(relatedLinkKey); + } + + Relationship relationship = new Relationship(); + relationships.add(relationship); + relationship.setRelatedTo(relatedTo); + if(relatedLink != null) { + relationship.setRelatedLink(relatedLink); + } else { + Map relParams = new HashMap(); + + while(true) { + String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; + String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; + if(!params.containsKey(searchRelationshipKey)) + break; + + relParams.put(params.get(searchRelationshipKey), params.get(searchRelationshipValue)); + j++; + } + AAIRequest rlRequest = AAIRequest.createRequest(relatedTo, relParams); + for(String key : relParams.keySet()) { + rlRequest.addRequestProperty(key, relParams.get(key)); + } + String path = rlRequest.updatePathDataValues(null); + relationship.setRelatedLink(path); + } + + i++; + } + } + + return QueryStatus.SUCCESS; + } + + private Relationship findRelationship(List relationships, String relatedTo) { + if(relatedTo == null) + return null; + + for(Relationship relationship : relationships) { + if(relationship.getRelatedTo().equals(relatedTo)){ + return relationship; + } + } + return null; + } + + + public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException { + String resource = params.get("resource").toLowerCase(); + String prefix = params.get("data-key"); + + HashMap nameValues = new HashMap(); + if(AAIRequest.createRequest(resource, nameValues) != null) { + + try { + return newModelBackupRequest(resource, params, prefix, ctx); + } catch (Exception exc) { + getLogger().warn("Failed backup - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + + return QueryStatus.NOT_FOUND; + } + + @Override + public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException { + + QueryStatus retval = QueryStatus.SUCCESS; + String resource = params.get("resource").toLowerCase(); + String prefix = params.get("data-key"); + + HashMap nameValues = new HashMap(); + if(AAIRequest.createRequest(resource, nameValues) != null) { + + try { + retval = newModelBackupRequest(resource, params, "tmpRestore", ctx); + if(retval == QueryStatus.SUCCESS) { + String current_json = ctx.getAttribute("tmpRestore"); + ctx. setAttribute("tmpRestore", null); + + String snapshot_json = ctx.getAttribute(prefix); + } + } catch (Exception exc) { + getLogger().warn("Failed restore - returning FAILURE", exc); + return QueryStatus.FAILURE; + } + } + + return QueryStatus.NOT_FOUND; + } + + protected Map objectToProperties(Object object) { + ObjectMapper mapper = AAIService.getObjectMapper(); + return mapper.convertValue(object, Map.class); + } + + static T valueOf(Class klazz, String arg) { + Exception cause = null; + T ret = null; + try { + ret = klazz.cast(klazz.getDeclaredMethod("valueOf", String.class).invoke(null, arg)); + } catch (NoSuchMethodException exc) { + LoggerFactory.getLogger(AAIService.class).warn("Wrong data type", exc); + ret = klazz.cast(arg); + } catch (IllegalAccessException e) { + cause = e; + } catch (InvocationTargetException e) { + cause = e; + } + if (cause == null) { + return ret; + } else { + throw new IllegalArgumentException(cause); + } + } + + private QueryStatus processDeleteRelationshipList(String resource, String key, SvcLogicContext ctx, HashMap nameValues) { + try { + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + if(request == null) { + return QueryStatus.FAILURE; + } + + request.processRequestPathValues(nameValues); + URL url = request.getRequestUrl("GET", null); + + Class resourceClass = request.getModelClass(); + Object instance = getResource(url.toString(), resourceClass); + if(instance == null) + return QueryStatus.NOT_FOUND; + + // get resource version + String resourceVersion = null; + Method getResourceVersionMethod = resourceClass.getMethod("getResourceVersion"); + if(getResourceVersionMethod != null){ + try { + getResourceVersionMethod.setAccessible(true); + Object object = getResourceVersionMethod.invoke(instance); + if(object != null) + resourceVersion = object.toString(); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + + RelationshipList relationshipList = null; + Object obj = null; + Method getRelationshipListMethod = null; + try { + getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + } catch(Exception exc) { + getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); + } + if(getRelationshipListMethod != null){ + try { + getRelationshipListMethod.setAccessible(true); + obj = getRelationshipListMethod.invoke(instance); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + if(obj != null && obj instanceof RelationshipList){ + relationshipList = (RelationshipList)obj; + } else { + getLogger().debug("No relationships found to process."); + return QueryStatus.NOT_FOUND; + } + + if(relationshipList.getRelationship() == null || relationshipList.getRelationship().isEmpty()) { + return QueryStatus.NOT_FOUND; + } + String relatedTo = nameValues.get("related_to"); + if(relatedTo == null) { + return QueryStatus.FAILURE; + } + + relatedTo = relatedTo.replaceAll("_", "-"); + + String relatedLink = nameValues.get("relationship.related_link"); + if(relatedLink != null) { + relatedLink = URLDecoder.decode(relatedLink, "UTF-8"); + } + + List relationships = relationshipList.getRelationship(); + List relationshipsToDelete = new LinkedList(); + + for(Relationship relationship : relationships) { + if(relatedTo.equals(relationship.getRelatedTo())) { + if(relatedLink != null) { + if(relationship.getRelatedLink() != null ) { + String localRelatedLink = relationship.getRelatedLink(); + localRelatedLink = URLDecoder.decode(localRelatedLink, "UTF-8"); + if(localRelatedLink.endsWith(relatedLink)) { + getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); + relationshipsToDelete.add(relationship); + } + } + } else { + getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); + relationshipsToDelete.add(relationship); + } + } + } + if(relationshipsToDelete == null || relationshipsToDelete.isEmpty()) { + getLogger().info(String.format("Relationship has not been found for %s", key)); + return QueryStatus.NOT_FOUND; + } + + String path = url.toString(); + path = path + "/relationship-list/relationship"; + URL deleteUrl = new URL(path); + + ObjectMapper mapper = AAIService.getObjectMapper(); + + boolean cumulativeResponse = true; + + for(Relationship targetRelationship : relationshipsToDelete) { + String json_text = mapper.writeValueAsString(targetRelationship); + boolean response = deleteRelationshipList(deleteUrl, json_text); + if(!response) + cumulativeResponse = response; + + } + + if(!cumulativeResponse) + return QueryStatus.FAILURE; + + return QueryStatus.SUCCESS; + + } catch(Exception exc) { + getLogger().warn("processDelete", exc); + return QueryStatus.FAILURE; + } + } + + static final Map ctxGetBeginsWith( SvcLogicContext ctx, String prefix ) { + Map tmpPrefixMap = new HashMap(); + + if(prefix == null || prefix.isEmpty()){ + return tmpPrefixMap; + } + + for( String key : ctx.getAttributeKeySet() ) { + if( key.startsWith(prefix) ) { + String tmpKey = key.substring(prefix.length() + 1); + tmpPrefixMap.put( tmpKey, ctx.getAttribute(key)); + } + } + + Map prefixMap = new HashMap(); + Pattern p = Pattern.compile(".*\\[\\d\\]"); + + SortedSet keys = new TreeSet(tmpPrefixMap.keySet () ); + for(String key : keys) { + Matcher m = p.matcher(key); + if(m.matches()) { + continue; + } else if(key.endsWith("_length")) { + String listKey = key.substring(0, key.indexOf("_length")); + int max = Integer.parseInt(tmpPrefixMap.get(key)); + + ArrayList data = new ArrayList(); + for(int x = 0; x < max; x++){ + String tmpKey = String.format("%s[%d]", listKey, x); + String tmpValue = tmpPrefixMap.get(tmpKey); + if(tmpValue != null && !tmpValue.isEmpty()) { + data.add(tmpValue); + } + } + if(!data.isEmpty()) { + prefixMap.put(listKey, data.toString()); + } else { + prefixMap.put(key, tmpPrefixMap.get(key)); + } + } else { + prefixMap.put(key, tmpPrefixMap.get(key)); + } + } + + return prefixMap; + } + + /** + */ + protected NamedQueryData extractNamedQueryDataFromQueryPrefix(HashMap nameValues, Map parms) { + if(parms.isEmpty()) { + return null; + } + + NamedQueryData data = new NamedQueryData(); + + // query parameters + if(data.getQueryParameters() == null) { + data.setQueryParameters(new QueryParameters()); + } + String namedQueryUuid = nameValues.get("named-query-uuid".replaceAll("-", "_")); + if(namedQueryUuid == null) { + namedQueryUuid = parms.get("query-parameters.named-query.named-query-uuid"); + } + NamedQuery namedQuery = new NamedQuery(); + namedQuery.setNamedQueryUuid(namedQueryUuid); + data.getQueryParameters().setNamedQuery(namedQuery); + + // instance filters + if(data.getInstanceFilters() == null) { + data.setInstanceFilters(new InstanceFilters()); + } + + + String quantity = parms.get("instance-filters.instance-filter_length"); + if(quantity != null && StringUtils.isNumeric(quantity)) { + int max = Integer.parseInt(quantity); + for(int i = 0; i < max; i++) { + String keyPattern = String.format("instance-filters.instance-filter[%d].", i); + Set keys = parms.keySet(); + for(String key: keys) { + if(key.startsWith(keyPattern)){ + String value = parms.get(key); + String remainder = key.substring(keyPattern.length()); + String[] split = remainder.split("\\."); + getLogger().debug(String.format("%s", remainder)); + if("logical-link".equals(split[0])) { + InstanceFilter insf = null; + if(data.getInstanceFilters().getInstanceFilter().isEmpty()) { + insf = new InstanceFilter(); + data.getInstanceFilters().getInstanceFilter().add(insf); + } else { + insf = data.getInstanceFilters().getInstanceFilter().get(0); + } + LogicalLink logicalLink = insf.getLogicalLink(); + if(logicalLink == null) { + logicalLink = new LogicalLink(); + insf.setLogicalLink(logicalLink); + } + + switch(split[1]) { + case "link-name": + logicalLink.setLinkName(value); + break; + case "link-type": + logicalLink.setLinkType(value); + break; + case "operational-state": + logicalLink.setOperationalStatus(value); + break; + } + + } else if("pnf".equals(split[0])) { + Pnf pnf = new Pnf(); + pnf.setPnfName(value); + + InstanceFilter insf = new InstanceFilter(); + insf.setPnf(pnf); + data.getInstanceFilters().getInstanceFilter().add(insf); + + } else if("service-instance".equals(split[0])) { + ServiceInstance serviceInstance = new ServiceInstance(); + serviceInstance.setServiceInstanceId(value); + + InstanceFilter insf = new InstanceFilter(); + insf.setServiceInstance(serviceInstance); + data.getInstanceFilters().getInstanceFilter().add(insf); + + } else if("l3-network".equals(split[0])) { + L3Network l3Network = new L3Network(); + if("network-role".equals(split[1])) { + l3Network.setNetworkRole(value); + } + + InstanceFilter insf = new InstanceFilter(); + insf.setL3Network(l3Network); + data.getInstanceFilters().getInstanceFilter().add(insf); + } + } + } + } + } + + return data; + } + + public abstract T getResource(String key, Class type) throws AAIServiceException ; + protected abstract boolean deleteRelationshipList(URL url, String caller) throws AAIServiceException; +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java new file mode 100644 index 000000000..d315bad1c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java @@ -0,0 +1,30 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +public interface AAIExecutorInterface { + public Object get(AAIRequest request) throws AAIServiceException; + public Object post(AAIRequest request) throws AAIServiceException; + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException; + public Object query(AAIRequest request, Class clas) throws AAIServiceException; + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException; +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java new file mode 100644 index 000000000..e54d1f7f1 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -0,0 +1,440 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.BitSet; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.TreeSet; + +import org.apache.commons.lang.StringUtils; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public abstract class AAIRequest { + protected static final Logger LOG = LoggerFactory.getLogger(AAIRequest.class); + + protected static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri"; + + protected static final String MASTER_REQUEST = "master-request"; + + public static final String RESOURCE_VERSION = "resource-version"; + + public static final String DEPTH = "depth"; + + protected static Properties configProperties; + protected final String target_uri; + protected static AAIService aaiService; + + protected AAIDatum requestDatum; + + protected final Properties requestProperties = new Properties(); + + + public static AAIRequest createRequest(String resoourceName, Map nameValues){ + + String resoource = resoourceName; + + if(resoource == null) + return null; + + if(resoource.contains(":")) { + String[] tokens = resoource.split(":"); + if(tokens != null && tokens.length > 0) { + resoource = tokens[0]; + } + } + + if(nameValues.containsKey("selflink")){ + Class clazz = null; + try { + clazz = getClassFromResource(resoource) ; + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + + if(clazz != null) + return new SelfLinkRequest(clazz); + else + return null; + } + + switch(resoource){ + case "generic-query": + return new GenericQueryRequest(); + case "named-query": + return new NamedQueryRequest(); + case "nodes-query": + return new NodesQueryRequest(); + case "custom-query": + case "formatted-query": + return new CustomQueryRequest(); + case "linterface": + return new LInterfaceRequest(LInterfaceRequest.TYPE.L2_BRIDGE_SBG); + case "l2-bridge-sbg": + return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_SBG); + case "l2-bridge-bgf": + return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_BGF); + case "echo": + case "test": + return new EchoRequest(); + + default: + { + AAIRequest request = getRequestFromResource(resoource); + if(request == null) { + return null; + } + return request; + } + } + } + + + /** + * Map containing resource tag to its bit position in bitset mapping + */ + private static Map tagValues = new LinkedHashMap(); + /** + * Map containing bitset value of the path to its path mapping + */ + private static Map bitsetPaths = new LinkedHashMap(); + + + public static Set getResourceNames() { + return tagValues.keySet(); + } + + + public static void setProperties(Properties props, AAIService aaiService) { + AAIRequest.configProperties = props; + AAIRequest.aaiService = aaiService; + + try + { + URL url = null; + Bundle bundle = FrameworkUtil.getBundle(AAIServiceActivator.class); + if(bundle != null) { + BundleContext ctx = bundle.getBundleContext(); + if(ctx == null) + return; + + url = ctx.getBundle().getResource(AAIService.PATH_PROPERTIES); + } else { + url = aaiService.getClass().getResource("/aai-path.properties"); + } + + InputStream in = url.openStream(); + Reader reader = new InputStreamReader(in, "UTF-8"); + + Properties properties = new Properties(); + properties.load(reader); + LOG.info("loaded " + properties.size()); + + Set keys = properties.stringPropertyNames(); + + int index = 0; + Set resourceNames = new TreeSet(); + + for(String key : keys) { + String[] tags = key.split("\\|"); + for(String tag : tags) { + if(!resourceNames.contains(tag)) { + resourceNames.add(tag); + tagValues.put(tag, Integer.toString(++index)); + } + } + BitSet bs = new BitSet(256); + for(String tag : tags) { + String value = tagValues.get(tag); + Integer bitIndex = Integer.parseInt(value) ; + bs.set(bitIndex); + } + String path = properties.getProperty(key); + LOG.info(String.format("bitset %s\t\t%s", bs.toString(), path)); + bitsetPaths.put(bs, path); + } + LOG.info("loaded " + resourceNames.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + } + } + + public AAIRequest() { + target_uri = configProperties.getProperty(TARGET_URI); + } + + public void addRequestProperty(String key, String value) { + requestProperties.put(key, value); + } + + public final void setRequestObject(AAIDatum value) { + requestDatum = value; + } + + public final AAIDatum getRequestObject() { + return requestDatum; + } + + public final void addMasterRequest(AAIRequest masterRequest) { + requestProperties.put(MASTER_REQUEST, masterRequest); + } + + protected static String encodeQuery(String param) throws UnsupportedEncodingException { + return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); + } + + protected void handleException(AAIRequest lInterfaceRequest, JsonProcessingException exc) { + aaiService.getLogger().warn("Could not deserialize object of type " + lInterfaceRequest.getClass().getSimpleName(), exc) ; + } + + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + + request_url = target_uri + updatePathDataValues(resourceVersion); + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + public String updatePathDataValues(Object resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + String request_url = getRequestPath(); + + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + + for(String resoourceName:uniqueResources) { + AAIRequest locRequest = AAIRequest.createRequest(resoourceName, new HashMap()); + if(locRequest != null) { + Class clazz = locRequest.getClass(); + Method function = null; + try { + function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); + request_url = (String) function.invoke(null, request_url, requestProperties); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + + return request_url; + } + + + protected String getRequestPath() throws MalformedURLException { + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + BitSet bitset = new BitSet(); + for(String key : uniqueResources) { + if(tagValues.containsKey(key)) { + Object tmpValue = tagValues.get(key); + if(tmpValue != null) { + String value = tmpValue.toString(); + int bitIndex = Integer.parseInt(value); + bitset.set(bitIndex); + } + } + } + + String path = bitsetPaths.get(bitset); + if(path == null) { + throw new MalformedURLException("PATH not found for key string containing valies :" +requestProperties.toString()); + } + return path; + } + + public abstract URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException; + + public abstract String toJSONString(); + + public abstract String[] getArgsList(); + + public abstract Class getModelClass() ; + + public String getPrimaryResourceName(String resource) { + return resource; + } + + public String formatKey(String argument) { + return argument; + } + + public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { + if(jsonData == null) { + return null; + } + + AAIDatum response = null; + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(jsonData, getModelClass()); + return response; + } + + protected static Set extractUniqueResourceSetFromKeys(Set keySet) { + Set uniqueResources = new TreeSet(); + List keys = new ArrayList(keySet); + for(String resource : keys) { + if(resource.contains(".")) { + String [] split = resource.split("\\."); + uniqueResources.add(split[0].replaceAll("_", "-")); + } + } + return uniqueResources; + } + + public void processRequestPathValues(Map nameValues) { + Set uniqueResources = extractUniqueResourceSetFromKeys(nameValues.keySet()); + + Set tokens = new TreeSet(); + tokens.add(DEPTH); + tokens.addAll(Arrays.asList(this.getArgsList())); + + for(String resoourceName:uniqueResources) { + AAIRequest locRequest = AAIRequest.createRequest(resoourceName, nameValues); + if(locRequest != null) + tokens.addAll(Arrays.asList(locRequest.getArgsList())); + } + + String[] arguments = tokens.toArray(new String[0]); + for(String name : arguments) { + String tmpName = name.replaceAll("-", "_"); + String value = nameValues.get(tmpName); + if(value != null && !value.isEmpty()) { + value = value.trim().replace("'", "").replace("$", "").replace("'", ""); + this.addRequestProperty(name, value); + } + } + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + return request_url; + } + + public boolean isDeleteDataRequired() { + return false; + } + + ObjectMapper getObjectMapper() { + return AAIService.getObjectMapper(); + } + + public static Class getClassFromResource(String resoourceName) throws ClassNotFoundException { + String className = GenericVnf.class.getName(); + String[] split = resoourceName.split("-"); + for(int i = 0; i < split.length; i++) { + split[i] = StringUtils.capitalize(split[i]); + } + + String caps = StringUtils.join(split); + className = className.replace("GenericVnf", caps); + Class clazz = null; + try { + clazz = (Class)Class.forName(className); + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + + return clazz; + } + + protected static AAIRequest getRequestFromResource(String resoourceName) { + + Class clazz = null; + try { + clazz = getClassFromResource(resoourceName); + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + if(clazz == null) { + return null; + } + GenericRequest request = new GenericRequest(clazz); + return request; + } + + public static Map splitQuery(String query) throws UnsupportedEncodingException { + Map query_pairs = new LinkedHashMap(); + + if(query != null && !query.isEmpty()) { + String[] pairs = query.split("&"); + for (String pair : pairs) { + int idx = pair.indexOf("="); + query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); + } + } + return query_pairs; + } + + public static Map splitPath(String path) throws UnsupportedEncodingException { + Map query_pairs = new LinkedHashMap(); + + if(path != null && !path.isEmpty()) { + String[] pairs = path.split("/"); + for (String pair : pairs) { + int idx = pair.indexOf("="); + query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); + } + } + return query_pairs; + } + + protected boolean expectsDataFromPUTRequest() { + return false; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java new file mode 100644 index 000000000..b5e452428 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -0,0 +1,3332 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; +import java.util.TimeZone; +import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; +import javax.ws.rs.HttpMethod; +import javax.ws.rs.core.UriBuilder; +import javax.xml.bind.annotation.XmlElement; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.onap.ccsdk.sli.core.sli.ConfigurationException; +import org.onap.ccsdk.sli.core.sli.MetricLogger; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.openecomp.aai.inventory.v11.AvailabilityZone; +import org.openecomp.aai.inventory.v11.Complex; +import org.openecomp.aai.inventory.v11.CtagPool; +import org.openecomp.aai.inventory.v11.DvsSwitch; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.L3Network; +import org.openecomp.aai.inventory.v11.OamNetwork; +import org.openecomp.aai.inventory.v11.PInterface; +import org.openecomp.aai.inventory.v11.PhysicalLink; +import org.openecomp.aai.inventory.v11.Pserver; +import org.openecomp.aai.inventory.v11.ResultData; +import org.openecomp.aai.inventory.v11.SearchResults; +import org.openecomp.aai.inventory.v11.Service; +import org.openecomp.aai.inventory.v11.ServiceInstance; +import org.openecomp.aai.inventory.v11.SitePairSet; +import org.openecomp.aai.inventory.v11.Tenant; +import org.openecomp.aai.inventory.v11.Vce; +import org.openecomp.aai.inventory.v11.VnfImage; +import org.openecomp.aai.inventory.v11.VnfImages; +import org.openecomp.aai.inventory.v11.Vpe; +import org.openecomp.aai.inventory.v11.VplsPe; +import org.openecomp.aai.inventory.v11.VpnBinding; +import org.openecomp.aai.inventory.v11.Vserver; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; +import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; +import org.onap.ccsdk.sli.adaptors.aai.data.ResourceVersion; +import org.onap.ccsdk.sli.adaptors.aai.data.ServiceException; +import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; +import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; +import com.fasterxml.jackson.databind.type.TypeFactory; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; +import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.sun.jersey.client.urlconnection.HTTPSProperties; + + +public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicResource { + + public static final String AAICLIENT_PROPERTIES = "/aaiclient.properties"; + public static final String PATH_PROPERTIES = "/aai-path.properties"; + + private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); + + private final String truststore_path; + private final String truststore_password; + private final String keystore_path; + private final String keystore_password; + private final Boolean ignore_certificate_host_error; + + private final String target_uri; + private final String query_path; // = "sdn-zone-query"; + + private final String network_vserver_path; + + private final String svc_instance_path; + private final String svc_inst_qry_path; + + private final String vnf_image_query_path; + + private final String param_service_type; //= "service-type"; + + private final String ubb_notify_path; + private final String selflink_avpn; + private final String selflink_fqdn; + + private final String p_interface_path; + + private final String service_path; + private final String site_pair_set_path; + + private final int connection_timeout; + private final int read_timeout; + + // 1602 + private final String query_nodes_path; + private final String update_path; + + private final String application_id; + + // authentication credentials + private String user_name; + private String user_password; + + // runtime + private final boolean runtimeOSGI; + + private SSLContext CTX; + + private final MetricLogger ml = new MetricLogger(); + + private final AAIRequestExecutor executor; + + public AAIService(URL propURL) { + LOG.info("Entered AAIService.ctor"); + + String runtime = System.getProperty("aaiclient.runtime"); + if(runtime != null && runtime.equals("OSGI")) { + runtimeOSGI = true; + } else { + runtimeOSGI = false; + } + + Properties props = null; + try { + props = initialize(propURL); + AAIRequest.setProperties(props, this); + + } catch(Exception exc){ + LOG.error("AicAAIResource.static", exc); + } + + executor = new AAIRequestExecutor(); + + user_name = props.getProperty(CLIENT_NAME); + user_password = props.getProperty(CLIENT_PWWD); + + if(user_name == null || user_name.isEmpty()){ + LOG.debug("Basic user name is not set"); + } + if(user_password == null || user_password.isEmpty()) { + LOG.debug("Basic password is not set"); + } + + truststore_path = props.getProperty(TRUSTSTORE_PATH); + truststore_password = props.getProperty(TRUSTSTORE_PSSWD); + keystore_path = props.getProperty(KEYSTORE_PATH); + keystore_password = props.getProperty(KEYSTORE_PSSWD); + + target_uri = props.getProperty(TARGET_URI); + query_path = props.getProperty(QUERY_PATH); + update_path = props.getProperty(UPDATE_PATH); + + String applicationId =props.getProperty(APPLICATION_ID); + if(applicationId == null || applicationId.isEmpty()) { + applicationId = "SDNC"; + } + application_id = applicationId; + + // connection timeout + int tmpConnectionTimeout = 30000; + int tmpReadTimeout = 30000; + + try { + String tmpValue = null; + tmpValue = props.getProperty(CONNECTION_TIMEOUT, "30000"); + tmpConnectionTimeout = Integer.parseInt(tmpValue); + tmpValue = props.getProperty(READ_TIMEOUT, "30000"); + tmpReadTimeout = Integer.parseInt(tmpValue); + } catch(Exception exc) { + LOG.error("Failed setting connection timeout", exc); + tmpConnectionTimeout = 30000; + tmpReadTimeout = 30000; + } + connection_timeout = tmpConnectionTimeout; + read_timeout = tmpReadTimeout; + + network_vserver_path =props.getProperty(NETWORK_VSERVER_PATH); + + svc_instance_path = props.getProperty(SVC_INSTANCE_PATH); // "/aai/v1/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances"); +// "/aai/v1/business/customers/customer/ma9181-203-customerid/service-subscriptions/service-subscription/ma9181%20Hosted%20Voice/service-instances"; + +// svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH, "/aai/v1/search/generic-query?key=service-instance.service-instance-id:ma9181-204-instance&start-node-type=service-instance&include=service-instance"); + svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH); // "/aai/v1/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance"); + + + param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); + + // P-Interfaces + p_interface_path = props.getProperty(P_INTERFACE_PATH); + + vnf_image_query_path = props.getProperty(VNF_IMAGE_QUERY_PATH); + + ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); + selflink_avpn = props.getProperty(SELFLINK_AVPN); + selflink_fqdn = props.getProperty(SELFLINK_FQDN); + + service_path = props.getProperty(SERVICE_PATH); + + site_pair_set_path = props.getProperty(SITE_PAIR_SET_PATH); + + query_nodes_path = props.getProperty(QUERY_NODES_PATH); + + String iche = props.getProperty(CERTIFICATE_HOST_ERROR); + boolean host_error = false; + if(iche != null && !iche.isEmpty()) { + host_error = Boolean.valueOf(iche); + } + + ignore_certificate_host_error = host_error; + + HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ + public boolean verify(String string,SSLSession ssls) { + return ignore_certificate_host_error; + } + }); + + if(truststore_path != null && truststore_password != null && (new File(truststore_path)).exists()) { + System.setProperty("javax.net.ssl.trustStore", truststore_path); + System.setProperty("javax.net.ssl.trustStorePassword", truststore_password); + } + + if(keystore_path != null && keystore_password != null && (new File(keystore_path)).exists()) + { + DefaultClientConfig config = new DefaultClientConfig(); + //both jersey and HttpURLConnection can use this + SSLContext ctx = null; + try { + ctx = SSLContext.getInstance("TLS"); + + KeyManagerFactory kmf = null; + try { + String def = "SunX509"; + String storeType = "PKCS12"; + def = KeyStore.getDefaultType(); + kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + FileInputStream fin = new FileInputStream(keystore_path); +// KeyStore ks = KeyStore.getInstance("PKCS12"); + + String extension = keystore_path.substring(keystore_path.lastIndexOf(".") + 1); + + if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { + storeType = "JKS"; + } + KeyStore ks = KeyStore.getInstance(storeType); + + char[] pwd = keystore_password.toCharArray(); + ks.load(fin, pwd); + kmf.init(ks, pwd); + } catch (Exception ex) { + LOG.error("AAIResource", ex); + } + + ctx.init(kmf.getKeyManagers(), null, null); + config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { + @Override + public boolean verify( String s, SSLSession sslSession ) { + return ignore_certificate_host_error; + } + }, ctx)); + + CTX = ctx; + LOG.debug("SSLContext created"); + + } catch (KeyManagementException | NoSuchAlgorithmException exc) { + LOG.error("AAIResource", exc); + } + } + + LOG.info("AAIResource.ctor initialized."); + + try { + Field methodsField = HttpURLConnection.class.getDeclaredField("methods"); + methodsField.setAccessible(true); + // get the methods field modifiers + Field modifiersField = Field.class.getDeclaredField("modifiers"); + // bypass the "private" modifier + modifiersField.setAccessible(true); + + // remove the "final" modifier + modifiersField.setInt(methodsField, methodsField.getModifiers() & ~Modifier.FINAL); + + /* valid HTTP methods */ + String[] methods = { + "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" + }; + // set the new methods - including patch + methodsField.set(null, methods); + + } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { + e.printStackTrace(); + } + + } + + public void cleanUp() { + + } + + /** + * + * @param http_req_url + * @param method + * @return + * @throws Exception + */ + protected HttpURLConnection getConfiguredConnection(URL http_req_url, String method) throws Exception { + HttpURLConnection con = (HttpURLConnection) http_req_url.openConnection(); + + // Set up the connection properties + con.setRequestProperty( "Connection", "close" ); + con.setDoInput(true); + con.setDoOutput(true); + con.setUseCaches(false); + con.setConnectTimeout( connection_timeout ); + con.setReadTimeout( read_timeout ); + con.setRequestMethod( method ); + con.setRequestProperty( "Accept", "application/json" ); + con.setRequestProperty( "Content-Type", "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json" ); + con.setRequestProperty("X-FromAppId", application_id); + con.setRequestProperty("X-TransactionId",TransactionIdTracker.getNextTransactionId()); + String mlId = ml.getRequestID(); + if(mlId != null && !mlId.isEmpty()) { + LOG.debug(String.format("MetricLogger requestId = %s", mlId)); + con.setRequestProperty(MetricLogger.REQUEST_ID, mlId); + } else { + LOG.debug("MetricLogger requestId is null"); + } + + if(user_name != null && !user_name.isEmpty() && user_password != null && !user_password.isEmpty()) { + String basicAuth = "Basic " + new String(Base64.encodeBase64((user_name + ":" + user_password).getBytes())); + con.setRequestProperty ("Authorization", basicAuth); + } + + if(con instanceof HttpsURLConnection && CTX != null) { + SSLSocketFactory sockFact = CTX.getSocketFactory(); + HttpsURLConnection.class.cast(con).setSSLSocketFactory( sockFact ); + } + return con; + } + + + @Override + public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException { + GenericVnf response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); + request.addRequestProperty("generic-vnf.vnf-id", vnf_id); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, GenericVnf.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + + return response; + + } + + @Override + public boolean postGenericVnfData(String vnf_id, GenericVnf data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); + request.addRequestProperty("generic-vnf.vnf-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); + request.addRequestProperty("generic-vnf.vnf-id", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteGenericVnfData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + /* (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) + */ + @Override + public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException { + Vce response = null; + try { + AAIRequest request = AAIRequest.getRequestFromResource("vce"); + request.addRequestProperty("vce.vnf-id", vnf_id); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Vce.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + /* (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) + */ + @Override + public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vce"); + request.addRequestProperty("vce.vnf-id", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteNetworkVceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + /* (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#postNetworkVceData(java.lang.String, org.onap.ccsdk.sli.adaptors.resource.aic.aai.VCERequest) + */ + @Override + public boolean postNetworkVceData(String vnf_id, Vce data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vce"); + request.addRequestProperty("vce.vnf-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + + @Override + public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException { + SearchResults response = null; + InputStream inputStream = null; + + try { + String path = svc_inst_qry_path; + path = path.replace("{svc-instance-id}", encodeQuery(svc_instance_id)); + + String request_url = target_uri+path; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + LOGwriteDateTrace("svc_instance_id", svc_instance_id); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { +// StringBuilder stringBuilder = new StringBuilder("\n"); +// String line = null; +// while( ( line = reader.readLine() ) != null ) { +// stringBuilder.append("\n").append( line ); +// } +// LOG.info(stringBuilder.toString()); + response = mapper.readValue(reader, SearchResults.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestServiceInstanceURL", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException { + ServiceInstance response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); + request.addRequestProperty("customer.global-customer-id", customer_id); + request.addRequestProperty("ervice-subscription.service-type", service_type); + request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, ServiceInstance.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestServiceInterfaceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); + request.addRequestProperty("customer.customer-id", customer_id); + request.addRequestProperty("service-subscription.service-type", service_type); + request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + + private static Properties initialize(URL url ) throws ConfigurationException { + + if(url == null) { + throw new NullPointerException(); + } + + InputStream is = null; + Properties props = new Properties(); + + try { + if(LOG.isDebugEnabled()) + LOG.info("Property file is: " + url.toString()); + + is = url.openStream(); + + props.load(is); + if(LOG.isDebugEnabled()) { + LOG.info("Properties loaded: " + props.size()); + Enumeration en = props.keys(); + + while(en.hasMoreElements()) { + String key = (String)en.nextElement(); + String property = props.getProperty(key); + LOG.debug(key + " : " + property); + } + } + } catch (Exception e) { + throw new ConfigurationException("Could not load properties file.", e); + } + return props; + } + + static class TransactionIdTracker { +// protected static AtomicLong tracker = new AtomicLong(); + + public static String getNextTransactionId() { +// long id = tracker.getAndIncrement(); +// String transactionId = String.format("N%016X", id); + String transactionId = UUID.randomUUID().toString(); + return transactionId; + } + + } + + protected void LOGwriteFirstTrace(String method, String url) { + String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); + LOG.info("A&AI transaction :"); + LOG.info("Request Time : " + time + ", Method : " + method); + LOG.info("Request URL : "+ url); + } + + protected void LOGwriteDateTrace(String name, String data) { + LOG.info("Input - " + name + " : " + data); + } + + protected void LOGwriteEndingTrace(int response_code, String comment, String data) { + LOG.info("Response code : " + response_code +", " + comment); + LOG.info(String.format("Response data : %s", data)); + } + + protected String encodeQuery(String param) throws UnsupportedEncodingException { + return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); + } + + private String encodeCustomerURL(final String selection) + { + String encrypted_url = selection; + String apnpattern = + "/aai/v11/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)/service-instances/service-instance/(.+)/"; + Pattern pattern = Pattern.compile(apnpattern); + + try { + URL url = new URL(selection); + String path = url.getPath(); + + LOG.info("Trying to match apn to <" + path + ">"); + + Matcher matcher = pattern.matcher(path); + + while(matcher.find()) { + String customer = matcher.group(1); + String subscription = matcher.group(2); + String service = matcher.group(3); + + encrypted_url = selection.replace(customer, encodeQuery(customer)); + encrypted_url = encrypted_url.replace(subscription, encodeQuery(subscription)); + encrypted_url = encrypted_url.replace(service, encodeQuery(service)); + } + } catch (Exception e) { + LOG.warn("", e); + } + + return encrypted_url; + } + + @Override + public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException { + Vpe response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpe"); + request.addRequestProperty("vpe.vnf-id", vnf_id); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Vpe.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postNetworkVpeData(String vnf_id, Vpe data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpe"); + request.addRequestProperty("vpe.vnf-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpe"); + request.addRequestProperty("vpe.vnf-id", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public VplsPe requestNetworkVplsPeData(String equipment_name)throws AAIServiceException { + VplsPe response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); + request.addRequestProperty("vpls-pe.equipment-name", equipment_name); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, VplsPe.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postNetworkVplsPeData(String equipment_name, VplsPe data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); + request.addRequestProperty("vpls-pe.equipment-name", equipment_name); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestGenericVnfData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); + request.addRequestProperty("vpls-pe.equipment-name", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteNetworkVplsPeData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public Complex requestNetworkComplexData(String pLocId) throws AAIServiceException { + Complex response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("complex"); + request.addRequestProperty("complex.physical-location-id", pLocId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Complex.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNetworkComplexData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public boolean postNetworkComplexData(String vnf_id, Complex data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("complex"); + request.addRequestProperty("complex.physical-location-id", vnf_id); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postNetworkComplexData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteNetworkComplexData(String pLocId, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("complex"); + request.addRequestProperty("complex.physical-location-id", pLocId); + + response = executor.delete(request, resourceVersion); + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteNetworkComplexData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + /* + * (non-Javadoc) + * @see org.openecomp.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String) + */ + @Override + public Vserver requestVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId) throws AAIServiceException { + Vserver response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vserver"); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + request.addRequestProperty("tenant.tenant-id", tenantId); + request.addRequestProperty("vserver.vserver-id", vserverId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Vserver.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + + @Override + public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("vserver"); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + request.addRequestProperty("tenant.tenant-id", tenantId); + request.addRequestProperty("vserver.vserver-id", vserverId); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postNetworkComplexData", exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException { + boolean response = false; + InputStream inputStream = null; + + try { + String local_network_complexes_path = network_vserver_path.replace("{tenant-id}", encodeQuery(tenant_id)); + local_network_complexes_path = local_network_complexes_path.replace("{vserver-id}", encodeQuery(vserver_id)); + local_network_complexes_path = local_network_complexes_path.replace("{cloud-owner}", encodeQuery(cloudOwner)); + local_network_complexes_path = local_network_complexes_path.replace("{cloud-region-id}", encodeQuery(cloudRegionId)); + + String request_url = target_uri+local_network_complexes_path; + if(resourceVersion!=null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); + + LOGwriteFirstTrace(HttpMethod.DELETE, http_req_url.toString()); + LOGwriteDateTrace("tenant_id", tenant_id); + LOGwriteDateTrace("vserver_id", vserver_id); + LOGwriteDateTrace("cloud-owner", cloudOwner); + LOGwriteDateTrace("cloud-region-id", cloudRegionId); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteVServerData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + + /* + * (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.aai.AAIClient#requestCtagPoolData(String) + */ + @Override + public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException { + CtagPool response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("ctag-pool"); + + request.addRequestProperty("ctag-pool.target-pe", target_pe); + request.addRequestProperty("ctag-pool.availability-zone-name", availability_zone_name); + request.addRequestProperty("complex.physical-location-id", physical_location_id); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, CtagPool.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNetworkVceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + //==================== DvsSwitch ====================== + @Override + public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException { + DvsSwitch response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); + request.addRequestProperty("dvs-switch.switch-name", vnf_id); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, DvsSwitch.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestDvsSwitchData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public boolean postDvsSwitchData(String switch_name, DvsSwitch data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); + request.addRequestProperty("dvs-switch.switch-name", switch_name); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); + request.addRequestProperty("dvs-switch.switch-name", vnf_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteDvsSwitchData", exc); + throw new AAIServiceException(exc); + } + return response; + } + //================== End of DvsSwitch ================= + //==================== PhysicalLink ====================== + @Override + public PhysicalLink requestPhysicalLinkData(String linkName) throws AAIServiceException { + PhysicalLink response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, PhysicalLink.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestPhysicalLinkData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postPhysicalLinkData(String linkName, PhysicalLink data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deletePhysicalLinkData(String linkName, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deletePhysicalLinkData", exc); + throw new AAIServiceException(exc); + } + return response; + } + //================== End of PhysicalLink ================= + //==================== PInterface ====================== + @Override + public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException { + PInterface response = null; + + try { + AAIRequest request = new PInterfaceRequest(); + request.addRequestProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME, interfaceName); + request.addRequestProperty(PInterfaceRequest.PSERVER_HOSTNAME, hostname); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, PInterface.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException { + InputStream inputStream = null; + + try { + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(request); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+p_interface_path; + String encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf) ; + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("hostname", hostname); + LOGwriteDateTrace("interface-name", interfaceName); + LOGwriteDateTrace("PInterface", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postPInterfaceData", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); + request.addRequestProperty("p-interface.interface-name", interfaceName); + request.addRequestProperty("pserver.hostname", hostname); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deletePInterfaceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + //================== End of PInterface ================= + //==================== SitePairSet ====================== + @Override + public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException { + SitePairSet response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); + request.addRequestProperty("site-pair-set.site-pair-set-id", sitePairSetId); + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, SitePairSet.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postSitePairSetData(String linkName, SitePairSet request) throws AAIServiceException { + InputStream inputStream = null; + + try { + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(request); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+site_pair_set_path; + String encoded_vnf = encodeQuery(linkName); + request_url = request_url.replace("{site-pair-set-id}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("link-name", linkName); + LOGwriteDateTrace("SitePairSet", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postSitePairSetData", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public boolean deleteSitePairSetData(String linkName, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); + request.addRequestProperty("site-pair-set.site-pair-set-id", linkName); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteSitePairSetData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + //================== End of SitePairSet ================= + //==================== Service ====================== + @Override + public Service requestServiceData(String serviceId) throws AAIServiceException { + Service response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("service"); + request.addRequestProperty("service.service-id", serviceId); + + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Service.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestServiceData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postServiceData(String linkName, Service request) throws AAIServiceException { + InputStream inputStream = null; + + try { + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(request); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+service_path; + String encoded_vnf = encodeQuery(linkName); + request_url = request_url.replace("{service-id}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("service-id", linkName); + LOGwriteDateTrace("Service", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postServiceData", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public boolean deleteServiceData(String service_id, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("service"); + request.addRequestProperty("service.service-id", service_id); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteServiceData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + //================== End of Service ================= + + + + // 1507 - Request + @Override + public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), VServer.class); + } + + @Override + public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), Pserver.class); + } + + @Override + public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), CtagPool.class); + } + + @Override + public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), VplsPe.class); + } + + @Override + public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), Vpe.class); + } + + @Override + public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), DvsSwitch.class); + } + + @Override + public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), OamNetwork.class); + } + + @Override + public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), AvailabilityZone.class); + } + + @Override + public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return this.getResource(url.toString(), Complex.class); + } + + /* DELETE */ + public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + //OAM-Network: + public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + //Availability-Zone: + public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + //Complex: + public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); + } + + private boolean deleteAAIEntity(URL url, String caller) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + boolean response = false; + InputStream inputStream = null; + + try { + URL http_req_url = url; + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); + +// SSLSocketFactory sockFact = CTX.getSocketFactory(); +// con.setSSLSocketFactory( sockFact ); + + LOGwriteFirstTrace("DELETE", http_req_url.toString()); + + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(caller, exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + /** + * Generic method to GET json data from an A&AI callback URL. + * Then convert that json to an Object. + * If successful the Object is attempted to be cast to the type parameter. + * + * @param key + * callback url for A&AI + * @param type + * the class of object that A&AI will return + * @return the object created from json or null if the response code is not 200 + * + * @throws AAIServiceException + * if empty or null key and or type or there's an error with processing + */ + public T dataChangeRequestAaiData(String key, Class type) throws AAIServiceException { + if (StringUtils.isEmpty(key) || type == null) { + throw new AAIServiceException("Key is empty or null and or type is null"); + } + + T response = null; + + SvcLogicContext ctx = new SvcLogicContext(); + if(!key.contains(" = ") && isValidURL(key)) { + key = String.format("selflink = '%s'", key); + } else + if(!key.contains(" = ") && isValidURI(key)) { + key = String.format("resource-path = '%s'", key); + } + + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + + SelfLinkRequest request = new SelfLinkRequest(type); + request.processRequestPathValues(nameValues); + Object obj = this.getExecutor().query(request, type); + response = type.cast(obj); + + return response != null ? type.cast(response) : response; + } + + @Override + public Pserver requestPServerData(String hostname) throws AAIServiceException { + Pserver response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("pserver"); + request.addRequestProperty("pserver.hostname", hostname); + + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Pserver.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestPServerData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean postPServerData(String hostname, Pserver data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("pserver"); + request.addRequestProperty("pserver.hostname", hostname); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("pserver"); + request.addRequestProperty("pserver.hostname", hostname); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deletePServerData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public L3Network requestL3NetworkData(String networkId) throws AAIServiceException { + L3Network response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-id", networkId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, L3Network.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestL3NetworkData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public L3Network requestL3NetworkQueryByName(String networkName) throws AAIServiceException { + L3Network response = null; + InputStream inputStream = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-name", networkName); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, L3Network.class); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestL3NetworkQueryByName", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public boolean postL3NetworkData(String networkId, L3Network data) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-id", networkId); + request.setRequestObject(data); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); + throw new AAIServiceException(exc); + } + } + + @Override + public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); + request.addRequestProperty("l3-network.network-id", networkId); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteL3NetworkData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException { + VpnBinding response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); + request.addRequestProperty("vpn-binding.vpn-id", vpnId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, VpnBinding.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestVpnBindingData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException { + boolean response = false; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); + request.addRequestProperty("vpn-binding.vpn-id", vpnId); + response = executor.delete(request, resourceVersion); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteVpnBindingData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + + @Override + public VnfImage requestVnfImageData(String vnf_image_uuid) throws AAIServiceException { + VnfImage response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("vnf-image"); + request.addRequestProperty("vnf-image.vnf-image-uuid", vnf_image_uuid); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, VnfImage.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestVnfImageData", exc); + throw new AAIServiceException(exc); + } + return response; + } + + @Override + public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException { + return requestVnfImageDataByVendorModelVersion(vendor, model, null); + } + + @Override + public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException + { + List responseList = new ArrayList(); + VnfImage response = null; + InputStream inputStream = null; + + try { + String request_url = target_uri+vnf_image_query_path + (version==null? "": "&application-version={application_version}"); + request_url = request_url.replace("{application_vendor}", encodeQuery(vendor)) ; + request_url = request_url.replace("{application_model}", encodeQuery(model)) ; + if(version != null) { + request_url = request_url.replace("{application_version}", encodeQuery(version)) ; + } + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + LOGwriteDateTrace("application_vendor", vendor); + LOGwriteDateTrace("application_model", model); + if(version != null) { + LOGwriteDateTrace("application_version", version); + } + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { +// StringBuilder stringBuilder = new StringBuilder("\n"); +// String line = null; +// while( ( line = reader.readLine() ) != null ) { +// stringBuilder.append("\n").append( line ); +// } +// LOG.info(stringBuilder.toString()); + response = mapper.readValue(reader, VnfImage.class); + String original_buffer = mapper.writeValueAsString(response); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", original_buffer); + if(response.getApplicationVendor() == null /*&& response.getAdditionalProperties() != null && !response.getAdditionalProperties().isEmpty()*/){ + LOG.warn("A List of multiple VNF-IMAGE entries has been returned"); + VnfImages listOfObjects = mapper.readValue(original_buffer, VnfImages.class); + if(!listOfObjects.getVnfImage().isEmpty()) { + response = listOfObjects.getVnfImage().get(0); + } + } + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestVnfImageData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + + public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException { + InputStream inputStream = null; + + try { + + String selfLink = selflink_fqdn; + if(SELFLINK_AVPN != null && SELFLINK_AVPN.equals(pathCode)) { + selfLink = selflink_avpn; + } + selfLink = selfLink.replace("{service-instance-id}", encodeQuery(serviceInstanceId)); + event.setSelflink(selfLink); + + ObjectMapper mapper = getObjectMapper(); + String json_text = mapper.writeValueAsString(event); + + SSLSocketFactory sockFact = CTX.getSocketFactory(); + + String request_url = target_uri+ubb_notify_path; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("PUT", request_url); + LOGwriteDateTrace("NotifyEvent", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("sendNotify", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public SearchResults requestNodeQuery(String node_type, String entityIdentifier, String entityName) throws AAIServiceException { + SearchResults response = null; + InputStream inputStream = null; + + try { + String request_url = target_uri+query_nodes_path; + request_url = request_url.replace("{node-type}", encodeQuery(node_type)) ; + request_url = request_url.replace("{entity-identifier}", entityIdentifier) ; + request_url = request_url.replace("{entity-name}", encodeQuery(entityName)) ; + URL http_req_url = new URL(request_url); + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + LOGwriteDateTrace("node_type", node_type); + LOGwriteDateTrace("vnf_name", entityName); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + response = mapper.readValue(reader, SearchResults.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNodeQuery", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + + } + + + @Override + public String requestDataByURL(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + String response = null; + InputStream inputStream = null; + + try { + URL http_req_url = url; + + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + + LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + StringBuilder stringBuilder = new StringBuilder("\n"); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOG.info(stringBuilder.toString()); +// response = mapper.readValue(reader, String.class); + response = stringBuilder.toString(); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = null; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestNetworkVceData", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + + @Override + public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException { + + if(vnf_name == null) { + throw new NullPointerException(); + } + + GenericVnf entity = null; + SearchResults resp = this.requestNodeQuery("generic-vnf", "vnf-name", vnf_name); + + List resultDataList = resp.getResultData(); + + try { + for (ResultData datum : resultDataList) { + String data_type = datum.getResourceType(); + URL url = new URL(datum.getResourceLink()); + entity = this.getResource(url.toString(), GenericVnf.class); + } + } + catch (Exception e) + { + LOG.error("Caught exception", e); + } + return entity; + } + + @Override + public Vserver requestVServerDataByURL(URL url) throws AAIServiceException { + + if(url == null) { + throw new NullPointerException(); + } + + Vserver entity = null; + + try { + entity = this.getResource(url.toString(), Vserver.class); + } catch (AAIServiceException exc) { + throw exc; + } catch (Exception e) { + throw new AAIServiceException(e); + } + return entity; + } + + @Override + public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException { + + if(vserver_name == null) { + throw new NullPointerException(); + } + + URL entity = null; + SearchResults resp = this.requestNodeQuery("vserver", "vserver-name", vserver_name); + + List resultDataList = resp.getResultData(); + + try { + for (ResultData datum : resultDataList) { + String data_type = datum.getResourceType(); + String resourceLink = datum.getResourceLink(); + if(!resourceLink.isEmpty() && !resourceLink.toLowerCase().startsWith("http")) { + resourceLink = (new EchoRequest()).target_uri + resourceLink; + } + entity = new URL(resourceLink); + } + } catch (Exception e) { + throw new AAIServiceException(e); + } + return entity; + } + + class AAIRequestExecutor implements AAIExecutorInterface { + + @Override + public String get(AAIRequest request) throws AAIServiceException { + String response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + + String requestId = UUID.randomUUID().toString(); + StringBuilder errorStringBuilder = new StringBuilder(); + + try { + + if(request.getRequestObject() != null) { + requestUrl = request.getRequestUrl(HttpMethod.POST, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.POST); + String json_text = request.toJSONString(); + LOGwriteDateTrace("data", json_text); + logMetricRequest(requestId, "POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + } else { + requestUrl = request.getRequestUrl(HttpMethod.GET, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.GET); + logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); + } + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(requestId, responseCode, responseMessage); + + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + response = stringBuilder.toString(); + try { + Object object = mapper.readValue(response, Object.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); + } catch(Exception exc) { + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); + } + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + ErrorResponse errorresponse = null; + try { + errorresponse = mapper.readValue(reader, ErrorResponse.class); + } catch(Exception exc) { + errorresponse = new ErrorResponse(); + RequestError requestError = new RequestError(); + ServiceException serviceException = new ServiceException(); + serviceException.setText("Entry does not exist."); + requestError.setServiceException(serviceException); + errorresponse.setRequestError(requestError ); + } + throw new AAIServiceException(responseCode, errorresponse); + } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + ServiceException serviceException = new ServiceException(); + serviceException.setMessageId("HTTP_UNAUTHORIZED"); + serviceException.setText(stringBuilder.toString()); + RequestError requestError = new RequestError(); + requestError.setServiceException(serviceException); + ErrorResponse errorresponse = new ErrorResponse(); + errorresponse.setRequestError(requestError); + throw new AAIServiceException(responseCode, errorresponse); + } else { +// StringBuilder errorStringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + errorStringBuilder.append("\n").append( line ); + } + + ErrorResponse errorresponse = mapper.readValue(errorStringBuilder.toString(), ErrorResponse.class); +// ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(errorStringBuilder.toString(), exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { + + String depth = request.requestProperties.getProperty("depth", "1"); + String path = requestUrl.toString(); + if(path.contains("?depth=") || path.contains("&depth=")) { + return requestUrl; + } else { + if(path.contains("?")) { + path = String.format("%s&depth=%s", path, depth); + } else { + path = String.format("%s?depth=%s", path, depth); + } + return new URL(path); + } + } + + @Override + public String post(AAIRequest request) throws AAIServiceException { + InputStream inputStream = null; + String requestId = UUID.randomUUID().toString(); + + try { + String resourceVersion = null; + AAIDatum instance = request.getRequestObject(); + + Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); + if(getResourceVersionMethod != null){ + try { + getResourceVersionMethod.setAccessible(true); + Object object = getResourceVersionMethod.invoke(instance); + if(object != null) + resourceVersion = object.toString(); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); + ObjectMapper mapper = getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest(requestId, "PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(requestId,responseCode, responseMessage); + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return stringBuilder.toString(); + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.post", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { + Boolean response = null; + InputStream inputStream = null; + String requestId = UUID.randomUUID().toString(); + + if(resourceVersion == null) { + throw new AAIServiceException("resource-version is required for DELETE request"); + } + + try { + URL requestUrl = null; + HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); + logMetricRequest(requestId, "DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); + conn.setDoOutput(true); +// if(request.isDeleteDataRequired()) { +// String json_text = request.toJSONString(); +// +// LOGwriteDateTrace("data", json_text); +// OutputStream os = con.getOutputStream(); +// OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); +// osw.write(json_text); +// osw.flush(); +// } + + // Check for errors + String responseMessage = conn.getResponseMessage(); + int responseCode = conn.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = conn.getInputStream(); + } else { + inputStream = conn.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(requestId,responseCode, responseMessage); + + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("delete", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public Object query(AAIRequest request, Class clas) throws AAIServiceException { + Object response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + String requestId = UUID.randomUUID().toString(); + + try { + con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); + logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + logMetricResponse(requestId,responseCode, responseMessage); + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + // Process the response + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + response = mapper.readValue(reader, clas); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("GET", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + con = null; + } + return response; + } + + @Override + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { + InputStream inputStream = null; + String requestId = UUID.randomUUID().toString(); + + try { + AAIDatum instance = request.getRequestObject(); + if(instance instanceof ResourceVersion) { + resourceVersion = ((ResourceVersion)instance).getResourceVersion(); + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); + ObjectMapper mapper = getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest(requestId, "PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); + logMetricResponse(requestId,responseCode, responseMessage); + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append("\n").append( line ); + } + LOG.info(stringBuilder.toString()); + + + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.patch", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + } + + @Override + public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException { + Tenant response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("tenant"); + request.addRequestProperty("tenant.tenant-id", tenant_id); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + + String rv = executor.get(request); + if(rv != null) { + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(rv, Tenant.class); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestTenantData", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + @Override + public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException { + Tenant response = null; + + try { + AAIRequest request = AAIRequest.getRequestFromResource("tenant"); + request.addRequestProperty("tenant.tenant-name", tenant_name); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + Object rv = executor.query(request, Tenant.class); + if(rv == null) + return (Tenant)null; + else + response = (Tenant)rv; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("requestTenantDataByName", exc); + throw new AAIServiceException(exc); + } + + return response; + } + + + @Override + public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant tenannt) throws AAIServiceException { + try { + AAIRequest request = AAIRequest.getRequestFromResource("tenant"); + request.addRequestProperty("tenant.tenant-id", tenant_id); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); + request.setRequestObject(tenannt); + Object response = executor.post(request); + return true; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("postTenantData", exc); + throw new AAIServiceException(exc); + } + } + + + @Override + public String getTenantIdFromVserverUrl(URL url) { + + String path = url.getPath(); + + String[] split = path.split("/tenants/tenant/"); + if(split.length > 1) { + split = split[1].split("/"); + return split[0]; + } else { + return null; + } + } + + @Override + public String getCloudOwnerFromVserverUrl(URL url) { + + String path = url.getPath(); + + String[] split = path.split("/cloud-regions/cloud-region/"); + if(split.length > 1) { + split = split[1].split("/"); + return split[0]; + } else { + return null; + } + } + + @Override + public String getCloudRegionFromVserverUrl(URL url) { + + String path = url.getPath(); + + String[] split = path.split("/cloud-regions/cloud-region/"); + if(split.length > 1) { + split = split[1].split("/"); + return split[1]; + } else { + return null; + } + } + + @Override + public String getVServerIdFromVserverUrl(URL url, String tenantId) { + String pattern = network_vserver_path; + pattern = pattern.replace("{tenant-id}", tenantId); + + int end = pattern.indexOf("{vserver-id}"); + String prefix = pattern.substring(0, end); + + String path = url.getPath(); + + if(path.startsWith(prefix)) { + path = path.substring(prefix.length()); + } + + return path; + } + + protected Logger getLogger(){ + return LOG; + } + + + @Override + public AAIRequestExecutor getExecutor() { + return executor; + } + + /** + * Creates a current time stamp in UTC i.e. 2016-03-08T22:15:13.343Z. + * If there are any parameters the values are appended to the time stamp. + * + * @param parameters + * values to be appended to current time stamp + * @param ctx + * used to set an attribute for a DG + * @throws SvcLogicException + */ + public void setStatusMethod(Map parameters, SvcLogicContext ctx) throws SvcLogicException { + if (ctx == null) { + throw new SvcLogicException("SvcLogicContext is null."); + } + + StringBuilder sb = new StringBuilder(); + sb.append(String.format("%tFT% entry : parameters.entrySet()) { + sb.append(entry.getValue()).append(" "); + } + + if (sb.length() > 0) { + sb.setLength(sb.length() - 2); + } + + ctx.setAttribute("aai-summary-status-message", sb.toString()); + LOG.info("aai-summary-status-message: " + sb.toString()); + } + + /** + * Generic method to GET json data from an A&AI using key structure. + * Then convert that json to an Object. + * If successful the Object is attempted to be cast to the type parameter. + * + * @param key + * key identifying the resource to be retrieved from AAI + * @param type + * the class of object that A&AI will return + * @return the object created from json or null if the response code is not 200 + * + * @throws AAIServiceException + * if empty or null key and or type or there's an error with processing + */ + + public T getResource(String key, Class type) throws AAIServiceException { + if (StringUtils.isEmpty(key) || type == null) { + throw new AAIServiceException("Key is empty or null and or type is null"); + } + + T response = null; + + SvcLogicContext ctx = new SvcLogicContext(); + if(!key.contains(" = ")) { + if(isValidURL(key)) { + key = String.format("selflink = '%s'", key); + } else if(isValidURI(key)) { + key = String.format("resource-path = '%s'", key); + } else { + return response; + } + } + + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + + AAIRequest request = new SelfLinkRequest(type); + if(nameValues.containsKey(PathRequest.RESOURCE_PATH.replaceAll("-", "_"))) { + request = new PathRequest(type); + } + + request.processRequestPathValues(nameValues); + Object obj = this.getExecutor().query(request, type); + response = type.cast(obj); + + return response != null ? type.cast(response) : response; + } + + public boolean isValidURL(String url) { + + URL u = null; + + try { + u = new URL(url); + } catch (MalformedURLException e) { + return false; + } + + try { + u.toURI(); + } catch (URISyntaxException e) { + return false; + } + + return true; + } + + + public boolean isValidURI(String url) { + + URI u = null; + + try { + u = new URI(url); + } catch (URISyntaxException e) { + return false; + } + + return true; + } + + + @Override + protected boolean deleteRelationshipList(URL httpReqUrl, String json_text) throws AAIServiceException { + if(httpReqUrl == null) { + throw new NullPointerException(); + } + + boolean response = false; + InputStream inputStream = null; + + try { + HttpURLConnection con = getConfiguredConnection(httpReqUrl, HttpMethod.DELETE); + +// SSLSocketFactory sockFact = CTX.getSocketFactory(); +// con.setSSLSocketFactory( sockFact ); + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + osw.close(); + + + LOGwriteFirstTrace("DELETE", httpReqUrl.toString()); + LOGwriteDateTrace("data", json_text); + + // Check for errors + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode); + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("deleteRelationshipList", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + public static ObjectMapper getObjectMapper() { + ObjectMapper mapper = new ObjectMapper(); + AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); + AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); + mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + mapper.setSerializationInclusion(Include.NON_NULL); + return mapper; + } + + public void logMetricRequest(String requestId, String targetServiceName, String msg, String path){ + String svcInstanceId = ""; + String svcName = null; + String partnerName = null; + String targetEntity = "A&AI"; + String targetVirtualEntity = null; + + targetServiceName = ""; + + ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); + } + + public void logMetricResponse(String requestId, int responseCode, String responseDescription){ + ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); + } + + public void logKeyError(String keys){ + LOG.error("Atleast one of the keys [" + keys + "] should have been populated. This will cause a NPE."); + } + + + /** + * Retrofit code + */ + @Override + public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) + throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(key.contains("selflink =")) { + break; + } + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + return super.save(resource, force, localOnly, key, params, prefix, ctx); + } + + @Override + public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) + throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(key.contains("selflink =")) { + break; + } + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + + return super.query(resource, localOnly, select, key, prefix, orderBy, ctx); + } + + @Override + public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(key.contains("selflink =")) { + break; + } + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + + return super.delete(resource, key, ctx); + } + + @Override + public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { + String normResource = resource.split(":")[0]; + + switch(normResource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + break; + + default: + if(key.contains("selflink =")) { + break; + } + if(!key.contains(String.format("%s.", normResource))) { + key = rewriteKey(resource, key, ctx); + } + } + + return super.update(resource, key, params, prefix, ctx); + } + + private String rewriteKey(String resource, String key, SvcLogicContext ctx) { + LOG.info("AAI Deprecation - the format of request key is no longer supported. Please rewrite this key : " + key); + + String normResource = resource.split(":")[0]; + Class clazz = null; + try { + clazz = AAIRequest.getClassFromResource(normResource) ; + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return key; + } + if(clazz == null) + return key; + + List fieldAnnotatedNames = new LinkedList(); + + Field[] fields = clazz.getDeclaredFields(); + for(Field field : fields) { + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + if(annotation == null) + continue; + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + fieldAnnotatedNames.add(primaryId); + } + + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + Set keyset = nameValues.keySet(); + for(String keyName : keyset) { + if(keyName.contains(".")) + continue; + else { + String tmpKeyName = keyName.replaceAll("_", "-"); + String valueToSubstitute = String.format("%s =", tmpKeyName); + if(fieldAnnotatedNames.contains(tmpKeyName) && key.contains(valueToSubstitute)) { + key = key.replace(valueToSubstitute, String.format("%s.%s =", normResource, tmpKeyName)); + } + } + } + + + return key; + } + + @Override + public String getPathTemplateForResource(String resoourceName, String keys, SvcLogicContext ctx) throws MalformedURLException { + return AAIServiceUtils.getPathForResource(resoourceName, StringUtils.join(keys, " AND "), ctx); + } + + @Override + public boolean isDeprecatedFormat(String resource, HashMap nameValues) { + return !AAIServiceUtils.isValidFormat(resource, nameValues); + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java new file mode 100644 index 000000000..45c3d3d20 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java @@ -0,0 +1,239 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FilenameFilter; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashSet; +import java.util.Properties; +import java.util.Set; + +import org.onap.ccsdk.sli.core.sli.ConfigurationException; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AAIServiceActivator implements BundleActivator { + + private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; + private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; + private static final String DEFAULT_KEYWORD = "default"; + + private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; + + private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; + private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; + + private Set registrationSet = new HashSet(); + + private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); + + @Override + public void start(BundleContext ctx) throws Exception { + + System.setProperty("aaiclient.runtime", "OSGI"); + + String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); + + // check SDNC CONFIG DIR system property + if(sdnConfigDirectory == null ) { + LOG.error("System property SDNC_CONFIG_DIR is not defined."); + LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); + sdnConfigDirectory = "/opt/sdnc/data/properties/"; + } + + LOG.debug("Configuration directory used : " + sdnConfigDirectory); + + // check existance of properties directory + File configDirectory = new File(sdnConfigDirectory); + if(!configDirectory.exists() || !configDirectory.isDirectory()){ + LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); + return; + } + + Properties properties = new Properties(); + InputStream input = null; + + // find aaiclient config file + File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); + + // read the aai config data + if(files != null && files.length > 0) { + LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); + try { + input = new FileInputStream(files[0]); + properties.load(input); + LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); + } catch (IOException exc) { + LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); + } finally { + if(input != null ) { + try { + input.close(); + } catch(Exception exc) { + // ignore + } + } + int size = properties.keySet().size() ; + if(size == 0) { + LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); + properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); + } + } + } else { + LOG.debug("No configuration entries were found. Adding the default entry"); + properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); + } + + Set entrySet = properties. stringPropertyNames(); + String value = null; + + // initialize AAI Service for each aai client property files + for(String entry : entrySet) { + value = properties.getProperty(entry); + if(value != null && !value.isEmpty()) { + + final String fileName = value; + + File[] propertyFileList = findFiles(configDirectory, fileName); + + for(File propertiesFile : propertyFileList) { + LOG.info(propertiesFile.getName()); + // Advertise AAI resource adaptor + AAIClient impl = null; + switch(entry) { + case DEFAULT_KEYWORD: + impl = new AAIService(propertiesFile.toURI().toURL()); + break; + case "trinity": + impl = new AAITrinityService(propertiesFile.toURI().toURL()); + break; + default: + LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); + continue; + } + String regName = impl.getClass().getName(); + + LOG.debug("Registering AAIService service "+regName); + ServiceRegistration registration = ctx.registerService(regName, impl, null); + registrationSet.add(registration); + + } + } + } + } + +// @Override + @Deprecated + public void start1(BundleContext ctx) throws Exception { + + String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); + String propertiesPath = null; + + if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { + String filename = DEFAULT_SDNC_PROPERTY_FILE; + File file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + filename = BVC_PROPERTY_FILE; + file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); + } + } + } else { + propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; + LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); + } + + File propFile = new File(propertiesPath); + if(!propFile.exists()) { + String filename = DEFAULT_SDNC_PROPERTY_FILE; + File file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + filename = BVC_PROPERTY_FILE; + file = new File(filename); + if(file != null && file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); + throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); + } + } + } + + // Advertise AAI resource adaptor + AAIClient impl = new AAIService(propFile.toURI().toURL()); + String regName = impl.getClass().getName(); + + LOG.debug("Registering AAIService service "+regName); + ServiceRegistration registration = ctx.registerService(regName, impl, null); + registrationSet.add(registration); + } + + @Override + public void stop(BundleContext ctx) throws Exception { + + Set localRegistrationSet = new HashSet(); + localRegistrationSet.addAll(registrationSet); + + for(ServiceRegistration registration : localRegistrationSet) { + if (registration != null) { + try { + AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); + registration.unregister(); + registrationSet.remove(registration); + if(aaiService != null) { + aaiService.cleanUp(); + } + } catch(Exception exc) { + if(LOG.isDebugEnabled()) + LOG.debug(exc.getMessage()); + } + } + } + } + + private File[] findFiles(File configDirectory, final String filter) { + File[] files = configDirectory.listFiles(new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.equalsIgnoreCase(filter); + } + }); + + return files; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java new file mode 100644 index 000000000..8d57db43a --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; + +public class AAIServiceException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -9039257722542999522L; + + protected ErrorResponse errorResponse = null; + protected int returnCode = -1; + + public AAIServiceException() { + + } + + public AAIServiceException(String message) { + super(message); + } + + public AAIServiceException(Throwable cause) { + super(cause); + } + + public AAIServiceException(String message, Throwable cause) { + super(message, cause); + } + + public AAIServiceException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + + public AAIServiceException(int returnCode, ErrorResponse errorresponse) { + this.errorResponse = errorresponse; + this.returnCode = returnCode; + } + + public ErrorResponse getErrorResponse() { + return errorResponse; + } + + public int getReturnCode() { + return returnCode; + } + + public String getMessage() { + if(errorResponse != null) { + return errorResponse.getRequestError().getServiceException().getText(); + } else { + return super.getMessage(); + } + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java new file mode 100644 index 000000000..bd2c724a1 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -0,0 +1,340 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.lang.annotation.Annotation; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import javax.xml.bind.annotation.XmlType; + +import org.apache.commons.lang.StringUtils; +import org.openecomp.aai.inventory.v11.Relationship; +import org.openecomp.aai.inventory.v11.RelationshipData; +import org.openecomp.aai.inventory.v11.RelationshipList; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AAIServiceUtils { + + private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); + + public static String getPrimaryIdFromClass(Class resourceClass){ + // 1. find class + getLogger().debug(resourceClass.getName()); + AAIDatum instance = null; + + try { + instance = resourceClass.newInstance(); + + Annotation[] annotations = resourceClass.getAnnotations(); + for(Annotation annotation : annotations) { + Class anotationType = annotation.annotationType(); + String annotationName = anotationType.getName(); + + // 2. find string property setters and getters for the lists + if("javax.xml.bind.annotation.XmlType".equals(annotationName)){ + XmlType order = (XmlType)annotation; + String[] values = order.propOrder(); + for(String value : values) { + String id = camelCaseToDashedString(value); + return id; + } + } + } + } catch(Exception exc) { + + } + return null; + } + + public static String getSecondaryIdFromClass(Class resourceClass){ + // 1. find class + getLogger().debug(resourceClass.getName()); + AAIDatum instance = null; + + try { + instance = resourceClass.newInstance(); + + Annotation[] annotations = resourceClass.getAnnotations(); + for(Annotation annotation : annotations) { + Class anotationType = annotation.annotationType(); + String annotationName = anotationType.getName(); + + // 2. find string property setters and getters for the lists + if("javax.xml.bind.annotation.XmlType".equals(annotationName)){ + boolean primaryIdFound = false; + XmlType order = (XmlType)annotation; + String[] values = order.propOrder(); + for(String value : values) { + String id = camelCaseToDashedString(value); + if(primaryIdFound) { + return id; + } else { + primaryIdFound = true; + } + } + } + } + } catch(Exception exc) { + + } + return null; + } + + + private static Logger getLogger() { + return LOG; + } + + + private static final String regex = "([A-Z][a-z,0-9]+)"; + private static final String replacement = "-$1"; + + public static String camelCaseToDashedString(String propOrder) { + return propOrder.replaceAll(regex, replacement).toLowerCase(); + } + + public static HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + getLogger().debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + getLogger().debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + StringBuffer whereBuff = new StringBuffer(); + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private static String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + getLogger().debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + } + + private static String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + getLogger().warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + + public static void populateRelationshipDataFromPath(RelationshipList rl) throws URISyntaxException { + List list = rl.getRelationship(); + if(list != null && !list.isEmpty()) { + for(Relationship relationship : list) { + if(relationship.getRelationshipData().isEmpty()){ + String link = relationship.getRelatedLink(); + URI uri = new URI(link); + link = uri.getPath(); + HashMap contributors = pathToHashMap(link); + for(String key : contributors.keySet()) { + RelationshipData rd = new RelationshipData(); + rd.setRelationshipKey(key); + rd.setRelationshipValue(contributors.get(key)); + relationship.getRelationshipData().add(rd); + } + } + } + } + } + + protected static HashMap pathToHashMap(String path) { + HashMap nameValues = new HashMap(); + + String[] split = path.split("/"); + + LinkedList list = new LinkedList( Arrays.asList(split)); + Iterator it = list.iterator(); + + while(it.hasNext()) { + String tag = it.next(); + if(!tag.isEmpty()) { + if(AAIRequest.getResourceNames().contains(tag)){ + LOG.info(tag); + // get the class from tag + Class clazz = null; + try { + clazz = AAIRequest.getClassFromResource(tag); + String fieldName = AAIServiceUtils.getPrimaryIdFromClass(clazz); + + String value = it.next(); + if(!StringUtils.isEmpty(value)){ + nameValues.put(String.format("%s.%s", tag, fieldName), value); + switch(tag) { + case "cloud-region": + case "entitlement": + case "license": + case "route-target": + case "service-capability": + case "ctag-pool": + String secondaryFieldName = AAIServiceUtils.getSecondaryIdFromClass(clazz); + if(secondaryFieldName != null) { + value = it.next(); + nameValues.put(String.format("%s.%s", tag, secondaryFieldName), value); + } + break; + default: + break; + } + } + } catch (ClassNotFoundException exc) { + LOG.info("Caught exception", exc); + } + } + } + } + return nameValues; + } + + public static String getPathForResource(String resource, String key, SvcLogicContext ctx ) throws MalformedURLException{ + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + + for(String name : nameValues.keySet()) { + request.addRequestProperty(name, nameValues.get(name)); + } + return request.getRequestPath(); + } + + public static boolean isValidFormat(String resource, HashMap nameValues) { + + switch(resource){ + case "formatted-query": + case "generic-query": + case "named-query": + case "nodes-query": + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + case "echo": + case "test": + return true; + } + if(resource.contains(":")) { + resource = resource.substring(0, resource.indexOf(":")); + } + + Set keys = nameValues.keySet(); + for(String key : keys) { + if(!key.contains(".")) { + if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key) || "related-link".equals(key) || "related_link".equals(key) || "selflink".equals(key)) + continue; + else { + getLogger().warn(String.format("key %s is incompatible with resource type '%s'", key, resource)); + } + } + } + return true; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java new file mode 100644 index 000000000..6fffc6e8f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java @@ -0,0 +1,38 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.net.URL; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AAITrinityService extends AAIService { + + private static final Logger LOG = LoggerFactory.getLogger(AAITrinityService.class); + + public AAITrinityService(URL propURL) { + super(propURL); + LOG.info("Entered AAITrinityService.ctor"); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java new file mode 100644 index 000000000..8086228b1 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java @@ -0,0 +1,135 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.CloudRegion; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class CloudRegionRequest extends AAIRequest { + + public static final String CLOUD_REGION_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.cloud.region"; + + private final String cloud_region_path; + + public static final String CLOUD_REGION_CLOUD_OWNER = "cloud-region.cloud-owner"; + public static final String CLOUD_REGION_CLOUD_REGION_ID = "cloud-region.cloud-region-id"; + + + public CloudRegionRequest() { + cloud_region_path = configProperties.getProperty(CLOUD_REGION_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+cloud_region_path; + + request_url = processPathData(request_url, requestProperties); + + Map query = new HashMap(); + if(requestProperties.containsKey(DEPTH)) { + query.put(DEPTH, requestProperties.getProperty(DEPTH)); + } + + if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; + query.put(RESOURCE_VERSION, resourceVersion); + } + + if(!query.isEmpty()) { + Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); + String queryString = mapJoiner.join(query); + request_url = String.format("%s?%s", request_url, queryString); + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + CloudRegion vnfc = (CloudRegion)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = + { + CLOUD_REGION_CLOUD_OWNER, + CLOUD_REGION_CLOUD_REGION_ID, + DEPTH + }; + + return args; + } + + @Override + public Class getModelClass() { + return CloudRegion.class; + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + if(!requestProperties.containsKey(CLOUD_REGION_CLOUD_OWNER) || !requestProperties.containsKey(CLOUD_REGION_CLOUD_REGION_ID)) { + aaiService.logKeyError(String.format("%s,%s", CLOUD_REGION_CLOUD_OWNER, CLOUD_REGION_CLOUD_REGION_ID)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); + request_url = request_url.replace("{cloud-owner}", encoded_vnf) ; + + encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); + request_url = request_url.replace("{cloud-region-id}", encoded_vnf) ; + + aaiService.LOGwriteDateTrace("cloud-owner", requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); + aaiService.LOGwriteDateTrace("cloud-region-id", requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java new file mode 100644 index 000000000..994f1b6bf --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java @@ -0,0 +1,134 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryRequestData; +import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + + +public class CustomQueryRequest extends AAIRequest { + + public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; + + private final String generic_search_path; + + public static final String FORMAT = "format"; + + + public CustomQueryRequest() { + String tmp_generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); + tmp_generic_search_path = tmp_generic_search_path.split("search")[0]; + generic_search_path = tmp_generic_search_path +"query"; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_search_path; + + request_url = processPathData(request_url, requestProperties); + + String formatQuery = requestProperties.getProperty(FORMAT); + + if(formatQuery != null) { + request_url = request_url +"?format="+formatQuery; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + FormattedQueryRequestData tenant = (FormattedQueryRequestData)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {FORMAT}; + return args; + } + + + @Override + public Class getModelClass() { + return FormattedQueryRequestData.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = FORMAT; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); + + return request_url; + } + + public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { + if(jsonData == null) { + return null; + } + + AAIDatum response = null; + ObjectMapper mapper = getObjectMapper(); + response = mapper.readValue(jsonData, FormattedQueryResultList.class); + return response; + } + + protected boolean expectsDataFromPUTRequest() { + return true; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java new file mode 100644 index 000000000..86e2d5f5e --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.data.EchoResponse; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class EchoRequest extends AAIRequest { + + + + private final String echo_path; + + public EchoRequest() { + echo_path = "/aai/util/echo"; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+echo_path; + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + EchoResponse tenant = (EchoResponse)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {}; + return args; + } + + + @Override + public Class getModelClass() { + return EchoResponse.class; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java new file mode 100644 index 000000000..b509650de --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.ResultData; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class GenericQueryRequest extends AAIRequest { + + public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; + + private final String generic_search_path; + + public static final String START_NODE_TYPE = "start-node-type"; + public static final String IDENTIFIER = "identifier"; + public static final String VALUE = "value"; + + + public GenericQueryRequest() { + generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); + } + + +// @Override +// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { +// +// String request_url = target_uri+generic_search_path; +// String key = START_NODE_TYPE; +// +// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); +// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; +// +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } +// URL http_req_url = new URL(request_url); +// +// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); +// +// +// return http_req_url; +// } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + ResultData tenant = (ResultData)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {START_NODE_TYPE, IDENTIFIER, VALUE}; + return args; + } + + + @Override + public Class getModelClass() { + return ResultData.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = IDENTIFIER; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); + + key = VALUE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{value}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("value", requestProperties.getProperty(key)); + + key = START_NODE_TYPE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{start-node-type}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("start-node-type", requestProperties.getProperty(key)); + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java new file mode 100644 index 000000000..1d3cb00f9 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -0,0 +1,319 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import javax.xml.bind.annotation.XmlElement; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.L3Network; +import org.openecomp.aai.inventory.v11.L3Networks; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class GenericRequest extends AAIRequest { + + + protected Class model; + + public GenericRequest(Class clazz) { + model = clazz; + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + String originalPath = null; + String pathSubstitute = null; + + request_url = target_uri + getRequestPath(); + + Map queryParams = new HashMap (); + if(resourceVersion != null) { + queryParams.put("resource-version",resourceVersion); + } + + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + + String[] keys = requestProperties.keySet().toArray(new String[0]); + for(String key : keys) { + if("cloud-region.cloud-region-id".equals(key)) + continue; + if("entitlement.resource-uuid".equals(key)) + continue; + if("license.resource-uuid".equals(key)) + continue; + + + String value = requestProperties.getProperty(key); + if(key.contains(".")) { + String[] splitKey = key.split("\\."); + if("cloud-region".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); + aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); + String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("entitlement".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("license".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else { + Class clazz = null; + try { + clazz = getClassFromResource(splitKey[0]); + } catch (ClassNotFoundException exc) { + LOG.warn("AAIRequest does not support class: " + exc.getMessage()); + return null; + } + + if(clazz != null) { + if(clazz == this.model) { + Field[] fields = this.model.getDeclaredFields(); + Field field = fields[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + + String token = String.format("%s/{%s}", splitKey[0], primaryId); + + if(splitKey[1].equals(primaryId)) { + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } else { + queryParams.put(splitKey[1], encodeQuery(value)); + originalPath = token; + pathSubstitute = String.format("%s", splitKey[0]); + } + } else if(L3Networks.class == this.model) { + Field[] fields = L3Network.class.getDeclaredFields(); + Field field = fields[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + + String token = String.format("%s/{%s}", splitKey[0], primaryId); + originalPath = token; + pathSubstitute = String.format(""); + + queryParams.put(splitKey[1], encodeQuery(value)); + } else { + String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } + } + + } + aaiService.LOGwriteDateTrace(splitKey[1], value); + } + } + + if(originalPath != null && pathSubstitute != null) + request_url = request_url.replace(originalPath, pathSubstitute); + + if(!queryParams.isEmpty()) { + Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); + String queryString = mapJoiner.join(queryParams); + request_url = String.format("%s?%s", request_url, queryString); + } + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + + return http_req_url; + } + + + public URL OriginalgetRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + + request_url = target_uri + getRequestPath(); + + Map keyValuepairs = new HashMap (); + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); + + String[] keys = requestProperties.keySet().toArray(new String[0]); + for(String key : keys) { + if("cloud-region.cloud-region-id".equals(key)) + continue; + if("entitlement.resource-uuid".equals(key)) + continue; + if("license.resource-uuid".equals(key)) + continue; + + + String value = requestProperties.getProperty(key); + if(key.contains(".")) { + String[] splitKey = key.split("\\."); + if("cloud-region".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); + aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); + String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("entitlement".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else if("license".equals(splitKey[0])){ + String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); + aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); + String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); + String encoded_owner = encodeQuery(value); + String encoded_region = encodeQuery(cloudRegionId); + request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); + } else { + Class clazz = null; + try { + clazz = getClassFromResource(splitKey[0]); + } catch (ClassNotFoundException exc) { + LOG.warn("AAIRequest does not support class: " + exc.getMessage()); + return null; + } + + if(clazz != null) { + if(clazz == this.model) { + Field[] fields = this.model.getDeclaredFields(); + Field field = fields[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + String primaryId = annotation.name(); + if("##default".equals(primaryId)) { + primaryId = fieldName; + } + + String token = String.format("%s/{%s}", splitKey[0], primaryId); + + if(splitKey[1].equals(primaryId)) { + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } else { + String replacement = String.format("%s?%s=%s", splitKey[0], splitKey[1], encodeQuery(value)); + if(request_url.contains(token)) + request_url = request_url.replace(token, replacement); + } + } else { + String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); + String encoded_vnf = encodeQuery(value); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } + } + + } + aaiService.LOGwriteDateTrace(splitKey[1], value); + } + } + + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + + String json_text = null; + try { + json_text = mapper.writeValueAsString(requestDatum); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {}; + return args; + } + + @Override + public Class getModelClass() { + return model; + } + + public void processRequestPathValues(Map nameValues) { + // identify unique resources + Set uniqueResources = AAIRequest.extractUniqueResourceSetFromKeys(nameValues.keySet()); + + String[] arguments = nameValues.keySet().toArray(new String[0]); + for(String name : arguments) { + String tmpName = name.replaceAll("-", "_"); + String value = nameValues.get(tmpName); + if(value != null && !value.isEmpty()) { + value = value.trim().replace("'", "").replace("$", "").replace("'", ""); + tmpName = name.replaceAll("_", "-"); + this.addRequestProperty(tmpName, value); + } + } + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java new file mode 100644 index 000000000..3f33ff6d1 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.GenericVnf; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class GenericVnfRequest extends AAIRequest { + + // tenant (1602) + public static final String GENERIC_VNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf"; + public static final String GENERIC_VNF_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.query"; + + private final String generic_vnf_path; + private final String generic_vnf_query_path; + + public static final String GENERIC_VNF_ID = "generic_vnf.vnf_id"; + public static final String VNF_ID = "vnf_id"; + + + public GenericVnfRequest() { + generic_vnf_path = configProperties.getProperty(GENERIC_VNF_PATH); + generic_vnf_query_path = configProperties.getProperty(GENERIC_VNF_QUERY_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_vnf_path; + String key = VNF_ID; + if(requestProperties.containsKey(GENERIC_VNF_ID)) { + key = GENERIC_VNF_ID; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{vnf-id}", encoded_vnf) ; + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+generic_vnf_path; + + String key = VNF_ID; + if(requestProperties.containsKey(GENERIC_VNF_ID)) { + key = GENERIC_VNF_ID; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{vnf-id}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + GenericVnf tenant = (GenericVnf)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {VNF_ID, GENERIC_VNF_ID}; + return args; + } + + + @Override + public Class getModelClass() { + return GenericVnf.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = VNF_ID; + if(requestProperties.containsKey(GENERIC_VNF_ID)) { + key = GENERIC_VNF_ID; + } + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{vnf-id}", encoded_vnf) ; + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java new file mode 100644 index 000000000..6cddfdb06 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java @@ -0,0 +1,212 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.L3InterfaceIpv4AddressList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class L3InterfaceIpv4AddressListRequest extends AAIRequest { + + /* + * Note: there are 3 possible paths: + * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} + */ + + public static final String L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list"; + public static final String VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list"; + + private final String l3_interface_ipv4_address_list_path; + private final String vlan_l3_interface_ipv4_address_list_path; + + public static final String L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address"; + public static final String LIST_L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address-list.l3-interface-ipv4-address"; + public static final String VLAN_INTERFACE = "vlan-interface"; + public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; + + public L3InterfaceIpv4AddressListRequest() { + l3_interface_ipv4_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); + vlan_l3_interface_ipv4_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+l3_interface_ipv4_address_list_path; + + if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ + request_url = target_uri+vlan_l3_interface_ipv4_address_list_path; + request_url = processVLanRequestPathData(request_url, requestProperties); + } + + request_url = processPathData(request_url, requestProperties); + request_url = LInterfaceRequest.processPathData(request_url, requestProperties); +// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = null; + + if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { + key = VLAN_VLAN_INTERFACE; + } else if(requestProperties.containsKey(VLAN_INTERFACE)) { + key = VLAN_INTERFACE; + } else { + aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); + return request_url; + } + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + L3InterfaceIpv4AddressList vnfc = (L3InterfaceIpv4AddressList)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = + { + L3_INTERFACE_IPV4_ADDRESS, + LIST_L3_INTERFACE_IPV4_ADDRESS, + VLAN_INTERFACE, + VLAN_VLAN_INTERFACE, + LInterfaceRequest.INTERFACE_NAME, + LInterfaceRequest.LINTERFACE_INTERFACE_NAME, + "generic-vnf.vnf-id" + }; + + return args; + } + + @Override + public Class getModelClass() { + return L3InterfaceIpv4AddressList.class; + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = L3_INTERFACE_IPV4_ADDRESS; + if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV4_ADDRESS)) { + key = LIST_L3_INTERFACE_IPV4_ADDRESS; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV4_ADDRESS, LIST_L3_INTERFACE_IPV4_ADDRESS)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{l3-interface-ipv4-address}", encoded_vnf) ; + + aaiService.LOGwriteDateTrace("l3-interface-ipv4-address", requestProperties.getProperty(key)); + return request_url; + } + + /* + * (non-Javadoc) + * @see org.onap.ccsdk.sli.adaptors.aai.PathConfigurator#configurePath(java.lang.String) + */ +// @Override +// public void processRequestPathValues(Map nameValues) { +// String[] paths = +// { +// "/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", +// "/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", +// "/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", +// "/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}" +// }; +// +// Listkeys = new LinkedList(); +// keys.addAll(nameValues.keySet()); +// for(String key : keys) { +// if(key.contains(".")) { +// key = key.replaceAll("_", "-"); +// if(!LIST_L3_INTERFACE_IPV4_ADDRESS.equals(key)) { +// int index = key.indexOf("."); +// String resource = key.substring(0, index); +// AAIRequest rx = createRequest(resource, nameValues); +// if(rx != null) { +// pathElements.add(rx); +// } +// } +// } +// } +// super.processRequestPathValues(nameValues); +// } +// List pathElements = new LinkedList(); + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java new file mode 100644 index 000000000..b8fdda9fd --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java @@ -0,0 +1,179 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class L3InterfaceIpv6AddressListRequest extends AAIRequest { + + /* + * Note: there are 3 possible paths: + * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} + */ + + public static final String L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list"; + public static final String VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list"; + + private final String l3_interface_ipv6_address_list_path; + private final String vlan_l3_interface_ipv6_address_list_path; + + public static final String L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address"; + public static final String LIST_L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address-list.l3-interface-ipv6-address"; + public static final String VLAN_INTERFACE = "vlan-interface"; + public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; + + public L3InterfaceIpv6AddressListRequest() { + l3_interface_ipv6_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); + vlan_l3_interface_ipv6_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+l3_interface_ipv6_address_list_path; + + if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ + request_url = target_uri+vlan_l3_interface_ipv6_address_list_path; + request_url = processVLanRequestPathData(request_url, requestProperties); + } + + request_url = processPathData(request_url, requestProperties); + request_url = LInterfaceRequest.processPathData(request_url, requestProperties); +// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = null; + + if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { + key = VLAN_VLAN_INTERFACE; + } else if(requestProperties.containsKey(VLAN_INTERFACE)) { + key = VLAN_INTERFACE; + } else { + aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); + return request_url; + } + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + L3InterfaceIpv6AddressList vnfc = (L3InterfaceIpv6AddressList)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = + { + L3_INTERFACE_IPV6_ADDRESS, + LIST_L3_INTERFACE_IPV6_ADDRESS, + VLAN_INTERFACE, + VLAN_VLAN_INTERFACE, + LInterfaceRequest.INTERFACE_NAME, + LInterfaceRequest.LINTERFACE_INTERFACE_NAME, + "generic-vnf.vnf-id" + + }; + + return args; + } + + @Override + public Class getModelClass() { + return L3InterfaceIpv6AddressList.class; + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String key = L3_INTERFACE_IPV6_ADDRESS; + if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV6_ADDRESS)) { + key = LIST_L3_INTERFACE_IPV6_ADDRESS; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV6_ADDRESS, LIST_L3_INTERFACE_IPV6_ADDRESS)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + + request_url = request_url.replace("{l3-interface-ipv6-address}", encoded_vnf) ; + + aaiService.LOGwriteDateTrace("l3-interface-ipv6-address", requestProperties.getProperty(key)); + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java new file mode 100644 index 000000000..1accc82c0 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java @@ -0,0 +1,244 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.LInterface; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class LInterfaceRequest extends AAIRequest { + + // tenant (1602) + public static final String LAGINTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface"; + public static final String LAGINTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.query"; + + public static final String P_INTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface"; + public static final String P_INTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.query"; + + public static final String LAGINTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf"; + public static final String P_INTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf"; + + private final String laginterface_linterface_path; + private final String laginterface_linterface_query_path; + private final String p_interface_linterface_path; + private final String p_interface_linterface_query_path; + + private final String laginterface_linterface_pnf_path; + private final String p_interface_linterface_pnf_path; + + public static final String INTERFACE_NAME = "interface-name"; + public static final String LINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; + public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; + public static final String P_INTERFACE_INTERFACE_NAME = "p-interface.interface-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + + public static final String ROUTER_NAME = "router-name"; + public static final String HOSTNAME = "hostname"; + + + public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; + + private final TYPE type; + + public LInterfaceRequest(TYPE type) { + this.type = type; + + laginterface_linterface_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PATH); + laginterface_linterface_query_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_QUERY_PATH); + + p_interface_linterface_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PATH); + p_interface_linterface_query_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_QUERY_PATH); + + laginterface_linterface_pnf_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PNF_PATH); + p_interface_linterface_pnf_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PNF_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + String encoded_vnf = null; + String hostname = null; + String pnfname = null; + String interfaceName = null; + + if(type == TYPE.L2_BRIDGE_SBG) { + if(requestProperties.containsKey(PNF_PNF_NAME)) { + request_url = target_uri + laginterface_linterface_pnf_path; + } else { + request_url = target_uri + laginterface_linterface_path; + } + + if(requestProperties.containsKey(ROUTER_NAME)) { + hostname = requestProperties.getProperty(ROUTER_NAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(HOSTNAME)) { + hostname = requestProperties.getProperty(HOSTNAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + if(interfaceName == null || interfaceName.isEmpty()) { + interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); + } + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + } + if(type == TYPE.L2_BRIDGE_BGF) { + if(requestProperties.containsKey(PNF_PNF_NAME)) { + request_url = target_uri + p_interface_linterface_pnf_path; + } else { + request_url = target_uri + p_interface_linterface_path; + } + + + if(requestProperties.containsKey(ROUTER_NAME)) { + hostname = requestProperties.getProperty(ROUTER_NAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(HOSTNAME)) { + hostname = requestProperties.getProperty(HOSTNAME); + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf); + } + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + if(interfaceName == null || interfaceName.isEmpty()) { + interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); + } + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + } + + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + if(hostname != null) + aaiService.LOGwriteDateTrace("hostname", hostname); + if(pnfname != null) + aaiService.LOGwriteDateTrace("pnf-name", pnfname); + if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + } + if(requestProperties.containsKey(P_INTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); + } + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + LInterface vnfc = (LInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {}; + if(type == TYPE.L2_BRIDGE_SBG) { + String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + if(type == TYPE.L2_BRIDGE_BGF) { + String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, P_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + + return args; + } + + @Override + public Class getModelClass() { + return LInterface.class; + } + + @Override + public String getPrimaryResourceName(String resource) { + return "l-interface"; + } + + public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String interfaceName = requestProperties.getProperty(INTERFACE_NAME); + if(interfaceName == null || interfaceName.isEmpty()) { + interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); + } + + request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java new file mode 100644 index 000000000..f5bbde7e3 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java @@ -0,0 +1,142 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.LagInterface; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class LagInterfacePnfRequest extends AAIRequest { + + // tenant (1602) + public static final String LAG_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + public static final String LAG_INTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; + public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; + + private final String lag_interface_path; + private final String lag_interface_query_path; + + public static final String INTERFACE_NAME = "interface-name"; + public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; + public static final String PNF_NAME = "pnf-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + + + public LagInterfacePnfRequest() { + lag_interface_path = configProperties.getProperty(PNF_PATH) + "/lag-interfaces/lag-interface/{interface-name}"; + lag_interface_query_path = configProperties.getProperty(LAG_INTERFACE_QUERY_PATH); + LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + lag_interface_path); + LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + lag_interface_query_path); + if(lag_interface_path == null) { + LoggerFactory.getLogger(LagInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); + } + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + lag_interface_path; + String encoded_vnf = null; + + String interfaceName = null; + + if(requestProperties.containsKey(INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + } else + if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME); + } + + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + request_url = processPnfRequestPathData(request_url,requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = PNF_NAME; + if(requestProperties.containsKey(PNF_PNF_NAME)) { + key = PNF_PNF_NAME; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{pnf-name}", encoded_vnf) ; + + return request_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + LagInterface vnfc = (LagInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; + + return args; + } + + @Override + public Class getModelClass() { + return LagInterface.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java new file mode 100644 index 000000000..c93b0f189 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java @@ -0,0 +1,190 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.InventoryResponseItems; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.type.TypeFactory; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; + +public class NamedQueryRequest extends AAIRequest { + + public static final String NAMED_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.named"; + + private final String named_search_path; + + public static final String NAMED_QUERY_UUID = "named-query-uuid"; + public static final String PREFIX = "prefix"; + + + public NamedQueryRequest() { + named_search_path = configProperties.getProperty(NAMED_SEARCH_PATH); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+named_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = AAIService.getObjectMapper(); + mapper.setSerializationInclusion(Include.NON_NULL); + mapper.setSerializationInclusion(Include.NON_EMPTY); + mapper.setSerializationInclusion(Include.NON_DEFAULT); + + AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); + AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); + mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + AAIDatum tenant = (AAIDatum)requestDatum; + String json_text = null; + try { + ObjectNode node = mapper.valueToTree(tenant); + Iterator it = node.elements(); + while(it.hasNext()){ + JsonNode jn = it.next(); + JsonNode child = jn.get("instance-filter"); + if(child != null) { + child = child.get(0); + if(child.has("l3-network")) { + JsonNode innerChild = child.get("l3-network"); + if(innerChild != null) { + if(innerChild instanceof ObjectNode) { + ObjectNode on = ObjectNode.class.cast(innerChild); + List namesToDelete = new ArrayList(); + Iterator names = on.fieldNames(); + while(names.hasNext()) { + String name = names.next(); + if(name != null && name.startsWith("is-")) { + namesToDelete.add(name); + } + } + for(String nameToDelete : namesToDelete) { + on.remove(nameToDelete); + } + } + } + } else if(child.has("pnf")) { + JsonNode innerChild = child.get("pnf"); + if(innerChild != null) { + if(innerChild instanceof ObjectNode) { + ObjectNode on = ObjectNode.class.cast(innerChild); + List namesToDelete = new ArrayList(); + Iterator names = on.fieldNames(); + while(names.hasNext()) { + String name = names.next(); + if(name != null && name.startsWith("in-maint")) { + namesToDelete.add(name); + } + } + for(String nameToDelete : namesToDelete) { + on.remove(nameToDelete); + } + } + } + } + } + } + json_text = node.toString(); + if(json_text == null) + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {NAMED_QUERY_UUID, PREFIX}; + return args; + } + + + @Override + public Class getModelClass() { + return InventoryResponseItems.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + + String encoded_vnf ; + String key = NAMED_QUERY_UUID; + + if(requestProperties.containsKey(key)) { + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{named-query-uuid}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("named-query-uuid", requestProperties.getProperty(key)); + } + + key = PREFIX; + + if(requestProperties.containsKey(key)) { + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{prefix}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("prefix", requestProperties.getProperty(key)); + } + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java new file mode 100644 index 000000000..c6aeb3119 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -0,0 +1,144 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.SearchResults; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class NodesQueryRequest extends AAIRequest { + + public static final String NODES_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; + + private final String nodes_search_path; + + public static final String NODE_TYPE = "node-type"; + public static final String ENTITY_IDENTIFIER = "entity-identifier"; + public static final String ENTITY_VALUE = "entity-value"; + + + public NodesQueryRequest() { + nodes_search_path = configProperties.getProperty(NODES_SEARCH_PATH); + } + + +// @Override +// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { +// +// String request_url = target_uri+generic_search_path; +// String key = START_NODE_TYPE; +// +// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); +// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; +// +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } +// URL http_req_url = new URL(request_url); +// +// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); +// +// +// return http_req_url; +// } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+nodes_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + SearchResults tenant = (SearchResults)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {NODE_TYPE, ENTITY_IDENTIFIER, ENTITY_VALUE}; + return args; + } + + + @Override + public Class getModelClass() { + return SearchResults.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = ENTITY_IDENTIFIER; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{entity-identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("entity-identifier", requestProperties.getProperty(key)); + + key = ENTITY_VALUE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{entity-name}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("entity-name", requestProperties.getProperty(key)); + + key = NODE_TYPE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{node-type}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("node-type", requestProperties.getProperty(key)); + + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java new file mode 100644 index 000000000..c4d078bf9 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java @@ -0,0 +1,142 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.PInterface; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PInterfacePnfRequest extends AAIRequest { + + // tenant (1602) + public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; + public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; + + private final String pinterface_path; + private final String pinterface_query_path; + + public static final String INTERFACE_NAME = "interface-name"; + public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; + public static final String PNF_NAME = "pnf-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + + + public PInterfacePnfRequest() { + pinterface_path = configProperties.getProperty(PNF_PATH) + "/p-interfaces/p-interface/{interface-name}"; + pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); + LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); + LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); + if(pinterface_path == null) { + LoggerFactory.getLogger(PInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); + } + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + pinterface_path; + String encoded_vnf = null; + + String interfaceName = null; + + if(requestProperties.containsKey(INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + } else + if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); + } + + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + request_url = processPnfRequestPathData(request_url,requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = PNF_NAME; + if(requestProperties.containsKey(PNF_PNF_NAME)) { + key = PNF_PNF_NAME; + } + + if(!requestProperties.containsKey(key)) { + aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); + } + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{pnf-name}", encoded_vnf) ; + + return request_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + PInterface vnfc = (PInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {INTERFACE_NAME, PINTERFACE_INTERFACE_NAME, PNF_NAME, PNF_PNF_NAME}; + + return args; + } + + @Override + public Class getModelClass() { + return PInterface.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java new file mode 100644 index 000000000..8a040b2f2 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.PInterface; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PInterfaceRequest extends AAIRequest { + + // tenant (1602) + public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; + public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; + + private final String pinterface_path; + private final String pinterface_query_path; + + public static final String HOSTNAME = "hostname"; + public static final String PSERVER_HOSTNAME = "pserver.hostname"; + public static final String INTERFACE_NAME = "interface-name"; + public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; + + + public PInterfaceRequest() { + pinterface_path = configProperties.getProperty(PINTERFACE_PATH); + pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); + LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); + LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); + if(pinterface_path == null) { + LoggerFactory.getLogger(PInterfaceRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); + } + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + pinterface_path; + String encoded_vnf = null; + + String hostname = null; + String interfaceName = null; + + if(requestProperties.containsKey(HOSTNAME)) { + hostname = requestProperties.getProperty(HOSTNAME); + } + if(requestProperties.containsKey(PSERVER_HOSTNAME)) { + hostname = requestProperties.getProperty(PSERVER_HOSTNAME); + } + + if(requestProperties.containsKey(INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(INTERFACE_NAME); + } + if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { + interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); + } + + encoded_vnf = encodeQuery(hostname); + request_url = request_url.replace("{hostname}", encoded_vnf) ; + + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("hostname", hostname); + aaiService.LOGwriteDateTrace("interface-name", hostname); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + PInterface vnfc = (PInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {HOSTNAME, PSERVER_HOSTNAME, INTERFACE_NAME, PINTERFACE_INTERFACE_NAME}; + return args; + } + + @Override + public Class getModelClass() { + return PInterface.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java new file mode 100644 index 000000000..a42e045bb --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PathRequest extends AAIRequest { + + private final Class classType; + + public static final String RESOURCE_PATH = "resource-path"; + + public PathRequest(Class type) { + classType = (Class)type; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri + "{resource-path}"; + + String encoded_vnf = requestProperties.getProperty(RESOURCE_PATH); + request_url = request_url.replace("{resource-path}", encoded_vnf) ; + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + String json_text = null; + try { + json_text = mapper.writeValueAsString(classType); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {RESOURCE_PATH}; + return args; + } + + @Override + public Class getModelClass() { + return classType; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java new file mode 100644 index 000000000..94dfdaf27 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java @@ -0,0 +1,112 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.PhysicalLink; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class PhysicalLinkRequest extends AAIRequest { + + // physical link + public static final String PHYSICAL_LINK_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link"; + public static final String PHYSICAL_LINK_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link.query"; + + private final String physical_link_path; + private final String physical_link_query_path; + + public static final String LINK_NAME = "link-name"; + public static final String PHYSICAL_LINK_NAME = "physical-link.link-name"; + + + public PhysicalLinkRequest() { + physical_link_path = configProperties.getProperty(PHYSICAL_LINK_PATH); + physical_link_query_path = configProperties.getProperty(PHYSICAL_LINK_QUERY_PATH); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+physical_link_path; + + String linkName = null; + if(requestProperties.containsKey(LINK_NAME)) { + linkName = requestProperties.getProperty(LINK_NAME); + } + + if(requestProperties.containsKey(PHYSICAL_LINK_NAME)) { + linkName = requestProperties.getProperty(PHYSICAL_LINK_NAME); + } + + + String encoded_vnf = encodeQuery(linkName); + request_url = request_url.replace("{link-name}", encoded_vnf) ; + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("link-name", linkName); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + PhysicalLink vpe = (PhysicalLink)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vpe); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {LINK_NAME, PHYSICAL_LINK_NAME}; + + return args; + } + + @Override + public Class getModelClass() { + return PhysicalLink.class; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java new file mode 100644 index 000000000..9ae635c67 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -0,0 +1,126 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.RelationshipList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class RelationshipRequest extends AAIRequest { + + // tenant (1602) + public static final String RELATIONSHIP_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list"; + public static final String RELATIONSHIP_LIST_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list.query"; + + private final String relationship_path; + private final String relationship_query_path; + + public static final String RELATED_TO = "related-to"; + public static final String RELATIONSHIP_KEY = "relationship-key"; + + public RelationshipRequest() { + relationship_path = configProperties.getProperty(RELATIONSHIP_LIST_PATH, "/relationship-list/relationship"); + relationship_query_path = configProperties.getProperty(RELATIONSHIP_LIST_QUERY_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + AAIRequest masterRequest = (AAIRequest)requestProperties.get(MASTER_REQUEST); + URL masterURL = masterRequest.getRequestUrl(method, null); + + String request_url = masterURL.toString(); + request_url = request_url + relationship_path; + + if(request_url.contains("//")) { + request_url = request_url.replaceAll("//", "/"); + } + + if(requestProperties.containsKey(RELATED_TO)) { + String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATED_TO)); + request_url = request_url.replace("{related-to}", encoded_vnf) ; + } + +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("related-to", requestProperties.getProperty(RELATED_TO)); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = target_uri+relationship_query_path; + String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATIONSHIP_KEY)); + request_url = request_url.replace("{tenant-name}", encoded_vnf) ; + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + aaiService.LOGwriteDateTrace("tenant_name", requestProperties.getProperty(RELATIONSHIP_KEY)); + + return http_req_url; + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + Object tenant = requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {RELATED_TO, RELATIONSHIP_KEY}; + return args; + } + + + @Override + public Class getModelClass() { + return RelationshipList.class; + } + + public boolean isDeleteDataRequired() { + return true; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java new file mode 100644 index 000000000..95b5c3505 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class SelfLinkRequest extends AAIRequest { + + private final Class classType; + + public static final String SELFLINK = "selflink"; + + public SelfLinkRequest(Class type) { + classType = (Class)type; + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + + request_url = requestProperties.getProperty(SELFLINK); + try { + URI uri = new URI(request_url); + if(uri.getHost() == null) { + request_url = target_uri + request_url; + } + } catch(Exception exc) { + LOG.error("SelfLinkRequest.getRequestUrl", exc); + } + String query = null; + + if(request_url.contains("?")) { + query = request_url.substring(request_url.indexOf("?")); + Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("="); +// String queryString = mapJoiner.join(query); + } else { + request_url = request_url + "?depth=1"; + } + + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + String json_text = null; + try { + json_text = mapper.writeValueAsString(classType); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + @Override + public String[] getArgsList() { + String[] args = {SELFLINK}; + return args; + } + + @Override + public Class getModelClass() { + return classType; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java new file mode 100644 index 000000000..9e0a6d53f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java @@ -0,0 +1,184 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.LInterface; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class SubInterfaceRequest extends AAIRequest { + + // tenant (1602) + public static final String PNF_LAGINTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface"; + public static final String PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface.query"; + + public static final String PNF_P_INTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface"; + public static final String PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface.query"; + + private final String pnf_laginterface_subinterface_path; + private final String pnf_laginterface_subinterface_query_path; + private final String pnf_p_interface_subinterface_path; + private final String pnf_p_interface_subinterface_query_path; + + public static final String SUBINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; + public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; + public static final String PNF_PNF_NAME = "pnf.pnf-name"; + public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; + + private final TYPE type; + + public SubInterfaceRequest(TYPE type) { + this.type = type; + + pnf_laginterface_subinterface_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_PATH); + pnf_laginterface_subinterface_query_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH); + + pnf_p_interface_subinterface_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_PATH); + pnf_p_interface_subinterface_query_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = null; + String encoded_vnf = null; + + String pnfname = null; + String interfaceName = null; + + if(type == TYPE.L2_BRIDGE_SBG) { + request_url = target_uri + pnf_laginterface_subinterface_path; + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + + } + if(type == TYPE.L2_BRIDGE_BGF) { + request_url = target_uri + pnf_p_interface_subinterface_path; + + if(requestProperties.containsKey(PNF_PNF_NAME)) { + pnfname = requestProperties.getProperty(PNF_PNF_NAME); + encoded_vnf = encodeQuery(pnfname); + request_url = request_url.replace("{pnf-name}", encoded_vnf); + } + + encoded_vnf = encodeQuery(requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); + request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; + + + interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); + encoded_vnf = encodeQuery(interfaceName); + request_url = request_url.replace("{interface-name}", encoded_vnf) ; + } + + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + if(pnfname != null) + aaiService.LOGwriteDateTrace("pnf-name", pnfname); + if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); + } + if(requestProperties.containsKey(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)) { + aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); + } + aaiService.LOGwriteDateTrace("interface-name", interfaceName); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return this.getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + LInterface vnfc = (LInterface)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(vnfc); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {}; + if(type == TYPE.L2_BRIDGE_SBG) { + String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + if(type == TYPE.L2_BRIDGE_BGF) { + String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, PInterfaceRequest.PINTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; + args = tmpArray; + } + + return args; + } + + @Override + public Class getModelClass() { + return LInterface.class; + } + + @Override + public String getPrimaryResourceName(String resource) { + return "sub-interface"; + } + + public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + String interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); + request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; + return request_url; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java new file mode 100644 index 000000000..705f53d28 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Map; +import java.util.Properties; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class UpdateRequest extends AAIRequest { + + private AAIRequest request; + private Map params; + + public UpdateRequest(AAIRequest request, Map parms) { + this.request = request; + this.params = parms; + } + + @Override + public URL getRequestUrl(String method, String resourceVersion) + throws UnsupportedEncodingException, MalformedURLException { + return request.getRequestUrl(method, resourceVersion); + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return request.getRequestQueryUrl(method); + } + + @Override + public String toJSONString() { + ObjectMapper mapper = AAIService.getObjectMapper(); + String json = null; + + try { + json = mapper.writeValueAsString(params); + } catch (JsonProcessingException e) { + LOG.error("Could not convert parameters of " + request.getRequestObject().getClass().getName(), e); + } + + return json; + } + + @Override + public String[] getArgsList() { + return request.getArgsList(); + } + + @Override + public Class getModelClass() { + return request.getModelClass(); + } + + @Override + public void addRequestProperty(String key, String value) { + request.requestProperties.put(key, value); + } + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + +// if(request != null) { +// Class clazz = request.getClass(); +// Method function = null; +// try { +// function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); +// request_url = (String) function.invoke(null, request_url, requestProperties); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + +// request.processPathData(request_url, requestProperties); + return request_url; + } + + public void processRequestPathValues(Map nameValues) { + request.processRequestPathValues(nameValues); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/AAIDatum.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/AAIDatum.java new file mode 100644 index 000000000..84323176b --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/AAIDatum.java @@ -0,0 +1,26 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +public interface AAIDatum { + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/EchoResponse.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/EchoResponse.java new file mode 100644 index 000000000..576c15701 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/EchoResponse.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "responseMessages" +}) +public class EchoResponse implements AAIDatum { + + @JsonProperty("responseMessages") + private ResponseMessages responseMessages; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The responseMessages + */ + @JsonProperty("responseMessages") + public ResponseMessages getResponseMessages() { + return responseMessages; + } + + /** + * + * @param responseMessages + * The responseMessages + */ + @JsonProperty("responseMessages") + public void setResponseMessages(ResponseMessages responseMessages) { + this.responseMessages = responseMessages; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponse.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponse.java new file mode 100644 index 000000000..6a255fcf1 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponse.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "requestError" +}) +public class ErrorResponse { + + @JsonProperty("requestError") + private RequestError requestError; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The requestError + */ + @JsonProperty("requestError") + public RequestError getRequestError() { + return requestError; + } + + /** + * + * @param requestError + * The requestError + */ + @JsonProperty("requestError") + public void setRequestError(RequestError requestError) { + this.requestError = requestError; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestError.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestError.java new file mode 100644 index 000000000..9bbca18f5 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestError.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "serviceException" +}) +public class RequestError { + + @JsonProperty("serviceException") + private ServiceException serviceException; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The serviceException + */ + @JsonProperty("serviceException") + public ServiceException getServiceException() { + return serviceException; + } + + /** + * + * @param serviceException + * The serviceException + */ + @JsonProperty("serviceException") + public void setServiceException(ServiceException serviceException) { + this.serviceException = serviceException; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResourceVersion.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResourceVersion.java new file mode 100644 index 000000000..f5901a8be --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResourceVersion.java @@ -0,0 +1,28 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +public interface ResourceVersion { + + public String getResourceVersion(); + public void setResourceVersion(String resourceVersion); +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessage.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessage.java new file mode 100644 index 000000000..db3778792 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessage.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "messageId", + "text", + "variables" +}) +public class ResponseMessage { + + @JsonProperty("messageId") + private String messageId; + @JsonProperty("text") + private String text; + @JsonProperty("variables") + private Variables variables; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The messageId + */ + @JsonProperty("messageId") + public String getMessageId() { + return messageId; + } + + /** + * + * @param messageId + * The messageId + */ + @JsonProperty("messageId") + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * + * @return + * The text + */ + @JsonProperty("text") + public String getText() { + return text; + } + + /** + * + * @param text + * The text + */ + @JsonProperty("text") + public void setText(String text) { + this.text = text; + } + + /** + * + * @return + * The variables + */ + @JsonProperty("variables") + public Variables getVariables() { + return variables; + } + + /** + * + * @param variables + * The variables + */ + @JsonProperty("variables") + public void setVariables(Variables variables) { + this.variables = variables; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessages.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessages.java new file mode 100644 index 000000000..a23878084 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessages.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "responseMessage" +}) +public class ResponseMessages { + + @JsonProperty("responseMessage") + private List responseMessage = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The responseMessage + */ + @JsonProperty("responseMessage") + public List getResponseMessage() { + return responseMessage; + } + + /** + * + * @param responseMessage + * The responseMessage + */ + @JsonProperty("responseMessage") + public void setResponseMessage(List responseMessage) { + this.responseMessage = responseMessage; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceException.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceException.java new file mode 100644 index 000000000..b98d3d8fc --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceException.java @@ -0,0 +1,126 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "messageId", + "text", + "variables" +}) +public class ServiceException { + + @JsonProperty("messageId") + private String messageId; + @JsonProperty("text") + private String text; + @JsonProperty("variables") + private List variables = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The messageId + */ + @JsonProperty("messageId") + public String getMessageId() { + return messageId; + } + + /** + * + * @param messageId + * The messageId + */ + @JsonProperty("messageId") + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * + * @return + * The text + */ + @JsonProperty("text") + public String getText() { + return text; + } + + /** + * + * @param text + * The text + */ + @JsonProperty("text") + public void setText(String text) { + this.text = text; + } + + /** + * + * @return + * The variables + */ + @JsonProperty("variables") + public List getVariables() { + return variables; + } + + /** + * + * @param variables + * The variables + */ + @JsonProperty("variables") + public void setVariables(List variables) { + this.variables = variables; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java new file mode 100644 index 000000000..14ed86677 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java @@ -0,0 +1,171 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import org.openecomp.aai.inventory.v11.RelationshipList; +import org.openecomp.aai.inventory.v11.Vlans; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "interface-name", + "interface-role", + "resource-version", + "vlans", + "relationshipList" +}) +public class SubInterface implements AAIDatum { + + @JsonProperty("interface-name") + private String interfaceName; + @JsonProperty("interface-role") + private String interfaceRole; + @JsonProperty("resource-version") + private String resourceVersion; + @JsonProperty("vlans") + private Vlans vlans; + @JsonProperty("relationshipList") + private RelationshipList relationshipList; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The interfaceName + */ + @JsonProperty("interface-name") + public String getInterfaceName() { + return interfaceName; + } + + /** + * + * @param interfaceName + * The interface-name + */ + @JsonProperty("interface-name") + public void setInterfaceName(String interfaceName) { + this.interfaceName = interfaceName; + } + + /** + * + * @return + * The interfaceRole + */ + @JsonProperty("interface-role") + public String getInterfaceRole() { + return interfaceRole; + } + + /** + * + * @param interfaceRole + * The interface-role + */ + @JsonProperty("interface-role") + public void setInterfaceRole(String interfaceRole) { + this.interfaceRole = interfaceRole; + } + + /** + * + * @return + * The resourceVersion + */ + @JsonProperty("resource-version") + public String getResourceVersion() { + return resourceVersion; + } + + /** + * + * @param resourceVersion + * The resource-version + */ + @JsonProperty("resource-version") + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; + } + + /** + * + * @return + * The vlans + */ + @JsonProperty("vlans") + public Vlans getVlans() { + return vlans; + } + + /** + * + * @param vlans + * The vlans + */ + @JsonProperty("vlans") + public void setVlans(Vlans vlans) { + this.vlans = vlans; + } + + /** + * + * @return + * The relationshipList + */ + @JsonProperty("relationshipList") + public RelationshipList getRelationshipList() { + return relationshipList; + } + + /** + * + * @param relationshipList + * The relationshipList + */ + @JsonProperty("relationshipList") + public void setRelationshipList(RelationshipList relationshipList) { + this.relationshipList = relationshipList; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/Variables.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/Variables.java new file mode 100644 index 000000000..3b03ba472 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/Variables.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "variable" +}) +public class Variables { + + @JsonProperty("variable") + private List variable = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The variable + */ + @JsonProperty("variable") + public List getVariable() { + return variable; + } + + /** + * + * @param variable + * The variable + */ + @JsonProperty("variable") + public void setVariable(List variable) { + this.variable = variable; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatum.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatum.java new file mode 100644 index 000000000..641a8abde --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatum.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.notify; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "key-name", + "key-value" +}) +public class KeyDatum { + + @JsonProperty("key-name") + private String keyName; + @JsonProperty("key-value") + private String keyValue; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The keyName + */ + @JsonProperty("key-name") + public String getKeyName() { + return keyName; + } + + /** + * + * @param keyName + * The key-name + */ + @JsonProperty("key-name") + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + /** + * + * @return + * The keyValue + */ + @JsonProperty("key-value") + public String getKeyValue() { + return keyValue; + } + + /** + * + * @param keyValue + * The key-value + */ + @JsonProperty("key-value") + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEvent.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEvent.java new file mode 100644 index 000000000..d97b35239 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEvent.java @@ -0,0 +1,170 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.notify; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "event-id", + "event-trigger", + "key-data", + "node-type", + "selflink" +}) +public class NotifyEvent { + + @JsonProperty("event-id") + private String eventId; + @JsonProperty("event-trigger") + private String eventTrigger; + @JsonProperty("key-data") + private List keyData = new ArrayList(); + @JsonProperty("node-type") + private String nodeType; + @JsonProperty("selflink") + private String selflink; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The eventId + */ + @JsonProperty("event-id") + public String getEventId() { + return eventId; + } + + /** + * + * @param eventId + * The event-id + */ + @JsonProperty("event-id") + public void setEventId(String eventId) { + this.eventId = eventId; + } + + /** + * + * @return + * The eventTrigger + */ + @JsonProperty("event-trigger") + public String getEventTrigger() { + return eventTrigger; + } + + /** + * + * @param eventTrigger + * The event-trigger + */ + @JsonProperty("event-trigger") + public void setEventTrigger(String eventTrigger) { + this.eventTrigger = eventTrigger; + } + + /** + * + * @return + * The keyData + */ + @JsonProperty("key-data") + public List getKeyData() { + return keyData; + } + + /** + * + * @param keyData + * The key-data + */ + @JsonProperty("key-data") + public void setKeyData(List keyData) { + this.keyData = keyData; + } + + /** + * + * @return + * The nodeType + */ + @JsonProperty("node-type") + public String getNodeType() { + return nodeType; + } + + /** + * + * @param nodeType + * The node-type + */ + @JsonProperty("node-type") + public void setNodeType(String nodeType) { + this.nodeType = nodeType; + } + + /** + * + * @return + * The selflink + */ + @JsonProperty("selflink") + public String getSelflink() { + return selflink; + } + + /** + * + * @param selflink + * The selflink + */ + @JsonProperty("selflink") + public void setSelflink(String selflink) { + this.selflink = selflink; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java new file mode 100644 index 000000000..6ffc30c45 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "flavorId", + "flavorName", + "flavorLink" +}) +public class Flavor { + + @JsonProperty("flavorId") + private String flavorId; + @JsonProperty("flavorName") + private String flavorName; + @JsonProperty("flavorLink") + private String flavorLink; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The flavorId + */ + @JsonProperty("flavorId") + public String getFlavorId() { + return flavorId; + } + + /** + * + * @param flavorId + * The flavorId + */ + @JsonProperty("flavorId") + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + /** + * + * @return + * The flavorName + */ + @JsonProperty("flavorName") + public String getFlavorName() { + return flavorName; + } + + /** + * + * @param flavorName + * The flavorName + */ + @JsonProperty("flavorName") + public void setFlavorName(String flavorName) { + this.flavorName = flavorName; + } + + /** + * + * @return + * The flavorLink + */ + @JsonProperty("flavorLink") + public String getFlavorLink() { + return flavorLink; + } + + /** + * + * @param flavorLink + * The flavorLink + */ + @JsonProperty("flavorLink") + public void setFlavorLink(String flavorLink) { + this.flavorLink = flavorLink; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java new file mode 100644 index 000000000..7c171ebd9 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java @@ -0,0 +1,122 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "hostId", + "hostname", + "hostLoc" +}) +public class Host { + + @JsonProperty("hostId") + private String hostId; + @JsonProperty("hostname") + private String hostname; + @JsonProperty("hostLoc") + private String hostLoc; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The hostId + */ + @JsonProperty("hostId") + public String getHostId() { + return hostId; + } + + /** + * + * @param hostId + * The hostId + */ + @JsonProperty("hostId") + public void setHostId(String hostId) { + this.hostId = hostId; + } + + /** + * + * @return + * The hostname + */ + @JsonProperty("hostname") + public String getHostname() { + return hostname; + } + + /** + * + * @param hostname + * The hostname + */ + @JsonProperty("hostname") + public void setHostname(String hostname) { + this.hostname = hostname; + } + + /** + * + * @return + * The hostLoc + */ + @JsonProperty("hostLoc") + public String getHostLoc() { + return hostLoc; + } + + /** + * + * @param hostLoc + * The hostLoc + */ + @JsonProperty("hostLoc") + public void setHostLoc(String hostLoc) { + this.hostLoc = hostLoc; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java new file mode 100644 index 000000000..0e27c5418 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java @@ -0,0 +1,237 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "imageId", + "imageName", + "osType", + "osVersion", + "application", + "applicationVersion", + "applicationVendor", + "imageLink" +}) +public class Image { + + @JsonProperty("imageId") + private String imageId; + @JsonProperty("imageName") + private String imageName; + @JsonProperty("osType") + private String osType; + @JsonProperty("osVersion") + private String osVersion; + @JsonProperty("application") + private String application; + @JsonProperty("applicationVersion") + private String applicationVersion; + @JsonProperty("applicationVendor") + private String applicationVendor; + @JsonProperty("imageLink") + private String imageLink; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The imageId + */ + @JsonProperty("imageId") + public String getImageId() { + return imageId; + } + + /** + * + * @param imageId + * The imageId + */ + @JsonProperty("imageId") + public void setImageId(String imageId) { + this.imageId = imageId; + } + + /** + * + * @return + * The imageName + */ + @JsonProperty("imageName") + public String getImageName() { + return imageName; + } + + /** + * + * @param imageName + * The imageName + */ + @JsonProperty("imageName") + public void setImageName(String imageName) { + this.imageName = imageName; + } + + /** + * + * @return + * The osType + */ + @JsonProperty("osType") + public String getOsType() { + return osType; + } + + /** + * + * @param osType + * The osType + */ + @JsonProperty("osType") + public void setOsType(String osType) { + this.osType = osType; + } + + /** + * + * @return + * The osVersion + */ + @JsonProperty("osVersion") + public String getOsVersion() { + return osVersion; + } + + /** + * + * @param osVersion + * The osVersion + */ + @JsonProperty("osVersion") + public void setOsVersion(String osVersion) { + this.osVersion = osVersion; + } + + /** + * + * @return + * The application + */ + @JsonProperty("application") + public String getApplication() { + return application; + } + + /** + * + * @param application + * The application + */ + @JsonProperty("application") + public void setApplication(String application) { + this.application = application; + } + + /** + * + * @return + * The applicationVersion + */ + @JsonProperty("applicationVersion") + public String getApplicationVersion() { + return applicationVersion; + } + + /** + * + * @param applicationVersion + * The applicationVersion + */ + @JsonProperty("applicationVersion") + public void setApplicationVersion(String applicationVersion) { + this.applicationVersion = applicationVersion; + } + + /** + * + * @return + * The applicationVendor + */ + @JsonProperty("applicationVendor") + public String getApplicationVendor() { + return applicationVendor; + } + + /** + * + * @param applicationVendor + * The applicationVendor + */ + @JsonProperty("applicationVendor") + public void setApplicationVendor(String applicationVendor) { + this.applicationVendor = applicationVendor; + } + + /** + * + * @return + * The imageLink + */ + @JsonProperty("imageLink") + public String getImageLink() { + return imageLink; + } + + /** + * + * @param imageLink + * The imageLink + */ + @JsonProperty("imageLink") + public void setImageLink(String imageLink) { + this.imageLink = imageLink; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java new file mode 100644 index 000000000..19a9bf6a9 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java @@ -0,0 +1,168 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "addrId", + "addr", + "version", + "type", + "networkName" +}) +public class IpAddress { + + @JsonProperty("addrId") + private String addrId; + @JsonProperty("addr") + private String addr; + @JsonProperty("version") + private String version; + @JsonProperty("type") + private String type; + @JsonProperty("networkName") + private String networkName; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The addrId + */ + @JsonProperty("addrId") + public String getAddrId() { + return addrId; + } + + /** + * + * @param addrId + * The addrId + */ + @JsonProperty("addrId") + public void setAddrId(String addrId) { + this.addrId = addrId; + } + + /** + * + * @return + * The addr + */ + @JsonProperty("addr") + public String getAddr() { + return addr; + } + + /** + * + * @param addr + * The addr + */ + @JsonProperty("addr") + public void setAddr(String addr) { + this.addr = addr; + } + + /** + * + * @return + * The version + */ + @JsonProperty("version") + public String getVersion() { + return version; + } + + /** + * + * @param version + * The version + */ + @JsonProperty("version") + public void setVersion(String version) { + this.version = version; + } + + /** + * + * @return + * The type + */ + @JsonProperty("type") + public String getType() { + return type; + } + + /** + * + * @param type + * The type + */ + @JsonProperty("type") + public void setType(String type) { + this.type = type; + } + + /** + * + * @return + * The networkName + */ + @JsonProperty("networkName") + public String getNetworkName() { + return networkName; + } + + /** + * + * @param networkName + * The networkName + */ + @JsonProperty("networkName") + public void setNetworkName(String networkName) { + this.networkName = networkName; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java new file mode 100644 index 000000000..8e04e35f5 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java @@ -0,0 +1,147 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "relatedTo", + "relatedLink", + "relationshipData", + "any" +}) +public class Relationship { + + @JsonProperty("relatedTo") + private String relatedTo; + @JsonProperty("relatedLink") + private String relatedLink; + @JsonProperty("relationshipData") + private List relationshipData = new ArrayList(); + @JsonProperty("any") + private List any = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The relatedTo + */ + @JsonProperty("relatedTo") + public String getRelatedTo() { + return relatedTo; + } + + /** + * + * @param relatedTo + * The relatedTo + */ + @JsonProperty("relatedTo") + public void setRelatedTo(String relatedTo) { + this.relatedTo = relatedTo; + } + + /** + * + * @return + * The relatedLink + */ + @JsonProperty("relatedLink") + public String getRelatedLink() { + return relatedLink; + } + + /** + * + * @param relatedLink + * The relatedLink + */ + @JsonProperty("relatedLink") + public void setRelatedLink(String relatedLink) { + this.relatedLink = relatedLink; + } + + /** + * + * @return + * The relationshipData + */ + @JsonProperty("relationshipData") + public List getRelationshipData() { + return relationshipData; + } + + /** + * + * @param relationshipData + * The relationshipData + */ + @JsonProperty("relationshipData") + public void setRelationshipData(List relationshipData) { + this.relationshipData = relationshipData; + } + + /** + * + * @return + * The any + */ + @JsonProperty("any") + public List getAny() { + return any; + } + + /** + * + * @param any + * The any + */ + @JsonProperty("any") + public void setAny(List any) { + this.any = any; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java new file mode 100644 index 000000000..1ac21640c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java @@ -0,0 +1,124 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "relationshipKey", + "relationshipValue", + "any" +}) +public class RelationshipDatum { + + @JsonProperty("relationshipKey") + private String relationshipKey; + @JsonProperty("relationshipValue") + private String relationshipValue; + @JsonProperty("any") + private List any = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The relationshipKey + */ + @JsonProperty("relationshipKey") + public String getRelationshipKey() { + return relationshipKey; + } + + /** + * + * @param relationshipKey + * The relationshipKey + */ + @JsonProperty("relationshipKey") + public void setRelationshipKey(String relationshipKey) { + this.relationshipKey = relationshipKey; + } + + /** + * + * @return + * The relationshipValue + */ + @JsonProperty("relationshipValue") + public String getRelationshipValue() { + return relationshipValue; + } + + /** + * + * @param relationshipValue + * The relationshipValue + */ + @JsonProperty("relationshipValue") + public void setRelationshipValue(String relationshipValue) { + this.relationshipValue = relationshipValue; + } + + /** + * + * @return + * The any + */ + @JsonProperty("any") + public List getAny() { + return any; + } + + /** + * + * @param any + * The any + */ + @JsonProperty("any") + public void setAny(List any) { + this.any = any; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java new file mode 100644 index 000000000..3c46d21bd --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "relationship", + "any" +}) +public class RelationshipList { + + @JsonProperty("relationship") + private List relationship = new ArrayList(); + @JsonProperty("any") + private List any = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The relationship + */ + @JsonProperty("relationship") + public List getRelationship() { + return relationship; + } + + /** + * + * @param relationship + * The relationship + */ + @JsonProperty("relationship") + public void setRelationship(List relationship) { + this.relationship = relationship; + } + + /** + * + * @return + * The any + */ + @JsonProperty("any") + public List getAny() { + return any; + } + + /** + * + * @param any + * The any + */ + @JsonProperty("any") + public void setAny(List any) { + this.any = any; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java new file mode 100644 index 000000000..45d725530 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java @@ -0,0 +1,262 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.data.v1507; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "vmId", + "vmName", + "vmName2", + "host", + "image", + "flavor", + "ipAddresses", + "vserverLink", + "relationshipList" +}) +public class VServer { + + @JsonProperty("vmId") + private String vmId; + @JsonProperty("vmName") + private String vmName; + @JsonProperty("vmName2") + private String vmName2; + @JsonProperty("host") + private Host host; + @JsonProperty("image") + private Image image; + @JsonProperty("flavor") + private Flavor flavor; + @JsonProperty("ipAddresses") + private List ipAddresses = new ArrayList(); + @JsonProperty("vserverLink") + private String vserverLink; + @JsonProperty("relationshipList") + private RelationshipList relationshipList; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The vmId + */ + @JsonProperty("vmId") + public String getVmId() { + return vmId; + } + + /** + * + * @param vmId + * The vmId + */ + @JsonProperty("vmId") + public void setVmId(String vmId) { + this.vmId = vmId; + } + + /** + * + * @return + * The vmName + */ + @JsonProperty("vmName") + public String getVmName() { + return vmName; + } + + /** + * + * @param vmName + * The vmName + */ + @JsonProperty("vmName") + public void setVmName(String vmName) { + this.vmName = vmName; + } + + /** + * + * @return + * The vmName2 + */ + @JsonProperty("vmName2") + public String getVmName2() { + return vmName2; + } + + /** + * + * @param vmName2 + * The vmName2 + */ + @JsonProperty("vmName2") + public void setVmName2(String vmName2) { + this.vmName2 = vmName2; + } + + /** + * + * @return + * The host + */ + @JsonProperty("host") + public Host getHost() { + return host; + } + + /** + * + * @param host + * The host + */ + @JsonProperty("host") + public void setHost(Host host) { + this.host = host; + } + + /** + * + * @return + * The image + */ + @JsonProperty("image") + public Image getImage() { + return image; + } + + /** + * + * @param image + * The image + */ + @JsonProperty("image") + public void setImage(Image image) { + this.image = image; + } + + /** + * + * @return + * The flavor + */ + @JsonProperty("flavor") + public Flavor getFlavor() { + return flavor; + } + + /** + * + * @param flavor + * The flavor + */ + @JsonProperty("flavor") + public void setFlavor(Flavor flavor) { + this.flavor = flavor; + } + + /** + * + * @return + * The ipAddresses + */ + @JsonProperty("ipAddresses") + public List getIpAddresses() { + return ipAddresses; + } + + /** + * + * @param ipAddresses + * The ipAddresses + */ + @JsonProperty("ipAddresses") + public void setIpAddresses(List ipAddresses) { + this.ipAddresses = ipAddresses; + } + + /** + * + * @return + * The vserverLink + */ + @JsonProperty("vserverLink") + public String getVserverLink() { + return vserverLink; + } + + /** + * + * @param vserverLink + * The vserverLink + */ + @JsonProperty("vserverLink") + public void setVserverLink(String vserverLink) { + this.vserverLink = vserverLink; + } + + /** + * + * @return + * The relationshipList + */ + @JsonProperty("relationshipList") + public RelationshipList getRelationshipList() { + return relationshipList; + } + + /** + * + * @param relationshipList + * The relationshipList + */ + @JsonProperty("relationshipList") + public void setRelationshipList(RelationshipList relationshipList) { + this.relationshipList = relationshipList; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestData.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestData.java new file mode 100644 index 000000000..e533a164f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestData.java @@ -0,0 +1,83 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.annotation.JsonProperty; + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "start", + "query" +}) +@XmlRootElement(name = "query-request") +public class FormattedQueryRequestData implements AAIDatum { + + @JsonProperty("start") + protected List start; + + @JsonProperty("query") + private String query; + + @JsonProperty("start") + public List getStart () + { + return start; + } + + @JsonProperty("start") + public void setStart (List start) + { + this.start = start; + } + + @JsonProperty("query") + public String getQuery () + { + return query; + } + + @JsonProperty("query") + public void setQuery (String query) + { + this.query = query; + } + + @Override + public String toString() + { + return " [start = "+start+", query = "+query+"]"; + } + + public String getResourceVersion() { + return null; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultList.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultList.java new file mode 100644 index 000000000..248cd9597 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultList.java @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "results" +}) +@XmlRootElement(name = "result-list") +public class FormattedQueryResultList implements AAIDatum { + + @XmlElement(name = "results") + private List results; + @XmlElement(name = "results") + public List getResults () + { + return results; + } + @XmlElement(name = "results") + public void setResults (List results) + { + this.results = results; + } + + @Override + public String toString() + { + return "ClassPojo [results = "+results+"]"; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java new file mode 100644 index 000000000..aa32847c4 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java @@ -0,0 +1,133 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import org.openecomp.aai.inventory.v11.L3Network; +import org.openecomp.aai.inventory.v11.Pnf; +import org.openecomp.aai.inventory.v11.LogicalLink; +import org.openecomp.aai.inventory.v11.ServiceInstance; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "logical-link", + "pnf", + "l3-network", + "service-instance" +}) +public class InstanceFilter { + + @JsonProperty("logical-link") + private LogicalLink logicalLink; + @JsonProperty("pnf") + private Pnf pnf; + @JsonProperty("l3-network") + private L3Network l3Network; + @JsonProperty("service-instance") + private ServiceInstance serviceInstance; + + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The logicalLink + */ + @JsonProperty("logical-link") + public LogicalLink getLogicalLink() { + return logicalLink; + } + + /** + * + * @param logicalLink + * The logical-link + */ + @JsonProperty("logical-link") + public void setLogicalLink(LogicalLink logicalLink) { + this.logicalLink = logicalLink; + } + + /** + * + * @return + * The pnf + */ + @JsonProperty("pnf") + public Pnf getPnf() { + return pnf; + } + + /** + * + * @param pnf + * The pnf + */ + @JsonProperty("pnf") + public void setPnf(Pnf pnf) { + this.pnf = pnf; + } + + @JsonProperty("l3-network") + public L3Network getL3Network() { + return l3Network; + } + + @JsonProperty("l3-network") + public void setL3Network(L3Network l3Network) { + this.l3Network = l3Network; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + + @JsonProperty("service-instance") + public ServiceInstance getServiceInstance() { + return serviceInstance; + } + + @JsonProperty("service-instance") + public void setServiceInstance(ServiceInstance serviceInstance) { + this.serviceInstance = serviceInstance; + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilters.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilters.java new file mode 100644 index 000000000..265c1866c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilters.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "instance-filter" +}) +public class InstanceFilters { + + @JsonProperty("instance-filter") + private List instanceFilter = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The instanceFilter + */ + @JsonProperty("instance-filter") + public List getInstanceFilter() { + return instanceFilter; + } + + /** + * + * @param instanceFilter + * The instance-filter + */ + @JsonProperty("instance-filter") + public void setInstanceFilter(List instanceFilter) { + this.instanceFilter = instanceFilter; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java new file mode 100644 index 000000000..65350c23d --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "named-query-uuid" +}) +public class NamedQuery { + + @JsonProperty("named-query-uuid") + private String namedQueryUuid; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The namedQueryUuid + */ + @JsonProperty("named-query-uuid") + public String getNamedQueryUuid() { + return namedQueryUuid; + } + + /** + * + * @param namedQueryUuid + * The named-query-uuid + */ + @JsonProperty("named-query-uuid") + public void setNamedQueryUuid(String namedQueryUuid) { + this.namedQueryUuid = namedQueryUuid; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java new file mode 100644 index 000000000..8188acf23 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java @@ -0,0 +1,102 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; + +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "query-parameters", + "instance-filters" +}) +public class NamedQueryData implements AAIDatum { + + @JsonProperty("query-parameters") + private QueryParameters queryParameters; + @JsonProperty("instance-filters") + private InstanceFilters instanceFilters; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The queryParameters + */ + @JsonProperty("query-parameters") + public QueryParameters getQueryParameters() { + return queryParameters; + } + + /** + * + * @param queryParameters + * The query-parameters + */ + @JsonProperty("query-parameters") + public void setQueryParameters(QueryParameters queryParameters) { + this.queryParameters = queryParameters; + } + + /** + * + * @return + * The instanceFilters + */ + @JsonProperty("instance-filters") + public InstanceFilters getInstanceFilters() { + return instanceFilters; + } + + /** + * + * @param instanceFilters + * The instance-filters + */ + @JsonProperty("instance-filters") + public void setInstanceFilters(InstanceFilters instanceFilters) { + this.instanceFilters = instanceFilters; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java new file mode 100644 index 000000000..c6ddbcbca --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "named-query" +}) +public class QueryParameters { + + @JsonProperty("named-query") + private NamedQuery namedQuery; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The namedQuery + */ + @JsonProperty("named-query") + public NamedQuery getNamedQuery() { + return namedQuery; + } + + /** + * + * @param namedQuery + * The named-query + */ + @JsonProperty("named-query") + public void setNamedQuery(NamedQuery namedQuery) { + this.namedQuery = namedQuery; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Results.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Results.java new file mode 100644 index 000000000..45d8035e4 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Results.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.query; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.openecomp.aai.inventory.v11.*; + + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "genericVnf", + "pserver", + "complex" +}) +@XmlRootElement(name = "results") +public class Results { + + @XmlElement(name = "generic-vnf") + private GenericVnf genericVnf; + + @XmlElement(name = "complex") + private Complex complex; + + @XmlElement(name = "pserver") + private Pserver pserver; + + + @XmlElement(name = "generic-vnf") + public GenericVnf getGenericVnf () + { + return genericVnf; + } + @XmlElement(name = "generic-vnf") + public void setGenericVnf (GenericVnf genericVnf) + { + this.genericVnf = genericVnf; + } + + @Override + public String toString() + { + return " [generic-vnf = "+genericVnf+"]"; + } + @XmlElement(name = "complex") + public Complex getComplex() { + return complex; + } + @XmlElement(name = "complex") + public void setComplex(Complex complex) { + this.complex = complex; + } + @XmlElement(name = "pserver") + public Pserver getPserver() { + return pserver; + } + @XmlElement(name = "pserver") + public void setPserver(Pserver pserver) { + this.pserver = pserver; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Action.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Action.java new file mode 100644 index 000000000..f3d509987 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Action.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "action-data", + "action-type" +}) +public class Action { + + @JsonProperty("action-data") + private List actionData = new ArrayList(); + @JsonProperty("action-type") + private String actionType; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The actionData + */ + @JsonProperty("action-data") + public List getActionData() { + return actionData; + } + + /** + * + * @param actionData + * The action-data + */ + @JsonProperty("action-data") + public void setActionData(List actionData) { + this.actionData = actionData; + } + + /** + * + * @return + * The actionType + */ + @JsonProperty("action-type") + public String getActionType() { + return actionType; + } + + /** + * + * @param actionType + * The action-type + */ + @JsonProperty("action-type") + public void setActionType(String actionType) { + this.actionType = actionType; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatum.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatum.java new file mode 100644 index 000000000..0cd70012f --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatum.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "property-name", + "property-value" +}) +public class ActionDatum { + + @JsonProperty("property-name") + private String propertyName; + @JsonProperty("property-value") + private String propertyValue; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The propertyName + */ + @JsonProperty("property-name") + public String getPropertyName() { + return propertyName; + } + + /** + * + * @param propertyName + * The property-name + */ + @JsonProperty("property-name") + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + /** + * + * @return + * The propertyValue + */ + @JsonProperty("property-value") + public String getPropertyValue() { + return propertyValue; + } + + /** + * + * @param propertyValue + * The property-value + */ + @JsonProperty("property-value") + public void setPropertyValue(String propertyValue) { + this.propertyValue = propertyValue; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Update.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Update.java new file mode 100644 index 000000000..43f912dfa --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/Update.java @@ -0,0 +1,124 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "update-node-type", + "update-node-key", + "action" +}) +public class Update { + + @JsonProperty("update-node-type") + private String updateNodeType; + @JsonProperty("action") + private List action = new ArrayList(); + @JsonProperty("update-node-key") + private List updateNodeKey = new ArrayList(); + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The updateNodeType + */ + @JsonProperty("update-node-type") + public String getUpdateNodeType() { + return updateNodeType; + } + + /** + * + * @param updateNodeType + * The update-node-type + */ + @JsonProperty("update-node-type") + public void setUpdateNodeType(String updateNodeType) { + this.updateNodeType = updateNodeType; + } + + /** + * + * @return + * The action + */ + @JsonProperty("action") + public List getAction() { + return action; + } + + /** + * + * @param action + * The action + */ + @JsonProperty("action") + public void setAction(List action) { + this.action = action; + } + + /** + * + * @return + * The updateNodeKey + */ + @JsonProperty("update-node-key") + public List getUpdateNodeKey() { + return updateNodeKey; + } + + /** + * + * @param updateNodeKey + * The update-node-key + */ + @JsonProperty("update-node-key") + public void setUpdateNodeKey(List updateNodeKey) { + this.updateNodeKey = updateNodeKey; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKey.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKey.java new file mode 100644 index 000000000..caa1de450 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKey.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.update; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Generated("org.jsonschema2pojo") +@JsonPropertyOrder({ + "key-name", + "key-value" +}) +public class UpdateNodeKey { + + @JsonProperty("key-name") + private String keyName; + @JsonProperty("key-value") + private String keyValue; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + /** + * + * @return + * The keyName + */ + @JsonProperty("key-name") + public String getKeyName() { + return keyName; + } + + /** + * + * @param keyName + * The key-name + */ + @JsonProperty("key-name") + public void setKeyName(String keyName) { + this.keyName = keyName; + } + + /** + * + * @return + * The keyValue + */ + @JsonProperty("key-value") + public String getKeyValue() { + return keyValue; + } + + /** + * + * @param keyValue + * The key-value + */ + @JsonProperty("key-value") + public void setKeyValue(String keyValue) { + this.keyValue = keyValue; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java deleted file mode 100644 index ba5ef587e..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIClient.java +++ /dev/null @@ -1,220 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.IOException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v10.AvailabilityZone; -import org.openecomp.aai.inventory.v10.Complex; -import org.openecomp.aai.inventory.v10.CtagPool; -import org.openecomp.aai.inventory.v10.DvsSwitch; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.OamNetwork; -import org.openecomp.aai.inventory.v10.PInterface; -import org.openecomp.aai.inventory.v10.PhysicalLink; -import org.openecomp.aai.inventory.v10.Pserver; -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.aai.inventory.v10.Service; -import org.openecomp.aai.inventory.v10.ServiceInstance; -import org.openecomp.aai.inventory.v10.SitePairSet; -import org.openecomp.aai.inventory.v10.Tenant; -import org.openecomp.aai.inventory.v10.Vce; -import org.openecomp.aai.inventory.v10.VnfImage; -import org.openecomp.aai.inventory.v10.Vpe; -import org.openecomp.aai.inventory.v10.VplsPe; -import org.openecomp.aai.inventory.v10.VpnBinding; -import org.openecomp.aai.inventory.v10.Vserver; -import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; -import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; - -public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { - - // VCE - public boolean postNetworkVceData(String vnf_id, Vce request) throws AAIServiceException; - public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException; - public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // Service Inteface - public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException; - public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance request) throws AAIServiceException; - public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException; - - // VPE -// public Vpes requestNetworkVpeList() throws AAIServiceException; - public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException; - public boolean postNetworkVpeData(String vnf_id, Vpe request) throws AAIServiceException; - public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // VServers - public Vserver requestVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver request) throws AAIServiceException; - public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException; - - public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException; - public String getTenantIdFromVserverUrl(URL url); - public String getCloudOwnerFromVserverUrl(URL url); - public String getCloudRegionFromVserverUrl(URL url); - public String getVServerIdFromVserverUrl(URL url, String tennantId); - public Vserver requestVServerDataByURL(URL url) throws AAIServiceException; - - // VPLS-PE - public VplsPe requestNetworkVplsPeData(String equipment_name) throws AAIServiceException; - public boolean postNetworkVplsPeData(String vnf_id, VplsPe request) throws AAIServiceException; - public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException; - - - // Complexes - public Complex requestNetworkComplexData(String vnf_id) throws AAIServiceException; - public boolean postNetworkComplexData(String vnf_id, Complex request) throws AAIServiceException; - public boolean deleteNetworkComplexData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // CTag Pool - public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException; - - // --------------------------------- 1507 --------------------------- - // Data Change - public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException; - - public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException; - - public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException; - - public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException; - - public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException; - - public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException; - - //OAM-Network: - public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException; - //Availability-Zone: - public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException; - //Complex: - public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException; - - - /* DELETE */ - public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException; - //OAM-Network: - public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException; - //Availability-Zone: - public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException; - //Complex: - public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException; - - // ----------------- Release 1510 ---------------------- - // // GenericVNF - public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException; - public boolean postGenericVnfData(String vnf_id, GenericVnf request) throws AAIServiceException; - public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // DvsSwitch - public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException; - public boolean postDvsSwitchData(String vnf_id, DvsSwitch request) throws AAIServiceException; - public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // PInterface - public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException; - public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException; - public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException; - - // Physical Link - public PhysicalLink requestPhysicalLinkData(String vnf_id) throws AAIServiceException; - public boolean postPhysicalLinkData(String vnf_id, PhysicalLink request) throws AAIServiceException; - public boolean deletePhysicalLinkData(String vnf_id, String resourceVersion) throws AAIServiceException; - - // PServers - public Pserver requestPServerData(String hostname) throws AAIServiceException; - public boolean postPServerData(String hostname, Pserver server) throws AAIServiceException; - public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException; - - // L3Networks - public L3Network requestL3NetworkData(String networkId) throws AAIServiceException; - public L3Network requestL3NetworkQueryByName(String networkId) throws AAIServiceException; - public boolean postL3NetworkData(String networkId, L3Network request) throws AAIServiceException; - public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException; - - // Vpn Bindings - public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException; -// public boolean postVpnBindingData(String vpnId, VpnBinding request) throws AAIServiceException; - public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException; - - //VnfImage - public VnfImage requestVnfImageData(String vpnId) throws AAIServiceException; - public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException; - public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException; - - // UBB Notify - public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException; - - // 1512 - // Site Pair Site - public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException; - public boolean postSitePairSetData(String sitePairSetId, SitePairSet request) throws AAIServiceException; - public boolean deleteSitePairSetData(String sitePairSetId, String resourceVersion) throws AAIServiceException; - - // Services - public Service requestServiceData(String serviceId) throws AAIServiceException; - public boolean postServiceData(String serviceId, Service request) throws AAIServiceException; - public boolean deleteServiceData(String serviceId, String resourceVersion) throws AAIServiceException; - - // Node Query - 1602 - public SearchResults requestNodeQuery(String type, String entityIdentifier, String entityName) throws AAIServiceException; - public String requestDataByURL(URL url) throws AAIServiceException; -// public Object requestDataInstanceNodeQuery(String type, String vnf_name) throws AAIServiceException; - public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException; - - // // tenant - public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant request) throws AAIServiceException; -// public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException; - - - public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException; - public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException; - - public void logKeyError(String keys); - - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java deleted file mode 100644 index 3ba453d36..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIDeclarations.java +++ /dev/null @@ -1,2045 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLDecoder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.xml.bind.annotation.XmlType; - -import org.apache.commons.lang.StringUtils; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.InventoryResponseItem; -import org.openecomp.aai.inventory.v10.InventoryResponseItems; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.LogicalLink; -import org.openecomp.aai.inventory.v10.Metadata; -import org.openecomp.aai.inventory.v10.Metadatum; -import org.openecomp.aai.inventory.v10.Pnf; -import org.openecomp.aai.inventory.v10.Relationship; -import org.openecomp.aai.inventory.v10.RelationshipData; -import org.openecomp.aai.inventory.v10.RelationshipList; -import org.openecomp.aai.inventory.v10.ResultData; -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.aai.inventory.v10.ServiceInstance; -import org.openecomp.aai.inventory.v10.Vlan; -import org.openecomp.aai.inventory.v10.Vlans; -import org.openecomp.aai.inventory.v10.Vserver; -import org.onap.ccsdk.sli.adaptors.aai.AAIService.AAIRequestExecutor; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; -import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilter; -import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilters; -import org.onap.ccsdk.sli.adaptors.aai.query.NamedQuery; -import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; -import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters; -import org.onap.ccsdk.sli.adaptors.aai.query.Results; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - - -public abstract class AAIDeclarations implements AAIClient { - - public static final String TRUSTSTORE_PATH = "org.onap.ccsdk.sli.adaptors.aai.ssl.trust"; - public static final String TRUSTSTORE_PSSWD = "org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd"; - public static final String KEYSTORE_PATH = "org.onap.ccsdk.sli.adaptors.aai.ssl.key"; - public static final String KEYSTORE_PSSWD = "org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd"; - - public static final String APPLICATION_ID = "org.onap.ccsdk.sli.adaptors.aai.application"; - - public static final String CLIENT_NAME = "org.onap.ccsdk.sli.adaptors.aai.client.name"; - public static final String CLIENT_PWWD = "org.onap.ccsdk.sli.adaptors.aai.client.psswd"; - - - public static final String CONNECTION_TIMEOUT = "connection.timeout"; - public static final String READ_TIMEOUT = "read.timeout"; - - public static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri"; - - // Availability zones query - public static final String QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.query"; - - // Update - public static final String UPDATE_PATH = "org.onap.ccsdk.sli.adaptors.aai.update"; - - // Service instance - public static final String SVC_INSTANCE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.svcinst"; - public static final String SVC_INST_QRY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query"; - - // VServer - public static final String NETWORK_VSERVER_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vserver"; - - public static final String VNF_IMAGE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query"; - - public static final String PARAM_SERVICE_TYPE = "org.onap.ccsdk.sli.adaptors.aai.param.service.type"; - public static final String CERTIFICATE_HOST_ERROR = "org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore"; - - // UBB Notify - public static final String UBB_NOTIFY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.notify"; - public static final String SELFLINK_AVPN = "org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn"; - public static final String SELFLINK_FQDN = "org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn"; - - //Service - public static final String SERVICE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.service"; - - // P-Interfaces - public static final String P_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - - // site-pair-sets - public static final String SITE_PAIR_SET_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set"; - - // node query (1602) - public static final String QUERY_NODES_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; - - - protected abstract Logger getLogger(); - public abstract AAIRequestExecutor getExecutor(); - - - @Override - public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) - throws SvcLogicException { - - getLogger().debug("AAIService.query \tresource = "+resource); - - String vnfId = null; - String vnfName = null; - HashMap nameValues = keyToHashMap(key, ctx); - getLogger().debug("key = "+ nameValues.toString()); - - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - - // process data using new model - boolean useNewModelProcessing = true; - // process server query by name the old way - if(("vserver".equals(resource) || "vserver2".equals(resource))){ - if(nameValues.containsKey("vserver_name") || nameValues.containsKey("vserver-name") || nameValues.containsKey("vserver.vserver_name") || nameValues.containsKey("vserver.vserver-name")) - useNewModelProcessing = false; - } - if("generic-vnf".equals(resource)){ - if(nameValues.containsKey("vnf_name") || nameValues.containsKey("vnf-name") || nameValues.containsKey("generic_vnf.vnf_name") || nameValues.containsKey("generic-vnf.vnf-name")) - useNewModelProcessing = false; - } - - // process data using new model - if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { - - try { - return newModelQuery(resource, localOnly, select, key, prefix, orderBy, ctx); - } catch (Exception exc) { - getLogger().warn("Failed query - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - - ObjectMapper mapper = AAIService.getObjectMapper(); - Map attributes = new HashMap(); - - String modifier = null; - - if(resource.contains(":")) { - String[] tokens = resource.split(":"); - resource = tokens[0]; - if(tokens.length > 1) { - modifier = tokens[1]; - } - } - - resource = resource.toLowerCase().replace("-", "_"); - - try { - - switch(resource) { - case "generic_vnf": - vnfId = nameValues.get("vnf_id"); - if(nameValues.containsKey("vnf_id")) - vnfId = nameValues.get("vnf_id"); - else if(nameValues.containsKey("generic_vnf.vnf_name")) - vnfId = nameValues.get("generic_vnf.vserver_name"); - - if(nameValues.containsKey("vnf_name")) - vnfName = nameValues.get("vnf_name"); - else if(nameValues.containsKey("generic_vnf.vnf_name")) - vnfName = nameValues.get("generic_vnf.vnf_name"); - - if(vnfId != null && !vnfId.isEmpty()) { - // at this point of the project this part should not be executed - vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); - GenericVnf vnf = this.requestGenericVnfData(vnfId); - if(vnf == null) { - return QueryStatus.NOT_FOUND; - } - - attributes = mapper.convertValue(vnf, attributes.getClass()); - } else if(vnfName != null && !vnfName.isEmpty()) { - try { - vnfName = vnfName.trim().replace("'", "").replace("$", "").replace("'", ""); - GenericVnf vnf = this.requestGenericVnfeNodeQuery(vnfName); - if(vnf == null) { - return QueryStatus.NOT_FOUND; - } - vnfId=vnf.getVnfId(); - nameValues.put("vnf_id", vnfId); - attributes = mapper.convertValue(vnf, attributes.getClass()); - } catch (AAIServiceException exc) { - int errorCode = exc.getReturnCode(); - switch(errorCode) { - case 400: - case 404: - case 412: - break; - default: - getLogger().warn("Caught exception trying to refresh generic VNF", exc); - } - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - if(errorCode >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); - } - return QueryStatus.FAILURE; - } - } else { - getLogger().warn("No arguments are available to process generic VNF"); - return QueryStatus.FAILURE; - } - break; - case "vserver": - case "vserver2": - String vserverName = null; - if(nameValues.containsKey("vserver_name")) - vserverName = nameValues.get("vserver_name"); - else if(nameValues.containsKey("vserver.vserver_name")) - vserverName = nameValues.get("vserver.vserver_name"); - - String vserverId = null; - if(nameValues.containsKey("vserver_id")) - vserverId = nameValues.get("vserver_id"); - if(nameValues.containsKey("vserver.vserver_id")) - vserverId = nameValues.get("vserver.vserver_id"); - String tenantId = nameValues.get("teannt_id"); - - if(vserverName != null) vserverName = vserverName.trim().replace("'", "").replace("$", "").replace("'", ""); - if(vserverId != null) vserverId = vserverId.trim().replace("'", "").replace("$", "").replace("'", ""); - if(tenantId != null) tenantId = tenantId.trim().replace("'", "").replace("$", "").replace("'", ""); - - if (vserverName != null) { - URL vserverUrl = null; - try { - vserverUrl = this.requestVserverURLNodeQuery(vserverName); - } catch (AAIServiceException aaiexc) { - ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); - if (aaiexc.getReturnCode() >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if (aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - } - if (vserverUrl == null) { - return QueryStatus.NOT_FOUND; - } - - tenantId = getTenantIdFromVserverUrl(vserverUrl); - String cloudOwner = getCloudOwnerFromVserverUrl(vserverUrl); - String cloudRegionId = getCloudRegionFromVserverUrl(vserverUrl); - - Vserver vserver = null; - try { - vserver = this.requestVServerDataByURL(vserverUrl); - } catch (AAIServiceException aaiexc) { - ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); - if (aaiexc.getReturnCode() >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if (aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - } - if (vserver == null) { - return QueryStatus.NOT_FOUND; - } - attributes = mapper.convertValue(vserver, attributes.getClass()); - if (!attributes.containsKey("tenant-id") && tenantId != null) { - attributes.put("tenant-id", tenantId); - } - if (!attributes.containsKey("cloud-owner") && cloudOwner != null) { - attributes.put("cloud-owner", cloudOwner); - } - if (!attributes.containsKey("cloud-region-id") && cloudRegionId != null) { - attributes.put("cloud-region-id", cloudRegionId); - } - } else if (vserverId != null && tenantId != null) { - Vserver vserver = this.requestVServerData(tenantId, vserverId, "att-aic", "AAIAIC25"); - if(vserver == null) { - return QueryStatus.NOT_FOUND; - } - attributes = mapper.convertValue(vserver, attributes.getClass()); - if(!attributes.containsKey("tenant-id") && tenantId != null){ - attributes.put("tenant-id", tenantId); - } - } else { - return QueryStatus.FAILURE; - } - break; - - default: - return QueryStatus.FAILURE; - } - - QueryStatus retval = QueryStatus.SUCCESS; - - if (attributes == null || attributes.isEmpty()) { - retval = QueryStatus.NOT_FOUND; - getLogger().debug("No data found"); - } else { - if (ctx != null) { - if (prefix != null) { - ArrayList keys = new ArrayList(attributes.keySet()); - - int numCols = keys.size(); - - for (int i = 0; i < numCols; i++) { - String colValue = null; - String colName = keys.get(i); - Object object = attributes.get(colName); - - if(object != null && object instanceof String) { - colValue = (String)object; - - if (prefix != null) { - getLogger().debug("Setting "+prefix + "." + colName.replaceAll("_", "-")+" = "+ colValue); - ctx.setAttribute(prefix + "." + colName.replaceAll("_", "-"), colValue); - } else { - getLogger().debug("Setting " + colValue.replaceAll("_", "-")+" = "+colValue); - ctx.setAttribute(colValue.replaceAll("_", "-"), colValue); - } - } else if(object != null && object instanceof Map) { - if(colName.equals(modifier) || colName.equals("relationship-list")){ - String localNodifier = modifier; - if(localNodifier == null) - localNodifier = "relationship-list"; - Map properties = (Map)object; - writeMap(properties, prefix+"."+localNodifier, ctx); - } - } - } - } - } - } - getLogger().debug("Query - returning " + retval); - return (retval); - - } catch (Exception exc) { - getLogger().warn("Failed query - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - -// return QueryStatus.SUCCESS; - } - - private boolean checkOldFormat(String resource, HashMap nameValues) { - - switch(resource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - return true; - } - if(resource.contains(":")) { - resource = resource.substring(0, resource.indexOf(":")); - } - - Set keys = nameValues.keySet(); - for(String key : keys) { - if(!key.contains(".")) { - if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key)) - continue; - else { - getLogger().warn(String.format("key %s is incompatible with resource type '%s'", key, resource)); - return false; - } - } - } - return true; - } - - public void writeMap(Map properties, String prefix, SvcLogicContext ctx) { - Set mapKeys = properties.keySet(); - - for(String mapKey : mapKeys) { - Object entity = properties.get(mapKey); - if(entity instanceof ArrayList) { - writeList((ArrayList)entity, prefix + "." + mapKey, ctx); - } else - if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { - ctx.setAttribute(prefix + "." + mapKey, entity.toString()); - getLogger().debug(prefix + "." + mapKey + " : " + entity.toString()); - } else if(entity instanceof Map) { - String localPrefix = prefix; - if(mapKey != null) { - localPrefix = String.format("%s.%s", prefix, mapKey); - } - writeMap( (Map)entity, localPrefix, ctx); - } - } - } - - private void writeList(ArrayList list, String prefix, SvcLogicContext ctx) { - for(int i = 0; i < list.size(); i++ ) { - Object entity = list.get(i); - if(entity instanceof Map) { - writeMap( (Map)entity, prefix + "[" + i + "]", ctx); - } else - if(entity instanceof String || entity instanceof Long || entity instanceof Integer || entity instanceof Boolean) { - ctx.setAttribute(prefix, entity.toString()); - getLogger().debug(prefix + " : " + entity.toString()); - } - } - - if(list.size() > 0) { - ctx.setAttribute(prefix + "_length", Integer.toString(list.size())); - getLogger().debug(prefix + "_length" + " : " + Integer.toString(list.size())); - } - } - - @Override - public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) - throws SvcLogicException { - - getLogger().debug("AAIService.save\tresource="+resource); - HashMap nameValues = keyToHashMap(key, ctx); - - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - getLogger().warn("AAIService.save has unspecified resource"); - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - // keys passed - getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); - - // process params - if(params.containsKey("prefix")) { - Map tmpParams = ctxGetBeginsWith(ctx, params.get("prefix")); - if(!tmpParams.isEmpty()) { - params.putAll(tmpParams); -// params.remove("prefix"); - } - } - // params passed - getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); - - boolean useNewModelProcessing = true; - // process server query by name the old way - if(("vserver".equals(resource) || "vserver2".equals(resource))){ - if(nameValues.containsKey("vserver-name")) { - useNewModelProcessing = false; - } - - if(!params.containsKey("vserver-selflink")) { - - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - URL path = null; - try { - request.processRequestPathValues(nameValues); - path = request.getRequestUrl("GET", null); - params.put("vserver-selflink", path.toString()); - } catch (UnsupportedEncodingException | MalformedURLException e) { - // TODO : Fix this - params.put("vserver-selflink", "/vserver"); - } - } - } - - // process data using new model - if(useNewModelProcessing && AAIRequest.createRequest(resource, nameValues) != null) { - - try { - if(!resource.contains(":")){ - return newModelSave(resource, force, key, params, prefix, ctx); - } else { - String[] tokens = resource.split(":"); - String localResource = tokens[0]; - String dependency = tokens[1]; - - AAIDatum instance = newModelObjectRequest( localResource, nameValues, prefix, ctx); - if(instance == null) { - return QueryStatus.NOT_FOUND; - } - - switch(dependency){ - case "relationship-list": - newModelProcessRelationshipList(instance, params, prefix, ctx); - break; - } - // create a method to update relationship-list - AAIRequest request = AAIRequest.createRequest(localResource, nameValues); - request.setRequestObject(instance); - request.processRequestPathValues(nameValues); - - getExecutor().post(request); - getLogger().debug("Save relationship list - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - } catch (Exception exc) { - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - if(exc instanceof AAIServiceException) { - AAIServiceException aaiexc = (AAIServiceException)exc; - if(aaiexc.getReturnCode() >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if(aaiexc.getReturnCode() == 404) { - return QueryStatus.NOT_FOUND; - } - } - getLogger().warn("Failed save() - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } else { - String reSource = resource.toLowerCase().replace("-", "_"); - String vnfId = null; - - try { - switch(reSource) { - case "generic_vnf": - case "generic-vnf": - vnfId = nameValues.get("vnf_id"); - if(vnfId == null) { - getLogger().debug("Save(generic-vnf) with no vnf-id specified. Returning FAILURE"); - return QueryStatus.FAILURE; - } - vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); - GenericVnf vnf = this.requestGenericVnfData(vnfId); - String status = params.get("prov-status"); - boolean updated = false; - if(status != null && !status.isEmpty()) { - vnf.setProvStatus(status); - } - if(updated) { - this.postGenericVnfData(vnfId, vnf); - } - break; - case "vpe": - return update( resource, key, params, prefix, ctx) ; - - default: - getLogger().debug("Save() executing default path - returning FAILURE"); - return QueryStatus.FAILURE; - } - } catch (Exception exc) { - getLogger().warn("Failed save - returning FAILURE", exc); - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - return QueryStatus.FAILURE; - } - } - - getLogger().debug("Save - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - - @Override - public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { - - resource = resource.toLowerCase(); - HashMap nameValues = keyToHashMap(key, ctx); - getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - ctx.setAttribute(String.format("%s.error.message", prefix), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - - getLogger().debug("parms = "+ Arrays.toString(params.entrySet().toArray())); - - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - request = new UpdateRequest(request, params); - - String[] arguments = request.getArgsList(); - for(String name : arguments) { - String modifiedKey = name.replaceAll("-", "_"); - if(nameValues.containsKey(modifiedKey)) { - String argValue = nameValues.get(modifiedKey); - if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); - request.addRequestProperty(name, argValue); - } - } - - try { - QueryStatus retval = QueryStatus.SUCCESS; - - retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); - - if(retval == null || retval != QueryStatus.SUCCESS) { - return retval; - } - - String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); - if(resourceVersion == null) { - return QueryStatus.NOT_FOUND; - } - params.put("resource-version", resourceVersion); - - request.processRequestPathValues(nameValues); - getExecutor().patch(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - } catch (Exception exc) { - getLogger().warn("Failed update - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - - getLogger().debug("Update - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - - @Override - public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { - getLogger().debug("AAIService.delete\tresource="+resource); - HashMap nameValues = keyToHashMap(key, ctx); - getLogger().debug("key = "+ Arrays.toString(nameValues.entrySet().toArray())); - - if(!checkOldFormat(resource, nameValues)) { - ctx.setAttribute(String.format("%s.error.message", "aaiData"), String.format("Resource %s is not supported. Key string contains invaid identifiers", resource)); - return QueryStatus.FAILURE; - } - - if(resource == null || resource.isEmpty() || AAIRequest.createRequest(resource, nameValues) == null) { - ctx.setAttribute(String.format("%s.error.message", "tmpDelete"), String.format("Resource %s is not supported", resource)); - return QueryStatus.FAILURE; - } - - if(AAIRequest.createRequest(resource, nameValues) != null) { - if(resource.contains(":")) { - return processDeleteRelationshipList(resource, key, ctx, nameValues); - } - - - try { - QueryStatus retval = QueryStatus.SUCCESS; - - retval = newModelQuery(resource, false, null, key, "tmpDelete", null, ctx); - - if(retval == null || retval != QueryStatus.SUCCESS) { - return retval; - } - - String resourceVersion = ctx.getAttribute("tmpDelete.resource-version"); - if(resourceVersion == null) { - return QueryStatus.NOT_FOUND; - } - - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - request.processRequestPathValues(nameValues); - - if(getExecutor().delete(request, resourceVersion)) { - return QueryStatus.SUCCESS; - } - } catch(AAIServiceException aaiexc) { - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - else - return QueryStatus.FAILURE; - - } catch (Exception exc) { - getLogger().warn("requestGenericVnfData", exc); - return QueryStatus.FAILURE; - } - - } catch (Exception exc) { - getLogger().warn("Failed delete - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } else { - String resoourceName = resource; - String identifier = null; - - if(resoourceName == null) - return QueryStatus.FAILURE; - - if(resoourceName.contains(":")) { - String[] tokens = resoourceName.split(":"); - if(tokens != null && tokens.length > 0) { - resoourceName = tokens[0]; - identifier = tokens[1]; - } - } - if("relationship-list".equals(identifier) || "relationshipList".equals(identifier)) { -// RelationshipRequest relationshipRequest = new RelationshipRequest(); - if("generic-vnf".equals(resoourceName)){ - String vnfId = nameValues.get("vnf_id"); - String relatedTo = nameValues.get("related_to"); - vnfId = vnfId.trim().replace("'", "").replace("$", "").replace("'", ""); - relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); - - GenericVnf vnf; - try { - vnf = this.requestGenericVnfData(vnfId); - if(vnf == null) - return QueryStatus.NOT_FOUND; - } catch (AAIServiceException exc) { - getLogger().warn("Failed delete - returning NOT_FOUND", exc); - return QueryStatus.NOT_FOUND; - } - boolean itemRemoved = false; - RelationshipList relationshipList = vnf.getRelationshipList(); - List relationships = relationshipList.getRelationship(); - List iterableList = new LinkedList(relationships); - for(Relationship relationship : iterableList) { - if(relationship.getRelatedTo().equals(relatedTo)) { - relationships.remove(relationship); - itemRemoved = true; - } - } - - if(!itemRemoved) - return QueryStatus.NOT_FOUND; - -// AAIRequest masterRequest = new GenericVnfRequest(); -// masterRequest.addRequestProperty(GenericVnfRequest.VNF_ID, vnfId); -// relationshipRequest.addMasterRequest(masterRequest); -// Map attributes = objectToProperties(vnf); -// try { -// Boolean result = getExecutor().delete(relationshipRequest, attributes.get(AAIRequest.RESOURCE_VERSION)); -// } catch (AAIServiceException e) { -// return QueryStatus.FAILURE; -// } - - try { - this.postGenericVnfData(vnf.getVnfId(), vnf); - } catch (AAIServiceException exc) { - if(exc.getReturnCode() == 404){ - return QueryStatus.NOT_FOUND; - } else { - getLogger().warn("Failed delete - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - return QueryStatus.SUCCESS; - } - } - } - return QueryStatus.FAILURE; - } - - @Override - public QueryStatus exists(String resource, String key, String prefix, SvcLogicContext ctx) throws SvcLogicException { - return query(resource, false, null, key, prefix, null, ctx); - } - - @Override - public QueryStatus isAvailable(String arg0, String arg1, String arg2, SvcLogicContext arg3) - throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.isAvailable() has not been implemented yet"); - } - - @Override - public QueryStatus notify(String resource, String action, String key, SvcLogicContext ctx) throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.notify() has not been implemented yet"); - } - -// @Override - public QueryStatus newModelQuery(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) { - - Object response = null; - QueryStatus retval = QueryStatus.SUCCESS; - String modifier = null; - - HashMap nameValues = keyToHashMap(key, ctx); - if(resource.contains(":")) { - modifier = resource.split(":")[1]; - } - - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - Map params = new HashMap(); - - request.processRequestPathValues(nameValues); - if(nameValues.containsKey("prefix")){ - Map tmpParams = ctxGetBeginsWith(ctx, nameValues.get("prefix")); - if(!tmpParams.isEmpty()) { - params.putAll(tmpParams); - } - if("named-query".equals(resource)) - request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params)); - } - String rv = getExecutor().get(request); - - retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, modifier); - - } catch(AAIServiceException aaiexc) { - int errorCode = aaiexc.getReturnCode(); - ctx.setAttribute(prefix + ".error.message", aaiexc.getMessage()); - if(errorCode >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + aaiexc.getReturnCode()); - } - - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - - return QueryStatus.FAILURE; - } catch (Exception exc) { - getLogger().warn("requestGenericVnfData", exc); - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - return QueryStatus.FAILURE; - } - - return retval; - } - - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException - { - Object response = null; - - if(rv == null) { - return QueryStatus.NOT_FOUND; - } - - response = request.jsonStringToObject(rv); - if(response == null) { - return QueryStatus.NOT_FOUND; - } - - if("generic-query".equals(resource)) { - SearchResults rd = SearchResults.class.cast(response); - List rdList = rd.getResultData(); - if(rdList == null || rdList.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - ResultData rDatum = rdList.get(0); - nameValues.put("selflink", rDatum.getResourceLink()); - AAIRequest req2 = AAIRequest.createRequest(rDatum.getResourceType(), nameValues); - req2.processRequestPathValues(nameValues); - rv = getExecutor().get(req2); - if(rv == null) { - return QueryStatus.NOT_FOUND; - } - - response = req2.jsonStringToObject(rv); - if(response == null) { - return QueryStatus.NOT_FOUND; - } - } - - if("named-query".equals(resource)) { - InventoryResponseItems rd = InventoryResponseItems.class.cast(response); - List iRIlist = rd.getInventoryResponseItem(); - if(iRIlist == null || iRIlist.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - } - - if("nodes-query".equals(resource)) { - SearchResults rd = SearchResults.class.cast(response); - List rdList = rd.getResultData(); - if(rdList == null || rdList.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - ResultData rDatum = rdList.get(0); - response = rDatum; - } - - if("formatted-query".equals(resource)) { - FormattedQueryResultList rd = FormattedQueryResultList.class.cast(response); - List iRIlist = rd.getResults(); - if(iRIlist == null || iRIlist.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - } - - String preFix = null; - if(prefix == null || prefix.isEmpty()) { - preFix = ""; - } else { - preFix = prefix + "."; - } - - Map props = objectToProperties(response); - Set keys = props.keySet(); - for(String theKey: keys) { - if(getLogger().isTraceEnabled()) - getLogger().trace(theKey); - - Object value = props.get(theKey); - if(value == null) - continue; - Object type = value.getClass(); - if(value instanceof String) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - if(value instanceof Boolean) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - if(value instanceof Integer) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - if(value instanceof Long) { - ctx.setAttribute(preFix + theKey, value.toString()); - continue; - } - - if(value instanceof ArrayList) { - ArrayList array = ArrayList.class.cast(value); - for(int i = 0; i < array.size(); i++) { -// ctx.setAttribute(String.format("%s%s[%d]", preFix, theKey, i), array.get(i).toString()); - writeList(array, String.format("%s.%s", prefix, theKey), ctx); - } - continue; - } - - if("relationship-list".equals(theKey)){ - Map relationshipList = (Map)value; - // we are interested in seeing just the selected relationship - if(theKey.equals(modifier)) { - List relationships = (List)relationshipList.get("relationship"); - if(relationships != null && !relationships.isEmpty()) { - - List newRelationships = new LinkedList(); - newRelationships.addAll(relationships); - - for(Object obj : newRelationships){ - if(obj instanceof Map) { - Map relProperties = (Map)obj; - if(relProperties.containsKey("related-to")) { - Object relPropsRelatedTo = relProperties.get("related-to"); - - String relatedTo = nameValues.get("related_to"); - if(relatedTo != null) { - relatedTo = relatedTo.trim().replace("'", "").replace("$", "").replace("'", ""); - if(!relatedTo.equals(relPropsRelatedTo)) { - relationships.remove(relProperties); - } - continue; - } else { - continue; - } - } - } - } - } - } - writeMap(relationshipList, String.format("%s.%s", prefix, theKey), ctx); - continue; - } - - if(value instanceof Map) { - Map subnetsList = (Map)value; - writeMap(subnetsList, String.format("%s.%s", prefix, theKey), ctx); - continue; - } - - } - return QueryStatus.SUCCESS; - } - - - public QueryStatus newModelBackupRequest(String resource, Map params, String prefix, SvcLogicContext ctx) { - - QueryStatus retval = QueryStatus.SUCCESS; - HashMap nameValues = new HashMap(); - - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - boolean argsFound = false; - String[] arguments = request.getArgsList(); - for(String name : arguments) { - String tmpName = name.replaceAll("-", "_"); - String value = params.get(tmpName); - if(value != null && !value.isEmpty()) { - value = value.trim().replace("'", "").replace("$", "").replace("'", ""); - request.addRequestProperty(name, value); - argsFound = true; - } - } - if(!argsFound) { - getLogger().warn("No arguments were found. Terminating backup request."); - return QueryStatus.FAILURE; - } - - String rv = getExecutor().get(request); - ctx.setAttribute(prefix, rv); - } catch(AAIServiceException aaiexc) { - if(aaiexc.getReturnCode() == 404) - return QueryStatus.NOT_FOUND; - - return QueryStatus.FAILURE; - } catch (Exception exc) { - getLogger().warn("newModelBackupRequest", exc); - return QueryStatus.FAILURE; - } - - return retval; - } - - public AAIDatum newModelObjectRequest(String resource, Map params, String prefix, SvcLogicContext ctx) - throws AAIServiceException { - - AAIDatum response = null; - - try { - AAIRequest request = AAIRequest.createRequest(resource, params); - if(request == null) { - return null; - } - - request.processRequestPathValues(params); - String rv = getExecutor().get(request); - response = request.jsonStringToObject(rv); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - getLogger().warn("newModelBackupRequest", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public QueryStatus release(String arg0, String arg1, SvcLogicContext arg2) throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.release() has not been implemented yet"); - } - - @Override - public QueryStatus reserve(String arg0, String arg1, String arg2, String arg3, SvcLogicContext arg4) - throws SvcLogicException { - // TODO Auto-generated method stub - throw new SvcLogicException("Method AAIService.reserve() has not been implemented yet"); - } - - private QueryStatus newModelSave(String resource, boolean force, String key, Map parms, String prefix, SvcLogicContext ctx) { - getLogger().debug("Executing newModelSave for resource : " + resource); - HashMap nameValues = keyToHashMap(key, ctx); - - try { - ArrayList subResources = new ArrayList(); - Set set = parms.keySet(); - Map setters = new HashMap(); - Map getters = new HashMap(); - - // 1. find class - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = request.getModelClass(); - getLogger().debug(resourceClass.getName()); - AAIDatum instance = resourceClass.newInstance(); - - { - Annotation[] annotations = resourceClass.getAnnotations(); - for(Annotation annotation : annotations) { - Class anotationType = annotation.annotationType(); - String annotationName = anotationType.getName(); -// if("com.fasterxml.jackson.annotation.JsonPropertyOrder".equals(annotationName)){ - - // 2. find string property setters and getters for the lists - if("javax.xml.bind.annotation.XmlType".equals(annotationName)){ - XmlType order = (XmlType)annotation; - String[] values = order.propOrder(); - for(String value : values) { - String id = camelCaseToDashedString(value); - Field field = resourceClass.getDeclaredField(value); - Class type = field.getType(); - Method setter = null; - try { - setter = resourceClass.getMethod("set"+StringUtils.capitalize(value), type); - if(type.getName().startsWith("java.lang") || "boolean".equals(type.getName()) || "long".equals(type.getName())) { - try { - setter.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = parms.get(id); - - if(arglist[0] != null) { - if(!type.getName().equals("java.lang.String")) { -// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); - if("boolean".equals(type.getName())) { - arglist[0] = valueOf(Boolean.class, parms.get(id)); - } else if("long".equals(type.getName())) { - arglist[0] = valueOf(Long.class, parms.get(id)); - } else { - arglist[0] = valueOf(type, parms.get(id)); - } - } - Object o = setter.invoke(instance, arglist); - } - set.remove(id); - - } catch (Exception x) { - Throwable cause = x.getCause(); - getLogger().warn("Failed process for " + resourceClass.getName(), x); - } - } else if(type.getName().equals("java.util.List")) { - List newValues = new ArrayList(); - String length = id+"_length"; - if(!parms.isEmpty() && parms.containsKey(length)) { - String tmp = parms.get(length).toString(); - int count = Integer.valueOf(tmp); - for(int i=0; i relationshipKeys = new TreeSet(); - Set vlansKeys = new TreeSet(); - Set metadataKeys = new TreeSet(); - - for(String attribute : set) { - String value = parms.get(attribute); - if(attribute.startsWith("relationship-list")) { - relationshipKeys.add(attribute); - } else if(attribute.startsWith("vlans")) { - vlansKeys.add(attribute); - } else if(attribute.startsWith("metadata")) { - metadataKeys.add(attribute); - } - } - // 3. find list property getters - for(String attribute : set) { - String value = parms.get(attribute); - Method method = getters.get(attribute); - if(method != null) { - try { - method.setAccessible(true); - Object arglist[] = new Object[0]; -// arglist[0] = value; - Class[] types = method.getParameterTypes(); - if(types.length == 0){ - Object o = method.invoke(instance, arglist); - if(o instanceof ArrayList) { - ArrayList values = (ArrayList)o; -// getLogger().debug(String.format("Processing %s with parameter %s", types[0].getName(), value)); - value = value.replace("[", "").replace("]", ""); - List items = Arrays.asList(value.split("\\s*,\\s*")); - for(String s : items) { - values.add(s.trim()); - } - } - } - } catch (Exception x) { - Throwable cause = x.getCause(); - getLogger().warn("Failed process for " + resourceClass.getName(), x); - } - } - } - // 4. Process Relationships - // add relationship list - if( (subResources.contains("relationship-list") || subResources.contains("relationshipList")) && !relationshipKeys.isEmpty()) { - RelationshipList relationshipList = null; - Object obj = null; - Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - if(getRelationshipListMethod != null){ - try { - getRelationshipListMethod.setAccessible(true); - obj = getRelationshipListMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof RelationshipList){ - relationshipList = (RelationshipList)obj; - } else { - relationshipList = new RelationshipList(); - Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); - if(setRelationshipListMethod != null){ - try { - setRelationshipListMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = relationshipList; - - obj = setRelationshipListMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - List relationships = relationshipList.getRelationship(); - - int i = 0; - while(true){ - int j = 0; - String searchKey = "relationship-list.relationship[" + i + "].related-to"; - if(!parms.containsKey(searchKey)) - break; - Relationship relationship = new Relationship(); - relationships.add(relationship); - - String relatedTo = parms.get(searchKey); - relationship.setRelatedTo(relatedTo); - - List relData = relationship.getRelationshipData(); -// if(relData == null) { -// relData = new LinkedList(); -// relationship.setRelationshipData(relData); -// } - - while(true) { - String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; - String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; - if(!parms.containsKey(searchRelationshipKey)) - break; - - RelationshipData relDatum = new RelationshipData(); - relDatum.setRelationshipKey(parms.get(searchRelationshipKey)); - relDatum.setRelationshipValue(parms.get(searchRelationshipValue)); - relData.add(relDatum); - j++; - } - - i++; - } - } - - // 4. vlans - if(subResources.contains("vlans") && !vlansKeys.isEmpty()) { - Object obj = null; - Vlans vlanList = null; - Method getVLansMethod = resourceClass.getMethod("getVlans"); - if(getVLansMethod != null){ - try { - getVLansMethod.setAccessible(true); - obj = getVLansMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof Vlans){ - vlanList = (Vlans)obj; - } else { - vlanList = new Vlans(); - Method setVlansMethod = resourceClass.getMethod("setVlans", Vlans.class); - if(setVlansMethod != null){ - try { - setVlansMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = vlanList; - - obj = setVlansMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - int i = 0; - while(true){ - String searchKey = "vlans.vlan[" + i + "].vlan-interface"; - if(!parms.containsKey(searchKey)) - break; - - String vlanInterface = parms.get("vlans.vlan[" + i + "].vlan-interface"); - String vlanIdInner = parms.get("vlans.vlan[" + i + "].vlan-id-inner"); - String vlanIdOute = parms.get("vlans.vlan[" + i + "].vlan-id-outer"); - String speedValue = parms.get("vlans.vlan[" + i + "].speed-value"); - String speedUnits = parms.get("vlans.vlan[" + i + "].speed-units"); - - Vlan vlan = new Vlan(); - vlan.setVlanInterface(vlanInterface); - - if(vlanIdInner != null) { - Long iVlanIdInner = Long.parseLong(vlanIdInner); - vlan.setVlanIdInner(iVlanIdInner); - } - - if(vlanIdOute != null) { - Long iVlanIdOuter = Long.parseLong(vlanIdOute); - vlan.setVlanIdOuter(iVlanIdOuter); - } - - if(speedValue != null) { - vlan.setSpeedValue(speedValue); - vlan.setSpeedUnits(speedUnits); - } - - vlanList.getVlan().add(vlan); - i++; - } - } - - // 5. metadata - if(subResources.contains("metadata") && !metadataKeys.isEmpty()) { - Object obj = null; - Metadata metadataList = null; - Method getMetadataMethod = resourceClass.getMethod("getMetadata"); - if(getMetadataMethod != null){ - try { - getMetadataMethod.setAccessible(true); - obj = getMetadataMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof Metadata){ - metadataList = (Metadata)obj; - } else { - metadataList = new Metadata(); - Method setMetadataMethod = resourceClass.getMethod("setMetadata", Metadata.class); - if(setMetadataMethod != null){ - try { - setMetadataMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = metadataList; - - obj = setMetadataMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - if(metadataList.getMetadatum() == null) { -// metadataList.setMetadatum(new ArrayList()); - } - - // process data - int i = 0; - while(true){ - String metaKey = "metadata.metadatum[" + i + "].meta-key"; - if(!parms.containsKey(metaKey)) - break; - - String metaValue = parms.get("metadata.metadatum[" + i + "].meta-value"); - - Metadatum vlan = new Metadatum(); - vlan.setMetaname(metaKey); - vlan.setMetaval(metaValue); - - metadataList.getMetadatum().add(vlan); - i++; - } - - } - - - // 6. Prepare AAI request - String[] args = request.getArgsList(); - for(String arg : args) { - String modifiedKey = arg.replaceAll("-", "_"); - if(nameValues.containsKey(modifiedKey)) { - String argValue = nameValues.get(modifiedKey); - if(argValue != null) argValue = argValue.trim().replace("'", "").replace("$", "").replace("'", ""); - request.addRequestProperty(arg, argValue); - } - } - - request.processRequestPathValues(nameValues); - request.setRequestObject(instance); - Object response = getExecutor().post(request); - if(request.expectsDataFromPUTRequest()){ - if(response != null && response instanceof String) { - String rv = response.toString(); - QueryStatus retval = processResponseData(rv, resource, request, prefix, ctx, nameValues, null); - getLogger().debug("newModelSave - returning " + retval.toString()); - return retval; - } - } - - } catch(AAIServiceException exc){ - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - int returnCode = exc.getReturnCode(); - if(returnCode >= 300) { - ctx.setAttribute(prefix + ".error.http.response-code", "" + exc.getReturnCode()); - } - - if(returnCode == 400 || returnCode == 412) - return QueryStatus.FAILURE; - else if(returnCode == 404) - return QueryStatus.NOT_FOUND; - else { - getLogger().warn("Failed newModelSave - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } catch(Exception exc){ - getLogger().warn("Failed newModelSave - returning FAILURE", exc); - ctx.setAttribute(prefix + ".error.message", exc.getMessage()); - return QueryStatus.FAILURE; - } - - getLogger().debug("newModelSave - returning SUCCESS"); - return QueryStatus.SUCCESS; - } - - private static final String regex = "([A-Z][a-z,0-9]+)"; - private static final String replacement = "-$1"; - - private String camelCaseToDashedString(String propOrder) { - return propOrder.replaceAll(regex, replacement).toLowerCase(); - } - - private QueryStatus newModelProcessRelationshipList(Object instance, Map params, String prefix, SvcLogicContext ctx) throws Exception { - - Class resourceClass = instance.getClass(); - - Set relationshipKeys = new TreeSet(); - - Set set = params.keySet(); - - for(String attribute : set) { - String value = params.get(attribute); - - if(attribute.startsWith("relationship-list")) { - relationshipKeys.add(attribute); - } - } - - // 3. Process Relationships - // add relationship list - if(!relationshipKeys.isEmpty()) { - RelationshipList relationshipList = null; - Object obj = null; - Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - if(getRelationshipListMethod != null){ - try { - getRelationshipListMethod.setAccessible(true); - obj = getRelationshipListMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof RelationshipList){ - relationshipList = (RelationshipList)obj; - } else { - relationshipList = new RelationshipList(); - Method setRelationshipListMethod = resourceClass.getMethod("setRelationshipList", RelationshipList.class); - if(setRelationshipListMethod != null){ - try { - setRelationshipListMethod.setAccessible(true); - Object arglist[] = new Object[1]; - arglist[0] = relationshipList; - - obj = setRelationshipListMethod.invoke(instance, arglist); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } - - boolean createdNewRelationships = false; - List relationships = relationshipList.getRelationship(); - if(relationships == null) { - relationships = new ArrayList(); - createdNewRelationships = true; - } - - int i = 0; - int j = 0; - while(true){ - String searchKey = "relationship-list.relationship[" + i + "].related-to"; - if(!params.containsKey(searchKey)) - break; - - j = 0; - String relatedTo = params.get(searchKey); - String relatedLinkKey = "relationship-list.relationship[" + i + "].related-link"; - String relatedLink = null; - if(params.containsKey(relatedLinkKey)) { - relatedLink = params.get(relatedLinkKey); - } - - Relationship relationship = new Relationship(); - relationships.add(relationship); - relationship.setRelatedTo(relatedTo); - if(relatedLink != null) { - relationship.setRelatedLink(relatedLink); - } else { - List relData = relationship.getRelationshipData(); - - while(true) { - String searchRelationshipKey = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key"; - String searchRelationshipValue = "relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value"; - if(!params.containsKey(searchRelationshipKey)) - break; - - RelationshipData relDatum = new RelationshipData(); - relDatum.setRelationshipKey(params.get(searchRelationshipKey)); - relDatum.setRelationshipValue(params.get(searchRelationshipValue)); - relData.add(relDatum); - j++; - } - } - - - i++; - } - } - - return QueryStatus.SUCCESS; - } - - private Relationship findRelationship(List relationships, String relatedTo) { - if(relatedTo == null) - return null; - - for(Relationship relationship : relationships) { - if(relationship.getRelatedTo().equals(relatedTo)){ - return relationship; - } - } - return null; - } - - protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { - if (key == null) { - return (null); - } - - getLogger().debug("Converting key [" + key + "] to where clause"); - - if (key.startsWith("'") && key.endsWith("'")) { - key = key.substring(1, key.length() - 1); - - getLogger().debug("Stripped outer single quotes - key is now [" + key + "]"); - } - - String[] keyTerms = key.split("\\s+"); - - StringBuffer whereBuff = new StringBuffer(); - String term1 = null; - String op = null; - String term2 = null; - HashMap results = new HashMap(); - - for (int i = 0; i < keyTerms.length; i++) { - if (term1 == null) { - if ("and".equalsIgnoreCase(keyTerms[i]) - || "or".equalsIgnoreCase(keyTerms[i])) { - // Skip over ADD/OR - } else { - term1 = resolveTerm(keyTerms[i], ctx); - } - } else if (op == null) { - if ("==".equals(keyTerms[i])) { - op = "="; - } else { - op = keyTerms[i]; - } - } else { - term2 = resolveTerm(keyTerms[i], ctx); - term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); - results.put(term1, term2); - - term1 = null; - op = null; - term2 = null; - } - } - - return (results); - } - - private String resolveTerm(String term, SvcLogicContext ctx) { - if (term == null) { - return (null); - } - - getLogger().debug("resolveTerm: term is " + term); - - if (term.startsWith("$") && (ctx != null)) { - // Resolve any index variables. - - return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); - } else if (term.startsWith("'") || term.startsWith("\"")) { - return (term); - } else { - return (term.replaceAll("-", "_")); - - } - - } - - private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { - - if (ctxVarName.indexOf('[') == -1) { - // Ctx variable contains no arrays - return (ctx.getAttribute(ctxVarName)); - } - - // Resolve any array references - StringBuffer sbuff = new StringBuffer(); - String[] ctxVarParts = ctxVarName.split("\\["); - sbuff.append(ctxVarParts[0]); - for (int i = 1; i < ctxVarParts.length; i++) { - if (ctxVarParts[i].startsWith("$")) { - int endBracketLoc = ctxVarParts[i].indexOf("]"); - if (endBracketLoc == -1) { - // Missing end bracket ... give up parsing - getLogger().warn("Variable reference " + ctxVarName - + " seems to be missing a ']'"); - return (ctx.getAttribute(ctxVarName)); - } - - String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); - String remainder = ctxVarParts[i].substring(endBracketLoc); - - sbuff.append("["); - sbuff.append(ctx.getAttribute(idxVarName)); - sbuff.append(remainder); - - } else { - // Index is not a variable reference - sbuff.append("["); - sbuff.append(ctxVarParts[i]); - } - } - - return (ctx.getAttribute(sbuff.toString())); - } - - - public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException { - String resource = params.get("resource").toLowerCase(); - String prefix = params.get("data-key"); - - HashMap nameValues = new HashMap(); - if(AAIRequest.createRequest(resource, nameValues) != null) { - - try { - return newModelBackupRequest(resource, params, prefix, ctx); - } catch (Exception exc) { - getLogger().warn("Failed backup - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - - return QueryStatus.NOT_FOUND; - } - - @Override - public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException { - - QueryStatus retval = QueryStatus.SUCCESS; - String resource = params.get("resource").toLowerCase(); - String prefix = params.get("data-key"); - - HashMap nameValues = new HashMap(); - if(AAIRequest.createRequest(resource, nameValues) != null) { - - try { - retval = newModelBackupRequest(resource, params, "tmpRestore", ctx); - if(retval == QueryStatus.SUCCESS) { - String current_json = ctx.getAttribute("tmpRestore"); - ctx. setAttribute("tmpRestore", null); - - String snapshot_json = ctx.getAttribute(prefix); - } - } catch (Exception exc) { - getLogger().warn("Failed restore - returning FAILURE", exc); - return QueryStatus.FAILURE; - } - } - - return QueryStatus.NOT_FOUND; - } - - protected Map objectToProperties(Object object) { - ObjectMapper mapper = AAIService.getObjectMapper(); - return mapper.convertValue(object, Map.class); - } - - static T valueOf(Class klazz, String arg) { - Exception cause = null; - T ret = null; - try { - ret = klazz.cast(klazz.getDeclaredMethod("valueOf", String.class).invoke(null, arg)); - } catch (NoSuchMethodException exc) { - LoggerFactory.getLogger(AAIService.class).warn("Wrong data type", exc); - ret = klazz.cast(arg); - } catch (IllegalAccessException e) { - cause = e; - } catch (InvocationTargetException e) { - cause = e; - } - if (cause == null) { - return ret; - } else { - throw new IllegalArgumentException(cause); - } - } - - private QueryStatus processDeleteRelationshipList(String resource, String key, SvcLogicContext ctx, HashMap nameValues) { - try { - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - if(request == null) { - return QueryStatus.FAILURE; - } - - request.processRequestPathValues(nameValues); - URL url = request.getRequestUrl("GET", null); - - Class resourceClass = request.getModelClass(); - Object instance = getResource(url.toString(), resourceClass); - if(instance == null) - return QueryStatus.NOT_FOUND; - - // get resource version - String resourceVersion = null; - Method getResourceVersionMethod = resourceClass.getMethod("getResourceVersion"); - if(getResourceVersionMethod != null){ - try { - getResourceVersionMethod.setAccessible(true); - Object object = getResourceVersionMethod.invoke(instance); - if(object != null) - resourceVersion = object.toString(); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - - RelationshipList relationshipList = null; - Object obj = null; - Method getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - if(getRelationshipListMethod != null){ - try { - getRelationshipListMethod.setAccessible(true); - obj = getRelationshipListMethod.invoke(instance); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - if(obj != null && obj instanceof RelationshipList){ - relationshipList = (RelationshipList)obj; - } else { - getLogger().debug("No relationships found to process."); - return QueryStatus.NOT_FOUND; - } - - if(relationshipList.getRelationship() == null || relationshipList.getRelationship().isEmpty()) { - return QueryStatus.NOT_FOUND; - } - String relatedTo = nameValues.get("related_to"); - if(relatedTo == null) { - return QueryStatus.FAILURE; - } - - relatedTo = relatedTo.replaceAll("_", "-"); - - String relatedLink = nameValues.get("relationship.related_link"); - if(relatedLink != null) { - relatedLink = URLDecoder.decode(relatedLink, "UTF-8"); - } - - List relationships = relationshipList.getRelationship(); - List relationshipsToDelete = new LinkedList(); - - for(Relationship relationship : relationships) { - if(relatedTo.equals(relationship.getRelatedTo())) { - if(relatedLink != null) { - if(relationship.getRelatedLink() != null ) { - String localRelatedLink = relationship.getRelatedLink(); - localRelatedLink = URLDecoder.decode(localRelatedLink, "UTF-8"); - if(localRelatedLink.endsWith(relatedLink)) { - getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); - relationshipsToDelete.add(relationship); - } - } - } else { - getLogger().debug(String.format("Found relationship of '%s' to keyword '%s'", relationship.getRelatedTo(), relatedTo)); - relationshipsToDelete.add(relationship); - } - } - } - if(relationshipsToDelete == null || relationshipsToDelete.isEmpty()) { - getLogger().info(String.format("Relationship has not been found for %s", key)); - return QueryStatus.NOT_FOUND; - } - - String path = url.toString(); - path = path + "/relationship-list/relationship"; - URL deleteUrl = new URL(path); - - ObjectMapper mapper = AAIService.getObjectMapper(); - - boolean cumulativeResponse = true; - - for(Relationship targetRelationship : relationshipsToDelete) { - String json_text = mapper.writeValueAsString(targetRelationship); - boolean response = deleteRelationshipList(deleteUrl, json_text); - if(!response) - cumulativeResponse = response; - - } - - if(!cumulativeResponse) - return QueryStatus.FAILURE; - - return QueryStatus.SUCCESS; - - } catch(Exception exc) { - getLogger().warn("processDelete", exc); - return QueryStatus.FAILURE; - } - } - - static final Map ctxGetBeginsWith( SvcLogicContext ctx, String prefix ) { - Map tmpPrefixMap = new HashMap(); - - if(prefix == null || prefix.isEmpty()){ - return tmpPrefixMap; - } - - for( String key : ctx.getAttributeKeySet() ) { - if( key.startsWith(prefix) ) { - String tmpKey = key.substring(prefix.length() + 1); - tmpPrefixMap.put( tmpKey, ctx.getAttribute(key)); - } - } - - Map prefixMap = new HashMap(); - Pattern p = Pattern.compile(".*\\[\\d\\]"); - - SortedSet keys = new TreeSet(tmpPrefixMap.keySet () ); - for(String key : keys) { - Matcher m = p.matcher(key); - if(m.matches()) { - continue; - } else if(key.endsWith("_length")) { - String listKey = key.substring(0, key.indexOf("_length")); - int max = Integer.parseInt(tmpPrefixMap.get(key)); - - ArrayList data = new ArrayList(); - for(int x = 0; x < max; x++){ - String tmpKey = String.format("%s[%d]", listKey, x); - String tmpValue = tmpPrefixMap.get(tmpKey); - if(tmpValue != null && !tmpValue.isEmpty()) { - data.add(tmpValue); - } - } - if(!data.isEmpty()) { - prefixMap.put(listKey, data.toString()); - } else { - prefixMap.put(key, tmpPrefixMap.get(key)); - } - } else { - prefixMap.put(key, tmpPrefixMap.get(key)); - } - } - - return prefixMap; - } - - /** - */ - protected NamedQueryData extractNamedQueryDataFromQueryPrefix(HashMap nameValues, Map parms) { - if(parms.isEmpty()) { - return null; - } - - NamedQueryData data = new NamedQueryData(); - - // query parameters - if(data.getQueryParameters() == null) { - data.setQueryParameters(new QueryParameters()); - } - String namedQueryUuid = nameValues.get("named-query-uuid".replaceAll("-", "_")); - if(namedQueryUuid == null) { - namedQueryUuid = parms.get("query-parameters.named-query.named-query-uuid"); - } - NamedQuery namedQuery = new NamedQuery(); - namedQuery.setNamedQueryUuid(namedQueryUuid); - data.getQueryParameters().setNamedQuery(namedQuery); - - // instance filters - if(data.getInstanceFilters() == null) { - data.setInstanceFilters(new InstanceFilters()); - } - - - String quantity = parms.get("instance-filters.instance-filter_length"); - if(quantity != null && StringUtils.isNumeric(quantity)) { - int max = Integer.parseInt(quantity); - for(int i = 0; i < max; i++) { - String keyPattern = String.format("instance-filters.instance-filter[%d].", i); - Set keys = parms.keySet(); - for(String key: keys) { - if(key.startsWith(keyPattern)){ - String value = parms.get(key); - String remainder = key.substring(keyPattern.length()); - String[] split = remainder.split("\\."); - getLogger().debug(String.format("%s", remainder)); - if("logical-link".equals(split[0])) { - InstanceFilter insf = null; - if(data.getInstanceFilters().getInstanceFilter().isEmpty()) { - insf = new InstanceFilter(); - data.getInstanceFilters().getInstanceFilter().add(insf); - } else { - insf = data.getInstanceFilters().getInstanceFilter().get(0); - } - LogicalLink logicalLink = insf.getLogicalLink(); - if(logicalLink == null) { - logicalLink = new LogicalLink(); - insf.setLogicalLink(logicalLink); - } - - switch(split[1]) { - case "link-name": - logicalLink.setLinkName(value); - break; - case "link-type": - logicalLink.setLinkType(value); - break; - case "operational-state": - logicalLink.setOperationalStatus(value); - break; - } - - } else if("pnf".equals(split[0])) { - Pnf pnf = new Pnf(); - pnf.setPnfName(value); - - InstanceFilter insf = new InstanceFilter(); - insf.setPnf(pnf); - data.getInstanceFilters().getInstanceFilter().add(insf); - - } else if("service-instance".equals(split[0])) { - ServiceInstance serviceInstance = new ServiceInstance(); - serviceInstance.setServiceInstanceId(value); - - InstanceFilter insf = new InstanceFilter(); - insf.setServiceInstance(serviceInstance); - data.getInstanceFilters().getInstanceFilter().add(insf); - - } else if("l3-network".equals(split[0])) { - L3Network l3Network = new L3Network(); - if("network-role".equals(split[1])) { - l3Network.setNetworkRole(value); - } - - InstanceFilter insf = new InstanceFilter(); - insf.setL3Network(l3Network); - data.getInstanceFilters().getInstanceFilter().add(insf); - } - } - } - } - } - - return data; - } - - public abstract T getResource(String key, Class type) throws AAIServiceException ; - protected abstract boolean deleteRelationshipList(URL url, String caller) throws AAIServiceException; -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java deleted file mode 100644 index d315bad1c..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIExecutorInterface.java +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -public interface AAIExecutorInterface { - public Object get(AAIRequest request) throws AAIServiceException; - public Object post(AAIRequest request) throws AAIServiceException; - public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException; - public Object query(AAIRequest request, Class clas) throws AAIServiceException; - public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException; -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java deleted file mode 100644 index 4f2181f6c..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIRequest.java +++ /dev/null @@ -1,420 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.BitSet; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.TreeSet; - -import org.apache.commons.lang.StringUtils; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public abstract class AAIRequest { - protected static final Logger LOG = LoggerFactory.getLogger(AAIRequest.class); - - protected static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri"; - - protected static final String MASTER_REQUEST = "master-request"; - - public static final String RESOURCE_VERSION = "resource-version"; - - public static final String DEPTH = "depth"; - - protected static Properties configProperties; - protected final String target_uri; - protected static AAIService aaiService; - - protected AAIDatum requestDatum; - - protected final Properties requestProperties = new Properties(); - - - public static AAIRequest createRequest(String resoourceName, Map nameValues){ - - String resoource = resoourceName; - - if(resoource == null) - return null; - - if(resoource.contains(":")) { - String[] tokens = resoource.split(":"); - if(tokens != null && tokens.length > 0) { - resoource = tokens[0]; - } - } - - if(nameValues.containsKey("selflink")){ - Class clazz = null; - try { - clazz = getClassFromResource(resoource) ; - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return null; - } - - if(clazz != null) - return new SelfLinkRequest(clazz); - else - return null; - } - - switch(resoource){ - case "generic-query": - return new GenericQueryRequest(); - case "named-query": - return new NamedQueryRequest(); - case "nodes-query": - return new NodesQueryRequest(); - case "custom-query": - return new CustomQueryRequest(); - case "linterface": - return new LInterfaceRequest(LInterfaceRequest.TYPE.L2_BRIDGE_SBG); - case "l2-bridge-sbg": - return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_SBG); - case "l2-bridge-bgf": - return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_BGF); - case "echo": - case "test": - return new EchoRequest(); - - default: - { - AAIRequest request = getRequestFromResource(resoource); - if(request == null) { - return null; - } - return request; - } - } - } - - - /** - * Map containing resource tag to its bit position in bitset mapping - */ - private static Map tagValues = new LinkedHashMap(); - /** - * Map containing bitset value of the path to its path mapping - */ - private static Map bitsetPaths = new LinkedHashMap(); - - - public static void setProperties(Properties props, AAIService aaiService) { - AAIRequest.configProperties = props; - AAIRequest.aaiService = aaiService; - - try - { - URL url = null; - Bundle bundle = FrameworkUtil.getBundle(AAIServiceActivator.class); - if(bundle != null) { - BundleContext ctx = bundle.getBundleContext(); - if(ctx == null) - return; - - url = ctx.getBundle().getResource(AAIService.PATH_PROPERTIES); - } else { - url = aaiService.getClass().getResource("/aai-path.properties"); - } - - InputStream in = url.openStream(); - Reader reader = new InputStreamReader(in, "UTF-8"); - - Properties properties = new Properties(); - properties.load(reader); - LOG.info("loaded " + properties.size()); - - Set keys = properties.stringPropertyNames(); - - int index = 0; - Set resourceNames = new TreeSet(); - - for(String key : keys) { - String[] tags = key.split("\\|"); - for(String tag : tags) { - if(!resourceNames.contains(tag)) { - resourceNames.add(tag); - tagValues.put(tag, Integer.toString(++index)); - } - } - BitSet bs = new BitSet(256); - for(String tag : tags) { - String value = tagValues.get(tag); - Integer bitIndex = Integer.parseInt(value) ; - bs.set(bitIndex); - } - String path = properties.getProperty(key); - LOG.info(String.format("bitset %s\t\t%s", bs.toString(), path)); - bitsetPaths.put(bs, path); - } - LOG.info("loaded " + resourceNames.toString()); - } - catch (Exception e) - { - LOG.error("Caught exception", e); - } - } - - public AAIRequest() { - target_uri = configProperties.getProperty(TARGET_URI); - } - - public void addRequestProperty(String key, String value) { - requestProperties.put(key, value); - } - - public final void setRequestObject(AAIDatum value) { - requestDatum = value; - } - - public final AAIDatum getRequestObject() { - return requestDatum; - } - - public final void addMasterRequest(AAIRequest masterRequest) { - requestProperties.put(MASTER_REQUEST, masterRequest); - } - - protected static String encodeQuery(String param) throws UnsupportedEncodingException { - return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); - } - - protected void handleException(AAIRequest lInterfaceRequest, JsonProcessingException exc) { - aaiService.getLogger().warn("Could not deserialize object of type " + lInterfaceRequest.getClass().getSimpleName(), exc) ; - } - -// public abstract URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException; - - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - - request_url = target_uri + getRequestPath(); - - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - -// request_url = processPathData(request_url, requestProperties); - - for(String resoourceName:uniqueResources) { - AAIRequest locRequest = AAIRequest.createRequest(resoourceName, new HashMap()); - if(locRequest != null) { - Class clazz = locRequest.getClass(); - Method function = null; - try { - function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); - request_url = (String) function.invoke(null, request_url, requestProperties); - } catch (Exception e) { - e.printStackTrace(); - } -// request_url = locRequest.processPathData(request_url, requestProperties); - } - } - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - - return http_req_url; - } - - - protected String getRequestPath() throws MalformedURLException { - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - BitSet bitset = new BitSet(); - for(String key : uniqueResources) { - if(tagValues.containsKey(key)) { - Object tmpValue = tagValues.get(key); - if(tmpValue != null) { - String value = tmpValue.toString(); - int bitIndex = Integer.parseInt(value); - bitset.set(bitIndex); - } - } - } - - String path = bitsetPaths.get(bitset); - if(path == null) { - throw new MalformedURLException("PATH not found for key string containing valies :" +requestProperties.toString()); - } - return path; - } - - public abstract URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException; - - public abstract String toJSONString(); - - public abstract String[] getArgsList(); - - public abstract Class getModelClass() ; - - public String getPrimaryResourceName(String resource) { - return resource; - } - - public String formatKey(String argument) { - return argument; - } - - public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { - if(jsonData == null) { - return null; - } - - AAIDatum response = null; - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(jsonData, getModelClass()); - return response; - } - - protected static Set extractUniqueResourceSetFromKeys(Set keySet) { - Set uniqueResources = new TreeSet(); - List keys = new ArrayList(keySet); - for(String resource : keys) { - if(resource.contains(".")) { - String [] split = resource.split("\\."); - uniqueResources.add(split[0].replaceAll("_", "-")); - } - } - return uniqueResources; - } - - public void processRequestPathValues(Map nameValues) { - Set uniqueResources = extractUniqueResourceSetFromKeys(nameValues.keySet()); - - Set tokens = new TreeSet(); - tokens.add(DEPTH); - tokens.addAll(Arrays.asList(this.getArgsList())); - - for(String resoourceName:uniqueResources) { - AAIRequest locRequest = AAIRequest.createRequest(resoourceName, nameValues); - if(locRequest != null) - tokens.addAll(Arrays.asList(locRequest.getArgsList())); - } - - String[] arguments = tokens.toArray(new String[0]); - for(String name : arguments) { - String tmpName = name.replaceAll("-", "_"); - String value = nameValues.get(tmpName); - if(value != null && !value.isEmpty()) { - value = value.trim().replace("'", "").replace("$", "").replace("'", ""); - this.addRequestProperty(name, value); - } - } - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - return request_url; - } - - public boolean isDeleteDataRequired() { - return false; - } - - ObjectMapper getObjectMapper() { - return AAIService.getObjectMapper(); - } - - protected static Class getClassFromResource(String resoourceName) throws ClassNotFoundException { - String className = GenericVnf.class.getName(); - String[] split = resoourceName.split("-"); - for(int i = 0; i < split.length; i++) { - split[i] = StringUtils.capitalize(split[i]); - } - - String caps = StringUtils.join(split); - className = className.replace("GenericVnf", caps); - Class clazz = null; - try { - clazz = (Class)Class.forName(className); - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return null; - } - - return clazz; - } - - protected static AAIRequest getRequestFromResource(String resoourceName) { - - Class clazz = null; - try { - clazz = getClassFromResource(resoourceName); - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return null; - } - if(clazz == null) { - return null; - } - GenericRequest request = new GenericRequest(clazz); - return request; - } - - public static Map splitQuery(String query) throws UnsupportedEncodingException { - Map query_pairs = new LinkedHashMap(); - - if(query != null && !query.isEmpty()) { - String[] pairs = query.split("&"); - for (String pair : pairs) { - int idx = pair.indexOf("="); - query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); - } - } - return query_pairs; - } - - protected boolean expectsDataFromPUTRequest() { - return false; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java deleted file mode 100644 index c50178bc5..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIService.java +++ /dev/null @@ -1,3278 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.NoSuchAlgorithmException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.TimeZone; -import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import javax.net.ssl.SSLSocketFactory; -import javax.ws.rs.HttpMethod; -import javax.xml.bind.annotation.XmlElement; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.lang3.StringUtils; -import org.onap.ccsdk.sli.core.sli.ConfigurationException; -import org.onap.ccsdk.sli.core.sli.MetricLogger; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.openecomp.aai.inventory.v10.AvailabilityZone; -import org.openecomp.aai.inventory.v10.Complex; -import org.openecomp.aai.inventory.v10.CtagPool; -import org.openecomp.aai.inventory.v10.DvsSwitch; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.OamNetwork; -import org.openecomp.aai.inventory.v10.PInterface; -import org.openecomp.aai.inventory.v10.PhysicalLink; -import org.openecomp.aai.inventory.v10.Pserver; -import org.openecomp.aai.inventory.v10.ResultData; -import org.openecomp.aai.inventory.v10.SearchResults; -import org.openecomp.aai.inventory.v10.Service; -import org.openecomp.aai.inventory.v10.ServiceInstance; -import org.openecomp.aai.inventory.v10.SitePairSet; -import org.openecomp.aai.inventory.v10.Tenant; -import org.openecomp.aai.inventory.v10.Vce; -import org.openecomp.aai.inventory.v10.VnfImage; -import org.openecomp.aai.inventory.v10.VnfImages; -import org.openecomp.aai.inventory.v10.Vpe; -import org.openecomp.aai.inventory.v10.VplsPe; -import org.openecomp.aai.inventory.v10.VpnBinding; -import org.openecomp.aai.inventory.v10.Vserver; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; -import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; -import org.onap.ccsdk.sli.adaptors.aai.data.ResourceVersion; -import org.onap.ccsdk.sli.adaptors.aai.data.ServiceException; -import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; -import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.databind.AnnotationIntrospector; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; -import com.fasterxml.jackson.databind.type.TypeFactory; -import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; -import com.sun.jersey.api.client.config.DefaultClientConfig; -import com.sun.jersey.client.urlconnection.HTTPSProperties; - - -public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicResource { - - public static final String AAICLIENT_PROPERTIES = "/aaiclient.properties"; - public static final String PATH_PROPERTIES = "/aai-path.properties"; - - private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); - - private final String truststore_path; - private final String truststore_password; - private final String keystore_path; - private final String keystore_password; - private final Boolean ignore_certificate_host_error; - - private final String target_uri; - private final String query_path; // = "sdn-zone-query"; - - private final String network_vserver_path; - - private final String svc_instance_path; - private final String svc_inst_qry_path; - - private final String vnf_image_query_path; - - private final String param_service_type; //= "service-type"; - - private final String ubb_notify_path; - private final String selflink_avpn; - private final String selflink_fqdn; - - private final String p_interface_path; - - private final String service_path; - private final String site_pair_set_path; - - private final int connection_timeout; - private final int read_timeout; - - // 1602 - private final String query_nodes_path; - private final String update_path; - - private final String application_id; - - // authentication credentials - private String user_name; - private String user_password; - - // runtime - private final boolean runtimeOSGI; - - private SSLContext CTX; - - private final MetricLogger ml = new MetricLogger(); - - private final AAIRequestExecutor executor; - - public AAIService(URL propURL) { - LOG.info("Entered AAIService.ctor"); - - String runtime = System.getProperty("aaiclient.runtime"); - if(runtime != null && runtime.equals("OSGI")) { - runtimeOSGI = true; - } else { - runtimeOSGI = false; - } - - Properties props = null; - try { - props = initialize(propURL); - AAIRequest.setProperties(props, this); - - } catch(Exception exc){ - LOG.error("AicAAIResource.static", exc); - } - - executor = new AAIRequestExecutor(); - - user_name = props.getProperty(CLIENT_NAME); - user_password = props.getProperty(CLIENT_PWWD); - - if(user_name == null || user_name.isEmpty()){ - LOG.debug("Basic user name is not set"); - } - if(user_password == null || user_password.isEmpty()) { - LOG.debug("Basic password is not set"); - } - - truststore_path = props.getProperty(TRUSTSTORE_PATH); - truststore_password = props.getProperty(TRUSTSTORE_PSSWD); - keystore_path = props.getProperty(KEYSTORE_PATH); - keystore_password = props.getProperty(KEYSTORE_PSSWD); - - target_uri = props.getProperty(TARGET_URI); - query_path = props.getProperty(QUERY_PATH); - update_path = props.getProperty(UPDATE_PATH); - - String applicationId =props.getProperty(APPLICATION_ID); - if(applicationId == null || applicationId.isEmpty()) { - applicationId = "SDNC"; - } - application_id = applicationId; - - // connection timeout - int tmpConnectionTimeout = 30000; - int tmpReadTimeout = 30000; - - try { - String tmpValue = null; - tmpValue = props.getProperty(CONNECTION_TIMEOUT, "30000"); - tmpConnectionTimeout = Integer.parseInt(tmpValue); - tmpValue = props.getProperty(READ_TIMEOUT, "30000"); - tmpReadTimeout = Integer.parseInt(tmpValue); - } catch(Exception exc) { - LOG.error("Failed setting connection timeout", exc); - tmpConnectionTimeout = 30000; - tmpReadTimeout = 30000; - } - connection_timeout = tmpConnectionTimeout; - read_timeout = tmpReadTimeout; - - network_vserver_path =props.getProperty(NETWORK_VSERVER_PATH); - - svc_instance_path = props.getProperty(SVC_INSTANCE_PATH); // "/aai/v1/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances"); -// "/aai/v1/business/customers/customer/ma9181-203-customerid/service-subscriptions/service-subscription/ma9181%20Hosted%20Voice/service-instances"; - -// svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH, "/aai/v1/search/generic-query?key=service-instance.service-instance-id:ma9181-204-instance&start-node-type=service-instance&include=service-instance"); - svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH); // "/aai/v1/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance"); - - - param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); - - // P-Interfaces - p_interface_path = props.getProperty(P_INTERFACE_PATH); - - vnf_image_query_path = props.getProperty(VNF_IMAGE_QUERY_PATH); - - ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); - selflink_avpn = props.getProperty(SELFLINK_AVPN); - selflink_fqdn = props.getProperty(SELFLINK_FQDN); - - service_path = props.getProperty(SERVICE_PATH); - - site_pair_set_path = props.getProperty(SITE_PAIR_SET_PATH); - - query_nodes_path = props.getProperty(QUERY_NODES_PATH); - - String iche = props.getProperty(CERTIFICATE_HOST_ERROR); - boolean host_error = false; - if(iche != null && !iche.isEmpty()) { - host_error = Boolean.valueOf(iche); - } - - ignore_certificate_host_error = host_error; - - HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ - public boolean verify(String string,SSLSession ssls) { - return ignore_certificate_host_error; - } - }); - - if(truststore_path != null && truststore_password != null && (new File(truststore_path)).exists()) { - System.setProperty("javax.net.ssl.trustStore", truststore_path); - System.setProperty("javax.net.ssl.trustStorePassword", truststore_password); - } - - if(keystore_path != null && keystore_password != null && (new File(keystore_path)).exists()) - { - DefaultClientConfig config = new DefaultClientConfig(); - //both jersey and HttpURLConnection can use this - SSLContext ctx = null; - try { - ctx = SSLContext.getInstance("TLS"); - - KeyManagerFactory kmf = null; - try { - String def = "SunX509"; - String storeType = "PKCS12"; - def = KeyStore.getDefaultType(); - kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - FileInputStream fin = new FileInputStream(keystore_path); -// KeyStore ks = KeyStore.getInstance("PKCS12"); - - String extension = keystore_path.substring(keystore_path.lastIndexOf(".") + 1); - - if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { - storeType = "JKS"; - } - KeyStore ks = KeyStore.getInstance(storeType); - - char[] pwd = keystore_password.toCharArray(); - ks.load(fin, pwd); - kmf.init(ks, pwd); - } catch (Exception ex) { - LOG.error("AAIResource", ex); - } - - ctx.init(kmf.getKeyManagers(), null, null); - config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { - @Override - public boolean verify( String s, SSLSession sslSession ) { - return ignore_certificate_host_error; - } - }, ctx)); - - CTX = ctx; - LOG.debug("SSLContext created"); - - } catch (KeyManagementException | NoSuchAlgorithmException exc) { - LOG.error("AAIResource", exc); - } - } - - LOG.info("AAIResource.ctor initialized."); - - try { - Field methodsField = HttpURLConnection.class.getDeclaredField("methods"); - methodsField.setAccessible(true); - // get the methods field modifiers - Field modifiersField = Field.class.getDeclaredField("modifiers"); - // bypass the "private" modifier - modifiersField.setAccessible(true); - - // remove the "final" modifier - modifiersField.setInt(methodsField, methodsField.getModifiers() & ~Modifier.FINAL); - - /* valid HTTP methods */ - String[] methods = { - "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" - }; - // set the new methods - including patch - methodsField.set(null, methods); - - } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { - e.printStackTrace(); - } - - } - - public void cleanUp() { - - } - - /** - * - * @param http_req_url - * @param method - * @return - * @throws Exception - */ - protected HttpURLConnection getConfiguredConnection(URL http_req_url, String method) throws Exception { - HttpURLConnection con = (HttpURLConnection) http_req_url.openConnection(); - - // Set up the connection properties - con.setRequestProperty( "Connection", "close" ); - con.setDoInput(true); - con.setDoOutput(true); - con.setUseCaches(false); - con.setConnectTimeout( connection_timeout ); - con.setReadTimeout( read_timeout ); - con.setRequestMethod( method ); - con.setRequestProperty( "Accept", "application/json" ); - con.setRequestProperty( "Content-Type", "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json" ); - con.setRequestProperty("X-FromAppId", application_id); - con.setRequestProperty("X-TransactionId",TransactionIdTracker.getNextTransactionId()); - con.setRequestProperty(MetricLogger.REQUEST_ID, ml.getRequestID()); - - if(user_name != null && !user_name.isEmpty() && user_password != null && !user_password.isEmpty()) { - String basicAuth = "Basic " + new String(Base64.encodeBase64((user_name + ":" + user_password).getBytes())); - con.setRequestProperty ("Authorization", basicAuth); - } - - if(con instanceof HttpsURLConnection && CTX != null) { - SSLSocketFactory sockFact = CTX.getSocketFactory(); - HttpsURLConnection.class.cast(con).setSSLSocketFactory( sockFact ); - } - return con; - } - - - @Override - public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException { - GenericVnf response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, GenericVnf.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - - return response; - - } - - @Override - public boolean postGenericVnfData(String vnf_id, GenericVnf data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteGenericVnfData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException { - Vce response = null; - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vce.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - /* (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkVceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#postNetworkVceData(java.lang.String, org.onap.ccsdk.sli.adaptors.resource.aic.aai.VCERequest) - */ - @Override - public boolean postNetworkVceData(String vnf_id, Vce data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - - @Override - public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException { - SearchResults response = null; - InputStream inputStream = null; - - try { - String path = svc_inst_qry_path; - path = path.replace("{svc-instance-id}", encodeQuery(svc_instance_id)); - - String request_url = target_uri+path; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("svc_instance_id", svc_instance_id); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { -// StringBuilder stringBuilder = new StringBuilder("\n"); -// String line = null; -// while( ( line = reader.readLine() ) != null ) { -// stringBuilder.append("\n").append( line ); -// } -// LOG.info(stringBuilder.toString()); - response = mapper.readValue(reader, SearchResults.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceInstanceURL", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException { - ServiceInstance response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); - request.addRequestProperty("customer.global-customer-id", customer_id); - request.addRequestProperty("ervice-subscription.service-type", service_type); - request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, ServiceInstance.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceInterfaceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); - request.addRequestProperty("customer.customer-id", customer_id); - request.addRequestProperty("service-subscription.service-type", service_type); - request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - - private static Properties initialize(URL url ) throws ConfigurationException { - - if(url == null) { - throw new NullPointerException(); - } - - InputStream is = null; - Properties props = new Properties(); - - try { - if(LOG.isDebugEnabled()) - LOG.info("Property file is: " + url.toString()); - - is = url.openStream(); - - props.load(is); - if(LOG.isDebugEnabled()) { - LOG.info("Properties loaded: " + props.size()); - Enumeration en = props.keys(); - - while(en.hasMoreElements()) { - String key = (String)en.nextElement(); - String property = props.getProperty(key); - LOG.debug(key + " : " + property); - } - } - } catch (Exception e) { - throw new ConfigurationException("Could not load properties file.", e); - } - return props; - } - - static class TransactionIdTracker { -// protected static AtomicLong tracker = new AtomicLong(); - - public static String getNextTransactionId() { -// long id = tracker.getAndIncrement(); -// String transactionId = String.format("N%016X", id); - String transactionId = UUID.randomUUID().toString(); - return transactionId; - } - - } - - protected void LOGwriteFirstTrace(String method, String url) { - String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); - LOG.info("A&AI transaction :"); - LOG.info("Request Time : " + time + ", Method : " + method); - LOG.info("Request URL : "+ url); - } - - protected void LOGwriteDateTrace(String name, String data) { - LOG.info("Input - " + name + " : " + data); - } - - protected void LOGwriteEndingTrace(int response_code, String comment, String data) { - LOG.info("Response code : " + response_code +", " + comment); - LOG.info(String.format("Response data : %s", data)); - } - - protected String encodeQuery(String param) throws UnsupportedEncodingException { - return URLEncoder.encode(param, "UTF-8").replace("+", "%20"); - } - - private String encodeCustomerURL(final String selection) - { - String encrypted_url = selection; - String apnpattern = - "/aai/v10/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)/service-instances/service-instance/(.+)/"; - Pattern pattern = Pattern.compile(apnpattern); - - try { - URL url = new URL(selection); - String path = url.getPath(); - - LOG.info("Trying to match apn to <" + path + ">"); - - Matcher matcher = pattern.matcher(path); - - while(matcher.find()) { - String customer = matcher.group(1); - String subscription = matcher.group(2); - String service = matcher.group(3); - - encrypted_url = selection.replace(customer, encodeQuery(customer)); - encrypted_url = encrypted_url.replace(subscription, encodeQuery(subscription)); - encrypted_url = encrypted_url.replace(service, encodeQuery(service)); - } - } catch (Exception e) { - LOG.warn("", e); - } - - return encrypted_url; - } - - @Override - public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException { - Vpe response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpe"); - request.addRequestProperty("vpe.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vpe.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postNetworkVpeData(String vnf_id, Vpe data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpe"); - request.addRequestProperty("vpe.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpe"); - request.addRequestProperty("vpe.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public VplsPe requestNetworkVplsPeData(String equipment_name)throws AAIServiceException { - VplsPe response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", equipment_name); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VplsPe.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postNetworkVplsPeData(String equipment_name, VplsPe data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", equipment_name); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkVplsPeData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public Complex requestNetworkComplexData(String pLocId) throws AAIServiceException { - Complex response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", pLocId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Complex.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkComplexData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public boolean postNetworkComplexData(String vnf_id, Complex data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkComplexData(String pLocId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", pLocId); - - response = executor.delete(request, resourceVersion); - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* - * (non-Javadoc) - * @see org.openecomp.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String) - */ - @Override - public Vserver requestVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Vserver response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.addRequestProperty("tenant.tenant-id", tenantId); - request.addRequestProperty("vserver.vserver-id", vserverId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vserver.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - - @Override - public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.addRequestProperty("tenant.tenant-id", tenantId); - request.addRequestProperty("vserver.vserver-id", vserverId); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException { - boolean response = false; - InputStream inputStream = null; - - try { - String local_network_complexes_path = network_vserver_path.replace("{tenant-id}", encodeQuery(tenant_id)); - local_network_complexes_path = local_network_complexes_path.replace("{vserver-id}", encodeQuery(vserver_id)); - local_network_complexes_path = local_network_complexes_path.replace("{cloud-owner}", encodeQuery(cloudOwner)); - local_network_complexes_path = local_network_complexes_path.replace("{cloud-region-id}", encodeQuery(cloudRegionId)); - - String request_url = target_uri+local_network_complexes_path; - if(resourceVersion!=null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); - - LOGwriteFirstTrace(HttpMethod.DELETE, http_req_url.toString()); - LOGwriteDateTrace("tenant_id", tenant_id); - LOGwriteDateTrace("vserver_id", vserver_id); - LOGwriteDateTrace("cloud-owner", cloudOwner); - LOGwriteDateTrace("cloud-region-id", cloudRegionId); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteVServerData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - - /* - * (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.aai.AAIClient#requestCtagPoolData(String) - */ - @Override - public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException { - CtagPool response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("ctag-pool"); - - request.addRequestProperty("ctag-pool.target-pe", target_pe); - request.addRequestProperty("ctag-pool.availability-zone-name", availability_zone_name); - request.addRequestProperty("complex.physical-location-id", physical_location_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, CtagPool.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkVceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - //==================== DvsSwitch ====================== - @Override - public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException { - DvsSwitch response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", vnf_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, DvsSwitch.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestDvsSwitchData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public boolean postDvsSwitchData(String switch_name, DvsSwitch data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", switch_name); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteDvsSwitchData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of DvsSwitch ================= - //==================== PhysicalLink ====================== - @Override - public PhysicalLink requestPhysicalLinkData(String linkName) throws AAIServiceException { - PhysicalLink response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, PhysicalLink.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestPhysicalLinkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPhysicalLinkData(String linkName, PhysicalLink data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deletePhysicalLinkData(String linkName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePhysicalLinkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of PhysicalLink ================= - //==================== PInterface ====================== - @Override - public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException { - PInterface response = null; - - try { - AAIRequest request = new PInterfaceRequest(); - request.addRequestProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME, interfaceName); - request.addRequestProperty(PInterfaceRequest.PSERVER_HOSTNAME, hostname); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, PInterface.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+p_interface_path; - String encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf) ; - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("hostname", hostname); - LOGwriteDateTrace("interface-name", interfaceName); - LOGwriteDateTrace("PInterface", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postPInterfaceData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); - request.addRequestProperty("p-interface.interface-name", interfaceName); - request.addRequestProperty("pserver.hostname", hostname); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePInterfaceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of PInterface ================= - //==================== SitePairSet ====================== - @Override - public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException { - SitePairSet response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); - request.addRequestProperty("site-pair-set.site-pair-set-id", sitePairSetId); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, SitePairSet.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postSitePairSetData(String linkName, SitePairSet request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+site_pair_set_path; - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{site-pair-set-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("link-name", linkName); - LOGwriteDateTrace("SitePairSet", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postSitePairSetData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deleteSitePairSetData(String linkName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); - request.addRequestProperty("site-pair-set.site-pair-set-id", linkName); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteSitePairSetData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - //================== End of SitePairSet ================= - //==================== Service ====================== - @Override - public Service requestServiceData(String serviceId) throws AAIServiceException { - Service response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service"); - request.addRequestProperty("service.service-id", serviceId); - - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Service.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postServiceData(String linkName, Service request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+service_path; - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{service-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("service-id", linkName); - LOGwriteDateTrace("Service", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postServiceData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deleteServiceData(String service_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service"); - request.addRequestProperty("service.service-id", service_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteServiceData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - //================== End of Service ================= - - - - // 1507 - Request - @Override - public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), VServer.class); - } - - @Override - public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Pserver.class); - } - - @Override - public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), CtagPool.class); - } - - @Override - public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), VplsPe.class); - } - - @Override - public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Vpe.class); - } - - @Override - public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), DvsSwitch.class); - } - - @Override - public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), OamNetwork.class); - } - - @Override - public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), AvailabilityZone.class); - } - - @Override - public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Complex.class); - } - - /* DELETE */ - public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - //OAM-Network: - public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - //Availability-Zone: - public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - //Complex: - public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, new Object(){}.getClass().getEnclosingMethod().getName()); - } - - private boolean deleteAAIEntity(URL url, String caller) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - boolean response = false; - InputStream inputStream = null; - - try { - URL http_req_url = url; - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); - -// SSLSocketFactory sockFact = CTX.getSocketFactory(); -// con.setSSLSocketFactory( sockFact ); - - LOGwriteFirstTrace("DELETE", http_req_url.toString()); - - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(caller, exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - /** - * Generic method to GET json data from an A&AI callback URL. - * Then convert that json to an Object. - * If successful the Object is attempted to be cast to the type parameter. - * - * @param key - * callback url for A&AI - * @param type - * the class of object that A&AI will return - * @return the object created from json or null if the response code is not 200 - * - * @throws AAIServiceException - * if empty or null key and or type or there's an error with processing - */ - public T dataChangeRequestAaiData(String key, Class type) throws AAIServiceException { - if (StringUtils.isEmpty(key) || type == null) { - throw new AAIServiceException("Key is empty or null and or type is null"); - } - - T response = null; - - SvcLogicContext ctx = new SvcLogicContext(); - if(!key.contains(" = ") && isValidURL(key)) { - key = String.format("selflink = '%s'", key); - } - HashMap nameValues = keyToHashMap(key, ctx); - - SelfLinkRequest request = new SelfLinkRequest(type); - request.processRequestPathValues(nameValues); - Object obj = this.getExecutor().query(request, type); - response = type.cast(obj); - - return response != null ? type.cast(response) : response; - } - - @Override - public Pserver requestPServerData(String hostname) throws AAIServiceException { - Pserver response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Pserver.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestPServerData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPServerData(String hostname, Pserver data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePServerData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public L3Network requestL3NetworkData(String networkId) throws AAIServiceException { - L3Network response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, L3Network.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestL3NetworkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public L3Network requestL3NetworkQueryByName(String networkName) throws AAIServiceException { - L3Network response = null; - InputStream inputStream = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-name", networkName); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, L3Network.class); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestL3NetworkQueryByName", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public boolean postL3NetworkData(String networkId, L3Network data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteL3NetworkData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException { - VpnBinding response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); - request.addRequestProperty("vpn-binding.vpn-id", vpnId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VpnBinding.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVpnBindingData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); - request.addRequestProperty("vpn-binding.vpn-id", vpnId); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteVpnBindingData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - - @Override - public VnfImage requestVnfImageData(String att_uuid) throws AAIServiceException { - VnfImage response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vnf-image"); - request.addRequestProperty("vnf-image.att-uuid", att_uuid); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VnfImage.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVnfImageData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException { - return requestVnfImageDataByVendorModelVersion(vendor, model, null); - } - - @Override - public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException - { - List responseList = new ArrayList(); - VnfImage response = null; - InputStream inputStream = null; - - try { - String request_url = target_uri+vnf_image_query_path + (version==null? "": "&application-version={application_version}"); - request_url = request_url.replace("{application_vendor}", encodeQuery(vendor)) ; - request_url = request_url.replace("{application_model}", encodeQuery(model)) ; - if(version != null) { - request_url = request_url.replace("{application_version}", encodeQuery(version)) ; - } - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("application_vendor", vendor); - LOGwriteDateTrace("application_model", model); - if(version != null) { - LOGwriteDateTrace("application_version", version); - } - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { -// StringBuilder stringBuilder = new StringBuilder("\n"); -// String line = null; -// while( ( line = reader.readLine() ) != null ) { -// stringBuilder.append("\n").append( line ); -// } -// LOG.info(stringBuilder.toString()); - response = mapper.readValue(reader, VnfImage.class); - String original_buffer = mapper.writeValueAsString(response); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", original_buffer); - if(response.getApplicationVendor() == null /*&& response.getAdditionalProperties() != null && !response.getAdditionalProperties().isEmpty()*/){ - LOG.warn("A List of multiple VNF-IMAGE entries has been returned"); - VnfImages listOfObjects = mapper.readValue(original_buffer, VnfImages.class); - if(!listOfObjects.getVnfImage().isEmpty()) { - response = listOfObjects.getVnfImage().get(0); - } - } - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVnfImageData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - - public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException { - InputStream inputStream = null; - - try { - - String selfLink = selflink_fqdn; - if(SELFLINK_AVPN != null && SELFLINK_AVPN.equals(pathCode)) { - selfLink = selflink_avpn; - } - selfLink = selfLink.replace("{service-instance-id}", encodeQuery(serviceInstanceId)); - event.setSelflink(selfLink); - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(event); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+ubb_notify_path; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("NotifyEvent", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("sendNotify", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public SearchResults requestNodeQuery(String node_type, String entityIdentifier, String entityName) throws AAIServiceException { - SearchResults response = null; - InputStream inputStream = null; - - try { - String request_url = target_uri+query_nodes_path; - request_url = request_url.replace("{node-type}", encodeQuery(node_type)) ; - request_url = request_url.replace("{entity-identifier}", entityIdentifier) ; - request_url = request_url.replace("{entity-name}", encodeQuery(entityName)) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("node_type", node_type); - LOGwriteDateTrace("vnf_name", entityName); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - response = mapper.readValue(reader, SearchResults.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNodeQuery", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - - } - - - @Override - public String requestDataByURL(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - String response = null; - InputStream inputStream = null; - - try { - URL http_req_url = url; - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); - - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - StringBuilder stringBuilder = new StringBuilder("\n"); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOG.info(stringBuilder.toString()); -// response = mapper.readValue(reader, String.class); - response = stringBuilder.toString(); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = null; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkVceData", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - - @Override - public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException { - - if(vnf_name == null) { - throw new NullPointerException(); - } - - GenericVnf entity = null; - SearchResults resp = this.requestNodeQuery("generic-vnf", "vnf-name", vnf_name); - - List resultDataList = resp.getResultData(); - - try { - for (ResultData datum : resultDataList) { - String data_type = datum.getResourceType(); - URL url = new URL(datum.getResourceLink()); - entity = this.getResource(url.toString(), GenericVnf.class); - } - } - catch (Exception e) - { - LOG.error("Caught exception", e); - } - return entity; - } - - @Override - public Vserver requestVServerDataByURL(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - Vserver entity = null; - - try { - entity = this.getResource(url.toString(), Vserver.class); - } catch (AAIServiceException exc) { - throw exc; - } catch (Exception e) { - throw new AAIServiceException(e); - } - return entity; - } - - @Override - public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException { - - if(vserver_name == null) { - throw new NullPointerException(); - } - - URL entity = null; - SearchResults resp = this.requestNodeQuery("vserver", "vserver-name", vserver_name); - - List resultDataList = resp.getResultData(); - - try { - for (ResultData datum : resultDataList) { - String data_type = datum.getResourceType(); - entity = new URL(datum.getResourceLink()); - } - } catch (Exception e) { - throw new AAIServiceException(e); - } - return entity; - } - - class AAIRequestExecutor implements AAIExecutorInterface { - - @Override - public String get(AAIRequest request) throws AAIServiceException { - String response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - - String requestId = UUID.randomUUID().toString(); - - try { - - if(request.getRequestObject() != null) { - requestUrl = request.getRequestUrl(HttpMethod.POST, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.POST); - String json_text = request.toJSONString(); - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - } else { - requestUrl = request.getRequestUrl(HttpMethod.GET, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.GET); - logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); - } - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId, responseCode, responseMessage); - - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - response = stringBuilder.toString(); - try { - Object object = mapper.readValue(response, Object.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); - } catch(Exception exc) { - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); - } - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - ErrorResponse errorresponse = null; - try { - errorresponse = mapper.readValue(reader, ErrorResponse.class); - } catch(Exception exc) { - errorresponse = new ErrorResponse(); - RequestError requestError = new RequestError(); - ServiceException serviceException = new ServiceException(); - serviceException.setText("Entry does not exist."); - requestError.setServiceException(serviceException); - errorresponse.setRequestError(requestError ); - } - throw new AAIServiceException(responseCode, errorresponse); - } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - ServiceException serviceException = new ServiceException(); - serviceException.setMessageId("HTTP_UNAUTHORIZED"); - serviceException.setText(stringBuilder.toString()); - RequestError requestError = new RequestError(); - requestError.setServiceException(serviceException); - ErrorResponse errorresponse = new ErrorResponse(); - errorresponse.setRequestError(requestError); - throw new AAIServiceException(responseCode, errorresponse); - } else { -// -// StringBuilder stringBuilder = new StringBuilder("\n"); -// String line = null; -// while( ( line = reader.readLine() ) != null ) { -// stringBuilder.append("\n").append( line ); -// } -// LOG.info(stringBuilder.toString()); -// -// ErrorResponse errorresponse = mapper.readValue(stringBuilder.toString(), ErrorResponse.class); - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("GET", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { - - String depth = request.requestProperties.getProperty("depth", "1"); - String path = requestUrl.toString(); - if(path.contains("?depth=") || path.contains("&depth=")) { - return requestUrl; - } else { - if(path.contains("?")) { - path = String.format("%s&depth=%s", path, depth); - } else { - path = String.format("%s?depth=%s", path, depth); - } - return new URL(path); - } - } - - @Override - public String post(AAIRequest request) throws AAIServiceException { - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - try { - String resourceVersion = null; - AAIDatum instance = request.getRequestObject(); - - Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); - if(getResourceVersionMethod != null){ - try { - getResourceVersionMethod.setAccessible(true); - Object object = getResourceVersionMethod.invoke(instance); - if(object != null) - resourceVersion = object.toString(); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); - ObjectMapper mapper = getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return stringBuilder.toString(); - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.post", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { - Boolean response = null; - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - if(resourceVersion == null) { - throw new AAIServiceException("resource-version is required for DELETE request"); - } - - try { - URL requestUrl = null; - HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); - logMetricRequest(requestId, "DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); - conn.setDoOutput(true); -// if(request.isDeleteDataRequired()) { -// String json_text = request.toJSONString(); -// -// LOGwriteDateTrace("data", json_text); -// OutputStream os = con.getOutputStream(); -// OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); -// osw.write(json_text); -// osw.flush(); -// } - - // Check for errors - String responseMessage = conn.getResponseMessage(); - int responseCode = conn.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = conn.getInputStream(); - } else { - inputStream = conn.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("delete", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public Object query(AAIRequest request, Class clas) throws AAIServiceException { - Object response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - String requestId = UUID.randomUUID().toString(); - - try { - con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); - logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - logMetricResponse(requestId,responseCode, responseMessage); - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - // Process the response - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - response = mapper.readValue(reader, clas); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("GET", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - con = null; - } - return response; - } - - @Override - public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - try { - AAIDatum instance = request.getRequestObject(); - if(instance instanceof ResourceVersion) { - resourceVersion = ((ResourceVersion)instance).getResourceVersion(); - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); - ObjectMapper mapper = getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append("\n").append( line ); - } - LOG.info(stringBuilder.toString()); - - - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.patch", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - } - - @Override - public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Tenant response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Tenant.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestTenantData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - @Override - public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Tenant response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-name", tenant_name); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - Object rv = executor.query(request, Tenant.class); - if(rv == null) - return (Tenant)null; - else - response = (Tenant)rv; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestTenantDataByName", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant tenannt) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.setRequestObject(tenannt); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postTenantData", exc); - throw new AAIServiceException(exc); - } - } - - - @Override - public String getTenantIdFromVserverUrl(URL url) { - - String path = url.getPath(); - - String[] split = path.split("/tenants/tenant/"); - if(split.length > 1) { - split = split[1].split("/"); - return split[0]; - } else { - return null; - } - } - - @Override - public String getCloudOwnerFromVserverUrl(URL url) { - - String path = url.getPath(); - - String[] split = path.split("/cloud-regions/cloud-region/"); - if(split.length > 1) { - split = split[1].split("/"); - return split[0]; - } else { - return null; - } - } - - @Override - public String getCloudRegionFromVserverUrl(URL url) { - - String path = url.getPath(); - - String[] split = path.split("/cloud-regions/cloud-region/"); - if(split.length > 1) { - split = split[1].split("/"); - return split[1]; - } else { - return null; - } - } - - @Override - public String getVServerIdFromVserverUrl(URL url, String tenantId) { - String pattern = network_vserver_path; - pattern = pattern.replace("{tenant-id}", tenantId); - - int end = pattern.indexOf("{vserver-id}"); - String prefix = pattern.substring(0, end); - - String path = url.getPath(); - - if(path.startsWith(prefix)) { - path = path.substring(prefix.length()); - } - - return path; - } - - protected Logger getLogger(){ - return LOG; - } - - - @Override - public AAIRequestExecutor getExecutor() { - return executor; - } - - /** - * Creates a current time stamp in UTC i.e. 2016-03-08T22:15:13.343Z. - * If there are any parameters the values are appended to the time stamp. - * - * @param parameters - * values to be appended to current time stamp - * @param ctx - * used to set an attribute for a DG - * @throws SvcLogicException - */ - public void setStatusMethod(Map parameters, SvcLogicContext ctx) throws SvcLogicException { - if (ctx == null) { - throw new SvcLogicException("SvcLogicContext is null."); - } - - StringBuilder sb = new StringBuilder(); - sb.append(String.format("%tFT% entry : parameters.entrySet()) { - sb.append(entry.getValue()).append(" "); - } - - if (sb.length() > 0) { - sb.setLength(sb.length() - 2); - } - - ctx.setAttribute("aai-summary-status-message", sb.toString()); - LOG.info("aai-summary-status-message: " + sb.toString()); - } - - /** - * Generic method to GET json data from an A&AI using key structure. - * Then convert that json to an Object. - * If successful the Object is attempted to be cast to the type parameter. - * - * @param key - * key identifying the resource to be retrieved from AAI - * @param type - * the class of object that A&AI will return - * @return the object created from json or null if the response code is not 200 - * - * @throws AAIServiceException - * if empty or null key and or type or there's an error with processing - */ - - public T getResource(String key, Class type) throws AAIServiceException { - if (StringUtils.isEmpty(key) || type == null) { - throw new AAIServiceException("Key is empty or null and or type is null"); - } - - T response = null; - - SvcLogicContext ctx = new SvcLogicContext(); - if(!key.contains(" = ")) { - if(isValidURL(key)) { - key = String.format("selflink = '%s'", key); - } else { - return response; - } - } - - HashMap nameValues = keyToHashMap(key, ctx); - - AAIRequest request = new SelfLinkRequest(type); - if(nameValues.containsKey(PathRequest.RESOURCE_PATH.replaceAll("-", "_"))) { - request = new PathRequest(type); - } - - request.processRequestPathValues(nameValues); - Object obj = this.getExecutor().query(request, type); - response = type.cast(obj); - - return response != null ? type.cast(response) : response; - } - - public boolean isValidURL(String url) { - - URL u = null; - - try { - u = new URL(url); - } catch (MalformedURLException e) { - return false; - } - - try { - u.toURI(); - } catch (URISyntaxException e) { - return false; - } - - return true; - } - - @Override - protected boolean deleteRelationshipList(URL httpReqUrl, String json_text) throws AAIServiceException { - if(httpReqUrl == null) { - throw new NullPointerException(); - } - - boolean response = false; - InputStream inputStream = null; - - try { - HttpURLConnection con = getConfiguredConnection(httpReqUrl, HttpMethod.DELETE); - -// SSLSocketFactory sockFact = CTX.getSocketFactory(); -// con.setSSLSocketFactory( sockFact ); - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - - - LOGwriteFirstTrace("DELETE", httpReqUrl.toString()); - LOGwriteDateTrace("data", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteRelationshipList", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - public static ObjectMapper getObjectMapper() { - ObjectMapper mapper = new ObjectMapper(); - AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); - AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); - mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - mapper.setSerializationInclusion(Include.NON_NULL); - return mapper; - } - - public void logMetricRequest(String requestId, String targetServiceName, String msg, String path){ - String svcInstanceId = ""; - String svcName = null; - String partnerName = null; - String targetEntity = "A&AI"; - String targetVirtualEntity = null; - - targetServiceName = ""; - - ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); - } - - public void logMetricResponse(String requestId, int responseCode, String responseDescription){ - ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); - } - - public void logKeyError(String keys){ - LOG.error("Atleast one of the keys [" + keys + "] should have been populated. This will cause a NPE."); - } - - - /** - * Retrofit code - */ - @Override - public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map params, String prefix, SvcLogicContext ctx) - throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - return super.save(resource, force, localOnly, key, params, prefix, ctx); - } - - @Override - public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) - throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - - return super.query(resource, localOnly, select, key, prefix, orderBy, ctx); - } - - @Override - public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - - return super.delete(resource, key, ctx); - } - - @Override - public QueryStatus update(String resource, String key, Map params, String prefix, SvcLogicContext ctx) throws SvcLogicException { - String normResource = resource.split(":")[0]; - - switch(normResource){ - case "formatted-query": - case "generic-query": - case "named-query": - case "nodes-query": - case "linterface": - case "l2-bridge-sbg": - case "l2-bridge-bgf": - case "echo": - case "test": - break; - - default: - if(!key.contains(String.format("%s.", normResource))) { - key = rewriteKey(resource, key, ctx); - } - } - - return super.update(resource, key, params, prefix, ctx); - } - - private String rewriteKey(String resource, String key, SvcLogicContext ctx) { - LOG.info("AAI Deprecation - the format of request key is no longer supported. Please rewrite this key : " + key); - - String normResource = resource.split(":")[0]; - Class clazz = null; - try { - clazz = AAIRequest.getClassFromResource(normResource) ; - } catch (ClassNotFoundException e) { - LOG.warn("AAIRequest does not support class: " + e.getMessage()); - return key; - } - if(clazz == null) - return key; - - List fieldAnnotatedNames = new LinkedList(); - - Field[] fields = clazz.getDeclaredFields(); - for(Field field : fields) { - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - if(annotation == null) - continue; - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - fieldAnnotatedNames.add(primaryId); - } - - HashMap nameValues = keyToHashMap(key, ctx); - Set keyset = nameValues.keySet(); - for(String keyName : keyset) { - if(keyName.contains(".")) - continue; - else { - String tmpKeyName = keyName.replaceAll("_", "-"); - if(fieldAnnotatedNames.contains(tmpKeyName)) { - key = key.replace(tmpKeyName, String.format("%s.%s", normResource, tmpKeyName)); - } - } - } - - - return key; - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java deleted file mode 100644 index 45c3d3d20..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceActivator.java +++ /dev/null @@ -1,239 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FilenameFilter; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashSet; -import java.util.Properties; -import java.util.Set; - -import org.onap.ccsdk.sli.core.sli.ConfigurationException; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AAIServiceActivator implements BundleActivator { - - private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; - private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; - private static final String DEFAULT_KEYWORD = "default"; - - private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; - - private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; - private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; - - private Set registrationSet = new HashSet(); - - private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); - - @Override - public void start(BundleContext ctx) throws Exception { - - System.setProperty("aaiclient.runtime", "OSGI"); - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - - // check SDNC CONFIG DIR system property - if(sdnConfigDirectory == null ) { - LOG.error("System property SDNC_CONFIG_DIR is not defined."); - LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); - sdnConfigDirectory = "/opt/sdnc/data/properties/"; - } - - LOG.debug("Configuration directory used : " + sdnConfigDirectory); - - // check existance of properties directory - File configDirectory = new File(sdnConfigDirectory); - if(!configDirectory.exists() || !configDirectory.isDirectory()){ - LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); - return; - } - - Properties properties = new Properties(); - InputStream input = null; - - // find aaiclient config file - File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); - - // read the aai config data - if(files != null && files.length > 0) { - LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); - try { - input = new FileInputStream(files[0]); - properties.load(input); - LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); - } catch (IOException exc) { - LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); - } finally { - if(input != null ) { - try { - input.close(); - } catch(Exception exc) { - // ignore - } - } - int size = properties.keySet().size() ; - if(size == 0) { - LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - } - } else { - LOG.debug("No configuration entries were found. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - - Set entrySet = properties. stringPropertyNames(); - String value = null; - - // initialize AAI Service for each aai client property files - for(String entry : entrySet) { - value = properties.getProperty(entry); - if(value != null && !value.isEmpty()) { - - final String fileName = value; - - File[] propertyFileList = findFiles(configDirectory, fileName); - - for(File propertiesFile : propertyFileList) { - LOG.info(propertiesFile.getName()); - // Advertise AAI resource adaptor - AAIClient impl = null; - switch(entry) { - case DEFAULT_KEYWORD: - impl = new AAIService(propertiesFile.toURI().toURL()); - break; - case "trinity": - impl = new AAITrinityService(propertiesFile.toURI().toURL()); - break; - default: - LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); - continue; - } - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - - } - } - } - } - -// @Override - @Deprecated - public void start1(BundleContext ctx) throws Exception { - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - String propertiesPath = null; - - if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); - } - } - } else { - propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; - LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); - } - - File propFile = new File(propertiesPath); - if(!propFile.exists()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); - throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); - } - } - } - - // Advertise AAI resource adaptor - AAIClient impl = new AAIService(propFile.toURI().toURL()); - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - } - - @Override - public void stop(BundleContext ctx) throws Exception { - - Set localRegistrationSet = new HashSet(); - localRegistrationSet.addAll(registrationSet); - - for(ServiceRegistration registration : localRegistrationSet) { - if (registration != null) { - try { - AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); - registration.unregister(); - registrationSet.remove(registration); - if(aaiService != null) { - aaiService.cleanUp(); - } - } catch(Exception exc) { - if(LOG.isDebugEnabled()) - LOG.debug(exc.getMessage()); - } - } - } - } - - private File[] findFiles(File configDirectory, final String filter) { - File[] files = configDirectory.listFiles(new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.equalsIgnoreCase(filter); - } - }); - - return files; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java deleted file mode 100644 index 8d57db43a..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAIServiceException.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; - -public class AAIServiceException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -9039257722542999522L; - - protected ErrorResponse errorResponse = null; - protected int returnCode = -1; - - public AAIServiceException() { - - } - - public AAIServiceException(String message) { - super(message); - } - - public AAIServiceException(Throwable cause) { - super(cause); - } - - public AAIServiceException(String message, Throwable cause) { - super(message, cause); - } - - public AAIServiceException(String message, Throwable cause, - boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - - public AAIServiceException(int returnCode, ErrorResponse errorresponse) { - this.errorResponse = errorresponse; - this.returnCode = returnCode; - } - - public ErrorResponse getErrorResponse() { - return errorResponse; - } - - public int getReturnCode() { - return returnCode; - } - - public String getMessage() { - if(errorResponse != null) { - return errorResponse.getRequestError().getServiceException().getText(); - } else { - return super.getMessage(); - } - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java deleted file mode 100644 index 6fffc6e8f..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/AAITrinityService.java +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.net.URL; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AAITrinityService extends AAIService { - - private static final Logger LOG = LoggerFactory.getLogger(AAITrinityService.class); - - public AAITrinityService(URL propURL) { - super(propURL); - LOG.info("Entered AAITrinityService.ctor"); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java deleted file mode 100644 index 0de0d2bd0..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CloudRegionRequest.java +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.CloudRegion; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class CloudRegionRequest extends AAIRequest { - - public static final String CLOUD_REGION_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.cloud.region"; - - private final String cloud_region_path; - - public static final String CLOUD_REGION_CLOUD_OWNER = "cloud-region.cloud-owner"; - public static final String CLOUD_REGION_CLOUD_REGION_ID = "cloud-region.cloud-region-id"; - - - public CloudRegionRequest() { - cloud_region_path = configProperties.getProperty(CLOUD_REGION_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+cloud_region_path; - - request_url = processPathData(request_url, requestProperties); - - Map query = new HashMap(); - if(requestProperties.containsKey(DEPTH)) { - query.put(DEPTH, requestProperties.getProperty(DEPTH)); - } - - if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; - query.put(RESOURCE_VERSION, resourceVersion); - } - - if(!query.isEmpty()) { - Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); - String queryString = mapJoiner.join(query); - request_url = String.format("%s?%s", request_url, queryString); - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - CloudRegion vnfc = (CloudRegion)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - CLOUD_REGION_CLOUD_OWNER, - CLOUD_REGION_CLOUD_REGION_ID, - DEPTH - }; - - return args; - } - - @Override - public Class getModelClass() { - return CloudRegion.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - if(!requestProperties.containsKey(CLOUD_REGION_CLOUD_OWNER) || !requestProperties.containsKey(CLOUD_REGION_CLOUD_REGION_ID)) { - aaiService.logKeyError(String.format("%s,%s", CLOUD_REGION_CLOUD_OWNER, CLOUD_REGION_CLOUD_REGION_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); - request_url = request_url.replace("{cloud-owner}", encoded_vnf) ; - - encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); - request_url = request_url.replace("{cloud-region-id}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("cloud-owner", requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); - aaiService.LOGwriteDateTrace("cloud-region-id", requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java deleted file mode 100644 index 994f1b6bf..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/CustomQueryRequest.java +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryRequestData; -import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - - -public class CustomQueryRequest extends AAIRequest { - - public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; - - private final String generic_search_path; - - public static final String FORMAT = "format"; - - - public CustomQueryRequest() { - String tmp_generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); - tmp_generic_search_path = tmp_generic_search_path.split("search")[0]; - generic_search_path = tmp_generic_search_path +"query"; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_search_path; - - request_url = processPathData(request_url, requestProperties); - - String formatQuery = requestProperties.getProperty(FORMAT); - - if(formatQuery != null) { - request_url = request_url +"?format="+formatQuery; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - FormattedQueryRequestData tenant = (FormattedQueryRequestData)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {FORMAT}; - return args; - } - - - @Override - public Class getModelClass() { - return FormattedQueryRequestData.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = FORMAT; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); - - return request_url; - } - - public AAIDatum jsonStringToObject(String jsonData) throws JsonParseException, JsonMappingException, IOException { - if(jsonData == null) { - return null; - } - - AAIDatum response = null; - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(jsonData, FormattedQueryResultList.class); - return response; - } - - protected boolean expectsDataFromPUTRequest() { - return true; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java deleted file mode 100644 index 86e2d5f5e..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/EchoRequest.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.ccsdk.sli.adaptors.aai.data.EchoResponse; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class EchoRequest extends AAIRequest { - - - - private final String echo_path; - - public EchoRequest() { - echo_path = "/aai/util/echo"; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+echo_path; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - EchoResponse tenant = (EchoResponse)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - return args; - } - - - @Override - public Class getModelClass() { - return EchoResponse.class; - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java deleted file mode 100644 index 476aed94a..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericQueryRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.ResultData; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class GenericQueryRequest extends AAIRequest { - - public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; - - private final String generic_search_path; - - public static final String START_NODE_TYPE = "start-node-type"; - public static final String IDENTIFIER = "identifier"; - public static final String VALUE = "value"; - - - public GenericQueryRequest() { - generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); - } - - -// @Override -// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { -// -// String request_url = target_uri+generic_search_path; -// String key = START_NODE_TYPE; -// -// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); -// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; -// -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } -// URL http_req_url = new URL(request_url); -// -// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); -// -// -// return http_req_url; -// } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - ResultData tenant = (ResultData)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {START_NODE_TYPE, IDENTIFIER, VALUE}; - return args; - } - - - @Override - public Class getModelClass() { - return ResultData.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = IDENTIFIER; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); - - key = VALUE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{value}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("value", requestProperties.getProperty(key)); - - key = START_NODE_TYPE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{start-node-type}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("start-node-type", requestProperties.getProperty(key)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java deleted file mode 100644 index 427ea7e38..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericRequest.java +++ /dev/null @@ -1,319 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Field; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.xml.bind.annotation.XmlElement; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.L3Networks; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class GenericRequest extends AAIRequest { - - - protected Class model; - - public GenericRequest(Class clazz) { - model = clazz; - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String originalPath = null; - String pathSubstitute = null; - - request_url = target_uri + getRequestPath(); - - Map queryParams = new HashMap (); - if(resourceVersion != null) { - queryParams.put("resource-version",resourceVersion); - } - - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - - String[] keys = requestProperties.keySet().toArray(new String[0]); - for(String key : keys) { - if("cloud-region.cloud-region-id".equals(key)) - continue; - if("entitlement.resource-uuid".equals(key)) - continue; - if("license.resource-uuid".equals(key)) - continue; - - - String value = requestProperties.getProperty(key); - if(key.contains(".")) { - String[] splitKey = key.split("\\."); - if("cloud-region".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); - aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); - String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("entitlement".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("license".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else { - Class clazz = null; - try { - clazz = getClassFromResource(splitKey[0]); - } catch (ClassNotFoundException exc) { - LOG.warn("AAIRequest does not support class: " + exc.getMessage()); - return null; - } - - if(clazz != null) { - if(clazz == this.model) { - Field[] fields = this.model.getDeclaredFields(); - Field field = fields[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - - String token = String.format("%s/{%s}", splitKey[0], primaryId); - - if(splitKey[1].equals(primaryId)) { - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } else { - queryParams.put(splitKey[1], encodeQuery(value)); - originalPath = token; - pathSubstitute = String.format("%s", splitKey[0]); - } - } else if(L3Networks.class == this.model) { - Field[] fields = L3Network.class.getDeclaredFields(); - Field field = fields[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - - String token = String.format("%s/{%s}", splitKey[0], primaryId); - originalPath = token; - pathSubstitute = String.format(""); - - queryParams.put(splitKey[1], encodeQuery(value)); - } else { - String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } - } - - } - aaiService.LOGwriteDateTrace(splitKey[1], value); - } - } - - if(originalPath != null && pathSubstitute != null) - request_url = request_url.replace(originalPath, pathSubstitute); - - if(!queryParams.isEmpty()) { - Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); - String queryString = mapJoiner.join(queryParams); - request_url = String.format("%s?%s", request_url, queryString); - } - - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - - return http_req_url; - } - - - public URL OriginalgetRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - - request_url = target_uri + getRequestPath(); - - Map keyValuepairs = new HashMap (); - Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); - - String[] keys = requestProperties.keySet().toArray(new String[0]); - for(String key : keys) { - if("cloud-region.cloud-region-id".equals(key)) - continue; - if("entitlement.resource-uuid".equals(key)) - continue; - if("license.resource-uuid".equals(key)) - continue; - - - String value = requestProperties.getProperty(key); - if(key.contains(".")) { - String[] splitKey = key.split("\\."); - if("cloud-region".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("cloud-region.cloud-region-id"); - aaiService.LOGwriteDateTrace("cloud-region-id", cloudRegionId); - String token = String.format("%s/{%s}/{cloud-region-id}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("entitlement".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("entitlement.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else if("license".equals(splitKey[0])){ - String cloudRegionId = requestProperties.getProperty("license.resource-uuid"); - aaiService.LOGwriteDateTrace("resource-uuid", cloudRegionId); - String token = String.format("%s/{%s}/{resource-uuid}", splitKey[0], splitKey[1] ); - String encoded_owner = encodeQuery(value); - String encoded_region = encodeQuery(cloudRegionId); - request_url = request_url.replace(token, String.format("%s/%s/%s", splitKey[0], encoded_owner, encoded_region)); - } else { - Class clazz = null; - try { - clazz = getClassFromResource(splitKey[0]); - } catch (ClassNotFoundException exc) { - LOG.warn("AAIRequest does not support class: " + exc.getMessage()); - return null; - } - - if(clazz != null) { - if(clazz == this.model) { - Field[] fields = this.model.getDeclaredFields(); - Field field = fields[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); - if("##default".equals(primaryId)) { - primaryId = fieldName; - } - - String token = String.format("%s/{%s}", splitKey[0], primaryId); - - if(splitKey[1].equals(primaryId)) { - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } else { - String replacement = String.format("%s?%s=%s", splitKey[0], splitKey[1], encodeQuery(value)); - if(request_url.contains(token)) - request_url = request_url.replace(token, replacement); - } - } else { - String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); - } - } - - } - aaiService.LOGwriteDateTrace(splitKey[1], value); - } - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - - String json_text = null; - try { - json_text = mapper.writeValueAsString(requestDatum); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {}; - return args; - } - - @Override - public Class getModelClass() { - return model; - } - - public void processRequestPathValues(Map nameValues) { - // identify unique resources - Set uniqueResources = AAIRequest.extractUniqueResourceSetFromKeys(nameValues.keySet()); - - String[] arguments = nameValues.keySet().toArray(new String[0]); - for(String name : arguments) { - String tmpName = name.replaceAll("-", "_"); - String value = nameValues.get(tmpName); - if(value != null && !value.isEmpty()) { - value = value.trim().replace("'", "").replace("$", "").replace("'", ""); - tmpName = name.replaceAll("_", "-"); - this.addRequestProperty(tmpName, value); - } - } - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java deleted file mode 100644 index 3915940f5..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/GenericVnfRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.GenericVnf; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class GenericVnfRequest extends AAIRequest { - - // tenant (1602) - public static final String GENERIC_VNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf"; - public static final String GENERIC_VNF_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.query"; - - private final String generic_vnf_path; - private final String generic_vnf_query_path; - - public static final String GENERIC_VNF_ID = "generic_vnf.vnf_id"; - public static final String VNF_ID = "vnf_id"; - - - public GenericVnfRequest() { - generic_vnf_path = configProperties.getProperty(GENERIC_VNF_PATH); - generic_vnf_query_path = configProperties.getProperty(GENERIC_VNF_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_vnf_path; - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+generic_vnf_path; - - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - GenericVnf tenant = (GenericVnf)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {VNF_ID, GENERIC_VNF_ID}; - return args; - } - - - @Override - public Class getModelClass() { - return GenericVnf.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java deleted file mode 100644 index e1431bead..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java +++ /dev/null @@ -1,212 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.L3InterfaceIpv4AddressList; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class L3InterfaceIpv4AddressListRequest extends AAIRequest { - - /* - * Note: there are 3 possible paths: - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - */ - - public static final String L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list"; - public static final String VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list"; - - private final String l3_interface_ipv4_address_list_path; - private final String vlan_l3_interface_ipv4_address_list_path; - - public static final String L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address"; - public static final String LIST_L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address-list.l3-interface-ipv4-address"; - public static final String VLAN_INTERFACE = "vlan-interface"; - public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; - - public L3InterfaceIpv4AddressListRequest() { - l3_interface_ipv4_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); - vlan_l3_interface_ipv4_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+l3_interface_ipv4_address_list_path; - - if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ - request_url = target_uri+vlan_l3_interface_ipv4_address_list_path; - request_url = processVLanRequestPathData(request_url, requestProperties); - } - - request_url = processPathData(request_url, requestProperties); - request_url = LInterfaceRequest.processPathData(request_url, requestProperties); -// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = null; - - if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { - key = VLAN_VLAN_INTERFACE; - } else if(requestProperties.containsKey(VLAN_INTERFACE)) { - key = VLAN_INTERFACE; - } else { - aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); - return request_url; - } - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - L3InterfaceIpv4AddressList vnfc = (L3InterfaceIpv4AddressList)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - L3_INTERFACE_IPV4_ADDRESS, - LIST_L3_INTERFACE_IPV4_ADDRESS, - VLAN_INTERFACE, - VLAN_VLAN_INTERFACE, - LInterfaceRequest.INTERFACE_NAME, - LInterfaceRequest.LINTERFACE_INTERFACE_NAME, - "generic-vnf.vnf-id" - }; - - return args; - } - - @Override - public Class getModelClass() { - return L3InterfaceIpv4AddressList.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = L3_INTERFACE_IPV4_ADDRESS; - if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV4_ADDRESS)) { - key = LIST_L3_INTERFACE_IPV4_ADDRESS; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV4_ADDRESS, LIST_L3_INTERFACE_IPV4_ADDRESS)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{l3-interface-ipv4-address}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("l3-interface-ipv4-address", requestProperties.getProperty(key)); - return request_url; - } - - /* - * (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.aai.PathConfigurator#configurePath(java.lang.String) - */ -// @Override -// public void processRequestPathValues(Map nameValues) { -// String[] paths = -// { -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}" -// }; -// -// Listkeys = new LinkedList(); -// keys.addAll(nameValues.keySet()); -// for(String key : keys) { -// if(key.contains(".")) { -// key = key.replaceAll("_", "-"); -// if(!LIST_L3_INTERFACE_IPV4_ADDRESS.equals(key)) { -// int index = key.indexOf("."); -// String resource = key.substring(0, index); -// AAIRequest rx = createRequest(resource, nameValues); -// if(rx != null) { -// pathElements.add(rx); -// } -// } -// } -// } -// super.processRequestPathValues(nameValues); -// } -// List pathElements = new LinkedList(); - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java deleted file mode 100644 index 5cdc0de64..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java +++ /dev/null @@ -1,179 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.L3InterfaceIpv6AddressList; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class L3InterfaceIpv6AddressListRequest extends AAIRequest { - - /* - * Note: there are 3 possible paths: - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - */ - - public static final String L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list"; - public static final String VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list"; - - private final String l3_interface_ipv6_address_list_path; - private final String vlan_l3_interface_ipv6_address_list_path; - - public static final String L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address"; - public static final String LIST_L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address-list.l3-interface-ipv6-address"; - public static final String VLAN_INTERFACE = "vlan-interface"; - public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; - - public L3InterfaceIpv6AddressListRequest() { - l3_interface_ipv6_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); - vlan_l3_interface_ipv6_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+l3_interface_ipv6_address_list_path; - - if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ - request_url = target_uri+vlan_l3_interface_ipv6_address_list_path; - request_url = processVLanRequestPathData(request_url, requestProperties); - } - - request_url = processPathData(request_url, requestProperties); - request_url = LInterfaceRequest.processPathData(request_url, requestProperties); -// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = null; - - if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { - key = VLAN_VLAN_INTERFACE; - } else if(requestProperties.containsKey(VLAN_INTERFACE)) { - key = VLAN_INTERFACE; - } else { - aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); - return request_url; - } - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - L3InterfaceIpv6AddressList vnfc = (L3InterfaceIpv6AddressList)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - L3_INTERFACE_IPV6_ADDRESS, - LIST_L3_INTERFACE_IPV6_ADDRESS, - VLAN_INTERFACE, - VLAN_VLAN_INTERFACE, - LInterfaceRequest.INTERFACE_NAME, - LInterfaceRequest.LINTERFACE_INTERFACE_NAME, - "generic-vnf.vnf-id" - - }; - - return args; - } - - @Override - public Class getModelClass() { - return L3InterfaceIpv6AddressList.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = L3_INTERFACE_IPV6_ADDRESS; - if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV6_ADDRESS)) { - key = LIST_L3_INTERFACE_IPV6_ADDRESS; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV6_ADDRESS, LIST_L3_INTERFACE_IPV6_ADDRESS)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{l3-interface-ipv6-address}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("l3-interface-ipv6-address", requestProperties.getProperty(key)); - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java deleted file mode 100644 index a9da4e45c..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LInterfaceRequest.java +++ /dev/null @@ -1,244 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.LInterface; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class LInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String LAGINTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface"; - public static final String LAGINTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.query"; - - public static final String P_INTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface"; - public static final String P_INTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.query"; - - public static final String LAGINTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf"; - public static final String P_INTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf"; - - private final String laginterface_linterface_path; - private final String laginterface_linterface_query_path; - private final String p_interface_linterface_path; - private final String p_interface_linterface_query_path; - - private final String laginterface_linterface_pnf_path; - private final String p_interface_linterface_pnf_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String LINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String P_INTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - public static final String ROUTER_NAME = "router-name"; - public static final String HOSTNAME = "hostname"; - - - public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; - - private final TYPE type; - - public LInterfaceRequest(TYPE type) { - this.type = type; - - laginterface_linterface_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PATH); - laginterface_linterface_query_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_QUERY_PATH); - - p_interface_linterface_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PATH); - p_interface_linterface_query_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_QUERY_PATH); - - laginterface_linterface_pnf_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PNF_PATH); - p_interface_linterface_pnf_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PNF_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String encoded_vnf = null; - String hostname = null; - String pnfname = null; - String interfaceName = null; - - if(type == TYPE.L2_BRIDGE_SBG) { - if(requestProperties.containsKey(PNF_PNF_NAME)) { - request_url = target_uri + laginterface_linterface_pnf_path; - } else { - request_url = target_uri + laginterface_linterface_path; - } - - if(requestProperties.containsKey(ROUTER_NAME)) { - hostname = requestProperties.getProperty(ROUTER_NAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - } - if(type == TYPE.L2_BRIDGE_BGF) { - if(requestProperties.containsKey(PNF_PNF_NAME)) { - request_url = target_uri + p_interface_linterface_pnf_path; - } else { - request_url = target_uri + p_interface_linterface_path; - } - - - if(requestProperties.containsKey(ROUTER_NAME)) { - hostname = requestProperties.getProperty(ROUTER_NAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - if(hostname != null) - aaiService.LOGwriteDateTrace("hostname", hostname); - if(pnfname != null) - aaiService.LOGwriteDateTrace("pnf-name", pnfname); - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - } - if(requestProperties.containsKey(P_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); - } - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LInterface vnfc = (LInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - if(type == TYPE.L2_BRIDGE_SBG) { - String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - if(type == TYPE.L2_BRIDGE_BGF) { - String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, P_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - - return args; - } - - @Override - public Class getModelClass() { - return LInterface.class; - } - - @Override - public String getPrimaryResourceName(String resource) { - return "l-interface"; - } - - public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - - request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java deleted file mode 100644 index 5f84553db..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/LagInterfacePnfRequest.java +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.LagInterface; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class LagInterfacePnfRequest extends AAIRequest { - - // tenant (1602) - public static final String LAG_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - public static final String LAG_INTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; - public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; - - private final String lag_interface_path; - private final String lag_interface_query_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String PNF_NAME = "pnf-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - - public LagInterfacePnfRequest() { - lag_interface_path = configProperties.getProperty(PNF_PATH) + "/lag-interfaces/lag-interface/{interface-name}"; - lag_interface_query_path = configProperties.getProperty(LAG_INTERFACE_QUERY_PATH); - LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + lag_interface_path); - LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + lag_interface_query_path); - if(lag_interface_path == null) { - LoggerFactory.getLogger(LagInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + lag_interface_path; - String encoded_vnf = null; - - String interfaceName = null; - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } else - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - request_url = processPnfRequestPathData(request_url,requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = PNF_NAME; - if(requestProperties.containsKey(PNF_PNF_NAME)) { - key = PNF_PNF_NAME; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{pnf-name}", encoded_vnf) ; - - return request_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LagInterface vnfc = (LagInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return LagInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java deleted file mode 100644 index e1528a617..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NamedQueryRequest.java +++ /dev/null @@ -1,190 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.InventoryResponseItems; - -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.AnnotationIntrospector; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.databind.type.TypeFactory; -import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; - -public class NamedQueryRequest extends AAIRequest { - - public static final String NAMED_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.named"; - - private final String named_search_path; - - public static final String NAMED_QUERY_UUID = "named-query-uuid"; - public static final String PREFIX = "prefix"; - - - public NamedQueryRequest() { - named_search_path = configProperties.getProperty(NAMED_SEARCH_PATH); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+named_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = AAIService.getObjectMapper(); - mapper.setSerializationInclusion(Include.NON_NULL); - mapper.setSerializationInclusion(Include.NON_EMPTY); - mapper.setSerializationInclusion(Include.NON_DEFAULT); - - AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); - AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); - mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - AAIDatum tenant = (AAIDatum)requestDatum; - String json_text = null; - try { - ObjectNode node = mapper.valueToTree(tenant); - Iterator it = node.elements(); - while(it.hasNext()){ - JsonNode jn = it.next(); - JsonNode child = jn.get("instance-filter"); - if(child != null) { - child = child.get(0); - if(child.has("l3-network")) { - JsonNode innerChild = child.get("l3-network"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("is-")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } else if(child.has("pnf")) { - JsonNode innerChild = child.get("pnf"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("in-maint")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } - } - } - json_text = node.toString(); - if(json_text == null) - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {NAMED_QUERY_UUID, PREFIX}; - return args; - } - - - @Override - public Class getModelClass() { - return InventoryResponseItems.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - - String encoded_vnf ; - String key = NAMED_QUERY_UUID; - - if(requestProperties.containsKey(key)) { - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{named-query-uuid}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("named-query-uuid", requestProperties.getProperty(key)); - } - - key = PREFIX; - - if(requestProperties.containsKey(key)) { - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{prefix}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("prefix", requestProperties.getProperty(key)); - } - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java deleted file mode 100644 index ba4da3d7e..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/NodesQueryRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.SearchResults; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class NodesQueryRequest extends AAIRequest { - - public static final String NODES_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; - - private final String nodes_search_path; - - public static final String NODE_TYPE = "node-type"; - public static final String ENTITY_IDENTIFIER = "entity-identifier"; - public static final String ENTITY_VALUE = "entity-value"; - - - public NodesQueryRequest() { - nodes_search_path = configProperties.getProperty(NODES_SEARCH_PATH); - } - - -// @Override -// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { -// -// String request_url = target_uri+generic_search_path; -// String key = START_NODE_TYPE; -// -// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); -// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; -// -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } -// URL http_req_url = new URL(request_url); -// -// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); -// -// -// return http_req_url; -// } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+nodes_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - SearchResults tenant = (SearchResults)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {NODE_TYPE, ENTITY_IDENTIFIER, ENTITY_VALUE}; - return args; - } - - - @Override - public Class getModelClass() { - return SearchResults.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = ENTITY_IDENTIFIER; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{entity-identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("entity-identifier", requestProperties.getProperty(key)); - - key = ENTITY_VALUE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{entity-name}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("entity-name", requestProperties.getProperty(key)); - - key = NODE_TYPE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{node-type}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("node-type", requestProperties.getProperty(key)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java deleted file mode 100644 index ea669f232..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfacePnfRequest.java +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.PInterface; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PInterfacePnfRequest extends AAIRequest { - - // tenant (1602) - public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; - public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; - - private final String pinterface_path; - private final String pinterface_query_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - public static final String PNF_NAME = "pnf-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - - public PInterfacePnfRequest() { - pinterface_path = configProperties.getProperty(PNF_PATH) + "/p-interfaces/p-interface/{interface-name}"; - pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); - LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); - LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); - if(pinterface_path == null) { - LoggerFactory.getLogger(PInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + pinterface_path; - String encoded_vnf = null; - - String interfaceName = null; - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } else - if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - request_url = processPnfRequestPathData(request_url,requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = PNF_NAME; - if(requestProperties.containsKey(PNF_PNF_NAME)) { - key = PNF_PNF_NAME; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{pnf-name}", encoded_vnf) ; - - return request_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PInterface vnfc = (PInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {INTERFACE_NAME, PINTERFACE_INTERFACE_NAME, PNF_NAME, PNF_PNF_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return PInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java deleted file mode 100644 index 378e125dd..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PInterfaceRequest.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.PInterface; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; - - private final String pinterface_path; - private final String pinterface_query_path; - - public static final String HOSTNAME = "hostname"; - public static final String PSERVER_HOSTNAME = "pserver.hostname"; - public static final String INTERFACE_NAME = "interface-name"; - public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - - - public PInterfaceRequest() { - pinterface_path = configProperties.getProperty(PINTERFACE_PATH); - pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); - LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); - LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); - if(pinterface_path == null) { - LoggerFactory.getLogger(PInterfaceRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + pinterface_path; - String encoded_vnf = null; - - String hostname = null; - String interfaceName = null; - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - } - if(requestProperties.containsKey(PSERVER_HOSTNAME)) { - hostname = requestProperties.getProperty(PSERVER_HOSTNAME); - } - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } - if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf) ; - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("hostname", hostname); - aaiService.LOGwriteDateTrace("interface-name", hostname); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PInterface vnfc = (PInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {HOSTNAME, PSERVER_HOSTNAME, INTERFACE_NAME, PINTERFACE_INTERFACE_NAME}; - return args; - } - - @Override - public Class getModelClass() { - return PInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java deleted file mode 100644 index a42e045bb..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PathRequest.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PathRequest extends AAIRequest { - - private final Class classType; - - public static final String RESOURCE_PATH = "resource-path"; - - public PathRequest(Class type) { - classType = (Class)type; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + "{resource-path}"; - - String encoded_vnf = requestProperties.getProperty(RESOURCE_PATH); - request_url = request_url.replace("{resource-path}", encoded_vnf) ; - - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - String json_text = null; - try { - json_text = mapper.writeValueAsString(classType); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {RESOURCE_PATH}; - return args; - } - - @Override - public Class getModelClass() { - return classType; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java deleted file mode 100644 index 4db95df1c..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/PhysicalLinkRequest.java +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.PhysicalLink; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PhysicalLinkRequest extends AAIRequest { - - // physical link - public static final String PHYSICAL_LINK_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link"; - public static final String PHYSICAL_LINK_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link.query"; - - private final String physical_link_path; - private final String physical_link_query_path; - - public static final String LINK_NAME = "link-name"; - public static final String PHYSICAL_LINK_NAME = "physical-link.link-name"; - - - public PhysicalLinkRequest() { - physical_link_path = configProperties.getProperty(PHYSICAL_LINK_PATH); - physical_link_query_path = configProperties.getProperty(PHYSICAL_LINK_QUERY_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+physical_link_path; - - String linkName = null; - if(requestProperties.containsKey(LINK_NAME)) { - linkName = requestProperties.getProperty(LINK_NAME); - } - - if(requestProperties.containsKey(PHYSICAL_LINK_NAME)) { - linkName = requestProperties.getProperty(PHYSICAL_LINK_NAME); - } - - - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{link-name}", encoded_vnf) ; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("link-name", linkName); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PhysicalLink vpe = (PhysicalLink)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vpe); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {LINK_NAME, PHYSICAL_LINK_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return PhysicalLink.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java deleted file mode 100644 index 8c3d107cb..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/RelationshipRequest.java +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.RelationshipList; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class RelationshipRequest extends AAIRequest { - - // tenant (1602) - public static final String RELATIONSHIP_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list"; - public static final String RELATIONSHIP_LIST_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list.query"; - - private final String relationship_path; - private final String relationship_query_path; - - public static final String RELATED_TO = "related-to"; - public static final String RELATIONSHIP_KEY = "relationship-key"; - - public RelationshipRequest() { - relationship_path = configProperties.getProperty(RELATIONSHIP_LIST_PATH, "/relationship-list/relationship"); - relationship_query_path = configProperties.getProperty(RELATIONSHIP_LIST_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - AAIRequest masterRequest = (AAIRequest)requestProperties.get(MASTER_REQUEST); - URL masterURL = masterRequest.getRequestUrl(method, null); - - String request_url = masterURL.toString(); - request_url = request_url + relationship_path; - - if(request_url.contains("//")) { - request_url = request_url.replaceAll("//", "/"); - } - - if(requestProperties.containsKey(RELATED_TO)) { - String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATED_TO)); - request_url = request_url.replace("{related-to}", encoded_vnf) ; - } - -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("related-to", requestProperties.getProperty(RELATED_TO)); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+relationship_query_path; - String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATIONSHIP_KEY)); - request_url = request_url.replace("{tenant-name}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("tenant_name", requestProperties.getProperty(RELATIONSHIP_KEY)); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - Object tenant = requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {RELATED_TO, RELATIONSHIP_KEY}; - return args; - } - - - @Override - public Class getModelClass() { - return RelationshipList.class; - } - - public boolean isDeleteDataRequired() { - return true; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java deleted file mode 100644 index e4fd3d938..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SelfLinkRequest.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class SelfLinkRequest extends AAIRequest { - - private final Class classType; - - public static final String SELFLINK = "selflink"; - - public SelfLinkRequest(Class type) { - classType = (Class)type; - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - - request_url = requestProperties.getProperty(SELFLINK); - - String query = null; - - if(request_url.contains("?")) { - query = request_url.substring(request_url.indexOf("?")); - Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("="); -// String queryString = mapJoiner.join(query); - } else { - request_url = request_url + "?depth=1"; - } - - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - String json_text = null; - try { - json_text = mapper.writeValueAsString(classType); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {SELFLINK}; - return args; - } - - @Override - public Class getModelClass() { - return classType; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java deleted file mode 100644 index 3cbe187c0..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/SubInterfaceRequest.java +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.LInterface; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class SubInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String PNF_LAGINTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface"; - public static final String PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface.query"; - - public static final String PNF_P_INTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface"; - public static final String PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface.query"; - - private final String pnf_laginterface_subinterface_path; - private final String pnf_laginterface_subinterface_query_path; - private final String pnf_p_interface_subinterface_path; - private final String pnf_p_interface_subinterface_query_path; - - public static final String SUBINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; - - private final TYPE type; - - public SubInterfaceRequest(TYPE type) { - this.type = type; - - pnf_laginterface_subinterface_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_PATH); - pnf_laginterface_subinterface_query_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH); - - pnf_p_interface_subinterface_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_PATH); - pnf_p_interface_subinterface_query_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String encoded_vnf = null; - - String pnfname = null; - String interfaceName = null; - - if(type == TYPE.L2_BRIDGE_SBG) { - request_url = target_uri + pnf_laginterface_subinterface_path; - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - } - if(type == TYPE.L2_BRIDGE_BGF) { - request_url = target_uri + pnf_p_interface_subinterface_path; - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - if(pnfname != null) - aaiService.LOGwriteDateTrace("pnf-name", pnfname); - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - } - if(requestProperties.containsKey(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); - } - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LInterface vnfc = (LInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - if(type == TYPE.L2_BRIDGE_SBG) { - String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - if(type == TYPE.L2_BRIDGE_BGF) { - String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, PInterfaceRequest.PINTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - - return args; - } - - @Override - public Class getModelClass() { - return LInterface.class; - } - - @Override - public String getPrimaryResourceName(String resource) { - return "sub-interface"; - } - - public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java deleted file mode 100644 index 705f53d28..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/UpdateRequest.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Map; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class UpdateRequest extends AAIRequest { - - private AAIRequest request; - private Map params; - - public UpdateRequest(AAIRequest request, Map parms) { - this.request = request; - this.params = parms; - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) - throws UnsupportedEncodingException, MalformedURLException { - return request.getRequestUrl(method, resourceVersion); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return request.getRequestQueryUrl(method); - } - - @Override - public String toJSONString() { - ObjectMapper mapper = AAIService.getObjectMapper(); - String json = null; - - try { - json = mapper.writeValueAsString(params); - } catch (JsonProcessingException e) { - LOG.error("Could not convert parameters of " + request.getRequestObject().getClass().getName(), e); - } - - return json; - } - - @Override - public String[] getArgsList() { - return request.getArgsList(); - } - - @Override - public Class getModelClass() { - return request.getModelClass(); - } - - @Override - public void addRequestProperty(String key, String value) { - request.requestProperties.put(key, value); - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - -// if(request != null) { -// Class clazz = request.getClass(); -// Method function = null; -// try { -// function = clazz.getMethod("processPathData", request_url.getClass(), requestProperties.getClass()); -// request_url = (String) function.invoke(null, request_url, requestProperties); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } - -// request.processPathData(request_url, requestProperties); - return request_url; - } - - public void processRequestPathValues(Map nameValues) { - request.processRequestPathValues(nameValues); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java deleted file mode 100644 index 84323176b..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/AAIDatum.java +++ /dev/null @@ -1,26 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -public interface AAIDatum { - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java deleted file mode 100644 index 576c15701..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/EchoResponse.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "responseMessages" -}) -public class EchoResponse implements AAIDatum { - - @JsonProperty("responseMessages") - private ResponseMessages responseMessages; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The responseMessages - */ - @JsonProperty("responseMessages") - public ResponseMessages getResponseMessages() { - return responseMessages; - } - - /** - * - * @param responseMessages - * The responseMessages - */ - @JsonProperty("responseMessages") - public void setResponseMessages(ResponseMessages responseMessages) { - this.responseMessages = responseMessages; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java deleted file mode 100644 index 6a255fcf1..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ErrorResponse.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.HashMap; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "requestError" -}) -public class ErrorResponse { - - @JsonProperty("requestError") - private RequestError requestError; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The requestError - */ - @JsonProperty("requestError") - public RequestError getRequestError() { - return requestError; - } - - /** - * - * @param requestError - * The requestError - */ - @JsonProperty("requestError") - public void setRequestError(RequestError requestError) { - this.requestError = requestError; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java deleted file mode 100644 index 9bbca18f5..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/RequestError.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.HashMap; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "serviceException" -}) -public class RequestError { - - @JsonProperty("serviceException") - private ServiceException serviceException; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The serviceException - */ - @JsonProperty("serviceException") - public ServiceException getServiceException() { - return serviceException; - } - - /** - * - * @param serviceException - * The serviceException - */ - @JsonProperty("serviceException") - public void setServiceException(ServiceException serviceException) { - this.serviceException = serviceException; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java deleted file mode 100644 index f5901a8be..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResourceVersion.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -public interface ResourceVersion { - - public String getResourceVersion(); - public void setResourceVersion(String resourceVersion); -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java deleted file mode 100644 index db3778792..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessage.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "messageId", - "text", - "variables" -}) -public class ResponseMessage { - - @JsonProperty("messageId") - private String messageId; - @JsonProperty("text") - private String text; - @JsonProperty("variables") - private Variables variables; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The messageId - */ - @JsonProperty("messageId") - public String getMessageId() { - return messageId; - } - - /** - * - * @param messageId - * The messageId - */ - @JsonProperty("messageId") - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - /** - * - * @return - * The text - */ - @JsonProperty("text") - public String getText() { - return text; - } - - /** - * - * @param text - * The text - */ - @JsonProperty("text") - public void setText(String text) { - this.text = text; - } - - /** - * - * @return - * The variables - */ - @JsonProperty("variables") - public Variables getVariables() { - return variables; - } - - /** - * - * @param variables - * The variables - */ - @JsonProperty("variables") - public void setVariables(Variables variables) { - this.variables = variables; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java deleted file mode 100644 index a23878084..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ResponseMessages.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "responseMessage" -}) -public class ResponseMessages { - - @JsonProperty("responseMessage") - private List responseMessage = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The responseMessage - */ - @JsonProperty("responseMessage") - public List getResponseMessage() { - return responseMessage; - } - - /** - * - * @param responseMessage - * The responseMessage - */ - @JsonProperty("responseMessage") - public void setResponseMessage(List responseMessage) { - this.responseMessage = responseMessage; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java deleted file mode 100644 index b98d3d8fc..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/ServiceException.java +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "messageId", - "text", - "variables" -}) -public class ServiceException { - - @JsonProperty("messageId") - private String messageId; - @JsonProperty("text") - private String text; - @JsonProperty("variables") - private List variables = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The messageId - */ - @JsonProperty("messageId") - public String getMessageId() { - return messageId; - } - - /** - * - * @param messageId - * The messageId - */ - @JsonProperty("messageId") - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - /** - * - * @return - * The text - */ - @JsonProperty("text") - public String getText() { - return text; - } - - /** - * - * @param text - * The text - */ - @JsonProperty("text") - public void setText(String text) { - this.text = text; - } - - /** - * - * @return - * The variables - */ - @JsonProperty("variables") - public List getVariables() { - return variables; - } - - /** - * - * @param variables - * The variables - */ - @JsonProperty("variables") - public void setVariables(List variables) { - this.variables = variables; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java deleted file mode 100644 index f15507800..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/SubInterface.java +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -import org.openecomp.aai.inventory.v10.RelationshipList; -import org.openecomp.aai.inventory.v10.Vlans; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "interface-name", - "interface-role", - "resource-version", - "vlans", - "relationshipList" -}) -public class SubInterface implements AAIDatum { - - @JsonProperty("interface-name") - private String interfaceName; - @JsonProperty("interface-role") - private String interfaceRole; - @JsonProperty("resource-version") - private String resourceVersion; - @JsonProperty("vlans") - private Vlans vlans; - @JsonProperty("relationshipList") - private RelationshipList relationshipList; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The interfaceName - */ - @JsonProperty("interface-name") - public String getInterfaceName() { - return interfaceName; - } - - /** - * - * @param interfaceName - * The interface-name - */ - @JsonProperty("interface-name") - public void setInterfaceName(String interfaceName) { - this.interfaceName = interfaceName; - } - - /** - * - * @return - * The interfaceRole - */ - @JsonProperty("interface-role") - public String getInterfaceRole() { - return interfaceRole; - } - - /** - * - * @param interfaceRole - * The interface-role - */ - @JsonProperty("interface-role") - public void setInterfaceRole(String interfaceRole) { - this.interfaceRole = interfaceRole; - } - - /** - * - * @return - * The resourceVersion - */ - @JsonProperty("resource-version") - public String getResourceVersion() { - return resourceVersion; - } - - /** - * - * @param resourceVersion - * The resource-version - */ - @JsonProperty("resource-version") - public void setResourceVersion(String resourceVersion) { - this.resourceVersion = resourceVersion; - } - - /** - * - * @return - * The vlans - */ - @JsonProperty("vlans") - public Vlans getVlans() { - return vlans; - } - - /** - * - * @param vlans - * The vlans - */ - @JsonProperty("vlans") - public void setVlans(Vlans vlans) { - this.vlans = vlans; - } - - /** - * - * @return - * The relationshipList - */ - @JsonProperty("relationshipList") - public RelationshipList getRelationshipList() { - return relationshipList; - } - - /** - * - * @param relationshipList - * The relationshipList - */ - @JsonProperty("relationshipList") - public void setRelationshipList(RelationshipList relationshipList) { - this.relationshipList = relationshipList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java deleted file mode 100644 index 3b03ba472..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/Variables.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "variable" -}) -public class Variables { - - @JsonProperty("variable") - private List variable = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The variable - */ - @JsonProperty("variable") - public List getVariable() { - return variable; - } - - /** - * - * @param variable - * The variable - */ - @JsonProperty("variable") - public void setVariable(List variable) { - this.variable = variable; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java deleted file mode 100644 index 641a8abde..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/KeyDatum.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.notify; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "key-name", - "key-value" -}) -public class KeyDatum { - - @JsonProperty("key-name") - private String keyName; - @JsonProperty("key-value") - private String keyValue; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The keyName - */ - @JsonProperty("key-name") - public String getKeyName() { - return keyName; - } - - /** - * - * @param keyName - * The key-name - */ - @JsonProperty("key-name") - public void setKeyName(String keyName) { - this.keyName = keyName; - } - - /** - * - * @return - * The keyValue - */ - @JsonProperty("key-value") - public String getKeyValue() { - return keyValue; - } - - /** - * - * @param keyValue - * The key-value - */ - @JsonProperty("key-value") - public void setKeyValue(String keyValue) { - this.keyValue = keyValue; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java deleted file mode 100644 index d97b35239..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/notify/NotifyEvent.java +++ /dev/null @@ -1,170 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.notify; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "event-id", - "event-trigger", - "key-data", - "node-type", - "selflink" -}) -public class NotifyEvent { - - @JsonProperty("event-id") - private String eventId; - @JsonProperty("event-trigger") - private String eventTrigger; - @JsonProperty("key-data") - private List keyData = new ArrayList(); - @JsonProperty("node-type") - private String nodeType; - @JsonProperty("selflink") - private String selflink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The eventId - */ - @JsonProperty("event-id") - public String getEventId() { - return eventId; - } - - /** - * - * @param eventId - * The event-id - */ - @JsonProperty("event-id") - public void setEventId(String eventId) { - this.eventId = eventId; - } - - /** - * - * @return - * The eventTrigger - */ - @JsonProperty("event-trigger") - public String getEventTrigger() { - return eventTrigger; - } - - /** - * - * @param eventTrigger - * The event-trigger - */ - @JsonProperty("event-trigger") - public void setEventTrigger(String eventTrigger) { - this.eventTrigger = eventTrigger; - } - - /** - * - * @return - * The keyData - */ - @JsonProperty("key-data") - public List getKeyData() { - return keyData; - } - - /** - * - * @param keyData - * The key-data - */ - @JsonProperty("key-data") - public void setKeyData(List keyData) { - this.keyData = keyData; - } - - /** - * - * @return - * The nodeType - */ - @JsonProperty("node-type") - public String getNodeType() { - return nodeType; - } - - /** - * - * @param nodeType - * The node-type - */ - @JsonProperty("node-type") - public void setNodeType(String nodeType) { - this.nodeType = nodeType; - } - - /** - * - * @return - * The selflink - */ - @JsonProperty("selflink") - public String getSelflink() { - return selflink; - } - - /** - * - * @param selflink - * The selflink - */ - @JsonProperty("selflink") - public void setSelflink(String selflink) { - this.selflink = selflink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java deleted file mode 100644 index 6ffc30c45..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Flavor.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "flavorId", - "flavorName", - "flavorLink" -}) -public class Flavor { - - @JsonProperty("flavorId") - private String flavorId; - @JsonProperty("flavorName") - private String flavorName; - @JsonProperty("flavorLink") - private String flavorLink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The flavorId - */ - @JsonProperty("flavorId") - public String getFlavorId() { - return flavorId; - } - - /** - * - * @param flavorId - * The flavorId - */ - @JsonProperty("flavorId") - public void setFlavorId(String flavorId) { - this.flavorId = flavorId; - } - - /** - * - * @return - * The flavorName - */ - @JsonProperty("flavorName") - public String getFlavorName() { - return flavorName; - } - - /** - * - * @param flavorName - * The flavorName - */ - @JsonProperty("flavorName") - public void setFlavorName(String flavorName) { - this.flavorName = flavorName; - } - - /** - * - * @return - * The flavorLink - */ - @JsonProperty("flavorLink") - public String getFlavorLink() { - return flavorLink; - } - - /** - * - * @param flavorLink - * The flavorLink - */ - @JsonProperty("flavorLink") - public void setFlavorLink(String flavorLink) { - this.flavorLink = flavorLink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java deleted file mode 100644 index 7c171ebd9..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Host.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "hostId", - "hostname", - "hostLoc" -}) -public class Host { - - @JsonProperty("hostId") - private String hostId; - @JsonProperty("hostname") - private String hostname; - @JsonProperty("hostLoc") - private String hostLoc; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The hostId - */ - @JsonProperty("hostId") - public String getHostId() { - return hostId; - } - - /** - * - * @param hostId - * The hostId - */ - @JsonProperty("hostId") - public void setHostId(String hostId) { - this.hostId = hostId; - } - - /** - * - * @return - * The hostname - */ - @JsonProperty("hostname") - public String getHostname() { - return hostname; - } - - /** - * - * @param hostname - * The hostname - */ - @JsonProperty("hostname") - public void setHostname(String hostname) { - this.hostname = hostname; - } - - /** - * - * @return - * The hostLoc - */ - @JsonProperty("hostLoc") - public String getHostLoc() { - return hostLoc; - } - - /** - * - * @param hostLoc - * The hostLoc - */ - @JsonProperty("hostLoc") - public void setHostLoc(String hostLoc) { - this.hostLoc = hostLoc; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java deleted file mode 100644 index 0e27c5418..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Image.java +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "imageId", - "imageName", - "osType", - "osVersion", - "application", - "applicationVersion", - "applicationVendor", - "imageLink" -}) -public class Image { - - @JsonProperty("imageId") - private String imageId; - @JsonProperty("imageName") - private String imageName; - @JsonProperty("osType") - private String osType; - @JsonProperty("osVersion") - private String osVersion; - @JsonProperty("application") - private String application; - @JsonProperty("applicationVersion") - private String applicationVersion; - @JsonProperty("applicationVendor") - private String applicationVendor; - @JsonProperty("imageLink") - private String imageLink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The imageId - */ - @JsonProperty("imageId") - public String getImageId() { - return imageId; - } - - /** - * - * @param imageId - * The imageId - */ - @JsonProperty("imageId") - public void setImageId(String imageId) { - this.imageId = imageId; - } - - /** - * - * @return - * The imageName - */ - @JsonProperty("imageName") - public String getImageName() { - return imageName; - } - - /** - * - * @param imageName - * The imageName - */ - @JsonProperty("imageName") - public void setImageName(String imageName) { - this.imageName = imageName; - } - - /** - * - * @return - * The osType - */ - @JsonProperty("osType") - public String getOsType() { - return osType; - } - - /** - * - * @param osType - * The osType - */ - @JsonProperty("osType") - public void setOsType(String osType) { - this.osType = osType; - } - - /** - * - * @return - * The osVersion - */ - @JsonProperty("osVersion") - public String getOsVersion() { - return osVersion; - } - - /** - * - * @param osVersion - * The osVersion - */ - @JsonProperty("osVersion") - public void setOsVersion(String osVersion) { - this.osVersion = osVersion; - } - - /** - * - * @return - * The application - */ - @JsonProperty("application") - public String getApplication() { - return application; - } - - /** - * - * @param application - * The application - */ - @JsonProperty("application") - public void setApplication(String application) { - this.application = application; - } - - /** - * - * @return - * The applicationVersion - */ - @JsonProperty("applicationVersion") - public String getApplicationVersion() { - return applicationVersion; - } - - /** - * - * @param applicationVersion - * The applicationVersion - */ - @JsonProperty("applicationVersion") - public void setApplicationVersion(String applicationVersion) { - this.applicationVersion = applicationVersion; - } - - /** - * - * @return - * The applicationVendor - */ - @JsonProperty("applicationVendor") - public String getApplicationVendor() { - return applicationVendor; - } - - /** - * - * @param applicationVendor - * The applicationVendor - */ - @JsonProperty("applicationVendor") - public void setApplicationVendor(String applicationVendor) { - this.applicationVendor = applicationVendor; - } - - /** - * - * @return - * The imageLink - */ - @JsonProperty("imageLink") - public String getImageLink() { - return imageLink; - } - - /** - * - * @param imageLink - * The imageLink - */ - @JsonProperty("imageLink") - public void setImageLink(String imageLink) { - this.imageLink = imageLink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java deleted file mode 100644 index 19a9bf6a9..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/IpAddress.java +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "addrId", - "addr", - "version", - "type", - "networkName" -}) -public class IpAddress { - - @JsonProperty("addrId") - private String addrId; - @JsonProperty("addr") - private String addr; - @JsonProperty("version") - private String version; - @JsonProperty("type") - private String type; - @JsonProperty("networkName") - private String networkName; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The addrId - */ - @JsonProperty("addrId") - public String getAddrId() { - return addrId; - } - - /** - * - * @param addrId - * The addrId - */ - @JsonProperty("addrId") - public void setAddrId(String addrId) { - this.addrId = addrId; - } - - /** - * - * @return - * The addr - */ - @JsonProperty("addr") - public String getAddr() { - return addr; - } - - /** - * - * @param addr - * The addr - */ - @JsonProperty("addr") - public void setAddr(String addr) { - this.addr = addr; - } - - /** - * - * @return - * The version - */ - @JsonProperty("version") - public String getVersion() { - return version; - } - - /** - * - * @param version - * The version - */ - @JsonProperty("version") - public void setVersion(String version) { - this.version = version; - } - - /** - * - * @return - * The type - */ - @JsonProperty("type") - public String getType() { - return type; - } - - /** - * - * @param type - * The type - */ - @JsonProperty("type") - public void setType(String type) { - this.type = type; - } - - /** - * - * @return - * The networkName - */ - @JsonProperty("networkName") - public String getNetworkName() { - return networkName; - } - - /** - * - * @param networkName - * The networkName - */ - @JsonProperty("networkName") - public void setNetworkName(String networkName) { - this.networkName = networkName; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java deleted file mode 100644 index 8e04e35f5..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/Relationship.java +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relatedTo", - "relatedLink", - "relationshipData", - "any" -}) -public class Relationship { - - @JsonProperty("relatedTo") - private String relatedTo; - @JsonProperty("relatedLink") - private String relatedLink; - @JsonProperty("relationshipData") - private List relationshipData = new ArrayList(); - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relatedTo - */ - @JsonProperty("relatedTo") - public String getRelatedTo() { - return relatedTo; - } - - /** - * - * @param relatedTo - * The relatedTo - */ - @JsonProperty("relatedTo") - public void setRelatedTo(String relatedTo) { - this.relatedTo = relatedTo; - } - - /** - * - * @return - * The relatedLink - */ - @JsonProperty("relatedLink") - public String getRelatedLink() { - return relatedLink; - } - - /** - * - * @param relatedLink - * The relatedLink - */ - @JsonProperty("relatedLink") - public void setRelatedLink(String relatedLink) { - this.relatedLink = relatedLink; - } - - /** - * - * @return - * The relationshipData - */ - @JsonProperty("relationshipData") - public List getRelationshipData() { - return relationshipData; - } - - /** - * - * @param relationshipData - * The relationshipData - */ - @JsonProperty("relationshipData") - public void setRelationshipData(List relationshipData) { - this.relationshipData = relationshipData; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java deleted file mode 100644 index 1ac21640c..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipDatum.java +++ /dev/null @@ -1,124 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relationshipKey", - "relationshipValue", - "any" -}) -public class RelationshipDatum { - - @JsonProperty("relationshipKey") - private String relationshipKey; - @JsonProperty("relationshipValue") - private String relationshipValue; - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relationshipKey - */ - @JsonProperty("relationshipKey") - public String getRelationshipKey() { - return relationshipKey; - } - - /** - * - * @param relationshipKey - * The relationshipKey - */ - @JsonProperty("relationshipKey") - public void setRelationshipKey(String relationshipKey) { - this.relationshipKey = relationshipKey; - } - - /** - * - * @return - * The relationshipValue - */ - @JsonProperty("relationshipValue") - public String getRelationshipValue() { - return relationshipValue; - } - - /** - * - * @param relationshipValue - * The relationshipValue - */ - @JsonProperty("relationshipValue") - public void setRelationshipValue(String relationshipValue) { - this.relationshipValue = relationshipValue; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java deleted file mode 100644 index 3c46d21bd..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/RelationshipList.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relationship", - "any" -}) -public class RelationshipList { - - @JsonProperty("relationship") - private List relationship = new ArrayList(); - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relationship - */ - @JsonProperty("relationship") - public List getRelationship() { - return relationship; - } - - /** - * - * @param relationship - * The relationship - */ - @JsonProperty("relationship") - public void setRelationship(List relationship) { - this.relationship = relationship; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java deleted file mode 100644 index 45d725530..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/data/v1507/VServer.java +++ /dev/null @@ -1,262 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "vmId", - "vmName", - "vmName2", - "host", - "image", - "flavor", - "ipAddresses", - "vserverLink", - "relationshipList" -}) -public class VServer { - - @JsonProperty("vmId") - private String vmId; - @JsonProperty("vmName") - private String vmName; - @JsonProperty("vmName2") - private String vmName2; - @JsonProperty("host") - private Host host; - @JsonProperty("image") - private Image image; - @JsonProperty("flavor") - private Flavor flavor; - @JsonProperty("ipAddresses") - private List ipAddresses = new ArrayList(); - @JsonProperty("vserverLink") - private String vserverLink; - @JsonProperty("relationshipList") - private RelationshipList relationshipList; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The vmId - */ - @JsonProperty("vmId") - public String getVmId() { - return vmId; - } - - /** - * - * @param vmId - * The vmId - */ - @JsonProperty("vmId") - public void setVmId(String vmId) { - this.vmId = vmId; - } - - /** - * - * @return - * The vmName - */ - @JsonProperty("vmName") - public String getVmName() { - return vmName; - } - - /** - * - * @param vmName - * The vmName - */ - @JsonProperty("vmName") - public void setVmName(String vmName) { - this.vmName = vmName; - } - - /** - * - * @return - * The vmName2 - */ - @JsonProperty("vmName2") - public String getVmName2() { - return vmName2; - } - - /** - * - * @param vmName2 - * The vmName2 - */ - @JsonProperty("vmName2") - public void setVmName2(String vmName2) { - this.vmName2 = vmName2; - } - - /** - * - * @return - * The host - */ - @JsonProperty("host") - public Host getHost() { - return host; - } - - /** - * - * @param host - * The host - */ - @JsonProperty("host") - public void setHost(Host host) { - this.host = host; - } - - /** - * - * @return - * The image - */ - @JsonProperty("image") - public Image getImage() { - return image; - } - - /** - * - * @param image - * The image - */ - @JsonProperty("image") - public void setImage(Image image) { - this.image = image; - } - - /** - * - * @return - * The flavor - */ - @JsonProperty("flavor") - public Flavor getFlavor() { - return flavor; - } - - /** - * - * @param flavor - * The flavor - */ - @JsonProperty("flavor") - public void setFlavor(Flavor flavor) { - this.flavor = flavor; - } - - /** - * - * @return - * The ipAddresses - */ - @JsonProperty("ipAddresses") - public List getIpAddresses() { - return ipAddresses; - } - - /** - * - * @param ipAddresses - * The ipAddresses - */ - @JsonProperty("ipAddresses") - public void setIpAddresses(List ipAddresses) { - this.ipAddresses = ipAddresses; - } - - /** - * - * @return - * The vserverLink - */ - @JsonProperty("vserverLink") - public String getVserverLink() { - return vserverLink; - } - - /** - * - * @param vserverLink - * The vserverLink - */ - @JsonProperty("vserverLink") - public void setVserverLink(String vserverLink) { - this.vserverLink = vserverLink; - } - - /** - * - * @return - * The relationshipList - */ - @JsonProperty("relationshipList") - public RelationshipList getRelationshipList() { - return relationshipList; - } - - /** - * - * @param relationshipList - * The relationshipList - */ - @JsonProperty("relationshipList") - public void setRelationshipList(RelationshipList relationshipList) { - this.relationshipList = relationshipList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java deleted file mode 100644 index e533a164f..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryRequestData.java +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -import com.fasterxml.jackson.annotation.JsonProperty; - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "start", - "query" -}) -@XmlRootElement(name = "query-request") -public class FormattedQueryRequestData implements AAIDatum { - - @JsonProperty("start") - protected List start; - - @JsonProperty("query") - private String query; - - @JsonProperty("start") - public List getStart () - { - return start; - } - - @JsonProperty("start") - public void setStart (List start) - { - this.start = start; - } - - @JsonProperty("query") - public String getQuery () - { - return query; - } - - @JsonProperty("query") - public void setQuery (String query) - { - this.query = query; - } - - @Override - public String toString() - { - return " [start = "+start+", query = "+query+"]"; - } - - public String getResourceVersion() { - return null; - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java deleted file mode 100644 index 248cd9597..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/FormattedQueryResultList.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "results" -}) -@XmlRootElement(name = "result-list") -public class FormattedQueryResultList implements AAIDatum { - - @XmlElement(name = "results") - private List results; - @XmlElement(name = "results") - public List getResults () - { - return results; - } - @XmlElement(name = "results") - public void setResults (List results) - { - this.results = results; - } - - @Override - public String toString() - { - return "ClassPojo [results = "+results+"]"; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java deleted file mode 100644 index ccd637294..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilter.java +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; - -import javax.annotation.Generated; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -import org.openecomp.aai.inventory.v10.L3Network; -import org.openecomp.aai.inventory.v10.Pnf; -import org.openecomp.aai.inventory.v10.LogicalLink; -import org.openecomp.aai.inventory.v10.ServiceInstance; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "logical-link", - "pnf", - "l3-network", - "service-instance" -}) -public class InstanceFilter { - - @JsonProperty("logical-link") - private LogicalLink logicalLink; - @JsonProperty("pnf") - private Pnf pnf; - @JsonProperty("l3-network") - private L3Network l3Network; - @JsonProperty("service-instance") - private ServiceInstance serviceInstance; - - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The logicalLink - */ - @JsonProperty("logical-link") - public LogicalLink getLogicalLink() { - return logicalLink; - } - - /** - * - * @param logicalLink - * The logical-link - */ - @JsonProperty("logical-link") - public void setLogicalLink(LogicalLink logicalLink) { - this.logicalLink = logicalLink; - } - - /** - * - * @return - * The pnf - */ - @JsonProperty("pnf") - public Pnf getPnf() { - return pnf; - } - - /** - * - * @param pnf - * The pnf - */ - @JsonProperty("pnf") - public void setPnf(Pnf pnf) { - this.pnf = pnf; - } - - @JsonProperty("l3-network") - public L3Network getL3Network() { - return l3Network; - } - - @JsonProperty("l3-network") - public void setL3Network(L3Network l3Network) { - this.l3Network = l3Network; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - - @JsonProperty("service-instance") - public ServiceInstance getServiceInstance() { - return serviceInstance; - } - - @JsonProperty("service-instance") - public void setServiceInstance(ServiceInstance serviceInstance) { - this.serviceInstance = serviceInstance; - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java deleted file mode 100644 index 265c1866c..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/InstanceFilters.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "instance-filter" -}) -public class InstanceFilters { - - @JsonProperty("instance-filter") - private List instanceFilter = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The instanceFilter - */ - @JsonProperty("instance-filter") - public List getInstanceFilter() { - return instanceFilter; - } - - /** - * - * @param instanceFilter - * The instance-filter - */ - @JsonProperty("instance-filter") - public void setInstanceFilter(List instanceFilter) { - this.instanceFilter = instanceFilter; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java deleted file mode 100644 index 65350c23d..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQuery.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "named-query-uuid" -}) -public class NamedQuery { - - @JsonProperty("named-query-uuid") - private String namedQueryUuid; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The namedQueryUuid - */ - @JsonProperty("named-query-uuid") - public String getNamedQueryUuid() { - return namedQueryUuid; - } - - /** - * - * @param namedQueryUuid - * The named-query-uuid - */ - @JsonProperty("named-query-uuid") - public void setNamedQueryUuid(String namedQueryUuid) { - this.namedQueryUuid = namedQueryUuid; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java deleted file mode 100644 index 8188acf23..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/NamedQueryData.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "query-parameters", - "instance-filters" -}) -public class NamedQueryData implements AAIDatum { - - @JsonProperty("query-parameters") - private QueryParameters queryParameters; - @JsonProperty("instance-filters") - private InstanceFilters instanceFilters; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The queryParameters - */ - @JsonProperty("query-parameters") - public QueryParameters getQueryParameters() { - return queryParameters; - } - - /** - * - * @param queryParameters - * The query-parameters - */ - @JsonProperty("query-parameters") - public void setQueryParameters(QueryParameters queryParameters) { - this.queryParameters = queryParameters; - } - - /** - * - * @return - * The instanceFilters - */ - @JsonProperty("instance-filters") - public InstanceFilters getInstanceFilters() { - return instanceFilters; - } - - /** - * - * @param instanceFilters - * The instance-filters - */ - @JsonProperty("instance-filters") - public void setInstanceFilters(InstanceFilters instanceFilters) { - this.instanceFilters = instanceFilters; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java deleted file mode 100644 index c6ddbcbca..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/QueryParameters.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "named-query" -}) -public class QueryParameters { - - @JsonProperty("named-query") - private NamedQuery namedQuery; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The namedQuery - */ - @JsonProperty("named-query") - public NamedQuery getNamedQuery() { - return namedQuery; - } - - /** - * - * @param namedQuery - * The named-query - */ - @JsonProperty("named-query") - public void setNamedQuery(NamedQuery namedQuery) { - this.namedQuery = namedQuery; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java deleted file mode 100644 index ff2269a49..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/query/Results.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -import org.openecomp.aai.inventory.v10.*; - - -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "genericVnf", - "pserver", - "complex" -}) -@XmlRootElement(name = "results") -public class Results { - - @XmlElement(name = "generic-vnf") - private GenericVnf genericVnf; - - @XmlElement(name = "complex") - private Complex complex; - - @XmlElement(name = "pserver") - private Pserver pserver; - - - @XmlElement(name = "generic-vnf") - public GenericVnf getGenericVnf () - { - return genericVnf; - } - @XmlElement(name = "generic-vnf") - public void setGenericVnf (GenericVnf genericVnf) - { - this.genericVnf = genericVnf; - } - - @Override - public String toString() - { - return " [generic-vnf = "+genericVnf+"]"; - } - @XmlElement(name = "complex") - public Complex getComplex() { - return complex; - } - @XmlElement(name = "complex") - public void setComplex(Complex complex) { - this.complex = complex; - } - @XmlElement(name = "pserver") - public Pserver getPserver() { - return pserver; - } - @XmlElement(name = "pserver") - public void setPserver(Pserver pserver) { - this.pserver = pserver; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java deleted file mode 100644 index f3d509987..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Action.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.update; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "action-data", - "action-type" -}) -public class Action { - - @JsonProperty("action-data") - private List actionData = new ArrayList(); - @JsonProperty("action-type") - private String actionType; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The actionData - */ - @JsonProperty("action-data") - public List getActionData() { - return actionData; - } - - /** - * - * @param actionData - * The action-data - */ - @JsonProperty("action-data") - public void setActionData(List actionData) { - this.actionData = actionData; - } - - /** - * - * @return - * The actionType - */ - @JsonProperty("action-type") - public String getActionType() { - return actionType; - } - - /** - * - * @param actionType - * The action-type - */ - @JsonProperty("action-type") - public void setActionType(String actionType) { - this.actionType = actionType; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java deleted file mode 100644 index 0cd70012f..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/ActionDatum.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.update; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "property-name", - "property-value" -}) -public class ActionDatum { - - @JsonProperty("property-name") - private String propertyName; - @JsonProperty("property-value") - private String propertyValue; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The propertyName - */ - @JsonProperty("property-name") - public String getPropertyName() { - return propertyName; - } - - /** - * - * @param propertyName - * The property-name - */ - @JsonProperty("property-name") - public void setPropertyName(String propertyName) { - this.propertyName = propertyName; - } - - /** - * - * @return - * The propertyValue - */ - @JsonProperty("property-value") - public String getPropertyValue() { - return propertyValue; - } - - /** - * - * @param propertyValue - * The property-value - */ - @JsonProperty("property-value") - public void setPropertyValue(String propertyValue) { - this.propertyValue = propertyValue; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java deleted file mode 100644 index 43f912dfa..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/Update.java +++ /dev/null @@ -1,124 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.update; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "update-node-type", - "update-node-key", - "action" -}) -public class Update { - - @JsonProperty("update-node-type") - private String updateNodeType; - @JsonProperty("action") - private List action = new ArrayList(); - @JsonProperty("update-node-key") - private List updateNodeKey = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The updateNodeType - */ - @JsonProperty("update-node-type") - public String getUpdateNodeType() { - return updateNodeType; - } - - /** - * - * @param updateNodeType - * The update-node-type - */ - @JsonProperty("update-node-type") - public void setUpdateNodeType(String updateNodeType) { - this.updateNodeType = updateNodeType; - } - - /** - * - * @return - * The action - */ - @JsonProperty("action") - public List getAction() { - return action; - } - - /** - * - * @param action - * The action - */ - @JsonProperty("action") - public void setAction(List action) { - this.action = action; - } - - /** - * - * @return - * The updateNodeKey - */ - @JsonProperty("update-node-key") - public List getUpdateNodeKey() { - return updateNodeKey; - } - - /** - * - * @param updateNodeKey - * The update-node-key - */ - @JsonProperty("update-node-key") - public void setUpdateNodeKey(List updateNodeKey) { - this.updateNodeKey = updateNodeKey; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java b/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java deleted file mode 100644 index caa1de450..000000000 --- a/aai-service/provider/src/main/java/org/onap/sli/adaptors/aai/update/UpdateNodeKey.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.update; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "key-name", - "key-value" -}) -public class UpdateNodeKey { - - @JsonProperty("key-name") - private String keyName; - @JsonProperty("key-value") - private String keyValue; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The keyName - */ - @JsonProperty("key-name") - public String getKeyName() { - return keyName; - } - - /** - * - * @param keyName - * The key-name - */ - @JsonProperty("key-name") - public void setKeyName(String keyName) { - this.keyName = keyName; - } - - /** - * - * @return - * The keyValue - */ - @JsonProperty("key-value") - public String getKeyValue() { - return keyValue; - } - - /** - * - * @param keyValue - * The key-value - */ - @JsonProperty("key-value") - public void setKeyValue(String keyValue) { - this.keyValue = keyValue; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/resources/aai-path.properties b/aai-service/provider/src/main/resources/aai-path.properties index bb42ea07c..b0fb35a56 100644 --- a/aai-service/provider/src/main/resources/aai-path.properties +++ b/aai-service/provider/src/main/resources/aai-path.properties @@ -19,171 +19,171 @@ # ============LICENSE_END========================================================= ### -complex|ctag-pool = /aai/v10/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} -complex = /aai/v10/cloud-infrastructure/complexes/complex/{physical-location-id} -cloud-region|volume-group = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} -cloud-region|tenant|vserver|volume = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface|vlan = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} -cloud-region|tenant|vserver = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} -cloud-region|tenant = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -cloud-region|flavor = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} -cloud-region|group-assignment = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} -cloud-region|snapshot = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} -cloud-region|image|metadatum = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} -cloud-region|image = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} -cloud-region|dvs-switch = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} -cloud-region|oam-network = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} -cloud-region|availability-zone = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} -cloud-region = /aai/v10/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} -network-profile = /aai/v10/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} -pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface|vlan = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|p-interface|l-interface|sriov-vf = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|p-interface = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface|vlan = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|lag-interface|l-interface|sriov-vf = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|lag-interface = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} -pserver = /aai/v10/cloud-infrastructure/pservers/pserver/{hostname} -virtual-data-center = /aai/v10/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} -connector|metadatum = /aai/v10/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} -connector = /aai/v10/business/connectors/connector/{resource-instance-id} -customer|service-subscription|service-instance|metadatum = /aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} -customer|service-subscription|service-instance|allotted-resource = /aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} -customer|service-subscription|service-instance = /aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -customer|service-subscription = /aai/v10/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} -customer = /aai/v10/business/customers/customer/{global-customer-id} -vnf-image = /aai/v10/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -service = /aai/v10/service-design-and-creation/services/service/{service-id} -service-capability = /aai/v10/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v10/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v10/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} -model|model-ver|model-element|model-constraint = /aai/v10/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} -model|model-ver|model-element = /aai/v10/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} -model|model-ver|metadatum = /aai/v10/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} -model|model-ver = /aai/v10/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} -model = /aai/v10/service-design-and-creation/models/model/{model-invariant-id} -named-query|named-query-element|related-lookup = /aai/v10/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} -named-query|named-query-element|property-constraint = /aai/v10/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} -named-query|named-query-element = /aai/v10/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} -named-query = /aai/v10/service-design-and-creation/named-queries/named-query/{named-query-uuid} -logical-link = /aai/v10/network/logical-links/logical-link/{link-name} -site-pair-set|routing-instance|site-pair|class-of-service = /aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} -site-pair-set|routing-instance|site-pair = /aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} -site-pair-set|routing-instance = /aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} -site-pair-set = /aai/v10/network/site-pair-sets/site-pair-set/{site-pair-set-id} -vpn-binding|route-target = /aai/v10/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} -vpn-binding = /aai/v10/network/vpn-bindings/vpn-binding/{vpn-id} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface|vlan = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|p-interface|l-interface|sriov-vf = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|p-interface = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface|vlan = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|lag-interface = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} -vpls-pe = /aai/v10/network/vpls-pes/vpls-pe/{equipment-name} -multicast-configuration = /aai/v10/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -vce|port-group|cvlan-tag-entry = /aai/v10/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} -vce|port-group = /aai/v10/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} -vce|license = /aai/v10/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vce|entitlement = /aai/v10/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vce = /aai/v10/network/vces/vce/{vnf-id} -vpe|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|l-interface|vlan = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpe|l-interface|sriov-vf = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpe|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|l-interface = /aai/v10/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name} -vpe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|lag-interface|l-interface|vlan = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpe|lag-interface|l-interface|sriov-vf = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|lag-interface|l-interface = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpe|lag-interface = /aai/v10/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -vpe|license = /aai/v10/network/vpes/vpe/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vpe|entitlement = /aai/v10/network/vpes/vpe/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vpe = /aai/v10/network/vpes/vpe/{vnf-id} -vnfc = /aai/v10/network/vnfcs/vnfc/{vnfc-name} -l3-network|subnet = /aai/v10/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} -l3-network|ctag-assignment = /aai/v10/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} -l3-network|segmentation-assignment = /aai/v10/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} -l3-network = /aai/v10/network/l3-networks/l3-network/{network-id} -network-policy = /aai/v10/network/network-policies/network-policy/{network-policy-id} -generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface|vlan = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|l-interface|sriov-vf = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface|vlan = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -generic-vnf|vf-module = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} -generic-vnf|license = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -generic-vnf|entitlement = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -generic-vnf = /aai/v10/network/generic-vnfs/generic-vnf/{vnf-id} -lag-link = /aai/v10/network/lag-links/lag-link/{link-name} -newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface|vlan = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -newvce|l-interface|sriov-vf = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -newvce|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface = /aai/v10/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} -newvce = /aai/v10/network/newvces/newvce/{vnf-id2} -pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface|vlan = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|p-interface|l-interface|sriov-vf = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|p-interface = /aai/v10/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface|vlan = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|lag-interface|l-interface|sriov-vf = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|lag-interface = /aai/v10/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} -pnf = /aai/v10/network/pnfs/pnf/{pnf-name} -physical-link = /aai/v10/network/physical-links/physical-link/{link-name} -ipsec-configuration|vig-server = /aai/v10/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} -ipsec-configuration = /aai/v10/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} -route-table-reference = /aai/v10/network/route-table-references/route-table-reference/{route-table-reference-id} -instance-group = /aai/v10/network/instance-groups/instance-group/{id} -zone = /aai/v10/network/zones/zone/{zone-id} +complex|ctag-pool = /aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +complex = /aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id} +cloud-region|volume-group = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +cloud-region|tenant|vserver|volume = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface|vlan = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} +cloud-region|tenant|vserver = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +cloud-region|tenant = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +cloud-region|flavor = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} +cloud-region|group-assignment = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} +cloud-region|snapshot = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} +cloud-region|image|metadatum = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} +cloud-region|image = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} +cloud-region|dvs-switch = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +cloud-region|oam-network = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +cloud-region|availability-zone = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} +cloud-region = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +network-profile = /aai/v11/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} +pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface|vlan = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|p-interface|l-interface|sriov-vf = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|p-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface|vlan = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|lag-interface|l-interface|sriov-vf = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|lag-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} +pserver = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname} +virtual-data-center = /aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +connector|metadatum = /aai/v11/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} +connector = /aai/v11/business/connectors/connector/{resource-instance-id} +customer|service-subscription|service-instance|metadatum = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} +customer|service-subscription|service-instance|allotted-resource = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} +customer|service-subscription|service-instance = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +customer|service-subscription = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +customer = /aai/v11/business/customers/customer/{global-customer-id} +vnf-image = /aai/v11/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} +service = /aai/v11/service-design-and-creation/services/service/{service-id} +service-capability = /aai/v11/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} +model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} +model|model-ver|model-element|model-constraint = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} +model|model-ver|model-element = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} +model|model-ver|metadatum = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} +model|model-ver = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} +model = /aai/v11/service-design-and-creation/models/model/{model-invariant-id} +named-query|named-query-element|related-lookup = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} +named-query|named-query-element|property-constraint = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} +named-query|named-query-element = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} +named-query = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid} +logical-link = /aai/v11/network/logical-links/logical-link/{link-name} +site-pair-set|routing-instance|site-pair|class-of-service = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} +site-pair-set|routing-instance|site-pair = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +site-pair-set|routing-instance = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +site-pair-set = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id} +vpn-binding|route-target = /aai/v11/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} +vpn-binding = /aai/v11/network/vpn-bindings/vpn-binding/{vpn-id} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface|vlan = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|p-interface|l-interface|sriov-vf = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|p-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface|vlan = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|lag-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} +vpls-pe = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name} +multicast-configuration = /aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +vce|port-group|cvlan-tag-entry = /aai/v11/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} +vce|port-group = /aai/v11/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} +vce|license = /aai/v11/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vce|entitlement = /aai/v11/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vce = /aai/v11/network/vces/vce/{vnf-id} +vpe|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpe|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpe|l-interface|vlan = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpe|l-interface|sriov-vf = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpe|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpe|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpe|l-interface = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name} +vpe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpe|lag-interface|l-interface|vlan = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpe|lag-interface|l-interface|sriov-vf = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpe|lag-interface|l-interface = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpe|lag-interface = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +vpe|license = /aai/v11/network/vpes/vpe/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vpe|entitlement = /aai/v11/network/vpes/vpe/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vpe = /aai/v11/network/vpes/vpe/{vnf-id} +vnfc = /aai/v11/network/vnfcs/vnfc/{vnfc-name} +l3-network|subnet = /aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +l3-network|ctag-assignment = /aai/v11/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} +l3-network|segmentation-assignment = /aai/v11/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} +l3-network = /aai/v11/network/l3-networks/l3-network/{network-id} +network-policy = /aai/v11/network/network-policies/network-policy/{network-policy-id} +generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface|vlan = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|l-interface|sriov-vf = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface|vlan = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +generic-vnf|vf-module = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +generic-vnf|license = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +generic-vnf|entitlement = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +generic-vnf = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id} +lag-link = /aai/v11/network/lag-links/lag-link/{link-name} +newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface|vlan = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +newvce|l-interface|sriov-vf = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +newvce|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} +newvce = /aai/v11/network/newvces/newvce/{vnf-id2} +pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface|vlan = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|p-interface|l-interface|sriov-vf = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|p-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface|vlan = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|lag-interface|l-interface|sriov-vf = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|lag-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} +pnf = /aai/v11/network/pnfs/pnf/{pnf-name} +physical-link = /aai/v11/network/physical-links/physical-link/{link-name} +ipsec-configuration|vig-server = /aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +ipsec-configuration = /aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +route-table-reference = /aai/v11/network/route-table-references/route-table-reference/{route-table-reference-id} +instance-group = /aai/v11/network/instance-groups/instance-group/{id} +zone = /aai/v11/network/zones/zone/{zone-id} diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index 47d1bc2d0..6e4105de3 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -3,7 +3,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"> - + diff --git a/aai-service/provider/src/main/resources/aai_schema_v10.xsd b/aai-service/provider/src/main/resources/aai_schema_v10.xsd deleted file mode 100755 index fed5baf8e..000000000 --- a/aai-service/provider/src/main/resources/aai_schema_v10.xsd +++ /dev/null @@ -1,6563 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="cvlan-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.") - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the volume group.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-id",uniqueProps="vpn-id",dependentOn="l-interface",container="vlans") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface",container="l-interfaces") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="MAC address for the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this port is mirrored.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of vserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Readable name of tenant") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Flavor name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Number of CPUs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Amount of memory") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Disk space") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",dependentOn="cloud-region",container="group-assignments") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group description - description of the group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Snapshot name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Operating system architecture") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Image name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Operating system architecture.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of availability zones") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC. It's important to note that the cloud-region data is not updated once created, so there is a potential for the data to become stale.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., att-aic. First part of composite key should be formatted as vendor-cloudname") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of network profiles") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpe,vpls-pe,pnf",container="lag-interfaces") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="PTNII name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Number of cpus") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of Pserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="alternative pserver name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="purpose of pserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this resource, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Generic description of the type of the resource") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role that this asset will be playing in its context.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this service.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of service instances") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,att-uuid,application-vendor,application-version",uniqueProps="att-uuid",container="vnf-images",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Description of the service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="service version") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed") - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements") - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Description") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be att-ip-version)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="For example, static or BGP") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Circuit id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of logical connections") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="identifier of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="type of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="class-of-service of probe") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="probe within a set") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="rpm owner") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="stores the global route targets associated with a VPN",indexedProps="global-route-target,route-target-role",searchable="global-route-target",container="route-targets",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target, valid values EXPORT/IMPORT/BOTH") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Relationship to other objects") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,global-route-target,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="VPN Name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Number used to identify a VPN, globally unique in the network. NOTE - WILL BE RETIRED IN 1802, see child object") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role assigned to this route target. NOTE - WILL BE RETIRED IN 1802, see child object") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="licenses") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="entitlements") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="as-number of the VPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&AI will populate this object through an M&P and tool provided to operations.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,vnfc-type,vnfc-function-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation",searchable="vnfc-name",container="vnfcs",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="function code") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="type") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="gateway ip address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="network start address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="cidr mask") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ip version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="id.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="network role instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of vf-module") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-role,nf-function,nf-naming-code",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v6 Loopback address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v6 management address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version uuid for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="as-number of the VNF") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Generic description of the type of the resource") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role that this asset will be playing in its context.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modelled") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of VNFs") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status that indicates whether the asset is in or out of the service path. Valid values are null, in-service-path, out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="source of name2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="id of pnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Serial number of the device") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Circuit it") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="can be 1 or 2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="enable PFS or not") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The time between DPD probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="English name associated with the zone") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Context of zone [production/test]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status of a zone.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of zones") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Description") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,vpe,generic-vnf",isAbstract="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - diff --git a/aai-service/provider/src/main/resources/aai_schema_v11.xsd b/aai-service/provider/src/main/resources/aai_schema_v11.xsd new file mode 100755 index 000000000..53b3acfa0 --- /dev/null +++ b/aai-service/provider/src/main/resources/aai_schema_v11.xsd @@ -0,0 +1,6943 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface",container="l-interfaces") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Image name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., att-aic. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="inventory status") + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpe,vpls-pe,pnf",container="lag-interfaces") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OBSOLETE OBJECT: do not use",nameProps="name",indexedProps="assignment-group-uuid,vnf-image-uuid,name",uniqueProps="vnf-image-uuid",container="license-key-resources",namespace="license-management") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Description") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true) + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be att-ip-version)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true) + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="licenses") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="entitlements") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use. See child relationships.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="as-number of the VPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH") + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&AI will populate this object through an M&P and tool provided to operations.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="network start address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ip version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="identifier of managed by ONAP or customer") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPE.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="identifier of managed by ONAP or customer") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ONAP can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ASDC model id for this resource or service model.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ASDC model version uid for this resource model.") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Version") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Description") + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,vpe,generic-vnf",isAbstract="true") + + + + + + + @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java new file mode 100644 index 000000000..9d357d30f --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java @@ -0,0 +1,489 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 ONAP Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai.r1607; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import javax.xml.bind.SchemaOutputResolver; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamResult; + +import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.onap.ccsdk.sli.adaptors.aai.AAIClient; +import org.onap.ccsdk.sli.adaptors.aai.AAIDeclarations; +import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.InventoryResponseItems; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; + + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class R1607AutoGeneratedTest { + + private static final Logger LOG = LoggerFactory.getLogger(R1607AutoGeneratedTest.class); + + protected static AAIClient client; + + protected Map cache = new HashMap(); + + @BeforeClass + public static void setUp() throws Exception { +// super.setUp(); + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { +// super.tearDown(); + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + +// @Test + public void test01AutoGeneratedRequest() { + + String[] requestDefinition = { + "query|generic-vnf|generic-vnf.vnf-id:assign:value:bnfm0001v-1147" + }; + + for(String line : requestDefinition){ + // parse request line resource | key structure + String[] segments = line.split("\\|"); + String action = segments[0]; + String resource = segments[1]; + String[] tmpKeys = segments[2].split("&"); + + + String localId = null; + + List keys = new ArrayList(); + String keyLine = null; + + for(String instruction : tmpKeys) { + String[] parts = instruction.split(":"); + String identifier = parts[0]; + String method = parts[2]; + + if(identifier.startsWith(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { + localId = identifier; + } + + switch(parts[1]) { + case "assign": + String postProcesss = parts[3]; + keyLine = processAssign(identifier, method, postProcesss); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + case "cached": + keyLine = processCached(identifier, method); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + } + + } + + switch(action){ + case "save": + List x = Arrays.asList(localId.split("\\.")); + + testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + case "query": + test03AutoGeneratedQueryRequest(resource, keys); + break; + case "delete": + test03AutoGeneratedDeleteRequest(resource, keys); + break; + } + } + + LOG.info("done"); + } + + + public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + for(Field field : resourceClass.getDeclaredFields()) { + String type = field.getType().getName(); + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + SvcLogicContext ctx = new SvcLogicContext(); + try + { + + QueryStatus response = null; + + response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + + public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus response = null; + + response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + static ArrayList findSetters(Class c) { + ArrayList list = new ArrayList(); + Method[] methods = c.getDeclaredMethods(); + for (Method method : methods) + if (isGetter(method)) + list.add(method); + return list; + } + + + public static boolean isGetter(Method method) { + if (Modifier.isPublic(method.getModifiers()) && + method.getParameterTypes().length == 0) { + if (method.getName().matches("^get[A-Z].*") && + !method.getReturnType().equals(void.class)) + return true; + if (method.getName().matches("^is[A-Z].*") && + method.getReturnType().equals(boolean.class)) + return true; + } + return false; + } + + public static boolean isSetter(Method method) { + return Modifier.isPublic(method.getModifiers()) && + method.getReturnType().equals(void.class) && + method.getParameterTypes().length == 1 && + method.getName().matches("^set[A-Z].*"); + } + + private String processAssign(String identifier, String method, String postProcess) { + String value = null; + if("uuid".equals(method)) { + value = UUID.randomUUID().toString(); + } + + if("cache".equals(postProcess)) { + cache.put(identifier, value); + } + + if("value".equals(method)) { + cache.put(identifier, postProcess); + value = postProcess; + } + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + private String processCached(String identifier, String method) { + String value = cache.get(identifier); + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + LOG.debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + StringBuffer whereBuff = new StringBuffer(); + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + LOG.debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + + } + + private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + LOG.warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + +// @Test + public void test04VceDataPost() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + URL resource = this.getClass().getResource("/json/tails4.json"); + + LOG.info("Resource is " + resource.getFile()); + File requestFile = new File(resource.getFile()); + if(!requestFile.exists()) { + fail("Test file does not exist"); + } + SvcLogicContext ctx = new SvcLogicContext(); + ObjectMapper mapper = AAIService.getObjectMapper(); + InventoryResponseItems request = mapper.readValue(requestFile, InventoryResponseItems.class); + Map subnetsList = mapper.convertValue(request, Map.class); + AAIDeclarations.class.cast(client).writeMap(subnetsList, "aaiTmp", ctx); + assertNotNull(request); + + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + +static class MySchemaOutputResolver extends SchemaOutputResolver { + + public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { + File file = new File(suggestedFileName); + StreamResult result = new StreamResult(file); + result.setSystemId(file.getAbsolutePath()); + return result; + } + + } +} diff --git a/aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java b/aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java deleted file mode 100644 index 8bd2b664b..000000000 --- a/aai-service/provider/src/test/java/org/onap/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java +++ /dev/null @@ -1,489 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 ONAP Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.r1607; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.xml.bind.SchemaOutputResolver; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.transform.Result; -import javax.xml.transform.stream.StreamResult; - -import org.apache.commons.lang.RandomStringUtils; -import org.apache.commons.lang.StringUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.ccsdk.sli.adaptors.aai.AAIClient; -import org.onap.ccsdk.sli.adaptors.aai.AAIDeclarations; -import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; -import org.onap.ccsdk.sli.adaptors.aai.AAIService; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v10.GenericVnf; -import org.openecomp.aai.inventory.v10.InventoryResponseItems; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.ObjectMapper; - - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class R1607AutoGeneratedTest { - - private static final Logger LOG = LoggerFactory.getLogger(R1607AutoGeneratedTest.class); - - protected static AAIClient client; - - protected Map cache = new HashMap(); - - @BeforeClass - public static void setUp() throws Exception { -// super.setUp(); - URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); - client = new AAIService(url); - LOG.info("\nTaicAAIResourceTest.setUp\n"); - } - - @AfterClass - public static void tearDown() throws Exception { -// super.tearDown(); - client = null; - LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); - } - - -// @Test - public void test01AutoGeneratedRequest() { - - String[] requestDefinition = { - "query|generic-vnf|generic-vnf.vnf-id:assign:value:bnfm0001v-1147" - }; - - for(String line : requestDefinition){ - // parse request line resource | key structure - String[] segments = line.split("\\|"); - String action = segments[0]; - String resource = segments[1]; - String[] tmpKeys = segments[2].split("&"); - - - String localId = null; - - List keys = new ArrayList(); - String keyLine = null; - - for(String instruction : tmpKeys) { - String[] parts = instruction.split(":"); - String identifier = parts[0]; - String method = parts[2]; - - if(identifier.startsWith(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { - localId = identifier; - } - - switch(parts[1]) { - case "assign": - String postProcesss = parts[3]; - keyLine = processAssign(identifier, method, postProcesss); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - case "cached": - keyLine = processCached(identifier, method); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - } - - } - - switch(action){ - case "save": - List x = Arrays.asList(localId.split("\\.")); - - testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); - break; - case "query": - test03AutoGeneratedQueryRequest(resource, keys); - break; - case "delete": - test03AutoGeneratedDeleteRequest(resource, keys); - break; - } - } - - LOG.info("done"); - } - - - public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); - - Map data = new HashMap(); - - for(Field field : resourceClass.getDeclaredFields()) { - String type = field.getType().getName(); - if(type.startsWith("java.lang.")){ - Annotation[] fieldAnnotations = field.getAnnotations(); - for(int i = 0; i < fieldAnnotations.length; i++) { - Annotation a = fieldAnnotations[i]; - if(a instanceof JsonProperty){ - JsonProperty pa = (JsonProperty)a; - String name = pa.value(); - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } else - if(a instanceof javax.xml.bind.annotation.XmlElement) { - XmlElement xe = (XmlElement)a; - String name = xe.name(); - if("link-type".equals(name)){ - data.put(name, "roadmTail"); - continue; - } - if("operational-status".equals(name)){ - data.put(name, "available"); - continue; - } - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } - } - } - } - - SvcLogicContext ctx = new SvcLogicContext(); - - data.remove("resource-version"); - - QueryStatus resp = null; - - //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) - resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - SvcLogicContext ctx = new SvcLogicContext(); - try - { - - QueryStatus response = null; - - response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - - public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - SvcLogicContext ctx = new SvcLogicContext(); - - QueryStatus response = null; - - response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - static ArrayList findSetters(Class c) { - ArrayList list = new ArrayList(); - Method[] methods = c.getDeclaredMethods(); - for (Method method : methods) - if (isGetter(method)) - list.add(method); - return list; - } - - - public static boolean isGetter(Method method) { - if (Modifier.isPublic(method.getModifiers()) && - method.getParameterTypes().length == 0) { - if (method.getName().matches("^get[A-Z].*") && - !method.getReturnType().equals(void.class)) - return true; - if (method.getName().matches("^is[A-Z].*") && - method.getReturnType().equals(boolean.class)) - return true; - } - return false; - } - - public static boolean isSetter(Method method) { - return Modifier.isPublic(method.getModifiers()) && - method.getReturnType().equals(void.class) && - method.getParameterTypes().length == 1 && - method.getName().matches("^set[A-Z].*"); - } - - private String processAssign(String identifier, String method, String postProcess) { - String value = null; - if("uuid".equals(method)) { - value = UUID.randomUUID().toString(); - } - - if("cache".equals(postProcess)) { - cache.put(identifier, value); - } - - if("value".equals(method)) { - cache.put(identifier, postProcess); - value = postProcess; - } - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - private String processCached(String identifier, String method) { - String value = cache.get(identifier); - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { - if (key == null) { - return (null); - } - - LOG.debug("Converting key [" + key + "] to where clause"); - - if (key.startsWith("'") && key.endsWith("'")) { - key = key.substring(1, key.length() - 1); - - LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); - } - - String[] keyTerms = key.split("\\s+"); - - StringBuffer whereBuff = new StringBuffer(); - String term1 = null; - String op = null; - String term2 = null; - HashMap results = new HashMap(); - - for (int i = 0; i < keyTerms.length; i++) { - if (term1 == null) { - if ("and".equalsIgnoreCase(keyTerms[i]) - || "or".equalsIgnoreCase(keyTerms[i])) { - // Skip over ADD/OR - } else { - term1 = resolveTerm(keyTerms[i], ctx); - } - } else if (op == null) { - if ("==".equals(keyTerms[i])) { - op = "="; - } else { - op = keyTerms[i]; - } - } else { - term2 = resolveTerm(keyTerms[i], ctx); - term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); - results.put(term1, term2); - - term1 = null; - op = null; - term2 = null; - } - } - - return (results); - } - - private String resolveTerm(String term, SvcLogicContext ctx) { - if (term == null) { - return (null); - } - - LOG.debug("resolveTerm: term is " + term); - - if (term.startsWith("$") && (ctx != null)) { - // Resolve any index variables. - - return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); - } else if (term.startsWith("'") || term.startsWith("\"")) { - return (term); - } else { - return (term.replaceAll("-", "_")); - - } - - } - - private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { - - if (ctxVarName.indexOf('[') == -1) { - // Ctx variable contains no arrays - return (ctx.getAttribute(ctxVarName)); - } - - // Resolve any array references - StringBuffer sbuff = new StringBuffer(); - String[] ctxVarParts = ctxVarName.split("\\["); - sbuff.append(ctxVarParts[0]); - for (int i = 1; i < ctxVarParts.length; i++) { - if (ctxVarParts[i].startsWith("$")) { - int endBracketLoc = ctxVarParts[i].indexOf("]"); - if (endBracketLoc == -1) { - // Missing end bracket ... give up parsing - LOG.warn("Variable reference " + ctxVarName - + " seems to be missing a ']'"); - return (ctx.getAttribute(ctxVarName)); - } - - String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); - String remainder = ctxVarParts[i].substring(endBracketLoc); - - sbuff.append("["); - sbuff.append(ctx.getAttribute(idxVarName)); - sbuff.append(remainder); - - } else { - // Index is not a variable reference - sbuff.append("["); - sbuff.append(ctxVarParts[i]); - } - } - - return (ctx.getAttribute(sbuff.toString())); - } - -// @Test - public void test04VceDataPost() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - URL resource = this.getClass().getResource("/json/tails4.json"); - - LOG.info("Resource is " + resource.getFile()); - File requestFile = new File(resource.getFile()); - if(!requestFile.exists()) { - fail("Test file does not exist"); - } - SvcLogicContext ctx = new SvcLogicContext(); - ObjectMapper mapper = AAIService.getObjectMapper(); - InventoryResponseItems request = mapper.readValue(requestFile, InventoryResponseItems.class); - Map subnetsList = mapper.convertValue(request, Map.class); - AAIDeclarations.class.cast(client).writeMap(subnetsList, "aaiTmp", ctx); - assertNotNull(request); - - } - catch (Exception e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - -static class MySchemaOutputResolver extends SchemaOutputResolver { - - public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { - File file = new File(suggestedFileName); - StreamResult result = new StreamResult(file); - result.setSystemId(file.getAbsolutePath()); - return result; - } - - } -} -- cgit 1.2.3-korg From df8f780fdad167fda692e846641c4fe966b240cb Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Tue, 15 Aug 2017 10:04:19 -0400 Subject: Fix license headers Licence headers were accidentally updated incorrectly by previous update. This commit restores the license headers for seed code to the wording from the original seed code Change-Id: If4623dd02a37660a7d7e746363dd83cf9cdb718a Issue-ID: CCSDK-31 Signed-off-by: Dan Timoney --- aai-service/features/src/main/resources/features.xml | 6 +++--- aai-service/installer/src/assembly/assemble_installer_zip.xml | 4 ++-- aai-service/installer/src/assembly/assemble_mvnrepo_zip.xml | 4 ++-- aai-service/installer/src/main/resources/scripts/install-feature.sh | 4 ++-- .../src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java | 4 ++-- .../src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 4 ++-- .../src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java | 4 ++-- .../src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java | 4 ++-- .../ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java | 4 ++-- .../ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java | 4 ++-- .../org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java | 4 ++-- .../src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/data/AAIDatum.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/EchoResponse.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponse.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/RequestError.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/ResourceVersion.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessage.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessages.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceException.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/data/Variables.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatum.java | 4 ++-- .../org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEvent.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java | 4 ++-- .../org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java | 4 ++-- .../onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java | 4 ++-- .../onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java | 4 ++-- .../ccsdk/sli/adaptors/aai/query/FormattedQueryRequestData.java | 4 ++-- .../onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultList.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilters.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/query/Results.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/update/Action.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatum.java | 4 ++-- .../main/java/org/onap/ccsdk/sli/adaptors/aai/update/Update.java | 4 ++-- .../java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKey.java | 4 ++-- aai-service/provider/src/main/resources/aai-path.properties | 4 ++-- .../onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java | 4 ++-- aai-service/provider/src/test/resources/aaiclient.properties | 4 ++-- mdsal-resource/features/src/main/resources/features.xml | 4 ++-- mdsal-resource/installer/src/assembly/assemble_installer_zip.xml | 4 ++-- mdsal-resource/installer/src/assembly/assemble_mvnrepo_zip.xml | 4 ++-- .../installer/src/main/resources/scripts/install-feature.sh | 4 ++-- .../java/org/openecomp/sdnc/sli/resource/mdsal/ConfigResource.java | 4 ++-- .../openecomp/sdnc/sli/resource/mdsal/MdsalResourceActivator.java | 4 ++-- .../org/openecomp/sdnc/sli/resource/mdsal/OperationalResource.java | 4 ++-- .../java/org/openecomp/sdnc/sli/resource/mdsal/RestService.java | 4 ++-- mdsal-resource/provider/src/main/resources/crtables.sql | 4 ++-- mdsal-resource/provider/src/main/resources/svclogic.properties | 4 ++-- resource-assignment/features/src/main/resources/features.xml | 4 ++-- .../installer/src/assembly/assemble_installer_zip.xml | 4 ++-- resource-assignment/installer/src/assembly/assemble_mvnrepo_zip.xml | 4 ++-- .../installer/src/main/resources/scripts/install-feature.sh | 4 ++-- .../src/main/java/org/openecomp/sdnc/lock/comp/LockHelper.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/lock/comp/LockHelperImpl.java | 4 ++-- .../java/org/openecomp/sdnc/lock/comp/ResourceLockedException.java | 4 ++-- .../java/org/openecomp/sdnc/lock/comp/SynchronizedFunction.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/lock/dao/ResourceLockDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/lock/dao/ResourceLockDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/lock/data/ResourceLock.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/ReleaseRequestType.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/ReserveRequestType.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/ResourceAllocator.java | 4 ++-- .../java/org/openecomp/sdnc/ra/alloc/AffinityAllocationRule.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/alloc/DbAllocationRule.java | 4 ++-- .../java/org/openecomp/sdnc/ra/alloc/ServingSiteAllocationRule.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/alloc/VrfAllocationRule.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/check/AnyVrfPresentCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/check/ExcludeVpeCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/check/HubWithRgCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/check/OneMVrfCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/check/ProvStatusCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/check/VlanSpeedCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/check/VpeLockCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/comp/AllocationRule.java | 4 ++-- .../org/openecomp/sdnc/ra/comp/EndPointAllocationDefinition.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/comp/EndPointAllocator.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/comp/EndPointAllocatorImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/comp/EndPointData.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/comp/EquipmentCheck.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/comp/PreferenceRule.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/comp/ServiceData.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/equip/comp/EquipmentReader.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/equip/dao/ServerDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/equip/dao/ServerDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/equip/dao/VpePortDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/equip/dao/VpePortDaoImpl.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/equip/dao/VplspePortDao.java | 4 ++-- .../java/org/openecomp/sdnc/ra/equip/dao/VplspePortDaoImpl.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/equip/data/EquipmentData.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/equip/data/EquipmentLevel.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/pref/AffinityLinkPref.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/pref/EvcExistingVrfPref.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/reader/AicSiteReader.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/reader/UplinkCircuitReader.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/reader/VnfReader.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/reader/VpePortReader.java | 4 ++-- .../org/openecomp/sdnc/ra/rule/comp/AllocationRequestBuilder.java | 4 ++-- .../openecomp/sdnc/ra/rule/comp/AllocationRequestBuilderImpl.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/dao/MaxPortSpeedDao.java | 4 ++-- .../java/org/openecomp/sdnc/ra/rule/dao/MaxPortSpeedDaoImpl.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/dao/MaxServerSpeedDao.java | 4 ++-- .../java/org/openecomp/sdnc/ra/rule/dao/MaxServerSpeedDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/rule/dao/ParameterDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/dao/ParameterDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/rule/dao/RangeRuleDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/dao/RangeRuleDaoImpl.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/dao/ResourceRuleDao.java | 4 ++-- .../java/org/openecomp/sdnc/ra/rule/dao/ResourceRuleDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/rule/dao/VpeLockDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/dao/VpeLockDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/rule/data/RangeRule.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/ra/rule/data/ResourceRule.java | 4 ++-- .../java/org/openecomp/sdnc/ra/rule/data/ResourceThreshold.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/rule/data/ThresholdStatus.java | 4 ++-- .../java/org/openecomp/sdnc/ra/service/dao/ServiceResourceDao.java | 4 ++-- .../org/openecomp/sdnc/ra/service/dao/ServiceResourceDaoImpl.java | 4 ++-- .../java/org/openecomp/sdnc/ra/service/data/ServiceResource.java | 4 ++-- .../main/java/org/openecomp/sdnc/ra/service/data/ServiceStatus.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/comp/AllocationFunction.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/comp/ReleaseFunction.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/comp/ResourceLoader.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/comp/ResourceManager.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/comp/ResourceManagerImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/dao/ResourceDao.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/dao/jdbc/AllocationItem.java | 4 ++-- .../java/org/openecomp/sdnc/rm/dao/jdbc/AllocationItemJdbcDao.java | 4 ++-- .../org/openecomp/sdnc/rm/dao/jdbc/AllocationItemJdbcDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/dao/jdbc/Resource.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/dao/jdbc/ResourceDaoImpl.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/dao/jdbc/ResourceJdbcDao.java | 4 ++-- .../java/org/openecomp/sdnc/rm/dao/jdbc/ResourceJdbcDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/dao/jdbc/ResourceLoad.java | 4 ++-- .../java/org/openecomp/sdnc/rm/dao/jdbc/ResourceLoadJdbcDao.java | 4 ++-- .../org/openecomp/sdnc/rm/dao/jdbc/ResourceLoadJdbcDaoImpl.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/AllocationAction.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/AllocationItem.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/AllocationOutcome.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/AllocationRequest.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/AllocationStatus.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/InitAction.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/data/LabelAllocationItem.java | 4 ++-- .../java/org/openecomp/sdnc/rm/data/LabelAllocationOutcome.java | 4 ++-- .../java/org/openecomp/sdnc/rm/data/LabelAllocationRequest.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/LabelResource.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/data/LimitAllocationItem.java | 4 ++-- .../java/org/openecomp/sdnc/rm/data/LimitAllocationOutcome.java | 4 ++-- .../java/org/openecomp/sdnc/rm/data/LimitAllocationRequest.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/LimitResource.java | 4 ++-- .../org/openecomp/sdnc/rm/data/MultiAssetAllocationOutcome.java | 4 ++-- .../org/openecomp/sdnc/rm/data/MultiAssetAllocationRequest.java | 4 ++-- .../org/openecomp/sdnc/rm/data/MultiResourceAllocationOutcome.java | 4 ++-- .../org/openecomp/sdnc/rm/data/MultiResourceAllocationRequest.java | 4 ++-- .../main/java/org/openecomp/sdnc/rm/data/RangeAllocationItem.java | 4 ++-- .../java/org/openecomp/sdnc/rm/data/RangeAllocationOutcome.java | 4 ++-- .../java/org/openecomp/sdnc/rm/data/RangeAllocationRequest.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/RangeResource.java | 4 ++-- .../provider/src/main/java/org/openecomp/sdnc/rm/data/Resource.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/ResourceKey.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/ResourceLoad.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/data/ResourceType.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/util/LabelUtil.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/util/LimitUtil.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/util/RangeUtil.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/rm/util/ResourceUtil.java | 4 ++-- .../main/java/org/openecomp/sdnc/util/db/CachedDataSourceWrap.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/util/db/ConnectionWrap.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/util/db/DataSourceWrap.java | 4 ++-- .../main/java/org/openecomp/sdnc/util/expr/ExpressionEvaluator.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/util/speed/SpeedUtil.java | 4 ++-- .../provider/src/main/java/org/openecomp/sdnc/util/str/StrUtil.java | 4 ++-- .../src/main/java/org/openecomp/sdnc/util/vrf/VpnParam.java | 4 ++-- .../provider/src/main/java/org/openecomp/sdnc/util/vrf/VrfUtil.java | 4 ++-- .../main/resources/META-INF/spring/resource-assignment-context.xml | 4 ++-- .../resources/META-INF/spring/resource-assignment-osgi-context.xml | 4 ++-- .../provider/src/main/resources/resource-allocator.properties | 4 ++-- .../provider/src/main/resources/sql/001_resource_rule_ddl.sql | 4 ++-- .../provider/src/main/resources/sql/002_max_port_speed_ddl.sql | 4 ++-- .../provider/src/main/resources/sql/003_max_server_speed_ddl.sql | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/ra/DataSetup.java | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/ra/TestIsAvailable.java | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/ra/TestQuery.java | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/ra/TestRelease.java | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve.java | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve2.java | 4 ++-- .../src/test/java/jtest/org/openecomp/sdnc/rm/DataSetup.java | 4 ++-- .../src/test/java/jtest/util/org/openecomp/sdnc/ra/TestDb.java | 4 ++-- .../src/test/java/jtest/util/org/openecomp/sdnc/ra/TestTable.java | 4 ++-- resource-assignment/provider/src/test/resources/log4j.properties | 4 ++-- resource-assignment/provider/src/test/resources/sql/data.sql | 4 ++-- resource-assignment/provider/src/test/resources/sql/schema.sql | 4 ++-- resource-assignment/provider/src/test/resources/test-context.xml | 4 ++-- sql-resource/features/src/main/resources/features.xml | 4 ++-- sql-resource/installer/src/assembly/assemble_installer_zip.xml | 4 ++-- sql-resource/installer/src/assembly/assemble_mvnrepo_zip.xml | 4 ++-- .../installer/src/main/resources/scripts/install-feature.sh | 4 ++-- .../main/java/org/openecomp/sdnc/sli/resource/sql/SqlResource.java | 4 ++-- .../org/openecomp/sdnc/sli/resource/sql/SqlResourceActivator.java | 4 ++-- sql-resource/provider/src/main/resources/svclogic.properties | 4 ++-- .../java/org/openecomp/sdnc/sli/resource/sql/SqlResourceTest.java | 4 ++-- sql-resource/provider/src/test/resources/simplelogger.properties | 4 ++-- sql-resource/provider/src/test/resources/svclogic.properties | 4 ++-- 231 files changed, 463 insertions(+), 463 deletions(-) (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/features/src/main/resources/features.xml b/aai-service/features/src/main/resources/features.xml index c992710a0..bd3d0bc1d 100644 --- a/aai-service/features/src/main/resources/features.xml +++ b/aai-service/features/src/main/resources/features.xml @@ -1,10 +1,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resource-assignment/provider/src/main/resources/META-INF/spring/resource-assignment-osgi-context.xml b/resource-assignment/provider/src/main/resources/META-INF/spring/resource-assignment-osgi-context.xml deleted file mode 100644 index be22d8766..000000000 --- a/resource-assignment/provider/src/main/resources/META-INF/spring/resource-assignment-osgi-context.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - javax.sql.DataSource - org.onap.ccsdk.sli.core.dblib.DbLibService - - - - - - diff --git a/resource-assignment/provider/src/main/resources/org/opendaylight/blueprint/resource-assignment-blueprint.xml b/resource-assignment/provider/src/main/resources/org/opendaylight/blueprint/resource-assignment-blueprint.xml new file mode 100755 index 000000000..162ce736c --- /dev/null +++ b/resource-assignment/provider/src/main/resources/org/opendaylight/blueprint/resource-assignment-blueprint.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/resource-assignment/provider/src/main/resources/org/opendaylight/blueprint/resource-assignment.xml b/resource-assignment/provider/src/main/resources/org/opendaylight/blueprint/resource-assignment.xml new file mode 100755 index 000000000..c1fafdcc0 --- /dev/null +++ b/resource-assignment/provider/src/main/resources/org/opendaylight/blueprint/resource-assignment.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit 1.2.3-korg From 6d746b3947a4d2f8dce69812cee5d7e354caf8cb Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 3 Oct 2017 17:07:32 +0000 Subject: Fix Blocker/Critical issues Fix Blocker/Critical issues in ccsdk/sli/adaptors/aai-service module Change-Id: Ia6fd34892a8ec6db83126f31b27bd7b69b77b256 Issue-Id: CCSDK-102 Signed-off-by: Rich Tabedzki --- .../ccsdk/sli/adaptors/aai/AAIServiceTest.java | 211 +++++++++++++++++++++ .../src/test/resources/aaiclient.properties | 6 +- .../src/test/resources/json/pserverJson.txt | 97 ++++++++++ 3 files changed, 310 insertions(+), 4 deletions(-) create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java create mode 100755 aai-service/provider/src/test/resources/json/pserverJson.txt (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java new file mode 100755 index 000000000..011b926c0 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -0,0 +1,211 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.ProtocolException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.net.ssl.HttpsURLConnection; +import javax.ws.rs.HttpMethod; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.runners.MockitoJUnitRunner; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.openecomp.aai.inventory.v11.*; + +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.onap.ccsdk.sli.adaptors.aai.AAIService.TransactionIdTracker; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; + +@RunWith(MockitoJUnitRunner.class) +public class AAIServiceTest { + private static AAIService aaiService = new AAIService( + AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + + @Spy private AAIService aaiServiceSpy = new AAIService( + AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + + @Mock private HttpsURLConnection connMock; + + // @Test + public void existsInvalidResource_shouldReturnFailure() throws MalformedURLException, Exception { + QueryStatus queryStatus = aaiServiceSpy.exists("InvalidResource", null, null, null); + assertEquals(QueryStatus.FAILURE, queryStatus); + } + +// @Test + public void existsGetPserverByCallBackUrl_shouldReturnSuccess() throws MalformedURLException, Exception { + String key = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String fileLocation = "json/pserverJson.txt"; + SvcLogicContext ctx = new SvcLogicContext(); + setConnMock(); + + when(aaiServiceSpy.getConfiguredConnection(new URL(key), HttpMethod.GET)).thenReturn(connMock); + when(connMock.getResponseCode()).thenReturn(200); + when(connMock.getInputStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); + + QueryStatus queryStatus = aaiServiceSpy.exists("pserver", key, "prefix.", ctx); + + assertEquals(QueryStatus.SUCCESS, queryStatus); + } + +// @Test + public void existsGetPserverByCallBackUrl_throwsExceptionAndReturnsFailure() + throws MalformedURLException, Exception { + String key = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String fileLocation = "json/pserverJson.txt"; + SvcLogicContext ctx = new SvcLogicContext(); + setConnMock(); + + when(aaiServiceSpy.getConfiguredConnection(new URL(key), HttpMethod.GET)).thenReturn(connMock); + when(connMock.getResponseCode()).thenReturn(200); + when(connMock.getInputStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); + + when(aaiServiceSpy.dataChangeRequestAaiData(key, Pserver.class)).thenThrow( + new AAIServiceException("testException")); + + QueryStatus queryStatus = aaiServiceSpy.exists("pserver", key, "prefix.", ctx); + + assertEquals(QueryStatus.FAILURE, queryStatus); + } + +// @Test + public void pserverDataChangeRequestData_shouldSucceed() throws Exception { + String fileLocation = "json/pserverJson.txt"; + String url = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + setConnMock(); + + when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); + when(connMock.getResponseCode()).thenReturn(200); + when(connMock.getInputStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); + + Pserver pserver = aaiServiceSpy.dataChangeRequestAaiData(url, Pserver.class); + + assertEquals("chcil129snd", pserver.getHostname()); + } + +// @Test + public void pserverDataChangeRequestData_shouldReturnNullFor404() throws Exception { + String fileLocation = "json/pserverJson.txt"; + String url = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + setConnMock(); + + when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); + when(connMock.getResponseCode()).thenReturn(404); + when(connMock.getErrorStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); + + Pserver pserver = aaiServiceSpy.dataChangeRequestAaiData(url, Pserver.class); + + assertEquals(null, pserver); + } + + @Test(expected = AAIServiceException.class) + public void dataChangeRequestData_throwsAAIServiceException() throws Exception { + String fileLocation = "json/pserverJson.txt"; + String url = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + setConnMock(); + + when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); + when(connMock.getResponseCode()).thenReturn(500); + when(connMock.getInputStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); + + aaiServiceSpy.dataChangeRequestAaiData(url, Class.class); + } + + public String readFileToString(String fileName) throws IOException, URISyntaxException { + URL url = AAIServiceTest.class.getResource(fileName); + Path resPath = Paths.get(url.toURI()); + + return new String(Files.readAllBytes(resPath), "UTF8"); + } + + public T getObjectFromJson(String text, Class type) + throws JsonParseException, JsonMappingException, IOException { + ObjectMapper mapper = AAIService.getObjectMapper(); + + return type.cast(mapper.readValue(text, type)); + } + + private void setConnMock() throws ProtocolException { + // Set up the connection properties + connMock.setRequestProperty("Connection", "close"); + connMock.setDoInput(true); + connMock.setDoOutput(true); + connMock.setUseCaches(false); + connMock.setConnectTimeout(1000); + connMock.setReadTimeout(1000); + connMock.setRequestMethod(HttpMethod.GET); + connMock.setRequestProperty("Accept", "application/json"); + connMock.setRequestProperty("Content-Type", "application/json"); + connMock.setRequestProperty("X-FromAppId", "testId"); + connMock.setRequestProperty("X-TransactionId", TransactionIdTracker.getNextTransactionId()); + } + + @Test + public void testSetStatusMessage_shouldSucceed() throws SvcLogicException, MalformedURLException { + SvcLogicContext ctx = new SvcLogicContext(); + Map parameters = new HashMap(); + + parameters.put("key1", "ActivateSubnet failure, need to manually activate in EIPAM."); + aaiService.setStatusMethod(parameters, ctx); + + Pattern r8601 = Pattern.compile( + "(\\d{4})-(\\d{2})-(\\d{2})T((\\d{2}):(\\d{2}):(\\d{2}))Z"); + Matcher isoDate = r8601.matcher(ctx.getAttribute("aai-summary-status-message")); + + assertTrue(isoDate.lookingAt()); + + assertTrue(ctx.getAttribute("aai-summary-status-message") + .contains("ActivateSubnet failure, need to manually activate in EIPAM.")); + } + + @Test(expected = SvcLogicException.class) + public void testSetStatusMessage_nullContext() throws SvcLogicException, MalformedURLException { + SvcLogicContext ctx = null; + Map parameters = new HashMap(); + + parameters.put("key1", "ActivateSubnet failure, need to manually activate in EIPAM."); + aaiService.setStatusMethod(parameters, ctx); + } +} diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index c09be3a4b..35dec548a 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -40,10 +40,8 @@ org.onap.ccsdk.sli.adaptors.aai.application=CCSDK # # Configuration file for A&AI Client # -#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-ext1.test.att.com:8443 -#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int1.test.att.com:8443 -#org.onap.ccsdk.sli.adaptors.aai.uri=https://mtanjv9aaas40.aic.cip.att.com:8443 -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int2.test.att.com:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 + # connection.timeout=60000 read.timeout=60000 diff --git a/aai-service/provider/src/test/resources/json/pserverJson.txt b/aai-service/provider/src/test/resources/json/pserverJson.txt new file mode 100755 index 000000000..4b7f97d37 --- /dev/null +++ b/aai-service/provider/src/test/resources/json/pserverJson.txt @@ -0,0 +1,97 @@ +{ + "selflink": "https://mtinjvmsdn30.cip.att.com:8443/aai/v4/network/pservers/pserver/chcil129snd", + "hostname": "chcil129snd", + "ptnii-equip-name": "chcil129snd", + "equip-type": "server1", + "equip-vendor": "HP", + "equip-model": "DL380p-nd", + "fqdn": "chcilrsv129.chcil.sbcglobal.net", + "ipv4-oam-address": "12.80.1.83", + "serial-number": "n02kvcBczBI", + "in-maint":false, + "resource-version": "1455988020", + "purpose": "Gamma-VCE", + "relationship-list": { + "relationship": [ + { + "related-to": "complex", + "related-link": "https://aai.infra.aic.att.net:8443/aai/v5/cloud-infrastructure/complexes/complex/CHCGILCL73W/", + "relationship-data": [ + { + "relationship-key": "complex.physical-location-id", + "relationship-value": "CHCGILCL73W" + } + ] + } + ] + }, + "p-interfaces": { + "p-interface": [ + { + "interface-name": "p6p2-6/2", + "speed-value": "10000000", + "speed-units": "kbps", + "resource-version": "1455988020", + "relationship-list": { + "relationship": [ + { + "related-to": "physical-link", + "related-link": "https://aai.infra.aic.att.net:8443/aai/v5/network/physical-links/physical-link/chcil129snd%3Ap6p2-6%2F2%7Cchciltax102%3Axe-1%2F0%2F29/", + "relationship-data": [ + { + "relationship-key": "physical-link.link-name", + "relationship-value": "chcil129snd:p6p2-6/2|chciltax102:xe-1/0/29" + } + ] + } + ] + }, + "l-interfaces": { + + } + }, + { + "interface-name": "p6p1-6/1", + "speed-value": "10000000", + "speed-units": "kbps", + "resource-version": "1455988020", + "relationship-list": { + "relationship": [ + { + "related-to": "physical-link", + "related-link": "https://aai.infra.aic.att.net:8443/aai/v5/network/physical-links/physical-link/chcil129snd%3Ap6p1-6%2F1%7Cchciltax101%3Axe-0%2F0%2F29/", + "relationship-data": [ + { + "relationship-key": "physical-link.link-name", + "relationship-value": "chcil129snd:p6p1-6/1|chciltax101:xe-0/0/29" + } + ] + } + ] + }, + "l-interfaces": { + + } + }, + { + "interface-name": "em0-0/1", + "speed-value": "10000000", + "speed-units": "kbps", + "resource-version": "1455988020", + "relationship-list": { + "relationship": [ + { + "related-to": "physical-link", + "related-link": "https://aai.infra.aic.att.net:8443/aai/v5/network/physical-links/physical-link/chcil129snd%3Aem0-0%2F1%7Cchciltax101%3Axe-0%2F0%2F59/", + "relationship-data": [ + { + + } + ] + } + ] + } + } + ] + } +} \ No newline at end of file -- cgit 1.2.3-korg From c7c8048c03a06d3e0cccf4e8a4473fe81f92f1da Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 3 Oct 2017 22:30:48 +0000 Subject: Improve CCSDK adaptors Sonar coverage Changes made: 1. Removed unused classes 2. Added new test cases Change-Id: I26be2445488a6ae32ff478e9d06cf992266e273a Issue-ID: CCSDK-108 Signed-off-by: Rich Tabedzki --- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 4 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 26 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 17 +- .../ccsdk/sli/adaptors/aai/CloudRegionRequest.java | 135 ----------- .../ccsdk/sli/adaptors/aai/CustomQueryRequest.java | 2 +- .../onap/ccsdk/sli/adaptors/aai/EchoRequest.java | 28 +-- .../sli/adaptors/aai/GenericQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfRequest.java | 4 +- .../aai/L3InterfaceIpv4AddressListRequest.java | 212 ----------------- .../aai/L3InterfaceIpv6AddressListRequest.java | 179 -------------- .../ccsdk/sli/adaptors/aai/LInterfaceRequest.java | 244 ------------------- .../sli/adaptors/aai/LagInterfacePnfRequest.java | 142 ----------- .../ccsdk/sli/adaptors/aai/NamedQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 2 +- .../sli/adaptors/aai/PInterfacePnfRequest.java | 142 ----------- .../ccsdk/sli/adaptors/aai/PInterfaceRequest.java | 132 ----------- .../onap/ccsdk/sli/adaptors/aai/PathRequest.java | 2 +- .../sli/adaptors/aai/PhysicalLinkRequest.java | 112 --------- .../sli/adaptors/aai/RelationshipRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/SelfLinkRequest.java | 2 +- .../sli/adaptors/aai/SubInterfaceRequest.java | 184 --------------- .../ccsdk/sli/adaptors/aai/data/v1507/Flavor.java | 122 ---------- .../ccsdk/sli/adaptors/aai/data/v1507/Host.java | 122 ---------- .../ccsdk/sli/adaptors/aai/data/v1507/Image.java | 237 ------------------- .../sli/adaptors/aai/data/v1507/IpAddress.java | 168 ------------- .../sli/adaptors/aai/data/v1507/Relationship.java | 147 ------------ .../adaptors/aai/data/v1507/RelationshipDatum.java | 124 ---------- .../adaptors/aai/data/v1507/RelationshipList.java | 101 -------- .../ccsdk/sli/adaptors/aai/data/v1507/VServer.java | 262 --------------------- .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 110 +++++++++ .../src/test/resources/aaiclient.properties | 3 +- 31 files changed, 158 insertions(+), 2813 deletions(-) delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 37daa0732..cfeda4ccb 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -32,9 +32,7 @@ import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; -import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; @@ -79,7 +77,7 @@ public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { // --------------------------------- 1507 --------------------------- // Data Change - public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException; + public Vserver dataChangeRequestVServerData(URL url) throws AAIServiceException; public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 5388dbc85..215f9ae82 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -69,7 +69,7 @@ public abstract class AAIRequest { public static final String DEPTH = "depth"; protected static Properties configProperties; - protected final String target_uri; + protected final String targetUri; protected static AAIService aaiService; protected AAIDatum requestDatum; @@ -116,16 +116,22 @@ public abstract class AAIRequest { case "custom-query": case "formatted-query": return new CustomQueryRequest(); - case "linterface": - return new LInterfaceRequest(LInterfaceRequest.TYPE.L2_BRIDGE_SBG); - case "l2-bridge-sbg": - return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_SBG); - case "l2-bridge-bgf": - return new SubInterfaceRequest(SubInterfaceRequest.TYPE.L2_BRIDGE_BGF); case "echo": case "test": return new EchoRequest(); + case "linterface": + case "l2-bridge-sbg": + case "l2-bridge-bgf": + { + resoource = "l-interface"; + AAIRequest request = getRequestFromResource("l-interface"); + if(request == null) { + return null; + } + return request; + } + default: { AAIRequest request = getRequestFromResource(resoource); @@ -210,7 +216,7 @@ public abstract class AAIRequest { } public AAIRequest() { - target_uri = configProperties.getProperty(TARGET_URI); + targetUri = configProperties.getProperty(TARGET_URI); } public void addRequestProperty(String key, String value) { @@ -241,7 +247,7 @@ public abstract class AAIRequest { String request_url = null; - request_url = target_uri + updatePathDataValues(resourceVersion); + request_url = targetUri + updatePathDataValues(resourceVersion); URL http_req_url = new URL(request_url); @@ -469,6 +475,6 @@ public abstract class AAIRequest { public String getTargetUri() { - return target_uri; + return targetUri; } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index d3d57eaa9..1ec222c91 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -67,7 +67,6 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.UriBuilder; import javax.xml.bind.annotation.XmlElement; import org.apache.commons.codec.binary.Base64; @@ -96,7 +95,6 @@ import org.openecomp.aai.inventory.v11.Tenant; import org.openecomp.aai.inventory.v11.Vce; import org.openecomp.aai.inventory.v11.VnfImage; import org.openecomp.aai.inventory.v11.VnfImages; -import org.openecomp.aai.inventory.v11.Vpe; import org.openecomp.aai.inventory.v11.VplsPe; import org.openecomp.aai.inventory.v11.VpnBinding; import org.openecomp.aai.inventory.v11.Vserver; @@ -106,7 +104,6 @@ import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; import org.onap.ccsdk.sli.adaptors.aai.data.ResourceVersion; import org.onap.ccsdk.sli.adaptors.aai.data.ServiceException; import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; -import org.onap.ccsdk.sli.adaptors.aai.data.v1507.VServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -1106,9 +1103,9 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe PInterface response = null; try { - AAIRequest request = new PInterfaceRequest(); - request.addRequestProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME, interfaceName); - request.addRequestProperty(PInterfaceRequest.PSERVER_HOSTNAME, hostname); + AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); + request.addRequestProperty("p-interface.interface-name", interfaceName); + request.addRequestProperty("pserver.hostname", hostname); String rv = executor.get(request); if(rv != null) { ObjectMapper mapper = getObjectMapper(); @@ -1438,16 +1435,14 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe //================== End of Service ================= - - // 1507 - Request @Override - public VServer dataChangeRequestVServerData(URL url) throws AAIServiceException { + public Vserver dataChangeRequestVServerData(URL url) throws AAIServiceException { if(url == null) { throw new NullPointerException(); } - return this.getResource(url.toString(), VServer.class); + return this.getResource(url.toString(), Vserver.class); } @Override @@ -2267,7 +2262,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String data_type = datum.getResourceType(); String resourceLink = datum.getResourceLink(); if(!resourceLink.isEmpty() && !resourceLink.toLowerCase().startsWith("http")) { - resourceLink = (new EchoRequest()).target_uri + resourceLink; + resourceLink = (new EchoRequest()).targetUri + resourceLink; } entity = new URL(resourceLink); } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java deleted file mode 100644 index 1f5bd7f2e..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CloudRegionRequest.java +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.CloudRegion; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; - -public class CloudRegionRequest extends AAIRequest { - - public static final String CLOUD_REGION_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.cloud.region"; - - private final String cloud_region_path; - - public static final String CLOUD_REGION_CLOUD_OWNER = "cloud-region.cloud-owner"; - public static final String CLOUD_REGION_CLOUD_REGION_ID = "cloud-region.cloud-region-id"; - - - public CloudRegionRequest() { - cloud_region_path = configProperties.getProperty(CLOUD_REGION_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+cloud_region_path; - - request_url = processPathData(request_url, requestProperties); - - Map query = new HashMap(); - if(requestProperties.containsKey(DEPTH)) { - query.put(DEPTH, requestProperties.getProperty(DEPTH)); - } - - if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; - query.put(RESOURCE_VERSION, resourceVersion); - } - - if(!query.isEmpty()) { - Joiner.MapJoiner mapJoiner = Joiner.on("&").withKeyValueSeparator("="); - String queryString = mapJoiner.join(query); - request_url = String.format("%s?%s", request_url, queryString); - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - CloudRegion vnfc = (CloudRegion)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - CLOUD_REGION_CLOUD_OWNER, - CLOUD_REGION_CLOUD_REGION_ID, - DEPTH - }; - - return args; - } - - @Override - public Class getModelClass() { - return CloudRegion.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - if(!requestProperties.containsKey(CLOUD_REGION_CLOUD_OWNER) || !requestProperties.containsKey(CLOUD_REGION_CLOUD_REGION_ID)) { - aaiService.logKeyError(String.format("%s,%s", CLOUD_REGION_CLOUD_OWNER, CLOUD_REGION_CLOUD_REGION_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); - request_url = request_url.replace("{cloud-owner}", encoded_vnf) ; - - encoded_vnf = encodeQuery(requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); - request_url = request_url.replace("{cloud-region-id}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("cloud-owner", requestProperties.getProperty(CLOUD_REGION_CLOUD_OWNER)); - aaiService.LOGwriteDateTrace("cloud-region-id", requestProperties.getProperty(CLOUD_REGION_CLOUD_REGION_ID)); - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java index 89ca875ba..aa402ecff 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequest.java @@ -56,7 +56,7 @@ public class CustomQueryRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+generic_search_path; + String request_url = targetUri+generic_search_path; request_url = processPathData(request_url, requestProperties); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java index 99036aa7e..fb2345056 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequest.java @@ -8,9 +8,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -34,29 +34,29 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class EchoRequest extends AAIRequest { - - private final String echo_path; - + + private final String echoPath; + public EchoRequest() { - echo_path = "/aai/util/echo"; + echoPath = "/aai/util/echo"; } - + @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+echo_path; + String requestUrl = targetUri+echoPath; if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; + requestUrl = requestUrl +"?resource-version="+resourceVersion; } - URL http_req_url = new URL(request_url); + URL httpReqUrl = new URL(requestUrl); - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; + aaiService.LOGwriteFirstTrace(method, httpReqUrl.toString()); + + return httpReqUrl; } - + @Override public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { return getRequestUrl(method, null); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index 0717dd34d..98de85a58 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -71,7 +71,7 @@ public class GenericQueryRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+generic_search_path; + String request_url = targetUri+generic_search_path; request_url = processPathData(request_url, requestProperties); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java index d7bf1d0d4..7aabb8dc7 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java @@ -54,7 +54,7 @@ public class GenericVnfRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+generic_vnf_path; + String request_url = targetUri+generic_vnf_path; String key = VNF_ID; if(requestProperties.containsKey(GENERIC_VNF_ID)) { key = GENERIC_VNF_ID; @@ -80,7 +80,7 @@ public class GenericVnfRequest extends AAIRequest { @Override public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+generic_vnf_path; + String request_url = targetUri+generic_vnf_path; String key = VNF_ID; if(requestProperties.containsKey(GENERIC_VNF_ID)) { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java deleted file mode 100644 index e2fd570a3..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv4AddressListRequest.java +++ /dev/null @@ -1,212 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.L3InterfaceIpv4AddressList; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class L3InterfaceIpv4AddressListRequest extends AAIRequest { - - /* - * Note: there are 3 possible paths: - * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - */ - - public static final String L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list"; - public static final String VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list"; - - private final String l3_interface_ipv4_address_list_path; - private final String vlan_l3_interface_ipv4_address_list_path; - - public static final String L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address"; - public static final String LIST_L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address-list.l3-interface-ipv4-address"; - public static final String VLAN_INTERFACE = "vlan-interface"; - public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; - - public L3InterfaceIpv4AddressListRequest() { - l3_interface_ipv4_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); - vlan_l3_interface_ipv4_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+l3_interface_ipv4_address_list_path; - - if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ - request_url = target_uri+vlan_l3_interface_ipv4_address_list_path; - request_url = processVLanRequestPathData(request_url, requestProperties); - } - - request_url = processPathData(request_url, requestProperties); - request_url = LInterfaceRequest.processPathData(request_url, requestProperties); -// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = null; - - if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { - key = VLAN_VLAN_INTERFACE; - } else if(requestProperties.containsKey(VLAN_INTERFACE)) { - key = VLAN_INTERFACE; - } else { - aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); - return request_url; - } - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - L3InterfaceIpv4AddressList vnfc = (L3InterfaceIpv4AddressList)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - L3_INTERFACE_IPV4_ADDRESS, - LIST_L3_INTERFACE_IPV4_ADDRESS, - VLAN_INTERFACE, - VLAN_VLAN_INTERFACE, - LInterfaceRequest.INTERFACE_NAME, - LInterfaceRequest.LINTERFACE_INTERFACE_NAME, - "generic-vnf.vnf-id" - }; - - return args; - } - - @Override - public Class getModelClass() { - return L3InterfaceIpv4AddressList.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = L3_INTERFACE_IPV4_ADDRESS; - if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV4_ADDRESS)) { - key = LIST_L3_INTERFACE_IPV4_ADDRESS; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV4_ADDRESS, LIST_L3_INTERFACE_IPV4_ADDRESS)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{l3-interface-ipv4-address}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("l3-interface-ipv4-address", requestProperties.getProperty(key)); - return request_url; - } - - /* - * (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.aai.PathConfigurator#configurePath(java.lang.String) - */ -// @Override -// public void processRequestPathValues(Map nameValues) { -// String[] paths = -// { -// "/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}", -// "/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}" -// }; -// -// Listkeys = new LinkedList(); -// keys.addAll(nameValues.keySet()); -// for(String key : keys) { -// if(key.contains(".")) { -// key = key.replaceAll("_", "-"); -// if(!LIST_L3_INTERFACE_IPV4_ADDRESS.equals(key)) { -// int index = key.indexOf("."); -// String resource = key.substring(0, index); -// AAIRequest rx = createRequest(resource, nameValues); -// if(rx != null) { -// pathElements.add(rx); -// } -// } -// } -// } -// super.processRequestPathValues(nameValues); -// } -// List pathElements = new LinkedList(); - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java deleted file mode 100644 index 793155088..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/L3InterfaceIpv6AddressListRequest.java +++ /dev/null @@ -1,179 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class L3InterfaceIpv6AddressListRequest extends AAIRequest { - - /* - * Note: there are 3 possible paths: - * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - */ - - public static final String L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list"; - public static final String VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list"; - - private final String l3_interface_ipv6_address_list_path; - private final String vlan_l3_interface_ipv6_address_list_path; - - public static final String L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address"; - public static final String LIST_L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address-list.l3-interface-ipv6-address"; - public static final String VLAN_INTERFACE = "vlan-interface"; - public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface"; - - public L3InterfaceIpv6AddressListRequest() { - l3_interface_ipv6_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); - vlan_l3_interface_ipv6_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+l3_interface_ipv6_address_list_path; - - if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){ - request_url = target_uri+vlan_l3_interface_ipv6_address_list_path; - request_url = processVLanRequestPathData(request_url, requestProperties); - } - - request_url = processPathData(request_url, requestProperties); - request_url = LInterfaceRequest.processPathData(request_url, requestProperties); -// request_url = GenericVnfRequest.processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = null; - - if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) { - key = VLAN_VLAN_INTERFACE; - } else if(requestProperties.containsKey(VLAN_INTERFACE)) { - key = VLAN_INTERFACE; - } else { - aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{vlan-interface}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key)); - return request_url; - } - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - L3InterfaceIpv6AddressList vnfc = (L3InterfaceIpv6AddressList)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = - { - L3_INTERFACE_IPV6_ADDRESS, - LIST_L3_INTERFACE_IPV6_ADDRESS, - VLAN_INTERFACE, - VLAN_VLAN_INTERFACE, - LInterfaceRequest.INTERFACE_NAME, - LInterfaceRequest.LINTERFACE_INTERFACE_NAME, - "generic-vnf.vnf-id" - - }; - - return args; - } - - @Override - public Class getModelClass() { - return L3InterfaceIpv6AddressList.class; - } - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String key = L3_INTERFACE_IPV6_ADDRESS; - if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV6_ADDRESS)) { - key = LIST_L3_INTERFACE_IPV6_ADDRESS; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV6_ADDRESS, LIST_L3_INTERFACE_IPV6_ADDRESS)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - - request_url = request_url.replace("{l3-interface-ipv6-address}", encoded_vnf) ; - - aaiService.LOGwriteDateTrace("l3-interface-ipv6-address", requestProperties.getProperty(key)); - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java deleted file mode 100644 index ae1eb287f..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LInterfaceRequest.java +++ /dev/null @@ -1,244 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.LInterface; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class LInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String LAGINTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface"; - public static final String LAGINTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.query"; - - public static final String P_INTERFACE_LINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface"; - public static final String P_INTERFACE_LINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.query"; - - public static final String LAGINTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf"; - public static final String P_INTERFACE_LINTERFACE_PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf"; - - private final String laginterface_linterface_path; - private final String laginterface_linterface_query_path; - private final String p_interface_linterface_path; - private final String p_interface_linterface_query_path; - - private final String laginterface_linterface_pnf_path; - private final String p_interface_linterface_pnf_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String LINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String P_INTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - public static final String ROUTER_NAME = "router-name"; - public static final String HOSTNAME = "hostname"; - - - public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; - - private final TYPE type; - - public LInterfaceRequest(TYPE type) { - this.type = type; - - laginterface_linterface_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PATH); - laginterface_linterface_query_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_QUERY_PATH); - - p_interface_linterface_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PATH); - p_interface_linterface_query_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_QUERY_PATH); - - laginterface_linterface_pnf_path = configProperties.getProperty(LAGINTERFACE_LINTERFACE_PNF_PATH); - p_interface_linterface_pnf_path = configProperties.getProperty(P_INTERFACE_LINTERFACE_PNF_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String encoded_vnf = null; - String hostname = null; - String pnfname = null; - String interfaceName = null; - - if(type == TYPE.L2_BRIDGE_SBG) { - if(requestProperties.containsKey(PNF_PNF_NAME)) { - request_url = target_uri + laginterface_linterface_pnf_path; - } else { - request_url = target_uri + laginterface_linterface_path; - } - - if(requestProperties.containsKey(ROUTER_NAME)) { - hostname = requestProperties.getProperty(ROUTER_NAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - } - if(type == TYPE.L2_BRIDGE_BGF) { - if(requestProperties.containsKey(PNF_PNF_NAME)) { - request_url = target_uri + p_interface_linterface_pnf_path; - } else { - request_url = target_uri + p_interface_linterface_path; - } - - - if(requestProperties.containsKey(ROUTER_NAME)) { - hostname = requestProperties.getProperty(ROUTER_NAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf); - } - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - if(hostname != null) - aaiService.LOGwriteDateTrace("hostname", hostname); - if(pnfname != null) - aaiService.LOGwriteDateTrace("pnf-name", pnfname); - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - } - if(requestProperties.containsKey(P_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(P_INTERFACE_INTERFACE_NAME)); - } - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LInterface vnfc = (LInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - if(type == TYPE.L2_BRIDGE_SBG) { - String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - if(type == TYPE.L2_BRIDGE_BGF) { - String[] tmpArray = {INTERFACE_NAME, LINTERFACE_INTERFACE_NAME, P_INTERFACE_INTERFACE_NAME, HOSTNAME, ROUTER_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - - return args; - } - - @Override - public Class getModelClass() { - return LInterface.class; - } - - @Override - public String getPrimaryResourceName(String resource) { - return "l-interface"; - } - - public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String interfaceName = requestProperties.getProperty(INTERFACE_NAME); - if(interfaceName == null || interfaceName.isEmpty()) { - interfaceName = requestProperties.getProperty(LINTERFACE_INTERFACE_NAME); - } - - request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java deleted file mode 100644 index 169f0d1d0..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/LagInterfacePnfRequest.java +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.LagInterface; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class LagInterfacePnfRequest extends AAIRequest { - - // tenant (1602) - public static final String LAG_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - public static final String LAG_INTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; - public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; - - private final String lag_interface_path; - private final String lag_interface_query_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String PNF_NAME = "pnf-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - - public LagInterfacePnfRequest() { - lag_interface_path = configProperties.getProperty(PNF_PATH) + "/lag-interfaces/lag-interface/{interface-name}"; - lag_interface_query_path = configProperties.getProperty(LAG_INTERFACE_QUERY_PATH); - LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + lag_interface_path); - LoggerFactory.getLogger(LagInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + lag_interface_query_path); - if(lag_interface_path == null) { - LoggerFactory.getLogger(LagInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + lag_interface_path; - String encoded_vnf = null; - - String interfaceName = null; - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } else - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - request_url = processPnfRequestPathData(request_url,requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = PNF_NAME; - if(requestProperties.containsKey(PNF_PNF_NAME)) { - key = PNF_PNF_NAME; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{pnf-name}", encoded_vnf) ; - - return request_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LagInterface vnfc = (LagInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return LagInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java index 1236971fc..af475d1fb 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java @@ -60,7 +60,7 @@ public class NamedQueryRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+named_search_path; + String request_url = targetUri+named_search_path; request_url = processPathData(request_url, requestProperties); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java index 17d5a0dce..f1d55fa99 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -71,7 +71,7 @@ public class NodesQueryRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+nodes_search_path; + String request_url = targetUri+nodes_search_path; request_url = processPathData(request_url, requestProperties); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java deleted file mode 100644 index 0d3c6f7ac..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfacePnfRequest.java +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.PInterface; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PInterfacePnfRequest extends AAIRequest { - - // tenant (1602) - public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; - public static final String PNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf"; - - private final String pinterface_path; - private final String pinterface_query_path; - - public static final String INTERFACE_NAME = "interface-name"; - public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - public static final String PNF_NAME = "pnf-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - - - public PInterfacePnfRequest() { - pinterface_path = configProperties.getProperty(PNF_PATH) + "/p-interfaces/p-interface/{interface-name}"; - pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); - LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); - LoggerFactory.getLogger(PInterfacePnfRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); - if(pinterface_path == null) { - LoggerFactory.getLogger(PInterfacePnfRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + pinterface_path; - String encoded_vnf = null; - - String interfaceName = null; - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } else - if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - request_url = processPnfRequestPathData(request_url,requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - public static String processPnfRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = PNF_NAME; - if(requestProperties.containsKey(PNF_PNF_NAME)) { - key = PNF_PNF_NAME; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", PNF_NAME, PNF_PNF_NAME)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{pnf-name}", encoded_vnf) ; - - return request_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PInterface vnfc = (PInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {INTERFACE_NAME, PINTERFACE_INTERFACE_NAME, PNF_NAME, PNF_PNF_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return PInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java deleted file mode 100644 index f5436d8fe..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PInterfaceRequest.java +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.PInterface; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String PINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - public static final String PINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query"; - - private final String pinterface_path; - private final String pinterface_query_path; - - public static final String HOSTNAME = "hostname"; - public static final String PSERVER_HOSTNAME = "pserver.hostname"; - public static final String INTERFACE_NAME = "interface-name"; - public static final String PINTERFACE_INTERFACE_NAME = "p-interface.interface-name"; - - - public PInterfaceRequest() { - pinterface_path = configProperties.getProperty(PINTERFACE_PATH); - pinterface_query_path = configProperties.getProperty(PINTERFACE_QUERY_PATH); - LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=\t" + pinterface_path); - LoggerFactory.getLogger(PInterfaceRequest.class).debug("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface.query=\t" + pinterface_query_path); - if(pinterface_path == null) { - LoggerFactory.getLogger(PInterfaceRequest.class).warn("org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface PATH not found in aaiclient.properties"); - } - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri + pinterface_path; - String encoded_vnf = null; - - String hostname = null; - String interfaceName = null; - - if(requestProperties.containsKey(HOSTNAME)) { - hostname = requestProperties.getProperty(HOSTNAME); - } - if(requestProperties.containsKey(PSERVER_HOSTNAME)) { - hostname = requestProperties.getProperty(PSERVER_HOSTNAME); - } - - if(requestProperties.containsKey(INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(INTERFACE_NAME); - } - if(requestProperties.containsKey(PINTERFACE_INTERFACE_NAME)) { - interfaceName = requestProperties.getProperty(PINTERFACE_INTERFACE_NAME); - } - - encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf) ; - - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("hostname", hostname); - aaiService.LOGwriteDateTrace("interface-name", hostname); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PInterface vnfc = (PInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {HOSTNAME, PSERVER_HOSTNAME, INTERFACE_NAME, PINTERFACE_INTERFACE_NAME}; - return args; - } - - @Override - public Class getModelClass() { - return PInterface.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java index 608f2f491..cab601ac8 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PathRequest.java @@ -44,7 +44,7 @@ public class PathRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri + "{resource-path}"; + String request_url = targetUri + "{resource-path}"; String encoded_vnf = requestProperties.getProperty(RESOURCE_PATH); request_url = request_url.replace("{resource-path}", encoded_vnf) ; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java deleted file mode 100644 index 11e0a7824..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/PhysicalLinkRequest.java +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.PhysicalLink; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class PhysicalLinkRequest extends AAIRequest { - - // physical link - public static final String PHYSICAL_LINK_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link"; - public static final String PHYSICAL_LINK_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.physical.link.query"; - - private final String physical_link_path; - private final String physical_link_query_path; - - public static final String LINK_NAME = "link-name"; - public static final String PHYSICAL_LINK_NAME = "physical-link.link-name"; - - - public PhysicalLinkRequest() { - physical_link_path = configProperties.getProperty(PHYSICAL_LINK_PATH); - physical_link_query_path = configProperties.getProperty(PHYSICAL_LINK_QUERY_PATH); - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = target_uri+physical_link_path; - - String linkName = null; - if(requestProperties.containsKey(LINK_NAME)) { - linkName = requestProperties.getProperty(LINK_NAME); - } - - if(requestProperties.containsKey(PHYSICAL_LINK_NAME)) { - linkName = requestProperties.getProperty(PHYSICAL_LINK_NAME); - } - - - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{link-name}", encoded_vnf) ; - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("link-name", linkName); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - PhysicalLink vpe = (PhysicalLink)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vpe); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - @Override - public String[] getArgsList() { - String[] args = {LINK_NAME, PHYSICAL_LINK_NAME}; - - return args; - } - - @Override - public Class getModelClass() { - return PhysicalLink.class; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java index 61efc7a5e..2b1ce3f08 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -81,7 +81,7 @@ public class RelationshipRequest extends AAIRequest { @Override public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - String request_url = target_uri+relationship_query_path; + String request_url = targetUri+relationship_query_path; String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATIONSHIP_KEY)); request_url = request_url.replace("{tenant-name}", encoded_vnf) ; URL http_req_url = new URL(request_url); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java index fb1f1aec4..1e9915a0d 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SelfLinkRequest.java @@ -52,7 +52,7 @@ public class SelfLinkRequest extends AAIRequest { try { URI uri = new URI(request_url); if(uri.getHost() == null) { - request_url = target_uri + request_url; + request_url = targetUri + request_url; } } catch(Exception exc) { LOG.error("SelfLinkRequest.getRequestUrl", exc); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java deleted file mode 100644 index af7bb184e..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/SubInterfaceRequest.java +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.LInterface; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class SubInterfaceRequest extends AAIRequest { - - // tenant (1602) - public static final String PNF_LAGINTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface"; - public static final String PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface.query"; - - public static final String PNF_P_INTERFACE_SUBINTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface"; - public static final String PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface.query"; - - private final String pnf_laginterface_subinterface_path; - private final String pnf_laginterface_subinterface_query_path; - private final String pnf_p_interface_subinterface_path; - private final String pnf_p_interface_subinterface_query_path; - - public static final String SUBINTERFACE_INTERFACE_NAME = "l-interface.interface-name"; - public static final String LAG_INTERFACE_INTERFACE_NAME = "lag-interface.interface-name"; - public static final String PNF_PNF_NAME = "pnf.pnf-name"; - public static enum TYPE { L2_BRIDGE_BGF, L2_BRIDGE_SBG}; - - private final TYPE type; - - public SubInterfaceRequest(TYPE type) { - this.type = type; - - pnf_laginterface_subinterface_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_PATH); - pnf_laginterface_subinterface_query_path = configProperties.getProperty(PNF_LAGINTERFACE_SUBINTERFACE_QUERY_PATH); - - pnf_p_interface_subinterface_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_PATH); - pnf_p_interface_subinterface_query_path = configProperties.getProperty(PNF_P_INTERFACE_SUBINTERFACE_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = null; - String encoded_vnf = null; - - String pnfname = null; - String interfaceName = null; - - if(type == TYPE.L2_BRIDGE_SBG) { - request_url = target_uri + pnf_laginterface_subinterface_path; - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{lag-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - - } - if(type == TYPE.L2_BRIDGE_BGF) { - request_url = target_uri + pnf_p_interface_subinterface_path; - - if(requestProperties.containsKey(PNF_PNF_NAME)) { - pnfname = requestProperties.getProperty(PNF_PNF_NAME); - encoded_vnf = encodeQuery(pnfname); - request_url = request_url.replace("{pnf-name}", encoded_vnf); - } - - encoded_vnf = encodeQuery(requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); - request_url = request_url.replace("{p-interface.interface-name}", encoded_vnf) ; - - - interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - } - - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - if(pnfname != null) - aaiService.LOGwriteDateTrace("pnf-name", pnfname); - if(requestProperties.containsKey(LAG_INTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("lag-interface.interface-name", requestProperties.getProperty(LAG_INTERFACE_INTERFACE_NAME)); - } - if(requestProperties.containsKey(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)) { - aaiService.LOGwriteDateTrace("p-interface.interface-name", requestProperties.getProperty(PInterfaceRequest.PINTERFACE_INTERFACE_NAME)); - } - aaiService.LOGwriteDateTrace("interface-name", interfaceName); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return this.getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - LInterface vnfc = (LInterface)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(vnfc); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {}; - if(type == TYPE.L2_BRIDGE_SBG) { - String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, LAG_INTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - if(type == TYPE.L2_BRIDGE_BGF) { - String[] tmpArray = {SUBINTERFACE_INTERFACE_NAME, PInterfaceRequest.PINTERFACE_INTERFACE_NAME, PNF_PNF_NAME}; - args = tmpArray; - } - - return args; - } - - @Override - public Class getModelClass() { - return LInterface.class; - } - - @Override - public String getPrimaryResourceName(String resource) { - return "sub-interface"; - } - - public static final String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - String interfaceName = requestProperties.getProperty(SUBINTERFACE_INTERFACE_NAME); - request_url = request_url.replace("{interface-name}", encodeQuery(interfaceName)) ; - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java deleted file mode 100644 index ad2291608..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Flavor.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "flavorId", - "flavorName", - "flavorLink" -}) -public class Flavor { - - @JsonProperty("flavorId") - private String flavorId; - @JsonProperty("flavorName") - private String flavorName; - @JsonProperty("flavorLink") - private String flavorLink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The flavorId - */ - @JsonProperty("flavorId") - public String getFlavorId() { - return flavorId; - } - - /** - * - * @param flavorId - * The flavorId - */ - @JsonProperty("flavorId") - public void setFlavorId(String flavorId) { - this.flavorId = flavorId; - } - - /** - * - * @return - * The flavorName - */ - @JsonProperty("flavorName") - public String getFlavorName() { - return flavorName; - } - - /** - * - * @param flavorName - * The flavorName - */ - @JsonProperty("flavorName") - public void setFlavorName(String flavorName) { - this.flavorName = flavorName; - } - - /** - * - * @return - * The flavorLink - */ - @JsonProperty("flavorLink") - public String getFlavorLink() { - return flavorLink; - } - - /** - * - * @param flavorLink - * The flavorLink - */ - @JsonProperty("flavorLink") - public void setFlavorLink(String flavorLink) { - this.flavorLink = flavorLink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java deleted file mode 100644 index 7a2d2027e..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Host.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "hostId", - "hostname", - "hostLoc" -}) -public class Host { - - @JsonProperty("hostId") - private String hostId; - @JsonProperty("hostname") - private String hostname; - @JsonProperty("hostLoc") - private String hostLoc; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The hostId - */ - @JsonProperty("hostId") - public String getHostId() { - return hostId; - } - - /** - * - * @param hostId - * The hostId - */ - @JsonProperty("hostId") - public void setHostId(String hostId) { - this.hostId = hostId; - } - - /** - * - * @return - * The hostname - */ - @JsonProperty("hostname") - public String getHostname() { - return hostname; - } - - /** - * - * @param hostname - * The hostname - */ - @JsonProperty("hostname") - public void setHostname(String hostname) { - this.hostname = hostname; - } - - /** - * - * @return - * The hostLoc - */ - @JsonProperty("hostLoc") - public String getHostLoc() { - return hostLoc; - } - - /** - * - * @param hostLoc - * The hostLoc - */ - @JsonProperty("hostLoc") - public void setHostLoc(String hostLoc) { - this.hostLoc = hostLoc; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java deleted file mode 100644 index 7451b41e1..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Image.java +++ /dev/null @@ -1,237 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "imageId", - "imageName", - "osType", - "osVersion", - "application", - "applicationVersion", - "applicationVendor", - "imageLink" -}) -public class Image { - - @JsonProperty("imageId") - private String imageId; - @JsonProperty("imageName") - private String imageName; - @JsonProperty("osType") - private String osType; - @JsonProperty("osVersion") - private String osVersion; - @JsonProperty("application") - private String application; - @JsonProperty("applicationVersion") - private String applicationVersion; - @JsonProperty("applicationVendor") - private String applicationVendor; - @JsonProperty("imageLink") - private String imageLink; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The imageId - */ - @JsonProperty("imageId") - public String getImageId() { - return imageId; - } - - /** - * - * @param imageId - * The imageId - */ - @JsonProperty("imageId") - public void setImageId(String imageId) { - this.imageId = imageId; - } - - /** - * - * @return - * The imageName - */ - @JsonProperty("imageName") - public String getImageName() { - return imageName; - } - - /** - * - * @param imageName - * The imageName - */ - @JsonProperty("imageName") - public void setImageName(String imageName) { - this.imageName = imageName; - } - - /** - * - * @return - * The osType - */ - @JsonProperty("osType") - public String getOsType() { - return osType; - } - - /** - * - * @param osType - * The osType - */ - @JsonProperty("osType") - public void setOsType(String osType) { - this.osType = osType; - } - - /** - * - * @return - * The osVersion - */ - @JsonProperty("osVersion") - public String getOsVersion() { - return osVersion; - } - - /** - * - * @param osVersion - * The osVersion - */ - @JsonProperty("osVersion") - public void setOsVersion(String osVersion) { - this.osVersion = osVersion; - } - - /** - * - * @return - * The application - */ - @JsonProperty("application") - public String getApplication() { - return application; - } - - /** - * - * @param application - * The application - */ - @JsonProperty("application") - public void setApplication(String application) { - this.application = application; - } - - /** - * - * @return - * The applicationVersion - */ - @JsonProperty("applicationVersion") - public String getApplicationVersion() { - return applicationVersion; - } - - /** - * - * @param applicationVersion - * The applicationVersion - */ - @JsonProperty("applicationVersion") - public void setApplicationVersion(String applicationVersion) { - this.applicationVersion = applicationVersion; - } - - /** - * - * @return - * The applicationVendor - */ - @JsonProperty("applicationVendor") - public String getApplicationVendor() { - return applicationVendor; - } - - /** - * - * @param applicationVendor - * The applicationVendor - */ - @JsonProperty("applicationVendor") - public void setApplicationVendor(String applicationVendor) { - this.applicationVendor = applicationVendor; - } - - /** - * - * @return - * The imageLink - */ - @JsonProperty("imageLink") - public String getImageLink() { - return imageLink; - } - - /** - * - * @param imageLink - * The imageLink - */ - @JsonProperty("imageLink") - public void setImageLink(String imageLink) { - this.imageLink = imageLink; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java deleted file mode 100644 index 65800e4fb..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/IpAddress.java +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "addrId", - "addr", - "version", - "type", - "networkName" -}) -public class IpAddress { - - @JsonProperty("addrId") - private String addrId; - @JsonProperty("addr") - private String addr; - @JsonProperty("version") - private String version; - @JsonProperty("type") - private String type; - @JsonProperty("networkName") - private String networkName; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The addrId - */ - @JsonProperty("addrId") - public String getAddrId() { - return addrId; - } - - /** - * - * @param addrId - * The addrId - */ - @JsonProperty("addrId") - public void setAddrId(String addrId) { - this.addrId = addrId; - } - - /** - * - * @return - * The addr - */ - @JsonProperty("addr") - public String getAddr() { - return addr; - } - - /** - * - * @param addr - * The addr - */ - @JsonProperty("addr") - public void setAddr(String addr) { - this.addr = addr; - } - - /** - * - * @return - * The version - */ - @JsonProperty("version") - public String getVersion() { - return version; - } - - /** - * - * @param version - * The version - */ - @JsonProperty("version") - public void setVersion(String version) { - this.version = version; - } - - /** - * - * @return - * The type - */ - @JsonProperty("type") - public String getType() { - return type; - } - - /** - * - * @param type - * The type - */ - @JsonProperty("type") - public void setType(String type) { - this.type = type; - } - - /** - * - * @return - * The networkName - */ - @JsonProperty("networkName") - public String getNetworkName() { - return networkName; - } - - /** - * - * @param networkName - * The networkName - */ - @JsonProperty("networkName") - public void setNetworkName(String networkName) { - this.networkName = networkName; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java deleted file mode 100644 index 329571acf..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/Relationship.java +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relatedTo", - "relatedLink", - "relationshipData", - "any" -}) -public class Relationship { - - @JsonProperty("relatedTo") - private String relatedTo; - @JsonProperty("relatedLink") - private String relatedLink; - @JsonProperty("relationshipData") - private List relationshipData = new ArrayList(); - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relatedTo - */ - @JsonProperty("relatedTo") - public String getRelatedTo() { - return relatedTo; - } - - /** - * - * @param relatedTo - * The relatedTo - */ - @JsonProperty("relatedTo") - public void setRelatedTo(String relatedTo) { - this.relatedTo = relatedTo; - } - - /** - * - * @return - * The relatedLink - */ - @JsonProperty("relatedLink") - public String getRelatedLink() { - return relatedLink; - } - - /** - * - * @param relatedLink - * The relatedLink - */ - @JsonProperty("relatedLink") - public void setRelatedLink(String relatedLink) { - this.relatedLink = relatedLink; - } - - /** - * - * @return - * The relationshipData - */ - @JsonProperty("relationshipData") - public List getRelationshipData() { - return relationshipData; - } - - /** - * - * @param relationshipData - * The relationshipData - */ - @JsonProperty("relationshipData") - public void setRelationshipData(List relationshipData) { - this.relationshipData = relationshipData; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java deleted file mode 100644 index 8e9675289..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipDatum.java +++ /dev/null @@ -1,124 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relationshipKey", - "relationshipValue", - "any" -}) -public class RelationshipDatum { - - @JsonProperty("relationshipKey") - private String relationshipKey; - @JsonProperty("relationshipValue") - private String relationshipValue; - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relationshipKey - */ - @JsonProperty("relationshipKey") - public String getRelationshipKey() { - return relationshipKey; - } - - /** - * - * @param relationshipKey - * The relationshipKey - */ - @JsonProperty("relationshipKey") - public void setRelationshipKey(String relationshipKey) { - this.relationshipKey = relationshipKey; - } - - /** - * - * @return - * The relationshipValue - */ - @JsonProperty("relationshipValue") - public String getRelationshipValue() { - return relationshipValue; - } - - /** - * - * @param relationshipValue - * The relationshipValue - */ - @JsonProperty("relationshipValue") - public void setRelationshipValue(String relationshipValue) { - this.relationshipValue = relationshipValue; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java deleted file mode 100644 index 81126baf0..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/RelationshipList.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "relationship", - "any" -}) -public class RelationshipList { - - @JsonProperty("relationship") - private List relationship = new ArrayList(); - @JsonProperty("any") - private List any = new ArrayList(); - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The relationship - */ - @JsonProperty("relationship") - public List getRelationship() { - return relationship; - } - - /** - * - * @param relationship - * The relationship - */ - @JsonProperty("relationship") - public void setRelationship(List relationship) { - this.relationship = relationship; - } - - /** - * - * @return - * The any - */ - @JsonProperty("any") - public List getAny() { - return any; - } - - /** - * - * @param any - * The any - */ - @JsonProperty("any") - public void setAny(List any) { - this.any = any; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java deleted file mode 100644 index 623c19ab7..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/v1507/VServer.java +++ /dev/null @@ -1,262 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.data.v1507; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "vmId", - "vmName", - "vmName2", - "host", - "image", - "flavor", - "ipAddresses", - "vserverLink", - "relationshipList" -}) -public class VServer { - - @JsonProperty("vmId") - private String vmId; - @JsonProperty("vmName") - private String vmName; - @JsonProperty("vmName2") - private String vmName2; - @JsonProperty("host") - private Host host; - @JsonProperty("image") - private Image image; - @JsonProperty("flavor") - private Flavor flavor; - @JsonProperty("ipAddresses") - private List ipAddresses = new ArrayList(); - @JsonProperty("vserverLink") - private String vserverLink; - @JsonProperty("relationshipList") - private RelationshipList relationshipList; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The vmId - */ - @JsonProperty("vmId") - public String getVmId() { - return vmId; - } - - /** - * - * @param vmId - * The vmId - */ - @JsonProperty("vmId") - public void setVmId(String vmId) { - this.vmId = vmId; - } - - /** - * - * @return - * The vmName - */ - @JsonProperty("vmName") - public String getVmName() { - return vmName; - } - - /** - * - * @param vmName - * The vmName - */ - @JsonProperty("vmName") - public void setVmName(String vmName) { - this.vmName = vmName; - } - - /** - * - * @return - * The vmName2 - */ - @JsonProperty("vmName2") - public String getVmName2() { - return vmName2; - } - - /** - * - * @param vmName2 - * The vmName2 - */ - @JsonProperty("vmName2") - public void setVmName2(String vmName2) { - this.vmName2 = vmName2; - } - - /** - * - * @return - * The host - */ - @JsonProperty("host") - public Host getHost() { - return host; - } - - /** - * - * @param host - * The host - */ - @JsonProperty("host") - public void setHost(Host host) { - this.host = host; - } - - /** - * - * @return - * The image - */ - @JsonProperty("image") - public Image getImage() { - return image; - } - - /** - * - * @param image - * The image - */ - @JsonProperty("image") - public void setImage(Image image) { - this.image = image; - } - - /** - * - * @return - * The flavor - */ - @JsonProperty("flavor") - public Flavor getFlavor() { - return flavor; - } - - /** - * - * @param flavor - * The flavor - */ - @JsonProperty("flavor") - public void setFlavor(Flavor flavor) { - this.flavor = flavor; - } - - /** - * - * @return - * The ipAddresses - */ - @JsonProperty("ipAddresses") - public List getIpAddresses() { - return ipAddresses; - } - - /** - * - * @param ipAddresses - * The ipAddresses - */ - @JsonProperty("ipAddresses") - public void setIpAddresses(List ipAddresses) { - this.ipAddresses = ipAddresses; - } - - /** - * - * @return - * The vserverLink - */ - @JsonProperty("vserverLink") - public String getVserverLink() { - return vserverLink; - } - - /** - * - * @param vserverLink - * The vserverLink - */ - @JsonProperty("vserverLink") - public void setVserverLink(String vserverLink) { - this.vserverLink = vserverLink; - } - - /** - * - * @return - * The relationshipList - */ - @JsonProperty("relationshipList") - public RelationshipList getRelationshipList() { - return relationshipList; - } - - /** - * - * @param relationshipList - * The relationshipList - */ - @JsonProperty("relationshipList") - public void setRelationshipList(RelationshipList relationshipList) { - this.relationshipList = relationshipList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java new file mode 100755 index 000000000..4195d8485 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class EchoRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(EchoRequestTest.class); + + protected static AAIRequest request; + + @BeforeClass + public static void setUp() throws Exception { + request = new EchoRequest(); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + request = null; + LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index 35dec548a..fb9a52feb 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -40,7 +40,8 @@ org.onap.ccsdk.sli.adaptors.aai.application=CCSDK # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 +#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int2.test.att.com:8443 # connection.timeout=60000 -- cgit 1.2.3-korg From 73e10c782444301edd8e01092e75b90bf6576847 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Wed, 4 Oct 2017 13:29:09 +0000 Subject: Improve CCSDK adaptors Sonar coverage Changes made: 1. Removed obsolete code 2. Added new test cases Change-Id: I3c12948a4af29707a31b4e4cf4be6782bc5d1071 Issue-ID: CCSDK-108 Signed-off-by: Rich Tabedzki --- .../adaptors/aai/AutoGeneratedRegressionTest.java | 943 +++++++++++++++++++++ .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 190 +++++ .../ccsdk/sli/adaptors/aai/RegressionTest.java | 417 +++++++++ .../src/test/resources/aaiclient.properties | 8 +- .../src/test/resources/json/linterfaceJson.txt | 43 + .../provider/src/test/resources/testCommands.txt | 1 + 7 files changed, 1599 insertions(+), 5 deletions(-) create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java create mode 100755 aai-service/provider/src/test/resources/json/linterfaceJson.txt create mode 100644 aai-service/provider/src/test/resources/testCommands.txt (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java new file mode 100755 index 000000000..345ff57bb --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -0,0 +1,943 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Scanner; +import java.util.Set; +import java.util.Stack; +import java.util.UUID; + +import javax.xml.bind.SchemaOutputResolver; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Result; +import javax.xml.transform.stream.StreamResult; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathFactory; + +import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.InventoryResponseItems; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.annotation.AnnotationUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class AutoGeneratedRegressionTest { + + static { + System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "INFO"); + System.setProperty(org.slf4j.impl.SimpleLogger.LOG_FILE_KEY, String.format("AutoGeneratedRegressionTest-%d.txt", System.currentTimeMillis())); + } + private static final Logger LOG = LoggerFactory.getLogger(AutoGeneratedRegressionTest.class); + + + protected static AAIClient client; + + protected Map cache = new HashMap(); + + @BeforeClass + public static void setUp() throws Exception { + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("----------------------- aicAAIResourceTest.setUp -----------------------"); + } + + @AfterClass + public static void tearDown() throws Exception { + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + + @Test + public void mainLoadTest () + { + try + { + String currentDir = System.getProperty("user.dir"); + File dir = new File(currentDir); + if(!dir.exists()) { + System.exit(1); + } + dir = new File(dir, "src/main/resources"); + if(!dir.exists()) { + System.exit(1); + } + // parse the document + File file = new File(dir, "aai_schema_v11.xsd"); + if(!file.exists()) { + assert(false); + return; + } + + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(file); + + Stack stack = new Stack(); + List commands = new ArrayList(); + listSubNodes("network", doc, stack, commands); + listSubNodes("cloud-infrastructure", doc, stack, commands); + listSubNodes("service-design-and-creation", doc, stack, commands); + listSubNodes("license-management", doc, stack, commands); + listSubNodes("business", doc, stack, commands); + + String[] requestDefinition = commands.toArray(new String[0]); + LOG.info("\n----------------------------"); + + executeTests(requestDefinition); + } + catch (Throwable e) + { + LOG.error("", e); + } + } + + @Test + public void testFromFile() { + String filename = "testCommands.txt"; + List lines = new ArrayList(); + Scanner scanner = null; + + try { + File testFile = new File(filename); + if(!testFile.exists()) + return; + scanner = new Scanner(testFile); + while (scanner.hasNextLine()) { + lines.add(scanner.nextLine()); + } + } catch (Exception exc) { + + } finally { + if(scanner != null) + scanner.close(); + } + + String[] requestDefinition = lines.toArray(new String[0]); + executeTests(requestDefinition); + } + + + @Test + public void test01AutoGeneratedRequest() { + + String[] requestDefinition = { + "save|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", + "update|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", + "query|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", + "delete|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458" + }; + + executeTests(requestDefinition); + } + + public void executeTests(String[] requestDefinition) { + + for(String line : requestDefinition){ + LOG.info("Executing: " + line); + + // parse request line resource | key structure + String[] segments = line.split("\\|"); + String action = segments[0]; + String resource = segments[1]; + String[] tmpKeys = segments[2].split("&"); +// String[] keyStructure = tmpKey.; + // options :assign:uuid:cache + // :cached + // :query:random + + + String localId = null; + + List keys = new ArrayList(); + String keyLine = null; + + for(String instruction : tmpKeys) { + String[] parts = instruction.split(":"); + String identifier = parts[0]; + String method = parts[2]; + + if(identifier.startsWith(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { + localId = identifier; + } else if("nodes-query".equals(resource)) { + localId = identifier; + } + + switch(parts[1]) { + case "assign": + String postProcesss = parts[3]; + keyLine = processAssign(identifier, method, postProcesss); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + case "cached": + keyLine = processCached(identifier, method); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + } + + } + + List x = Arrays.asList(localId.split("\\.")); + switch(action){ + case "save": + testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + case "update": + testAutoGeneratedUpdateRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + + case "query": + test03AutoGeneratedQueryRequest(resource, keys); + break; + case "delete": + test03AutoGeneratedDeleteRequest(resource, keys); + break; + } + } + + LOG.info("done"); + } + + + public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + for(Field field : resourceClass.getDeclaredFields()) { + String type = field.getType().getName(); + switch(type){ + case "bool": + case "boolean": + type = Boolean.class.getName(); + break; + case "int": + type = Integer.class.getName(); + break; + case "long": + type = Long.class.getName(); + break; + + } + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("model-version-id".equals(name)) { + continue; + } + if("model-invariant-id".equals(name)) { + continue; + } + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + if(name.equals(identifier)) { + data.put(name, idValue); + continue; + } + + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + if(resp == QueryStatus.SUCCESS) { + LOG.info(String.format("Save %s successfull", resource)); + } else { + LOG.info(String.format("Save %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); + } + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + SvcLogicContext ctx = new SvcLogicContext(); + try + { + + QueryStatus response = null; + + response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); + if(response == QueryStatus.SUCCESS) { + LOG.info(String.format("Query %s successfull", resource)); + Set tokens = ctx.getAttributeKeySet(); + Map reponseData = new HashMap(); + + String responsePrefix = String.format("%s", "aaiTest"); + + for(String token : tokens) { + if(token.startsWith(responsePrefix)){ + reponseData.put(token, ctx.getAttribute(token)); + } else { + LOG.info(String.format("%s = ", token, ctx.getAttribute(token))); + } + } + + LOG.info("AAIResponse: " + response.toString()); + assertTrue("AAIRequest:"+resource, reponseData.size() > 0); + } else { + LOG.info(String.format("Query %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); + assert(false); + } + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + } + } + + + public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus response = null; + + response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); + if(response == QueryStatus.SUCCESS) { + LOG.info(String.format("Delete %s successfull", resource)); + } else { + LOG.info(String.format("Delete %s failed due to : %s", resource, ctx.getAttribute("aaiDelete.error.message"))); + } + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void testAutoGeneratedUpdateRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + boolean skipFirst = true; + boolean breakLoop = false; + for(Field field : resourceClass.getDeclaredFields()) { + if(skipFirst){ + skipFirst = false; + continue; + } + if(breakLoop){ + break; + } + String type = field.getType().getName(); + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + breakLoop = true; + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + breakLoop = true; + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //client.update("ipsec-configuration", "ipsec-configuration.ipsec-configuration-id = 'testConfigurationId01'", data, "aaiTest", ctx); + resp = client.update(resource, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + if(resp == QueryStatus.SUCCESS) { + LOG.info(String.format("Update %s successfull", resource)); + } else { + LOG.info(String.format("Update %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); + } + + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + static ArrayList findSetters(Class c) { + ArrayList list = new ArrayList(); + Method[] methods = c.getDeclaredMethods(); + for (Method method : methods) + if (isGetter(method)) + list.add(method); + return list; + } + + + public static boolean isGetter(Method method) { + if (Modifier.isPublic(method.getModifiers()) && + method.getParameterTypes().length == 0) { + if (method.getName().matches("^get[A-Z].*") && + !method.getReturnType().equals(void.class)) + return true; + if (method.getName().matches("^is[A-Z].*") && + method.getReturnType().equals(boolean.class)) + return true; + } + return false; + } + + public static boolean isSetter(Method method) { + return Modifier.isPublic(method.getModifiers()) && + method.getReturnType().equals(void.class) && + method.getParameterTypes().length == 1 && + method.getName().matches("^set[A-Z].*"); + } + + private String processAssign(String identifier, String method, String postProcess) { + String value = null; + if("uuid".equals(method)) { + value = UUID.randomUUID().toString(); + } + + if("cache".equals(postProcess)) { + cache.put(identifier, value); + } + + if("value".equals(method)) { + cache.put(identifier, postProcess); + value = postProcess; + } + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + private String processCached(String identifier, String method) { + String value = cache.get(identifier); + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + LOG.debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + LOG.debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + + } + + private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + LOG.warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + +// @Test + public void test90QueryTenantRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + + try { + url = client.requestVserverURLNodeQuery("bpsx0001vm001bps001"); + url = new URL("https://mtanjv9aaas03.aic.cip.att.com:8443/aai/v4/cloud-infrastructure/tenants/tenant/6b012c07bdf1427190ae58f794a86344/vservers/vserver/5acfe828-82e9-swgk092815-13-4d2c-85bb-9c2c1fafcce6"); + client.getTenantIdFromVserverUrl(url); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Test + public void R1702NamedQueryRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + SvcLogicContext ctx = new SvcLogicContext(); + URL resource = this.getClass().getResource("/json/nquery2.json"); + + LOG.info("Resource is " + resource.getFile()); + File requestFile = new File(resource.getFile()); + if(!requestFile.exists()) { + fail("Test file does not exist"); + } + ObjectMapper mapper = AAIService.getObjectMapper(); + NamedQueryData request = mapper.readValue(requestFile, NamedQueryData.class); + Map map = mapper.convertValue(request, Map.class); +// AAIDeclartations.class.cast(client).writeMap(map, String.format("%s.%s", "aaiTmp", "inventory-response-items"), ctx); + + + Map data = new HashMap(); + ctx.setAttribute("namedQueryData.instance-filters.instance-filter[0].l3-network.network-role", "example-network-role-val-432223"); + ctx.setAttribute("namedQueryData.instance-filters.instance-filter_length", "1"); + QueryStatus resp = client.query("named-query", false, null, "named-query-uuid = '4f448e43-339f-4c1c-85f6-896c444e25ca' AND prefix = 'namedQueryData' ", "zdzich", null, ctx); + + LOG.info("AAIResponse: " + resp.toString()); + } + catch (Throwable e) + { + assert(true); + } + } + + + static class MySchemaOutputResolver extends SchemaOutputResolver { + + public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { + File file = new File(suggestedFileName); + StreamResult result = new StreamResult(file); + result.setSystemId(file.getAbsolutePath()); + return result; + } + + } + + private static void listSubNodes(String parent, Document doc, Stack stack, List commands) throws Exception { + XPathFactory xFactory = XPathFactory.newInstance(); + XPath xPath = xFactory.newXPath(); + String format = "/schema/element[@name='%s']/complexType/sequence/element[@ref]"; + + String path = String.format(format, parent); + +// XPathExpression exp = xPath.compile("/schema/element[@name='generic-vnf']/complexType/sequence/element[@ref]"); + XPathExpression exp = xPath.compile(path); + + NodeList nl = (NodeList)exp.evaluate(doc.getFirstChild(), XPathConstants.NODESET); + LOG.debug("Nodes to process : "+nl.getLength()); + for (int index = 0; index < nl.getLength(); index++) { + + Node node = nl.item(index); + + if(!(node instanceof Element)) + continue; + + String classAlias = null; + + if(node.hasAttributes()) + { + String nm = ((Element)node).getAttribute("ref"); + if(nm != null && !nm.isEmpty()) { + String[] split = nm.split(":"); + classAlias = split[split.length - 1]; + if("relationship-list".equals(classAlias)) + continue; + if("metadata".equals(classAlias)) + continue; + if("classes-of-service".equals(classAlias)) { + classAlias = "class-of-service"; + } else if("l3-interface-ipv4-address-list".equals(classAlias)) { + ; + } else if("l3-interface-ipv6-address-list".equals(classAlias)) { + ; + } else if("cvlan-tags".equals(classAlias)) { + classAlias = "cvlan-tag-entry"; + } else if("network-policies".equals(classAlias)) { + classAlias = "network-policy"; + } else if("complexes".equals(classAlias)) { + classAlias = "complex"; + } else if("dvs-switches".equals(classAlias)) { + classAlias = "dvs-switch"; + } else if("service-capabilities".equals(classAlias)) { + classAlias = "service-capability"; + } else { + classAlias = classAlias.substring(0, classAlias.length() -1); + } + AAIRequest request = AAIRequest.createRequest(classAlias, new HashMap()); + if(request != null) { + Class clazz = request.getModelClass(); + Field[] fieldz = clazz.getDeclaredFields(); + Field field = fieldz[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + + Map map = AnnotationUtils.getAnnotationAttributes(annotation); + String id = (String)map.get("name"); + if("##default".equals(id)) { + id = fieldName; + } + + if("cloud-region".equals(classAlias)) { + String keystring = "cloud-region.cloud-owner:assign:value:att-aic&cloud-region.cloud-region-id:assign:value:AAIAIC25"; + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("entitlement".equals(classAlias)) { + String keystring = "entitlement.group-uuid:assign:value:"+UUID.randomUUID()+"&entitlement.resource-uuid:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("license".equals(classAlias)) { + String keystring = "license.group-uuid:assign:value:"+UUID.randomUUID()+"&license.resource-uuid:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("route-target".equals(classAlias)) { + String keystring = "route-target.global-route-target:assign:value:"+UUID.randomUUID()+"&route-target.route-target-role:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("service-capability".equals(classAlias)) { + String keystring = "service-capability.service-type:assign:value:"+UUID.randomUUID()+"&service-capability.vnf-type:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("ctag-pool".equals(classAlias)) { + String keystring = "ctag-pool.target-pe:assign:value:"+UUID.randomUUID()+"&ctag-pool.availability-zone-name:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else { + String keystring = String.format("%s.%s:assign:value:%s", classAlias, id, UUID.randomUUID()); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String save = String.format("save|%s|%s", classAlias, key); + commands.add(save); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + + String update = String.format("update|%s|%s", classAlias, key); + commands.add(update); + + if(!parent.equals(classAlias) && !containsCircular(classAlias, id, stack)) { + listSubNodes(classAlias, doc, stack, commands); + } + String delete = String.format("delete|%s|%s", classAlias, key); + commands.add(delete); + stack.pop(); + } + } + } + } + } + } + + public static boolean containsCircular(String classAlias, String id, Stack stack) { + String keystring = String.format("%s.%s", classAlias, id); + + Stack localStack = new Stack(); + localStack.addAll(stack); + + localStack.pop(); + + while(!localStack.isEmpty()) { + String instruction = localStack.pop(); + if(instruction.contains(keystring)) { + return true; + } + } + + return false; + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java index 4195d8485..5a3d88ec4 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -75,7 +75,7 @@ public class EchoRequestTest { try { String json = request.toJSONString(); - + assertNotNull(json); } catch (Exception exc) { LOG.error("Failed test", exc); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java new file mode 100755 index 000000000..5f9fc7f8b --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -0,0 +1,190 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.LInterface; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class GenericRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(GenericRequestTest.class); + + protected static AAIClient client; + protected static AAIRequest request; + + @BeforeClass + public static void setUp() throws Exception { + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + request = AAIRequest.createRequest("generic-vnf", new HashMap()); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + @Test + public void test001() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map key = new HashMap(); + AAIRequest request = AAIRequest.createRequest("vserver", key); + key.put("vserver.vserver_id", "e8faf166-2402-4ae2-be45-067954c63aed"); + key.put("tenant.tenant_id", "1863027683132547"); + request.processRequestPathValues(key); + String uri = request.getTargetUri(); + + assertNotNull(uri); + + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void test002() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + URL resource = this.getClass().getResource("json/linterfaceJson.txt"); + + LOG.info("Resource is " + resource.getFile()); + File requestFile = new File(resource.getFile()); + if(!requestFile.exists()) { + fail("Test file does not exist"); + } + + ObjectMapper mapper = AAIService.getObjectMapper(); + LInterface request = mapper.readValue(requestFile, LInterface.class); + String vnf_id = request.getInterfaceName(); + LOG.info(vnf_id); + + } + catch (Exception e) + { + LOG.error("Caught exception", e); + } + } + + @Test + public void test003() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + String vnf_id = "4718302b-7884-4959-a499-f470c62418ff"; + + GenericVnf genericVnf = client.requestGenericVnfData(vnf_id); + + client.deleteGenericVnfData(vnf_id, genericVnf.getResourceVersion()); + + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + } + } + + + @Test + public void test004() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java new file mode 100755 index 000000000..4563adfca --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java @@ -0,0 +1,417 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class RegressionTest { + + static { + System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "INFO"); +// System.setProperty(org.slf4j.impl.SimpleLogger.LOG_FILE_KEY, String.format("RegressionTest-%d.txt", System.currentTimeMillis())); + } + + private static final Logger LOG = LoggerFactory.getLogger(RegressionTest.class); + + protected static AAIService client; + + @BeforeClass + public static void setUp() throws Exception { +// super.setUp(); + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { +// super.tearDown(); + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + @Test + public void R1510Test05GenericVnfDataRequestDelete() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + String vnf_id = "bpsx0001v-7071"; + boolean response = client.deleteGenericVnfData(vnf_id, null); + assertTrue(response); + + } + catch (Throwable e) + { + assert(true); + } + } + + @Test + public void R1604TestWanConnectorSave01Request() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + Map data = new HashMap(); + data.put("resource-instance-id", "12345"); + data.put("resource-model-uuid", "45678"); + + data.put("relationship-list.relationship[0].related-to", "service-instance"); + + data.put("relationship-list.relationship[0].relationship-data[0].relationship-key", "customer.global-customer-id"); + data.put("relationship-list.relationship[0].relationship-data[0].relationship-value", "$global-customer-id"); + + data.put("relationship-list.relationship[0].relationship-data[1].relationship-key", "service-subscription.service-type"); + data.put("relationship-list.relationship[0].relationship-data[1].relationship-value", "$service-type"); + + data.put("relationship-list.relationship[0].relationship-data[2].relationship-key", "service-instance.service-instance-id"); + data.put("relationship-list.relationship[0].relationship-data[2].relationship-value", "$serviceInstanceID"); + + + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + QueryStatus resp = client.save("connector", false, false, "resource-instance-id = '12345'", data, "aaidata", ctx); + + LOG.info("AAIResponse: " + resp.toString()); + } + catch (Exception e) + { + assert(true); + } + } + + + @Test + public void R1604TestWanConnectorSave02Request() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + Map data = new HashMap(); + data.put("resource-instance-id", "11012345"); + data.put("widget-model-id", "45678"); + data.put("persona-model-version", "0.1"); + data.put("persona-model-id", "dc700a83-c507-47d9-b775-1fdfcdd5f9eb"); + data.put("relationship-list.relationship[0].relationship-data[0].relationship-key", "customer.global-customer-id"); + data.put("metadata.metadatum[0].meta-value", "100640"); + data.put("metadata.metadatum[0].meta-key", "vni"); + data.put("relationship-list.relationship[0].relationship-data[1].relationship-value", "ATT-COLLABORATE"); + data.put("relationship-list.relationship[0].relationship-data[0].relationship-value", "ds828e091614l"); + data.put("relationship-list.relationship[0].relationship-data[2].relationship-key", "service-instance.service-instance-id"); + data.put("relationship-list.relationship[0].relationship-data[1].relationship-key", "service-subscription.service-type"); + data.put("relationship-list.relationship[0].related-to", "service-instance"); + data.put("relationship-list.relationship[0].relationship-data[2].relationship-value", "1990e84d-546d-4b61-8069-e0db1318ade2"); + + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + QueryStatus resp = client.save("connector", false, false, "resource-instance-id = '11012345'", data, "aaidata", ctx); + + LOG.info("AAIResponse: " + resp.toString()); + } + catch (Exception e) + { + assert(true); + } + } + + + @Test + public void R1604TestLogicalLinkSaveRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + Map data = new HashMap(); + data.put("link-name" , "1252541"); + data.put("link-type" , "L2 Bridge between IPE and BorderElement"); + data.put("speed-value" , "1000"); + + data.put("speed-units" , "MBPS"); + data.put("ip-version" , "IP-V6"); + data.put("routing-protocol" , "BGP"); + data.put("resource-version" , "1.0.0"); + data.put("resource-model-uuid" , "TEST01"); + + data.put("relationship-list.relationship[0].related-to" , "virtual-data-center"); + data.put("relationship-list.relationship[0].relationship-data[0].relationship-key", "virtual-data-center.vdc-id"); + data.put("relationship-list.relationship[0].relationship-data[0].relationship-value", "dpa2_cci_att_com-1068"); + + data.put("relationship-list.relationship[1].related-to" , "generic-vnf"); + data.put("relationship-list.relationship[1].relationship-data[0].relationship-key", "generic-vnf.vnf-id"); + data.put("relationship-list.relationship[1].relationship-data[0].relationship-value" , "basx0001v-1189"); + + data.put("relationship-list.relationship[2].related-to" , "l-interface"); + data.put("relationship-list.relationship[2].relationship-data[0].relationship-key", "pserver.hostname"); + data.put("relationship-list.relationship[2].relationship-data[0].relationship-value" , "ptpbe101snd"); + + data.put("relationship-list.relationship[2].relationship-data[1].relationship-key", "lag-interface.interface-name"); + data.put("relationship-list.relationship[2].relationship-data[1].relationship-value" , "$name"); + + data.put("relationship-list.relationship[2].relationship-data[2].relationship-key", "l-interface.interface-name"); + data.put("relationship-list.relationship[2].relationship-data[2].relationship-value" , "$hostname"); + + + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + QueryStatus resp = client.save("logical-link", false, false, "link-name = '1252541'", data, "aaidata", ctx); + + LOG.info("AAIResponse: " + resp.toString()); + } + catch (Exception e) + { + assert(true); + } + } + + @Test + public void R1604TestVDCISaveRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + Map data = new HashMap(); + data.put("vdc-id" , "1252541"); + data.put("vdc-name" , "put.the.variable.of.your.data.here"); + + data.put("relationship-list.relationship[0].related-to" , "connector"); + + data.put("relationship-list.relationship[0].relationship-data[0].relationship-key" , "connector.resource-instance-id"); + data.put("relationship-list.relationship[0].relationship-data[0].relationship-value" , "$resource-instance-id"); + + + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + QueryStatus resp = client.save("virtual-data-center", false, false, "vdc-id = '1252541'", data, "aaidata", ctx); + + LOG.info("AAIResponse: " + resp.toString()); + } + catch (Exception e) + { + assert(true); + } + } + +// @Test + public void R1510Test03RequestGenericVnfDataRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus response = client.query("generic-vnf:relationship-list", false, null, "vnf-id = '34e94596-bdfa-411d-a664-16dea8583139' AND related-to = 'l3-network' ", "aaiTest", null, ctx); +// QueryStatus response = client.delete("generic-vnf:relationship-list", "vnf-id = '34e94596-bdfa-411d-a664-16dea8583139' AND related-to = 'pserver' ", ctx); + + assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + response.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void R1510Test03RequestVserverDataRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + QueryStatus response = client.query("vserver", false, null, + "vserver.vserver-id = 'FRNKGEFF1' AND depth = 'all' AND cloud-region.cloud-owner = 'att-aic' AND tenant.tenant-id = '1710vPEPROJECTS::297135PROJECT' AND cloud-region.cloud-region-id = 'FRN1'" + , "aaiTest", null, ctx); + + assertNotNull(response); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + +// @Test + public void R1510Test03UpdateVserverDataRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Properties prop = new Properties(); + String propFileName = "vserver-issue.txt"; + + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFileName); + + if (inputStream != null) { + prop.load(inputStream); + } else { + throw new FileNotFoundException("property file '" + propFileName + "' not found in the classpath"); + } + + + SvcLogicContext ctx = new SvcLogicContext(); + + Map data = new HashMap(); + + Enumeration keys = prop.keys(); + while(keys.hasMoreElements()) { + String key = keys.nextElement().toString(); + String value = prop.getProperty(key); + data.put(key, value); + } + + QueryStatus response = client.update("vserver", "vserver-id = '59567c27-706e-4f41-953f-b5d3a525812f' AND tenant-id = 'USITUCAB3NJ0101UJZZ01::uCPE-VMS'", data, "aaiTest", ctx); + + assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + response.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + +// @Test + public void R1510Test03RequestVCloudRegionDataRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); +// QueryStatus response = client.query("vserver", false, null, "tenant-id = '3220171995171220' AND vserver-id = '4b491df8-cf0e-4f08-88a2-133e82b63432'", "aaiTest", null, ctx); +// QueryStatus response = client.query("vserver", false, null, "vserver-name = 'bpsx0001vm001bps001'", "aaiTest", null, ctx); + QueryStatus response = client.query("cloud-region", false, null, + "depth = '0' AND cloud-region.cloud-owner = 'att-aic' AND cloud-region.cloud-region-id = 'mtn6'" + , "aaiTest", null, ctx); + + assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + response.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + +// @Test + public void R1510Test03RequestVCloudRegionData1Request() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + List data = new LinkedList(); + data.add("depth = 0"); + data.add("cloud-region.cloud-owner = 'att-aic'"); + data.add("cloud-region.cloud-region-id = 'mtn6'"); + + + SvcLogicContext ctx = new SvcLogicContext(); + QueryStatus response = client.query("cloud-region", false, null, StringUtils.join(data, " AND ") +// "depth = '0' AND cloud-region.cloud-owner = 'att-aic' AND cloud-region.cloud-region-id = 'mtn6'" + , "aaiTest", null, ctx); + + assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + response.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void R1510Test03RequestVCloudRegionData2Request() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = new HashMap(); + nameValues.put("depth","0"); + nameValues.put("cloud-region.cloud-owner", "att-aic"); + nameValues.put("cloud-region.cloud-region-id","mtn6"); + + AAIRequest request = AAIRequest.createRequest("cloud-region", nameValues); + + for(String key : nameValues.keySet()) { + request.addRequestProperty(key, nameValues.get(key).toString()); + } + + String response = client.query(request); + AAIDatum datum = request.jsonStringToObject(response); + +// assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + datum.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + } + } +} diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index fb9a52feb..84d851a41 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -8,9 +8,9 @@ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,8 +40,8 @@ org.onap.ccsdk.sli.adaptors.aai.application=CCSDK # # Configuration file for A&AI Client # -#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int2.test.att.com:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 +#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int2.test.att.com:8443 # connection.timeout=60000 diff --git a/aai-service/provider/src/test/resources/json/linterfaceJson.txt b/aai-service/provider/src/test/resources/json/linterfaceJson.txt new file mode 100755 index 000000000..22c8db1ee --- /dev/null +++ b/aai-service/provider/src/test/resources/json/linterfaceJson.txt @@ -0,0 +1,43 @@ + { + "interface-name": "example-interface-name-val-1600", + "interface-role": "example-interface-role-val-1600", + "v6-wan-link-ip": "example-v6-wan-link-ip-val-1600", + "resource-version": "1450729537", + "vlans": { + "vlan": [ + { + "vlan-interface": "example-vlan-interface-val-7133", + "vlan-id-inner": 1318, + "vlan-id-outer": 244, + "resource-version": "1450729537", + "relationship-list": { + + }, + "l3-interface-ipv4-address-list": [ + { + "l3-interface-ipv4-address": "example-l3-interface-ipv4-address-val-9533", + "l3-interface-ipv4-prefix-length": 3013, + "vlan-id-inner": 7150, + "vlan-id-outer": 1027, + "resource-version": "1450729537", + "relationship-list": { + + } + } + ], + "l3-interface-ipv6-address-list": [ + { + "l3-interface-ipv6-address": "example-l3-interface-ipv6-address-val-7149", + "l3-interface-ipv6-prefix-length": 4538, + "vlan-id-inner": 8271, + "vlan-id-outer": 8990, + "resource-version": "1450729537", + "relationship-list": { + + } + } + ] + } + ] + } + } \ No newline at end of file diff --git a/aai-service/provider/src/test/resources/testCommands.txt b/aai-service/provider/src/test/resources/testCommands.txt new file mode 100644 index 000000000..d19b8d306 --- /dev/null +++ b/aai-service/provider/src/test/resources/testCommands.txt @@ -0,0 +1 @@ +query|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458 \ No newline at end of file -- cgit 1.2.3-korg From e4037ffc232e37758db669402523bf4e24321e4d Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Wed, 4 Oct 2017 16:53:04 +0000 Subject: Improve CCSDK adaptors Sonar coverage Changes made: 1. Cleaned up blocker issues Change-Id: Ie0424ce7aeaf07ed8a521dc2bff21b66a28e051f Issue-ID: CCSDK-108 Signed-off-by: Rich Tabedzki --- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 116 ++---- .../sli/adaptors/aai/AAIServiceActivator.java | 396 ++++++++++----------- .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 141 ++++---- 3 files changed, 302 insertions(+), 351 deletions(-) (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 1ec222c91..4781f2e2b 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -126,18 +126,18 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); - private final String truststore_path; - private final String truststore_password; - private final String keystore_path; - private final String keystore_password; - private final Boolean ignore_certificate_host_error; + private final String truststorePath; + private final String truststorePassword; + private final String keystorePath; + private final String keystorePassword; + private final Boolean ignoreCertificateHostError; private final String target_uri; - private final String query_path; + private final String queryPath; - private final String network_vserver_path; + private final String networkVserverPath; - private final String svc_instance_path; + private final String svcInstancePath; private final String svc_inst_qry_path; private final String vnf_image_query_path; @@ -206,13 +206,13 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe LOG.debug("Basic password is not set"); } - truststore_path = props.getProperty(TRUSTSTORE_PATH); - truststore_password = props.getProperty(TRUSTSTORE_PSSWD); - keystore_path = props.getProperty(KEYSTORE_PATH); - keystore_password = props.getProperty(KEYSTORE_PSSWD); + truststorePath = props.getProperty(TRUSTSTORE_PATH); + truststorePassword = props.getProperty(TRUSTSTORE_PSSWD); + keystorePath = props.getProperty(KEYSTORE_PATH); + keystorePassword = props.getProperty(KEYSTORE_PSSWD); target_uri = props.getProperty(TARGET_URI); - query_path = props.getProperty(QUERY_PATH); + queryPath = props.getProperty(QUERY_PATH); update_path = props.getProperty(UPDATE_PATH); String applicationId =props.getProperty(APPLICATION_ID); @@ -239,9 +239,9 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe connection_timeout = tmpConnectionTimeout; read_timeout = tmpReadTimeout; - network_vserver_path =props.getProperty(NETWORK_VSERVER_PATH); + networkVserverPath =props.getProperty(NETWORK_VSERVER_PATH); - svc_instance_path = props.getProperty(SVC_INSTANCE_PATH); + svcInstancePath = props.getProperty(SVC_INSTANCE_PATH); svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH); param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); @@ -266,20 +266,20 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe host_error = Boolean.valueOf(iche); } - ignore_certificate_host_error = host_error; + ignoreCertificateHostError = host_error; HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ public boolean verify(String string,SSLSession ssls) { - return ignore_certificate_host_error; + return ignoreCertificateHostError; } }); - if(truststore_path != null && truststore_password != null && (new File(truststore_path)).exists()) { - System.setProperty("javax.net.ssl.trustStore", truststore_path); - System.setProperty("javax.net.ssl.trustStorePassword", truststore_password); + if(truststorePath != null && truststorePassword != null && (new File(truststorePath)).exists()) { + System.setProperty("javax.net.ssl.trustStore", truststorePath); + System.setProperty("javax.net.ssl.trustStorePassword", truststorePassword); } - if(keystore_path != null && keystore_password != null && (new File(keystore_path)).exists()) { + if(keystorePath != null && keystorePassword != null && (new File(keystorePath)).exists()) { DefaultClientConfig config = new DefaultClientConfig(); //both jersey and HttpURLConnection can use this SSLContext ctx = null; @@ -287,19 +287,19 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe ctx = SSLContext.getInstance("TLS"); KeyManagerFactory kmf = null; - try (FileInputStream fin = new FileInputStream(keystore_path)){ + try (FileInputStream fin = new FileInputStream(keystorePath)){ String def = "SunX509"; String storeType = "PKCS12"; def = KeyStore.getDefaultType(); kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - String extension = keystore_path.substring(keystore_path.lastIndexOf(".") + 1); + String extension = keystorePath.substring(keystorePath.lastIndexOf(".") + 1); if("JKS".equalsIgnoreCase(extension)) { storeType = "JKS"; } KeyStore ks = KeyStore.getInstance(storeType); - char[] pwd = keystore_password.toCharArray(); + char[] pwd = keystorePassword.toCharArray(); ks.load(fin, pwd); kmf.init(ks, pwd); } catch (Exception ex) { @@ -310,7 +310,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { @Override public boolean verify( String s, SSLSession sslSession ) { - return ignore_certificate_host_error; + return ignoreCertificateHostError; } }, ctx)); @@ -883,74 +883,22 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe @Override public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException { boolean response = false; - InputStream inputStream = null; try { - String local_network_complexes_path = network_vserver_path.replace("{tenant-id}", encodeQuery(tenant_id)); - local_network_complexes_path = local_network_complexes_path.replace("{vserver-id}", encodeQuery(vserver_id)); - local_network_complexes_path = local_network_complexes_path.replace("{cloud-owner}", encodeQuery(cloudOwner)); - local_network_complexes_path = local_network_complexes_path.replace("{cloud-region-id}", encodeQuery(cloudRegionId)); - - String request_url = target_uri+local_network_complexes_path; - if(resourceVersion!=null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); - - LOGwriteFirstTrace(HttpMethod.DELETE, http_req_url.toString()); - LOGwriteDateTrace("tenant_id", tenant_id); - LOGwriteDateTrace("vserver_id", vserver_id); - LOGwriteDateTrace("cloud-owner", cloudOwner); - LOGwriteDateTrace("cloud-region-id", cloudRegionId); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); + AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); + request.addRequestProperty("vserver.vserver-id", vserver_id); + request.addRequestProperty("tenant.tenant-id", tenant_id); + request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); + request.addRequestProperty("cloud-region.cloud-region-id",cloudRegionId); - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } + response = executor.delete(request, resourceVersion); } catch(AAIServiceException aaiexc) { throw aaiexc; } catch (Exception exc) { LOG.warn("deleteVServerData", exc); throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } } return response; } @@ -2808,7 +2756,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe @Override public String getVServerIdFromVserverUrl(URL url, String tenantId) { - String pattern = network_vserver_path; + String pattern = networkVserverPath; pattern = pattern.replace("{tenant-id}", tenantId); int end = pattern.indexOf("{vserver-id}"); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java index 37a207fb9..09877ee67 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java @@ -3,7 +3,7 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,201 +39,201 @@ import org.slf4j.LoggerFactory; public class AAIServiceActivator implements BundleActivator { - private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; - private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; - private static final String DEFAULT_KEYWORD = "default"; - - private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; - - private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; - private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; - - private Set registrationSet = new HashSet(); - - private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); - - @Override - public void start(BundleContext ctx) throws Exception { - - System.setProperty("aaiclient.runtime", "OSGI"); - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - - // check SDNC CONFIG DIR system property - if(sdnConfigDirectory == null ) { - LOG.error("System property SDNC_CONFIG_DIR is not defined."); - LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); - sdnConfigDirectory = "/opt/sdnc/data/properties/"; - } - - LOG.debug("Configuration directory used : " + sdnConfigDirectory); - - // check existance of properties directory - File configDirectory = new File(sdnConfigDirectory); - if(!configDirectory.exists() || !configDirectory.isDirectory()){ - LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); - return; - } - - Properties properties = new Properties(); - InputStream input = null; - - // find aaiclient config file - File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); - - // read the aai config data - if(files != null && files.length > 0) { - LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); - try { - input = new FileInputStream(files[0]); - properties.load(input); - LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); - } catch (IOException exc) { - LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); - } finally { - if(input != null ) { - try { - input.close(); - } catch(Exception exc) { - // ignore - } - } - int size = properties.keySet().size() ; - if(size == 0) { - LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - } - } else { - LOG.debug("No configuration entries were found. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - - Set entrySet = properties. stringPropertyNames(); - String value = null; - - // initialize AAI Service for each aai client property files - for(String entry : entrySet) { - value = properties.getProperty(entry); - if(value != null && !value.isEmpty()) { - - final String fileName = value; - - File[] propertyFileList = findFiles(configDirectory, fileName); - - for(File propertiesFile : propertyFileList) { - LOG.info(propertiesFile.getName()); - // Advertise AAI resource adaptor - AAIClient impl = null; - switch(entry) { - case DEFAULT_KEYWORD: - impl = new AAIService(propertiesFile.toURI().toURL()); - break; - case "trinity": - impl = new AAITrinityService(propertiesFile.toURI().toURL()); - break; - default: - LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); - continue; - } - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - - } - } - } - } - -// @Override - @Deprecated - public void start1(BundleContext ctx) throws Exception { - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - String propertiesPath = null; - - if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); - } - } - } else { - propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; - LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); - } - - File propFile = new File(propertiesPath); - if(!propFile.exists()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file != null && file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); - throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); - } - } - } - - // Advertise AAI resource adaptor - AAIClient impl = new AAIService(propFile.toURI().toURL()); - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - } - - @Override - public void stop(BundleContext ctx) throws Exception { - - Set localRegistrationSet = new HashSet(); - localRegistrationSet.addAll(registrationSet); - - for(ServiceRegistration registration : localRegistrationSet) { - if (registration != null) { - try { - AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); - registration.unregister(); - registrationSet.remove(registration); - if(aaiService != null) { - aaiService.cleanUp(); - } - } catch(Exception exc) { - if(LOG.isDebugEnabled()) - LOG.debug(exc.getMessage()); - } - } - } - } - - private File[] findFiles(File configDirectory, final String filter) { - File[] files = configDirectory.listFiles(new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.equalsIgnoreCase(filter); - } - }); - - return files; - } + private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; + private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; + private static final String DEFAULT_KEYWORD = "default"; + + private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; + + private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; + private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; + + private Set registrationSet = new HashSet(); + + private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); + + @Override + public void start(BundleContext ctx) throws Exception { + + System.setProperty("aaiclient.runtime", "OSGI"); + + String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); + + // check SDNC CONFIG DIR system property + if(sdnConfigDirectory == null ) { + LOG.error("System property SDNC_CONFIG_DIR is not defined."); + LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); + sdnConfigDirectory = "/opt/sdnc/data/properties/"; + } + + LOG.debug("Configuration directory used : " + sdnConfigDirectory); + + // check existance of properties directory + File configDirectory = new File(sdnConfigDirectory); + if(!configDirectory.exists() || !configDirectory.isDirectory()){ + LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); + return; + } + + Properties properties = new Properties(); + InputStream input = null; + + // find aaiclient config file + File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); + + // read the aai config data + if(files != null && files.length > 0) { + LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); + try { + input = new FileInputStream(files[0]); + properties.load(input); + LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); + } catch (IOException exc) { + LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); + } finally { + if(input != null ) { + try { + input.close(); + } catch(Exception exc) { + LOG.debug(exc.getMessage()); + } + } + int size = properties.keySet().size() ; + if(size == 0) { + LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); + properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); + } + } + } else { + LOG.debug("No configuration entries were found. Adding the default entry"); + properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); + } + + Set entrySet = properties. stringPropertyNames(); + String value = null; + + // initialize AAI Service for each aai client property files + for(String entry : entrySet) { + value = properties.getProperty(entry); + if(value != null && !value.isEmpty()) { + + final String fileName = value; + + File[] propertyFileList = findFiles(configDirectory, fileName); + + for(File propertiesFile : propertyFileList) { + LOG.info(propertiesFile.getName()); + // Advertise AAI resource adaptor + AAIClient impl = null; + switch(entry) { + case DEFAULT_KEYWORD: + impl = new AAIService(propertiesFile.toURI().toURL()); + break; + case "trinity": + impl = new AAITrinityService(propertiesFile.toURI().toURL()); + break; + default: + LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); + continue; + } + String regName = impl.getClass().getName(); + + LOG.debug("Registering AAIService service "+regName); + ServiceRegistration registration = ctx.registerService(regName, impl, null); + registrationSet.add(registration); + + } + } + } + } + +// @Override + @Deprecated + public void start1(BundleContext ctx) throws Exception { + + String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); + String propertiesPath = null; + + if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { + String filename = DEFAULT_SDNC_PROPERTY_FILE; + File file = new File(filename); + if(file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + filename = BVC_PROPERTY_FILE; + file = new File(filename); + if(file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); + } + } + } else { + propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; + LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); + } + + File propFile = new File(propertiesPath); + if(!propFile.exists()) { + String filename = DEFAULT_SDNC_PROPERTY_FILE; + File file = new File(filename); + if(file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + filename = BVC_PROPERTY_FILE; + file = new File(filename); + if(file.exists()) { + propertiesPath = filename; + LOG.info("Using property file (1): " + propertiesPath); + } else { + LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); + throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); + } + } + } + + // Advertise AAI resource adaptor + AAIClient impl = new AAIService(propFile.toURI().toURL()); + String regName = impl.getClass().getName(); + + LOG.debug("Registering AAIService service "+regName); + ServiceRegistration registration = ctx.registerService(regName, impl, null); + registrationSet.add(registration); + } + + @Override + public void stop(BundleContext ctx) throws Exception { + + Set localRegistrationSet = new HashSet(); + localRegistrationSet.addAll(registrationSet); + + for(ServiceRegistration registration : localRegistrationSet) { + if (registration != null) { + try { + AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); + registration.unregister(); + registrationSet.remove(registration); + if(aaiService != null) { + aaiService.cleanUp(); + } + } catch(Exception exc) { + if(LOG.isDebugEnabled()) + LOG.debug(exc.getMessage()); + } + } + } + } + + private File[] findFiles(File configDirectory, final String filter) { + File[] files = configDirectory.listFiles(new FilenameFilter() { + public boolean accept(File dir, String name) { + return name.equalsIgnoreCase(filter); + } + }); + + return files; + } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java index 5a3d88ec4..9d1f6a530 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -3,7 +3,7 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,72 +39,75 @@ import org.slf4j.LoggerFactory; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class EchoRequestTest { - private static final Logger LOG = LoggerFactory.getLogger(EchoRequestTest.class); - - protected static AAIRequest request; - - @BeforeClass - public static void setUp() throws Exception { - request = new EchoRequest(); - LOG.info("\nEchoRequestTest.setUp\n"); - } - - @AfterClass - public static void tearDown() throws Exception { - request = null; - LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); - } - - @Test - public void runGetRequestUrlTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - URL url; - try { - url = request.getRequestUrl("GET", null); - assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException exc) { - LOG.error("Failed test", exc); - } - - } - - @Test - public void runToJSONStringTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try { - String json = request.toJSONString(); - assertNotNull(json); - } catch (Exception exc) { - LOG.error("Failed test", exc); - } - - } - - @Test - public void runGetArgsListTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try { - String[] args = request.getArgsList(); - assertNotNull(args); - } catch (Exception exc) { - LOG.error("Failed test", exc); - } - - } - - @Test - public void runGetModelTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try { - Class clazz = request.getModelClass(); - assertNotNull(clazz); - } catch (Exception exc) { - LOG.error("Failed test", exc); - } - - } + private static final Logger LOG = LoggerFactory.getLogger(EchoRequestTest.class); + + private static AAIRequest request; + private static AAIService aaiService; + + @BeforeClass + public static void setUp() throws Exception { + aaiService = new AAIService( + AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + request = new EchoRequest(); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + request = null; + LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } } -- cgit 1.2.3-korg From c2f80d2048346ceab1eb09249665f7d82a875c2d Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Mon, 18 Dec 2017 19:47:17 +0000 Subject: Isolate deprecated code in CCSDK aai-service Changes made: * removed deprecated methods no longer used in AAI Service feature. * Externalize inner class AAIExecutor as AAIClientRESTExecutor to improve clarity and modularity of code. Change-Id: Ifd68fb931fbf03e451462993b760a7c29e8a8e2d Issue-ID: CCSDK-137 Signed-off-by: Rich Tabedzki --- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 118 +- .../sli/adaptors/aai/AAIClientRESTExecutor.java | 731 ++++++++ .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 6 +- .../sli/adaptors/aai/AAIExecutorInterface.java | 6 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 46 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 1934 ++------------------ .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 16 +- .../sli/adaptors/aai/GenericQueryRequest.java | 41 +- .../ccsdk/sli/adaptors/aai/GenericRequest.java | 13 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 2 +- .../sli/adaptors/aai/RelationshipListRequest.java | 68 + .../sli/adaptors/aai/RelationshipRequest.java | 111 +- .../onap/ccsdk/sli/adaptors/aai/UpdateRequest.java | 5 +- .../onap/ccsdk/sli/adaptors/aai/query/Result.java | 28 + .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 5 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 38 +- .../ccsdk/sli/adaptors/aai/RegressionTest.java | 30 +- .../src/test/resources/aaiclient.properties | 5 +- 18 files changed, 1099 insertions(+), 2104 deletions(-) create mode 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java mode change 100644 => 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java mode change 100644 => 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java create mode 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java mode change 100644 => 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java mode change 100644 => 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index cfeda4ccb..712ea2a64 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -39,147 +39,37 @@ import com.fasterxml.jackson.databind.JsonMappingException; public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { - // VCE - public boolean postNetworkVceData(String vnfId, Vce request) throws AAIServiceException; - public Vce requestNetworkVceData(String vnfId) throws AAIServiceException; - public boolean deleteNetworkVceData(String vnfId, String resourceVersion) throws AAIServiceException; - - // Service Inteface - public ServiceInstance requestServiceInterfaceData(String customerId, String serviceType, String svc_instanceId) throws AAIServiceException; - public boolean postServiceInterfaceData(String customerId, String serviceType, String svcInstanceId, ServiceInstance request) throws AAIServiceException; - public SearchResults requestServiceInstanceURL(String svcInstanceId) throws AAIServiceException; + public SearchResults requestServiceInstanceURL(String svc_instanceId) throws AAIServiceException; // VServers public Vserver requestVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver request) throws AAIServiceException; - public boolean deleteVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException; - public URL requestVserverURLNodeQuery(String vserver_name) throws AAIServiceException; + public URL requestVserverURLNodeQuery(String vserverName) throws AAIServiceException; public String getTenantIdFromVserverUrl(URL url); public String getCloudOwnerFromVserverUrl(URL url); public String getCloudRegionFromVserverUrl(URL url); public String getVServerIdFromVserverUrl(URL url, String tennantId); public Vserver requestVServerDataByURL(URL url) throws AAIServiceException; - // VPLS-PE - public VplsPe requestNetworkVplsPeData(String equipmentName) throws AAIServiceException; - public boolean postNetworkVplsPeData(String vnfId, VplsPe request) throws AAIServiceException; - public boolean deleteNetworkVplsPeData(String vnfId, String resourceVersion) throws AAIServiceException; - - - // Complexes - public Complex requestNetworkComplexData(String vnfId) throws AAIServiceException; - public boolean postNetworkComplexData(String vnfId, Complex request) throws AAIServiceException; - public boolean deleteNetworkComplexData(String vnfId, String resourceVersion) throws AAIServiceException; - - // CTag Pool - public CtagPool requestCtagPoolData(String physicalLocationId, String targetPe, String availabilityZoneName) throws AAIServiceException; - - // --------------------------------- 1507 --------------------------- - // Data Change - public Vserver dataChangeRequestVServerData(URL url) throws AAIServiceException; - - public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException; - - public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException; - - public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException; - - public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException; - - //OAM-Network: - public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException; - //Availability-Zone: - public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException; - //Complex: - public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException; - - - /* DELETE */ - public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException; - public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException; - - public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException; - //OAM-Network: - public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException; - //Availability-Zone: - public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException; - //Complex: - public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException; // ----------------- Release 1510 ---------------------- // // GenericVNF public GenericVnf requestGenericVnfData(String vnfId) throws AAIServiceException; public boolean postGenericVnfData(String vnfId, GenericVnf request) throws AAIServiceException; - public boolean deleteGenericVnfData(String vnfId, String resourceVersion) throws AAIServiceException; - - // DvsSwitch - public DvsSwitch requestDvsSwitchData(String vnfId) throws AAIServiceException; - public boolean postDvsSwitchData(String vnfId, DvsSwitch request) throws AAIServiceException; - public boolean deleteDvsSwitchData(String vnfId, String resourceVersion) throws AAIServiceException; - - // PInterface - public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException; - public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException; - public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException; // Physical Link public PhysicalLink requestPhysicalLinkData(String vnfId) throws AAIServiceException; public boolean postPhysicalLinkData(String vnfId, PhysicalLink request) throws AAIServiceException; public boolean deletePhysicalLinkData(String vnfId, String resourceVersion) throws AAIServiceException; - // PServers - public Pserver requestPServerData(String hostname) throws AAIServiceException; - public boolean postPServerData(String hostname, Pserver server) throws AAIServiceException; - public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException; - - // L3Networks - public L3Network requestL3NetworkData(String networkId) throws AAIServiceException; - public L3Network requestL3NetworkQueryByName(String networkId) throws AAIServiceException; - public boolean postL3NetworkData(String networkId, L3Network request) throws AAIServiceException; - public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException; - - // Vpn Bindings - public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException; -// public boolean postVpnBindingData(String vpnId, VpnBinding request) throws AAIServiceException; - public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException; - - //VnfImage - public VnfImage requestVnfImageData(String vpnId) throws AAIServiceException; - public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException; - public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException; - // UBB Notify public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException; - // 1512 - // Site Pair Site - public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException; - public boolean postSitePairSetData(String sitePairSetId, SitePairSet request) throws AAIServiceException; - public boolean deleteSitePairSetData(String sitePairSetId, String resourceVersion) throws AAIServiceException; - - // Services - public Service requestServiceData(String serviceId) throws AAIServiceException; - public boolean postServiceData(String serviceId, Service request) throws AAIServiceException; - public boolean deleteServiceData(String serviceId, String resourceVersion) throws AAIServiceException; - // Node Query - 1602 public SearchResults requestNodeQuery(String type, String entityIdentifier, String entityName) throws AAIServiceException; public String requestDataByURL(URL url) throws AAIServiceException; -// public Object requestDataInstanceNodeQuery(String type, String vnf_name) throws AAIServiceException; - public GenericVnf requestGenericVnfeNodeQuery(String vnf_name) throws AAIServiceException; - - // // tenant - public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException; - public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant request) throws AAIServiceException; -// public boolean deleteGenericVnfData(String vnfId, String resourceVersion) throws AAIServiceException; - + public GenericVnf requestGenericVnfeNodeQuery(String vnfName) throws AAIServiceException; public QueryStatus backup(Map params, SvcLogicContext ctx) throws SvcLogicException; public QueryStatus restore(Map params, SvcLogicContext ctx) throws SvcLogicException; @@ -193,6 +83,6 @@ public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { String query(AAIRequest request) throws AAIServiceException; String save(AAIRequest request) throws AAIServiceException; boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException; - + boolean update(AAIRequest request, String resourceVersion) throws AAIServiceException; } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java new file mode 100755 index 000000000..e27d44adb --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java @@ -0,0 +1,731 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.Properties; + +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.ws.rs.HttpMethod; + +import org.apache.commons.codec.binary.Base64; +import org.onap.ccsdk.sli.adaptors.aai.AAIService.TransactionIdTracker; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; +import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; +import org.onap.ccsdk.sli.adaptors.aai.data.ResourceVersion; +import org.onap.ccsdk.sli.adaptors.aai.data.ServiceException; +import org.onap.ccsdk.sli.core.sli.MetricLogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.sun.jersey.client.urlconnection.HTTPSProperties; + +public class AAIClientRESTExecutor implements AAIExecutorInterface { + + private final String truststorePath; + private final String truststorePassword; + private final String keystorePath; + private final String keystorePassword; + private final Boolean ignoreCertificateHostError; + // authentication credentials + private String userName; + private String userPassword; + private final String applicationId; + + public AAIClientRESTExecutor(Properties props) { + super(); + + userName = props.getProperty(AAIService.CLIENT_NAME); + userPassword = props.getProperty(AAIService.CLIENT_PWWD); + + if(userName == null || userName.isEmpty()){ + LOG.debug("Basic user name is not set"); + } + if(userPassword == null || userPassword.isEmpty()) { + LOG.debug("Basic password is not set"); + } + + truststorePath = props.getProperty(AAIService.TRUSTSTORE_PATH); + truststorePassword = props.getProperty(AAIService.TRUSTSTORE_PSSWD); + keystorePath = props.getProperty(AAIService.KEYSTORE_PATH); + keystorePassword = props.getProperty(AAIService.KEYSTORE_PSSWD); +// this.read_timeout = read_timeout; + + String tmpApplicationId =props.getProperty(AAIService.APPLICATION_ID); + if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { + tmpApplicationId = "SDNC"; + } + applicationId = tmpApplicationId; + + String iche = props.getProperty(AAIService.CERTIFICATE_HOST_ERROR); + boolean host_error = false; + if(iche != null && !iche.isEmpty()) { + host_error = Boolean.valueOf(iche); + } + + ignoreCertificateHostError = host_error; + + HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ + public boolean verify(String string,SSLSession ssls) { + return ignoreCertificateHostError; + } + }); + + if(truststorePath != null && truststorePassword != null && (new File(truststorePath)).exists()) { + System.setProperty("javax.net.ssl.trustStore", truststorePath); + System.setProperty("javax.net.ssl.trustStorePassword", truststorePassword); + } + +// MyX509ExtendedTrustManager trustManager = null; +// try { +// trustManager = new MyX509ExtendedTrustManager(); +// } catch (Exception e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } +// +// TrustManager[] trustManagers = {trustManager}; + + if(keystorePath != null && keystorePassword != null && (new File(keystorePath)).exists()) + { + DefaultClientConfig config = new DefaultClientConfig(); + //both jersey and HttpURLConnection can use this + SSLContext ctx = null; + try { + ctx = SSLContext.getInstance("TLS"); + + KeyManagerFactory kmf = null; + try { + String def = "SunX509"; + String storeType = "PKCS12"; + def = KeyStore.getDefaultType(); + kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + FileInputStream fin = new FileInputStream(keystorePath); + // KeyStore ks = KeyStore.getInstance("PKCS12"); + + String extension = keystorePath.substring(keystorePath.lastIndexOf(".") + 1); + + if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { + storeType = "JKS"; + } + KeyStore ks = KeyStore.getInstance(storeType); + + char[] pwd = keystorePassword.toCharArray(); + ks.load(fin, pwd); + kmf.init(ks, pwd); + } catch (Exception ex) { + LOG.error("AAIResource", ex); + } + + ctx.init(kmf.getKeyManagers(), null, null); + config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { + @Override + public boolean verify( String s, SSLSession sslSession ) { + return ignoreCertificateHostError; + } + }, ctx)); + + CTX = ctx; + LOG.debug("SSLContext created"); + + } catch (KeyManagementException | NoSuchAlgorithmException exc) { + LOG.error("AAIResource", exc); + } + } + + try { + Field methodsField = HttpURLConnection.class.getDeclaredField("methods"); + methodsField.setAccessible(true); + // get the methods field modifiers + Field modifiersField = Field.class.getDeclaredField("modifiers"); + // bypass the "private" modifier + modifiersField.setAccessible(true); + + // remove the "final" modifier + modifiersField.setInt(methodsField, methodsField.getModifiers() & ~Modifier.FINAL); + + /* valid HTTP methods */ + String[] methods = { + "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" + }; + // set the new methods - including patch + methodsField.set(null, methods); + + } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { + e.printStackTrace(); + } + LOG.info("AAIResource.ctor initialized."); + + } + + private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); + private final MetricLogger ml = new MetricLogger(); + + private SSLContext CTX; + + + private int connection_timeout = 300000; + + private int read_timeout = 300000; + + /** + * Returns an String that contains JSON data returned from the AAI Server. + *

+ * This method always returns immediately, whether or not the + * data exists. + * + * @param request an instance of AAIRequiest representing + * the request made by DirectedGraph node. + * @return the JSON based representation of data instance requested. + * @see String + */ + @Override + public String get(AAIRequest request) throws AAIServiceException { + String response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + + StringBuilder errorStringBuilder = new StringBuilder(); + + try { + + if(request.getRequestObject() != null) { + requestUrl = request.getRequestUrl(HttpMethod.POST, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.POST); + String json_text = request.toJSONString(); + LOGwriteDateTrace("data", json_text); + logMetricRequest("POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + } else { + requestUrl = request.getRequestUrl(HttpMethod.GET, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.GET); + logMetricRequest("GET "+requestUrl.getPath(), "", requestUrl.getPath()); + } + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(responseCode, responseMessage); + + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + + ObjectMapper mapper = AAIService.getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + response = stringBuilder.toString(); + try { + Object object = mapper.readValue(response, Object.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); + } catch(Exception exc) { + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); + } + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + ErrorResponse errorresponse = null; + try { + errorresponse = mapper.readValue(reader, ErrorResponse.class); + } catch(Exception exc) { + errorresponse = new ErrorResponse(); + RequestError requestError = new RequestError(); + ServiceException serviceException = new ServiceException(); + serviceException.setText("Entry does not exist."); + requestError.setServiceException(serviceException); + errorresponse.setRequestError(requestError ); + } + throw new AAIServiceException(responseCode, errorresponse); + } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + ServiceException serviceException = new ServiceException(); + serviceException.setMessageId("HTTP_UNAUTHORIZED"); + serviceException.setText(stringBuilder.toString()); + RequestError requestError = new RequestError(); + requestError.setServiceException(serviceException); + ErrorResponse errorresponse = new ErrorResponse(); + errorresponse.setRequestError(requestError); + throw new AAIServiceException(responseCode, errorresponse); + } else { +// StringBuilder errorStringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + errorStringBuilder.append("\n").append( line ); + } + + ErrorResponse errorresponse = mapper.readValue(errorStringBuilder.toString(), ErrorResponse.class); +// ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(errorStringBuilder.toString(), exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public String post(AAIRequest request) throws AAIServiceException { + InputStream inputStream = null; + + try { + String resourceVersion = null; + AAIDatum instance = request.getRequestObject(); + + try { + Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); + if(getResourceVersionMethod != null){ + try { + Object object = getResourceVersionMethod.invoke(instance); + if(object != null) + resourceVersion = object.toString(); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } catch(Exception exc) { + LOG.error("", exc); + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); + ObjectMapper mapper = AAIService.getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest("PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(responseCode, responseMessage); + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return stringBuilder.toString(); + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.post", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + @Override + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { + Boolean response = null; + InputStream inputStream = null; + + if(resourceVersion == null) { + throw new AAIServiceException("resource-version is required for DELETE request"); + } + + try { + URL requestUrl = null; + HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); + logMetricRequest("DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); + conn.setDoOutput(true); +// if(request.isDeleteDataRequired()) { +// String json_text = request.toJSONString(); +// +// LOGwriteDateTrace("data", json_text); +// OutputStream os = con.getOutputStream(); +// OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); +// osw.write(json_text); +// osw.flush(); +// } + + // Check for errors + String responseMessage = conn.getResponseMessage(); + int responseCode = conn.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = conn.getInputStream(); + } else { + inputStream = conn.getErrorStream(); + } + + // Process the response + LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); + logMetricResponse(responseCode, responseMessage); + + if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; + + ObjectMapper mapper = AAIService.getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + response = false; + } else { + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("delete", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + @Override + public Object query(AAIRequest request, Class clas) throws AAIServiceException { + Object response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + + try { + con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); + logMetricRequest("GET "+requestUrl.getPath(), "", requestUrl.getPath()); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + logMetricResponse(responseCode, responseMessage); + ObjectMapper mapper = AAIService.getObjectMapper(); + + if (responseCode == HttpURLConnection.HTTP_OK) { + // Process the response + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + response = mapper.readValue(reader, clas); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("GET", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + con = null; + } + return response; + } + + @Override + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { + InputStream inputStream = null; + + try { + AAIDatum instance = request.getRequestObject(); + if(instance instanceof ResourceVersion) { + resourceVersion = ((ResourceVersion)instance).getResourceVersion(); + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); + ObjectMapper mapper = AAIService.getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest("PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); + + // Check for errors + String responseMessage = con.getResponseMessage(); + int responseCode = con.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + inputStream = con.getInputStream(); + } else { + inputStream = con.getErrorStream(); + } + + LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); + logMetricResponse(responseCode, responseMessage); + + // Process the response + BufferedReader reader; + String line = null; + reader = new BufferedReader( new InputStreamReader( inputStream ) ); + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; + } else { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append("\n").append( line ); + } + LOG.info(stringBuilder.toString()); + + + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.patch", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + /** + * + * @param httpReqUrl + * @param method + * @return + * @throws Exception + */ + protected HttpURLConnection getConfiguredConnection(URL httpReqUrl, String method) throws Exception { + HttpURLConnection con = (HttpURLConnection) httpReqUrl.openConnection(); + + // Set up the connection properties + con.setRequestProperty("Connection", "close"); + con.setDoInput(true); + con.setDoOutput(true); + con.setUseCaches(false); + con.setConnectTimeout(connection_timeout); + con.setReadTimeout(read_timeout); + con.setRequestMethod(method); + con.setRequestProperty("Accept", "application/json"); + // con.setRequestProperty( "Accept-Encoding", "gzip,compress" ); + con.setRequestProperty("Transfer-Encoding","chunked"); + con.setRequestProperty("Content-Type", + "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json"); + con.setRequestProperty("X-FromAppId", applicationId); + con.setRequestProperty("X-TransactionId", TransactionIdTracker.getNextTransactionId()); + String mlId = ml.getRequestID(); + if (mlId != null && !mlId.isEmpty()) { + LOG.debug(String.format("MetricLogger requestId = %s", mlId)); + con.setRequestProperty(MetricLogger.REQUEST_ID, mlId); + } else { + LOG.debug("MetricLogger requestId is null"); + } + + if (userName != null && !userName.isEmpty() && userPassword != null && !userPassword.isEmpty()) { + String basicAuth = "Basic " + new String(Base64.encodeBase64((userName + ":" + userPassword).getBytes())); + con.setRequestProperty("Authorization", basicAuth); + } + + if (con instanceof HttpsURLConnection && CTX != null) { + SSLSocketFactory sockFact = CTX.getSocketFactory(); + HttpsURLConnection.class.cast(con).setSSLSocketFactory(sockFact); + } + return con; + } + + private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { + + String depth = request.requestProperties.getProperty("depth", "1"); + String path = requestUrl.toString(); + if(path.contains("?depth=") || path.contains("&depth=")) { + return requestUrl; + } else { + if(path.contains("?")) { + path = String.format("%s&depth=%s", path, depth); + } else { + path = String.format("%s?depth=%s", path, depth); + } + return new URL(path); + } + } + + public void logMetricRequest(String targetServiceName, String msg, String path){ + String svcInstanceId = ""; + String svcName = null; + String partnerName = null; + String targetEntity = "A&AI"; + String targetVirtualEntity = null; + + targetServiceName = ""; + + ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); + } + + public void logMetricResponse(int responseCode, String responseDescription){ + ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); + } + + protected void LOGwriteFirstTrace(String method, String url) { + String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); + LOG.info("A&AI transaction :"); + LOG.info("Request Time : " + time + ", Method : " + method); + LOG.info("Request URL : "+ url); + } + + protected void LOGwriteDateTrace(String name, String data) { + LOG.info("Input - " + name + " : " + data); + } + + protected void LOGwriteEndingTrace(int response_code, String comment, String data) { + LOG.info("Response code : " + response_code +", " + comment); + LOG.info(String.format("Response data : %s", data)); + } + +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index c5a4c22ee..e262df04b 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -28,6 +28,7 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; @@ -68,7 +69,6 @@ import org.openecomp.aai.inventory.v11.ServiceInstance; import org.openecomp.aai.inventory.v11.Vlan; import org.openecomp.aai.inventory.v11.Vlans; import org.openecomp.aai.inventory.v11.Vserver; -import org.onap.ccsdk.sli.adaptors.aai.AAIService.AAIRequestExecutor; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilter; @@ -140,7 +140,7 @@ public abstract class AAIDeclarations implements AAIClient { protected abstract Logger getLogger(); - public abstract AAIRequestExecutor getExecutor(); + public abstract AAIExecutorInterface getExecutor(); @Override @@ -482,7 +482,7 @@ public abstract class AAIDeclarations implements AAIClient { request.processRequestPathValues(nameValues); path = request.getRequestUrl("GET", null); params.put("vserver-selflink", path.toString()); - } catch (UnsupportedEncodingException | MalformedURLException e) { + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException e) { // TODO : Fix this params.put("vserver-selflink", "/vserver"); } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java old mode 100644 new mode 100755 index 3cc7e5ba4..9203daa1b --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIExecutorInterface.java @@ -3,7 +3,7 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,8 +22,8 @@ package org.onap.ccsdk.sli.adaptors.aai; public interface AAIExecutorInterface { - public Object get(AAIRequest request) throws AAIServiceException; - public Object post(AAIRequest request) throws AAIServiceException; + public String get(AAIRequest request) throws AAIServiceException; + public String post(AAIRequest request) throws AAIServiceException; public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException; public Object query(AAIRequest request, Class clas) throws AAIServiceException; public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 215f9ae82..f26b71de9 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -28,6 +28,7 @@ import java.io.Reader; import java.io.UnsupportedEncodingException; import java.lang.reflect.Method; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; @@ -80,14 +81,28 @@ public abstract class AAIRequest { public static AAIRequest createRequest(String resoourceName, Map nameValues){ String resoource = resoourceName; + String masterResource = null; if(resoource == null) return null; if(resoource.contains(":")) { String[] tokens = resoource.split(":"); - if(tokens != null && tokens.length > 0) { - resoource = tokens[0]; + if(tokens != null && tokens.length == 2) { + resoource = tokens[1]; + masterResource = tokens[0]; + // + Class clazz = null; + try { + clazz = getClassFromResource(resoource) ; + } catch (ClassNotFoundException e) { + LOG.warn("AAIRequest does not support class: " + e.getMessage()); + return null; + } + + if(clazz == null) { + return null; + } } } @@ -125,21 +140,14 @@ public abstract class AAIRequest { case "l2-bridge-bgf": { resoource = "l-interface"; - AAIRequest request = getRequestFromResource("l-interface"); - if(request == null) { - return null; - } - return request; + return getRequestFromResource("l-interface"); } - + case "relationship-list": + return new RelationshipListRequest(AAIRequest.createRequest(masterResource, nameValues)); + case "relationship": + return new RelationshipRequest(AAIRequest.createRequest(masterResource, nameValues)); default: - { - AAIRequest request = getRequestFromResource(resoource); - if(request == null) { - return null; - } - return request; - } + return getRequestFromResource(resoource); } } @@ -243,7 +251,7 @@ public abstract class AAIRequest { aaiService.getLogger().warn("Could not deserialize object of type " + lInterfaceRequest.getClass().getSimpleName(), exc) ; } - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { String request_url = null; @@ -287,6 +295,10 @@ public abstract class AAIRequest { } protected String getRequestPath(String resource) throws MalformedURLException { + if(requestProperties.containsKey("resource-path")) { + return requestProperties.getProperty("resource-path"); + } + Set uniqueResources = extractUniqueResourceSetFromKeys(requestProperties.stringPropertyNames()); if(resource != null) { // for group search add itself, but remove singular version of itself @@ -332,7 +344,7 @@ public abstract class AAIRequest { return path; } - public abstract URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException; + public abstract URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException; public abstract String toJSONString(); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index d2f90159c..c4604a4a1 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -31,8 +31,6 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.net.HttpURLConnection; import java.net.MalformedURLException; @@ -45,7 +43,6 @@ import java.security.KeyManagementException; import java.security.KeyStore; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Calendar; import java.util.Enumeration; import java.util.HashMap; @@ -71,39 +68,19 @@ import javax.xml.bind.annotation.XmlElement; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; +import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; import org.onap.ccsdk.sli.core.sli.ConfigurationException; import org.onap.ccsdk.sli.core.sli.MetricLogger; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.openecomp.aai.inventory.v11.AvailabilityZone; -import org.openecomp.aai.inventory.v11.Complex; -import org.openecomp.aai.inventory.v11.CtagPool; -import org.openecomp.aai.inventory.v11.DvsSwitch; import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.OamNetwork; -import org.openecomp.aai.inventory.v11.PInterface; import org.openecomp.aai.inventory.v11.PhysicalLink; -import org.openecomp.aai.inventory.v11.Pserver; import org.openecomp.aai.inventory.v11.ResultData; import org.openecomp.aai.inventory.v11.SearchResults; -import org.openecomp.aai.inventory.v11.Service; -import org.openecomp.aai.inventory.v11.ServiceInstance; -import org.openecomp.aai.inventory.v11.SitePairSet; -import org.openecomp.aai.inventory.v11.Tenant; -import org.openecomp.aai.inventory.v11.Vce; -import org.openecomp.aai.inventory.v11.VnfImage; -import org.openecomp.aai.inventory.v11.VnfImages; -import org.openecomp.aai.inventory.v11.VplsPe; -import org.openecomp.aai.inventory.v11.VpnBinding; import org.openecomp.aai.inventory.v11.Vserver; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; -import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; -import org.onap.ccsdk.sli.adaptors.aai.data.ResourceVersion; -import org.onap.ccsdk.sli.adaptors.aai.data.ServiceException; -import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -132,7 +109,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe private final String keystorePassword; private final Boolean ignoreCertificateHostError; - private final String target_uri; + private final String targetUri; private final String queryPath; private final String networkVserverPath; @@ -145,26 +122,26 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe private final String param_service_type; //= "service-type"; private final String ubb_notify_path; - private final String selflink_avpn; - private final String selflink_fqdn; + private final String selflinkAvpn; + private final String selflinkFqdn; - private final String p_interface_path; + private final String pInterfacePath; - private final String service_path; - private final String site_pair_set_path; + private final String servicePath; + private final String sitePairSetPath; - private final int connection_timeout; - private final int read_timeout; + private final int connectionTimeout; + private final int readTimeout; // 1602 - private final String query_nodes_path; - private final String update_path; + private final String queryNodesPath; + private final String updatePath; - private final String application_id; + private final String applicationId; // authentication credentials - private String user_name; - private String user_password; + private String userName; + private String userPassword; // runtime private final boolean runtimeOSGI; @@ -173,7 +150,11 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe private final MetricLogger ml = new MetricLogger(); - private final AAIRequestExecutor executor; + private AAIExecutorInterface executor; + + public void setExecutor(AAIExecutorInterface executor) { + this.executor = executor; + } public AAIService(URL propURL) { LOG.info("Entered AAIService.ctor"); @@ -194,15 +175,15 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe LOG.error("AicAAIResource.static", exc); } - executor = new AAIRequestExecutor(); + executor = new AAIClientRESTExecutor(props); - user_name = props.getProperty(CLIENT_NAME); - user_password = props.getProperty(CLIENT_PWWD); + userName = props.getProperty(CLIENT_NAME); + userPassword = props.getProperty(CLIENT_PWWD); - if(user_name == null || user_name.isEmpty()){ + if(userName == null || userName.isEmpty()){ LOG.debug("Basic user name is not set"); } - if(user_password == null || user_password.isEmpty()) { + if(userPassword == null || userPassword.isEmpty()) { LOG.debug("Basic password is not set"); } @@ -211,15 +192,15 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe keystorePath = props.getProperty(KEYSTORE_PATH); keystorePassword = props.getProperty(KEYSTORE_PSSWD); - target_uri = props.getProperty(TARGET_URI); + targetUri = props.getProperty(TARGET_URI); queryPath = props.getProperty(QUERY_PATH); - update_path = props.getProperty(UPDATE_PATH); + updatePath = props.getProperty(UPDATE_PATH); - String applicationId =props.getProperty(APPLICATION_ID); - if(applicationId == null || applicationId.isEmpty()) { - applicationId = "SDNC"; + String tmpApplicationId = props.getProperty(APPLICATION_ID); + if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { + tmpApplicationId = "SDNC"; } - application_id = applicationId; + this.applicationId = tmpApplicationId; // connection timeout int tmpConnectionTimeout = 30000; @@ -236,8 +217,8 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe tmpConnectionTimeout = 30000; tmpReadTimeout = 30000; } - connection_timeout = tmpConnectionTimeout; - read_timeout = tmpReadTimeout; + connectionTimeout = tmpConnectionTimeout; + readTimeout = tmpReadTimeout; networkVserverPath =props.getProperty(NETWORK_VSERVER_PATH); @@ -246,19 +227,19 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); // P-Interfaces - p_interface_path = props.getProperty(P_INTERFACE_PATH); + pInterfacePath = props.getProperty(P_INTERFACE_PATH); vnf_image_query_path = props.getProperty(VNF_IMAGE_QUERY_PATH); ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); - selflink_avpn = props.getProperty(SELFLINK_AVPN); - selflink_fqdn = props.getProperty(SELFLINK_FQDN); + selflinkAvpn = props.getProperty(SELFLINK_AVPN); + selflinkFqdn = props.getProperty(SELFLINK_FQDN); - service_path = props.getProperty(SERVICE_PATH); + servicePath = props.getProperty(SERVICE_PATH); - site_pair_set_path = props.getProperty(SITE_PAIR_SET_PATH); + sitePairSetPath = props.getProperty(SITE_PAIR_SET_PATH); - query_nodes_path = props.getProperty(QUERY_NODES_PATH); + queryNodesPath = props.getProperty(QUERY_NODES_PATH); String iche = props.getProperty(CERTIFICATE_HOST_ERROR); boolean host_error = false; @@ -367,12 +348,12 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); - con.setConnectTimeout( connection_timeout ); - con.setReadTimeout( read_timeout ); + con.setConnectTimeout( connectionTimeout ); + con.setReadTimeout( readTimeout ); con.setRequestMethod( method ); con.setRequestProperty( "Accept", "application/json" ); con.setRequestProperty( "Content-Type", "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json" ); - con.setRequestProperty("X-FromAppId", application_id); + con.setRequestProperty("X-FromAppId", applicationId); con.setRequestProperty("X-TransactionId",TransactionIdTracker.getNextTransactionId()); String mlId = ml.getRequestID(); if(mlId != null && !mlId.isEmpty()) { @@ -383,8 +364,8 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } con.setRequestProperty("Transfer-Encoding","chunked"); - if(user_name != null && !user_name.isEmpty() && user_password != null && !user_password.isEmpty()) { - String basicAuth = "Basic " + new String(Base64.encodeBase64((user_name + ":" + user_password).getBytes())); + if(userName != null && !userName.isEmpty() && userPassword != null && !userPassword.isEmpty()) { + String basicAuth = "Basic " + new String(Base64.encodeBase64((userName + ":" + userPassword).getBytes())); con.setRequestProperty ("Authorization", basicAuth); } @@ -435,88 +416,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } } - @Override - public boolean deleteGenericVnfData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("generic-vnf"); - request.addRequestProperty("generic-vnf.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteGenericVnfData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException { - Vce response = null; - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Vce.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - /* (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String) - */ - @Override - public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkVceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - /* (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.resource.aic.AnAIClient#postNetworkVceData(java.lang.String, org.onap.ccsdk.sli.adaptors.resource.aic.aai.VCERequest) - */ - @Override - public boolean postNetworkVceData(String vnf_id, Vce data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vce"); - request.addRequestProperty("vce.vnf-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - @Override public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException { SearchResults response = null; @@ -526,7 +425,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String path = svc_inst_qry_path; path = path.replace("{svc-instance-id}", encodeQuery(svc_instance_id)); - String request_url = target_uri+path; + String request_url = targetUri+path; URL http_req_url = new URL(request_url); HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); @@ -577,48 +476,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe return response; } - @Override - public ServiceInstance requestServiceInterfaceData(String customer_id, String service_type, String svc_instance_id) throws AAIServiceException { - ServiceInstance response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); - request.addRequestProperty("customer.global-customer-id", customer_id); - request.addRequestProperty("service-subscription.service-type", service_type); - request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, ServiceInstance.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceInterfaceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postServiceInterfaceData(String customer_id, String service_type, String svc_instance_id, ServiceInstance data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("service-instance"); - request.addRequestProperty("customer.global-customer-id", customer_id); - request.addRequestProperty("service-subscription.service-type", service_type); - request.addRequestProperty("service-instance.service-instance-id", svc_instance_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - private static Properties initialize(URL url ) throws ConfigurationException { @@ -719,118 +576,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe return encrypted_url; } - @Override - public VplsPe requestNetworkVplsPeData(String equipment_name)throws AAIServiceException { - VplsPe response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", equipment_name); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VplsPe.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), - exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postNetworkVplsPeData(String equipment_name, VplsPe data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", equipment_name); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestGenericVnfData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe"); - request.addRequestProperty("vpls-pe.equipment-name", vnf_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkVplsPeData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public Complex requestNetworkComplexData(String pLocId) throws AAIServiceException { - Complex response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", pLocId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Complex.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postNetworkComplexData(String vnf_id, Complex data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", vnf_id); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteNetworkComplexData(String pLocId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("complex"); - request.addRequestProperty("complex.physical-location-id", pLocId); - - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - return response; - } /* * (non-Javadoc) @@ -862,106 +608,35 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } + //================== End of DvsSwitch ================= + //==================== PhysicalLink ====================== @Override - public boolean postVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId, Vserver data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.addRequestProperty("tenant.tenant-id", tenantId); - request.addRequestProperty("vserver.vserver-id", vserverId); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postNetworkComplexData", exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteVServerData(String tenant_id, String vserver_id, String cloudOwner, String cloudRegionId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vserver"); - - request.addRequestProperty("vserver.vserver-id", vserver_id); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id",cloudRegionId); - - response = executor.delete(request, resourceVersion); - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteVServerData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - - /* - * (non-Javadoc) - * @see org.onap.ccsdk.sli.adaptors.aai.AAIClient#requestCtagPoolData(String) - */ - @Override - public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException { - CtagPool response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("ctag-pool"); - - request.addRequestProperty("ctag-pool.target-pe", target_pe); - request.addRequestProperty("ctag-pool.availability-zone-name", availability_zone_name); - request.addRequestProperty("complex.physical-location-id", physical_location_id); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, CtagPool.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestNetworkVceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - //==================== DvsSwitch ====================== - @Override - public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException { - DvsSwitch response = null; + public PhysicalLink requestPhysicalLinkData(String linkName) throws AAIServiceException { + PhysicalLink response = null; try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", vnf_id); + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); String rv = executor.get(request); if(rv != null) { ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, DvsSwitch.class); + response = mapper.readValue(rv, PhysicalLink.class); } } catch(AAIServiceException aaiexc) { throw aaiexc; } catch (Exception exc) { - LOG.warn("requestDvsSwitchData", exc); + LOG.warn("requestPhysicalLinkData", exc); throw new AAIServiceException(exc); } return response; } @Override - public boolean postDvsSwitchData(String switch_name, DvsSwitch data) throws AAIServiceException { + public boolean postPhysicalLinkData(String linkName, PhysicalLink data) throws AAIServiceException { try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", switch_name); + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); request.setRequestObject(data); Object response = executor.post(request); return true; @@ -974,589 +649,23 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } @Override - public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException { + public boolean deletePhysicalLinkData(String linkName, String resourceVersion) throws AAIServiceException { boolean response = false; try { - AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch"); - request.addRequestProperty("dvs-switch.switch-name", vnf_id); + AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); + request.addRequestProperty("physical-link.link-name", linkName); response = executor.delete(request, resourceVersion); } catch(AAIServiceException aaiexc) { throw aaiexc; } catch (Exception exc) { - LOG.warn("deleteDvsSwitchData", exc); + LOG.warn("deletePhysicalLinkData", exc); throw new AAIServiceException(exc); } return response; } - //================== End of DvsSwitch ================= - //==================== PhysicalLink ====================== - @Override - public PhysicalLink requestPhysicalLinkData(String linkName) throws AAIServiceException { - PhysicalLink response = null; - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, PhysicalLink.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestPhysicalLinkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPhysicalLinkData(String linkName, PhysicalLink data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deletePhysicalLinkData(String linkName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("physical-link"); - request.addRequestProperty("physical-link.link-name", linkName); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePhysicalLinkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of PhysicalLink ================= - //==================== PInterface ====================== - @Override - public PInterface requestPInterfaceData(String hostname, String interfaceName) throws AAIServiceException { - PInterface response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); - request.addRequestProperty("p-interface.interface-name", interfaceName); - request.addRequestProperty("pserver.hostname", hostname); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, PInterface.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPInterfaceData(String hostname, String interfaceName, PInterface request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+p_interface_path; - String encoded_vnf = encodeQuery(hostname); - request_url = request_url.replace("{hostname}", encoded_vnf) ; - encoded_vnf = encodeQuery(interfaceName); - request_url = request_url.replace("{interface-name}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - if (json_text != null) { - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - } - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("hostname", hostname); - LOGwriteDateTrace("interface-name", interfaceName); - LOGwriteDateTrace("PInterface", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder.length() > 0) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postPInterfaceData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deletePInterfaceData(String hostname, String interfaceName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("p-interface"); - request.addRequestProperty("p-interface.interface-name", interfaceName); - request.addRequestProperty("pserver.hostname", hostname); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePInterfaceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - //================== End of PInterface ================= - //==================== SitePairSet ====================== - @Override - public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException { - SitePairSet response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); - request.addRequestProperty("site-pair-set.site-pair-set-id", sitePairSetId); - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, SitePairSet.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postSitePairSetData(String linkName, SitePairSet request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+site_pair_set_path; - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{site-pair-set-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - if (json_text != null) { - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - } - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("link-name", linkName); - LOGwriteDateTrace("SitePairSet", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder.length() > 0) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postSitePairSetData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deleteSitePairSetData(String linkName, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set"); - request.addRequestProperty("site-pair-set.site-pair-set-id", linkName); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteSitePairSetData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - //================== End of SitePairSet ================= - //==================== Service ====================== - @Override - public Service requestServiceData(String serviceId) throws AAIServiceException { - Service response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service"); - request.addRequestProperty("service.service-id", serviceId); - - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Service.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestServiceData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postServiceData(String linkName, Service request) throws AAIServiceException { - InputStream inputStream = null; - - try { - - ObjectMapper mapper = getObjectMapper(); - String json_text = mapper.writeValueAsString(request); - - SSLSocketFactory sockFact = CTX.getSocketFactory(); - - String request_url = target_uri+service_path; - String encoded_vnf = encodeQuery(linkName); - request_url = request_url.replace("{service-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); - - if (json_text != null) { - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - } - - LOGwriteFirstTrace("PUT", request_url); - LOGwriteDateTrace("service-id", linkName); - LOGwriteDateTrace("Service", json_text); - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder.length() > 0) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postServiceData", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public boolean deleteServiceData(String service_id, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("service"); - request.addRequestProperty("service.service-id", service_id); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteServiceData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - //================== End of Service ================= - - - @Override - public Vserver dataChangeRequestVServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Vserver.class); - } - - @Override - public Pserver dataChangeRequestPServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Pserver.class); - } - - @Override - public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), CtagPool.class); - } - - @Override - public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), VplsPe.class); - } - - @Override - public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), DvsSwitch.class); - } - - @Override - public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), OamNetwork.class); - } - - @Override - public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), AvailabilityZone.class); - } - - @Override - public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return this.getResource(url.toString(), Complex.class); - } - - /* DELETE */ - @Override - public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - - @Override - public boolean dataChangeDeleteCtagPoolData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - - @Override - public boolean dataChangeDeleteVplsPeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - - @Override - public boolean dataChangeDeleteVpeData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - - @Override - public boolean dataChangeDeleteDvsSwitchData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - //OAM-Network: - @Override - public boolean dataChangeDeleteOAMNetworkData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - //Availability-Zone: - @Override - public boolean dataChangeDeleteAvailabilityZoneData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - //Complex: - @Override - public boolean dataChangeDeleteComplexData(URL url) throws AAIServiceException { - - if(url == null) { - throw new NullPointerException(); - } - - return deleteAAIEntity(url, Object.class.getClass().getEnclosingMethod() - .getName()); - } - - private boolean deleteAAIEntity(URL url, String caller) throws AAIServiceException { + public boolean deleteAAIEntity(URL url, String caller) throws AAIServiceException { if(url == null) { throw new NullPointerException(); @@ -1566,335 +675,16 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe InputStream inputStream = null; try { - URL http_req_url = url; - - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); - - LOGwriteFirstTrace("DELETE", http_req_url.toString()); - - - // Check for errors - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode); - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(caller, exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - /** - * Generic method to GET json data from an A&AI callback URL. - * Then convert that json to an Object. - * If successful the Object is attempted to be cast to the type parameter. - * - * @param key - * callback url for A&AI - * @param type - * the class of object that A&AI will return - * @return the object created from json or null if the response code is not 200 - * - * @throws AAIServiceException - * if empty or null key and or type or there's an error with processing - */ - public T dataChangeRequestAaiData(String key, Class type) throws AAIServiceException { - if (StringUtils.isEmpty(key) || type == null) { - throw new AAIServiceException("Key is empty or null and or type is null"); - } - - T response = null; - - SvcLogicContext ctx = new SvcLogicContext(); - if(!key.contains(" = ") && isValidURL(key)) { - key = String.format("selflink = '%s'", key); - } else - if(!key.contains(" = ") && isValidURI(key)) { - key = String.format("resource-path = '%s'", key); - } - - HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); - - SelfLinkRequest request = new SelfLinkRequest(type); - request.processRequestPathValues(nameValues); - Object obj = this.getExecutor().query(request, type); - response = type.cast(obj); - - return response != null ? type.cast(response) : response; - } - - @Override - public Pserver requestPServerData(String hostname) throws AAIServiceException { - Pserver response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Pserver.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestPServerData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postPServerData(String hostname, Pserver data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("pserver"); - request.addRequestProperty("pserver.hostname", hostname); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deletePServerData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public L3Network requestL3NetworkData(String networkId) throws AAIServiceException { - L3Network response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, L3Network.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestL3NetworkData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public L3Network requestL3NetworkQueryByName(String networkName) throws AAIServiceException { - L3Network response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-name", networkName); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, L3Network.class); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestL3NetworkQueryByName", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean postL3NetworkData(String networkId, L3Network data) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - request.setRequestObject(data); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(Object.class.getClass().getEnclosingMethod().getName(), exc); - throw new AAIServiceException(exc); - } - } - - @Override - public boolean deleteL3NetworkData(String networkId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("l3-network"); - request.addRequestProperty("l3-network.network-id", networkId); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteL3NetworkData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException { - VpnBinding response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); - request.addRequestProperty("vpn-binding.vpn-id", vpnId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VpnBinding.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVpnBindingData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException { - boolean response = false; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding"); - request.addRequestProperty("vpn-binding.vpn-id", vpnId); - response = executor.delete(request, resourceVersion); - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("deleteVpnBindingData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - - @Override - public VnfImage requestVnfImageData(String vnf_image_uuid) throws AAIServiceException { - VnfImage response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("vnf-image"); - request.addRequestProperty("vnf-image.vnf-image-uuid", vnf_image_uuid); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, VnfImage.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestVnfImageData", exc); - throw new AAIServiceException(exc); - } - return response; - } - - @Override - public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException { - return requestVnfImageDataByVendorModelVersion(vendor, model, null); - } - - @Override - public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException - { - List responseList = new ArrayList(); - VnfImage response = null; - InputStream inputStream = null; - - try { - String request_url = target_uri+vnf_image_query_path + (version==null? "": "&application-version={application_version}"); - request_url = request_url.replace("{application_vendor}", encodeQuery(vendor)) ; - request_url = request_url.replace("{application_model}", encodeQuery(model)) ; - if(version != null) { - request_url = request_url.replace("{application_version}", encodeQuery(version)) ; - } - URL http_req_url = new URL(request_url); + URL http_req_url = url; - HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET); + HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.DELETE); + + LOGwriteFirstTrace("DELETE", http_req_url.toString()); - LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString()); - LOGwriteDateTrace("application_vendor", vendor); - LOGwriteDateTrace("application_model", model); - if(version != null) { - LOGwriteDateTrace("application_version", version); - } // Check for errors int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { inputStream = con.getInputStream(); } else { inputStream = con.getErrorStream(); @@ -1904,23 +694,21 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe LOG.debug("HttpURLConnection result:" + responseCode); if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + String line = null; ObjectMapper mapper = getObjectMapper(); - if (responseCode == HttpURLConnection.HTTP_OK) { - response = mapper.readValue(reader, VnfImage.class); - String original_buffer = mapper.writeValueAsString(response); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", original_buffer); - if(response.getApplicationVendor() == null /*&& response.getAdditionalProperties() != null && !response.getAdditionalProperties().isEmpty()*/){ - LOG.warn("A List of multiple VNF-IMAGE entries has been returned"); - VnfImages listOfObjects = mapper.readValue(original_buffer, VnfImages.class); - if(!listOfObjects.getVnfImage().isEmpty()) { - response = listOfObjects.getVnfImage().get(0); - } + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); } + LOGwriteEndingTrace(responseCode, "SUCCESS", stringBuilder.toString()); + response = true; } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; + response = false; } else { ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); @@ -1930,7 +718,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } catch(AAIServiceException aaiexc) { throw aaiexc; } catch (Exception exc) { - LOG.warn("requestVnfImageData", exc); + LOG.warn(caller, exc); throw new AAIServiceException(exc); } finally { if(inputStream != null){ @@ -1944,15 +732,54 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe return response; } + /** + * Generic method to GET json data from an A&AI callback URL. + * Then convert that json to an Object. + * If successful the Object is attempted to be cast to the type parameter. + * + * @param key + * callback url for A&AI + * @param type + * the class of object that A&AI will return + * @return the object created from json or null if the response code is not 200 + * + * @throws AAIServiceException + * if empty or null key and or type or there's an error with processing + */ + public T dataChangeRequestAaiData(String key, Class type) throws AAIServiceException { + if (StringUtils.isEmpty(key) || type == null) { + throw new AAIServiceException("Key is empty or null and or type is null"); + } + + T response = null; + + SvcLogicContext ctx = new SvcLogicContext(); + if(!key.contains(" = ") && isValidURL(key)) { + key = String.format("selflink = '%s'", key); + } else + if(!key.contains(" = ") && isValidURI(key)) { + key = String.format("resource-path = '%s'", key); + } + + HashMap nameValues = AAIServiceUtils.keyToHashMap(key, ctx); + + SelfLinkRequest request = new SelfLinkRequest(type); + request.processRequestPathValues(nameValues); + Object obj = this.getExecutor().query(request, type); + response = type.cast(obj); + + return response != null ? type.cast(response) : response; + } + public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException { InputStream inputStream = null; try { - String selfLink = selflink_fqdn; + String selfLink = selflinkFqdn; if(SELFLINK_AVPN != null && SELFLINK_AVPN.equals(pathCode)) { - selfLink = selflink_avpn; + selfLink = selflinkAvpn; } selfLink = selfLink.replace("{service-instance-id}", encodeQuery(serviceInstanceId)); event.setSelflink(selfLink); @@ -1962,7 +789,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe SSLSocketFactory sockFact = CTX.getSocketFactory(); - String request_url = target_uri+ubb_notify_path; + String request_url = targetUri+ubb_notify_path; URL http_req_url = new URL(request_url); HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT); @@ -2026,7 +853,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe InputStream inputStream = null; try { - String request_url = target_uri+query_nodes_path; + String request_url = targetUri+queryNodesPath; request_url = request_url.replace("{node-type}", encodeQuery(node_type)) ; request_url = request_url.replace("{entity-identifier}", entityIdentifier) ; request_url = request_url.replace("{entity-name}", encodeQuery(entityName)) ; @@ -2225,511 +1052,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe return entity; } - class AAIRequestExecutor implements AAIExecutorInterface { - - @Override - public String get(AAIRequest request) throws AAIServiceException { - String response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - - String requestId = UUID.randomUUID().toString(); - StringBuilder errorStringBuilder = new StringBuilder(); - - try { - - if(request.getRequestObject() != null) { - requestUrl = request.getRequestUrl(HttpMethod.POST, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.POST); - String json_text = request.toJSONString(); - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - } else { - requestUrl = request.getRequestUrl(HttpMethod.GET, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.GET); - logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); - } - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId, responseCode, responseMessage); - - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - response = stringBuilder.toString(); - try { - Object object = mapper.readValue(response, Object.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); - } catch(Exception exc) { - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); - } - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - ErrorResponse errorresponse = null; - try { - errorresponse = mapper.readValue(reader, ErrorResponse.class); - } catch(Exception exc) { - errorresponse = new ErrorResponse(); - RequestError requestError = new RequestError(); - ServiceException serviceException = new ServiceException(); - serviceException.setText("Entry does not exist."); - requestError.setServiceException(serviceException); - errorresponse.setRequestError(requestError ); - } - throw new AAIServiceException(responseCode, errorresponse); - } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - ServiceException serviceException = new ServiceException(); - serviceException.setMessageId("HTTP_UNAUTHORIZED"); - serviceException.setText(stringBuilder.toString()); - RequestError requestError = new RequestError(); - requestError.setServiceException(serviceException); - ErrorResponse errorresponse = new ErrorResponse(); - errorresponse.setRequestError(requestError); - throw new AAIServiceException(responseCode, errorresponse); - } else { -// StringBuilder errorStringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - errorStringBuilder.append("\n").append( line ); - } - - ErrorResponse errorresponse = mapper.readValue(errorStringBuilder.toString(), ErrorResponse.class); -// ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(errorStringBuilder.toString(), exc); - throw new AAIServiceException(exc); - } finally { - if (con != null) { - con.disconnect(); - } - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { - - String depth = request.requestProperties.getProperty("depth", "1"); - String path = requestUrl.toString(); - if(path.contains("?depth=") || path.contains("&depth=")) { - return requestUrl; - } else { - if(path.contains("?")) { - path = String.format("%s&depth=%s", path, depth); - } else { - path = String.format("%s?depth=%s", path, depth); - } - return new URL(path); - } - } - - @Override - public String post(AAIRequest request) throws AAIServiceException { - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - HttpURLConnection con = null; - - try { - String resourceVersion = null; - AAIDatum instance = request.getRequestObject(); - - Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); - if(getResourceVersionMethod != null){ - try { - getResourceVersionMethod.setAccessible(true); - Object object = getResourceVersionMethod.invoke(instance); - if(object != null) - resourceVersion = object.toString(); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - - URL requestUrl = null; - con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); - ObjectMapper mapper = getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - if (json_text != null) { - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - } - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return stringBuilder.toString(); - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.post", exc); - throw new AAIServiceException(exc); - } finally { - if (con != null) { - con.disconnect(); - } - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - @Override - public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { - Boolean response = null; - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - if(resourceVersion == null) { - throw new AAIServiceException("resource-version is required for DELETE request"); - } - - try { - URL requestUrl = null; - HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); - logMetricRequest(requestId, "DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); - conn.setDoOutput(true); - - // Check for errors - String responseMessage = conn.getResponseMessage(); - int responseCode = conn.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = conn.getInputStream(); - } else { - inputStream = conn.getErrorStream(); - } - - // Process the response - LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)); - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - String line = null; - - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - response = false; - } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("delete", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - @Override - public Object query(AAIRequest request, Class clas) throws AAIServiceException { - Object response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - String requestId = UUID.randomUUID().toString(); - - try { - requestUrl = request.getRequestQueryUrl(HttpMethod.GET); - con = getConfiguredConnection(requestUrl , HttpMethod.GET); - logMetricRequest(requestId, "GET "+requestUrl.getPath(), "", requestUrl.getPath()); - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - logMetricResponse(requestId,responseCode, responseMessage); - ObjectMapper mapper = getObjectMapper(); - - if (responseCode == HttpURLConnection.HTTP_OK) { - // Process the response - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - response = mapper.readValue(reader, clas); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); - } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); - } - - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("GET", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - if (con != null) { - con.disconnect(); - } - } - return response; - } - - @Override - public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { - InputStream inputStream = null; - String requestId = UUID.randomUUID().toString(); - - try { - AAIDatum instance = request.getRequestObject(); - if(instance instanceof ResourceVersion) { - resourceVersion = ((ResourceVersion)instance).getResourceVersion(); - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); - ObjectMapper mapper = getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest(requestId, "PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - if (json_text != null) { - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); - osw.close(); - } - - // Check for errors - String responseMessage = con.getResponseMessage(); - int responseCode = con.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); - } else { - inputStream = con.getErrorStream(); - } - - LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); - logMetricResponse(requestId,responseCode, responseMessage); - - // Process the response - BufferedReader reader; - String line = null; - reader = new BufferedReader( new InputStreamReader( inputStream ) ); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, - (stringBuilder.length() > 0) ? stringBuilder.toString() : "{no-data}"); - return true; - } else { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append("\n").append( line ); - } - LOG.info(stringBuilder.toString()); - - - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - - throw new AAIServiceException(responseCode, errorresponse); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.patch", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - } - - @Override - public Tenant requestTenantData(String tenant_id, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Tenant response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - - String rv = executor.get(request); - if(rv != null) { - ObjectMapper mapper = getObjectMapper(); - response = mapper.readValue(rv, Tenant.class); - } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestTenantData", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - @Override - public Tenant requestTenantDataByName(String tenant_name, String cloudOwner, String cloudRegionId) throws AAIServiceException { - Tenant response = null; - - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-name", tenant_name); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - Object rv = executor.query(request, Tenant.class); - if(rv == null) - return (Tenant)null; - else - response = (Tenant)rv; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("requestTenantDataByName", exc); - throw new AAIServiceException(exc); - } - - return response; - } - - - @Override - public boolean postTenantData(String tenant_id, String cloudOwner, String cloudRegionId, Tenant tenannt) throws AAIServiceException { - try { - AAIRequest request = AAIRequest.getRequestFromResource("tenant"); - request.addRequestProperty("tenant.tenant-id", tenant_id); - request.addRequestProperty("cloud-region.cloud-owner", cloudOwner); - request.addRequestProperty("cloud-region.cloud-region-id", cloudRegionId); - request.setRequestObject(tenannt); - Object response = executor.post(request); - return true; - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("postTenantData", exc); - throw new AAIServiceException(exc); - } - } - - @Override public String getTenantIdFromVserverUrl(URL url) { @@ -2795,7 +1117,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe @Override - public AAIRequestExecutor getExecutor() { + public AAIExecutorInterface getExecutor() { return executor; } @@ -2990,6 +1312,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); mapper.setSerializationInclusion(Include.NON_NULL); + mapper.setSerializationInclusion(Include.NON_EMPTY); return mapper; } @@ -3000,8 +1323,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String targetEntity = "A&AI"; String targetVirtualEntity = null; - targetServiceName = ""; - ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); } @@ -3052,6 +1373,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String normResource = resource.split(":")[0]; switch(normResource){ + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -3080,6 +1402,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String normResource = resource.split(":")[0]; switch(normResource){ + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -3108,6 +1431,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String normResource = resource.split(":")[0]; switch(normResource){ + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -3193,7 +1517,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } /* (non-Javadoc) - * @see org.openecomp.sdnc.sli.aai.haha#query(org.openecomp.sdnc.sli.aai.AAIRequest) + * @see org.onap.ccsdk.sli.core.sli.aai.haha#query(org.onap.ccsdk.sli.core.sli.aai.AAIRequest) */ @Override public String query(AAIRequest request) throws AAIServiceException { @@ -3201,7 +1525,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } /* (non-Javadoc) - * @see org.openecomp.sdnc.sli.aai.haha#save(org.openecomp.sdnc.sli.aai.AAIRequest) + * @see org.onap.ccsdk.sli.core.sli.aai.haha#save(org.onap.ccsdk.sli.core.sli.aai.AAIRequest) */ @Override public String save(AAIRequest request) throws AAIServiceException { @@ -3213,11 +1537,11 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } /* (non-Javadoc) - * @see org.openecomp.sdnc.sli.aai.haha#delete(org.openecomp.sdnc.sli.aai.AAIRequest, java.lang.String) + * @see org.onap.ccsdk.sli.core.sli.aai.haha#delete(org.onap.ccsdk.sli.core.sli.aai.AAIRequest, java.lang.String) */ @Override public boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { - return executor.patch(request, resourceVersion); + return executor.delete(request, resourceVersion); } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index 0566aac72..126b9b265 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -22,6 +22,7 @@ package org.onap.ccsdk.sli.adaptors.aai; import java.lang.annotation.Annotation; +import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; @@ -111,6 +112,16 @@ public class AAIServiceUtils { return null; } + public static Method getRelationshipListGetterMethodFromClassDefinition(Class resourceClass) { + Method getRelationshipListMethod = null; + + try { + getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + } catch(Exception exc) { + getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); + } + return getRelationshipListMethod; + } private static Logger getLogger() { return LOG; @@ -311,6 +322,7 @@ public class AAIServiceUtils { public static boolean isValidFormat(String resource, HashMap nameValues) { switch(resource){ + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -329,10 +341,10 @@ public class AAIServiceUtils { Set keys = nameValues.keySet(); for(String key : keys) { if(!key.contains(".")) { - if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key) || "related-link".equals(key) || "related_link".equals(key) || "selflink".equals(key)) + if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key) || "related-link".equals(key) || "related_link".equals(key) || "selflink".equals(key) || "resource_path".equals(key)) continue; else { - getLogger().warn(String.format("key %s is incompatible with resource type '%s'", key, resource)); + getLogger().warn(String.format("key '%s' is incompatible with resource type '%s'", key, resource)); } } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index 98de85a58..6dd11238d 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -8,9 +8,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -35,9 +35,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class GenericQueryRequest extends AAIRequest { public static final String GENERIC_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.generic"; - + private final String generic_search_path; - + public static final String START_NODE_TYPE = "start-node-type"; public static final String IDENTIFIER = "identifier"; public static final String VALUE = "value"; @@ -47,27 +47,6 @@ public class GenericQueryRequest extends AAIRequest { generic_search_path = configProperties.getProperty(GENERIC_SEARCH_PATH); } - -// @Override -// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { -// -// String request_url = target_uri+generic_search_path; -// String key = START_NODE_TYPE; -// -// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); -// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; -// -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } -// URL http_req_url = new URL(request_url); -// -// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); -// -// -// return http_req_url; -// } - @Override public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { @@ -81,12 +60,12 @@ public class GenericQueryRequest extends AAIRequest { URL http_req_url = new URL(request_url); aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - + return http_req_url; } - + @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { return getRequestUrl(method, null); } @@ -126,19 +105,19 @@ public class GenericQueryRequest extends AAIRequest { String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); request_url = request_url.replace("{identifier}", encoded_vnf) ; aaiService.LOGwriteDateTrace("identifier", requestProperties.getProperty(key)); - + key = VALUE; encoded_vnf = encodeQuery(requestProperties.getProperty(key)); request_url = request_url.replace("{value}", encoded_vnf) ; aaiService.LOGwriteDateTrace("value", requestProperties.getProperty(key)); - + key = START_NODE_TYPE; encoded_vnf = encodeQuery(requestProperties.getProperty(key)); request_url = request_url.replace("{start-node-type}", encoded_vnf) ; aaiService.LOGwriteDateTrace("start-node-type", requestProperties.getProperty(key)); - + return request_url; } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index dd192b798..a272cf077 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -24,7 +24,9 @@ package org.onap.ccsdk.sli.adaptors.aai; import java.io.UnsupportedEncodingException; import java.lang.annotation.Annotation; import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import java.util.Map; @@ -32,7 +34,7 @@ import java.util.Set; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; - +import javax.xml.bind.annotation.XmlType; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.openecomp.aai.inventory.v11.L3Network; import org.openecomp.aai.inventory.v11.L3Networks; @@ -153,10 +155,15 @@ public class GenericRequest extends AAIRequest { Field field = fields[0]; String fieldName = field.getName(); XmlElement annotation = field.getAnnotation(XmlElement.class); - String primaryId = annotation.name(); + String primaryId = null; + if(annotation != null) { + primaryId = annotation.name(); if("##default".equals(primaryId)) { primaryId = fieldName; } + } else { + primaryId = fieldName; + } String token = String.format("%s/{%s}", splitKey[0], primaryId); @@ -208,7 +215,7 @@ public class GenericRequest extends AAIRequest { } @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { return this.getRequestUrl(method, null); } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java old mode 100644 new mode 100755 index f1d55fa99..f7aaccb9a --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -51,7 +51,7 @@ public class NodesQueryRequest extends AAIRequest { // @Override // public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { // -// String request_url = target_uri+generic_search_path; +// String request_url = targetUri+generic_search_path; // String key = START_NODE_TYPE; // // String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java new file mode 100755 index 000000000..33e3167f8 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.List; + +import org.apache.http.NameValuePair; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.openecomp.aai.inventory.v11.RelationshipList; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; + +public class RelationshipListRequest extends GenericRequest { + + public static final String SELFLINK = "selflink"; + + public RelationshipListRequest(AAIRequest masterRequest) { + super(RelationshipList.class); + this.addMasterRequest(masterRequest); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { + + URL url = super.getRequestUrl(method, null); + URIBuilder builder = new URIBuilder(url.toURI()); + String newPath = builder.getPath() + "/relationship-list"; + builder.setPath(newPath); + if(resourceVersion != null) { + List queryList = builder.getQueryParams(); + NameValuePair nvp = new BasicNameValuePair("resourceVersion", resourceVersion); + queryList.add(nvp); + } + + aaiService.LOGwriteFirstTrace(method, builder.toString()); + + return builder.build().toURL(); + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java old mode 100644 new mode 100755 index 2b1ce3f08..a73206d4f --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -3,7 +3,7 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,104 +23,45 @@ package org.onap.ccsdk.sli.adaptors.aai; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; +import java.util.List; +import org.apache.http.NameValuePair; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.message.BasicNameValuePair; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.RelationshipList; +import org.openecomp.aai.inventory.v11.Relationship; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; -public class RelationshipRequest extends AAIRequest { +public class RelationshipRequest extends GenericRequest { - // tenant (1602) - public static final String RELATIONSHIP_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list"; - public static final String RELATIONSHIP_LIST_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.relationship.list.query"; - - private final String relationship_path; - private final String relationship_query_path; - - public static final String RELATED_TO = "related-to"; - public static final String RELATIONSHIP_KEY = "relationship-key"; - - public RelationshipRequest() { - relationship_path = configProperties.getProperty(RELATIONSHIP_LIST_PATH, "/relationship-list/relationship"); - relationship_query_path = configProperties.getProperty(RELATIONSHIP_LIST_QUERY_PATH); + public RelationshipRequest(AAIRequest masterRequest) { + super(Relationship.class); + this.addMasterRequest(masterRequest); } @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - AAIRequest masterRequest = (AAIRequest)requestProperties.get(MASTER_REQUEST); - URL masterURL = masterRequest.getRequestUrl(method, null); - - String request_url = masterURL.toString(); - request_url = request_url + relationship_path; - - if(request_url.contains("//")) { - request_url = request_url.replaceAll("//", "/"); - } - - if(requestProperties.containsKey(RELATED_TO)) { - String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATED_TO)); - request_url = request_url.replace("{related-to}", encoded_vnf) ; - } - -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("related-to", requestProperties.getProperty(RELATED_TO)); + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = targetUri+relationship_query_path; - String encoded_vnf = encodeQuery(requestProperties.getProperty(RELATIONSHIP_KEY)); - request_url = request_url.replace("{tenant-name}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("tenant_name", requestProperties.getProperty(RELATIONSHIP_KEY)); + URL url = super.getRequestUrl(method, null); + URIBuilder builder = new URIBuilder(url.toURI()); + String newPath = builder.getPath() + "/relationship-list/relationship"; + builder.setPath(newPath); + if(resourceVersion != null) { + List queryList = builder.getQueryParams(); + NameValuePair nvp = new BasicNameValuePair("resourceVersion", resourceVersion); + queryList.add(nvp); + } + + aaiService.LOGwriteFirstTrace(method, builder.toString()); - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - Object tenant = requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {RELATED_TO, RELATIONSHIP_KEY}; - return args; - } - - - @Override - public Class getModelClass() { - return RelationshipList.class; - } - - public boolean isDeleteDataRequired() { - return true; + return builder.build().toURL(); } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java old mode 100644 new mode 100755 index 5074b46e5..789c13164 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UpdateRequest.java @@ -23,6 +23,7 @@ package org.onap.ccsdk.sli.adaptors.aai; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.util.Map; import java.util.Properties; @@ -44,12 +45,12 @@ public class UpdateRequest extends AAIRequest { @Override public URL getRequestUrl(String method, String resourceVersion) - throws UnsupportedEncodingException, MalformedURLException { + throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { return request.getRequestUrl(method, resourceVersion); } @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { return request.getRequestQueryUrl(method); } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java index 0bff86089..302e03138 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java @@ -32,11 +32,13 @@ import javax.xml.bind.annotation.XmlType; import org.openecomp.aai.inventory.v11.CloudRegion; import org.openecomp.aai.inventory.v11.Complex; +import org.openecomp.aai.inventory.v11.Configuration; import org.openecomp.aai.inventory.v11.GenericVnf; import org.openecomp.aai.inventory.v11.L3InterfaceIpv4AddressList; import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList; import org.openecomp.aai.inventory.v11.L3Network; import org.openecomp.aai.inventory.v11.LInterface; +//import org.openecomp.aai.inventory.v11.OwningEntity; import org.openecomp.aai.inventory.v11.Pserver; import org.openecomp.aai.inventory.v11.ServiceInstance; import org.openecomp.aai.inventory.v11.Vnfc; @@ -51,6 +53,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; @XmlType(name = "", propOrder = { "cloud-region", "complex", + "configuration", "generic-vnf", "l3-interface-ipv4-address-list", "l3-interface-ipv6-address-list", @@ -69,6 +72,8 @@ public class Result { private CloudRegion cloudRegion; @XmlElement(name = "complex") private Complex complex; + @XmlElement(name = "configuration") + private Configuration configuration; @XmlElement(name = "generic-vnf") private GenericVnf genericVnf; @XmlElement(name = "l3-interface-ipv4-address-list") @@ -79,6 +84,8 @@ public class Result { private L3Network l3Network; @XmlElement(name = "l-interface") private LInterface lInterface; +// @XmlElement(name = "owning-entity") +// private OwningEntity owningEntity; @XmlElement(name = "pserver") private Pserver pserver; @XmlElement(name = "service-instance") @@ -110,6 +117,16 @@ public class Result { this.complex = complex; } + @XmlElement(name = "configuration") + public Configuration getConfiguration() { + return configuration; + } + + @XmlElement(name = "configuration") + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } + @XmlElement(name = "generic-vnf") public GenericVnf getGenericVnf () { @@ -161,6 +178,16 @@ public class Result { this.lInterface = linterface; } +// @XmlElement(name = "owning-entity") +// public OwningEntity getOwningEntity() { +// return owningEntity; +// } + +// @XmlElement(name = "owning-entity") +// public void setOwningEntity(OwningEntity owningEntity) { +// this.owningEntity = owningEntity; +// } + @XmlElement(name = "pserver") public Pserver getPserver() { return pserver; @@ -194,6 +221,7 @@ public class Result { public Vserver getVserver() { return vserver; } + @XmlElement(name = "vserver") public void setVserver(Vserver vserver) { this.vserver = vserver; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java index 9d1f6a530..327e4c652 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -25,6 +25,7 @@ import static org.junit.Assert.assertNotNull; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import org.junit.AfterClass; @@ -66,9 +67,9 @@ public class EchoRequestTest { try { url = request.getRequestUrl("GET", null); assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException exc) { + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { LOG.error("Failed test", exc); - } + } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java index 5f9fc7f8b..eb84cfdf3 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -27,6 +27,7 @@ import static org.junit.Assert.fail; import java.io.File; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import java.util.Map; @@ -37,7 +38,6 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.GenericVnf; import org.openecomp.aai.inventory.v11.LInterface; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -116,23 +116,23 @@ public class GenericRequestTest { } } - @Test - public void test003() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - try - { - String vnf_id = "4718302b-7884-4959-a499-f470c62418ff"; - - GenericVnf genericVnf = client.requestGenericVnfData(vnf_id); - - client.deleteGenericVnfData(vnf_id, genericVnf.getResourceVersion()); - - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - } - } +// @Test +// public void test003() { +// LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); +// try +// { +// String vnf_id = "4718302b-7884-4959-a499-f470c62418ff"; +// +// GenericVnf genericVnf = client.requestGenericVnfData(vnf_id); +// +// client.deleteGenericVnfData(vnf_id, genericVnf.getResourceVersion()); +// +// } +// catch (Throwable e) +// { +// LOG.error("Caught exception", e); +// } +// } @Test @@ -143,7 +143,7 @@ public class GenericRequestTest { try { url = request.getRequestUrl("GET", null); assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException exc) { + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { LOG.error("Failed test", exc); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java index 4563adfca..0e81e5b52 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java @@ -75,21 +75,21 @@ public class RegressionTest { LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); } - @Test - public void R1510Test05GenericVnfDataRequestDelete() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - try - { - String vnf_id = "bpsx0001v-7071"; - boolean response = client.deleteGenericVnfData(vnf_id, null); - assertTrue(response); - - } - catch (Throwable e) - { - assert(true); - } - } +// @Test +// public void R1510Test05GenericVnfDataRequestDelete() { +// LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); +// try +// { +// String vnf_id = "bpsx0001v-7071"; +// boolean response = client.deleteGenericVnfData(vnf_id, null); +// assertTrue(response); +// +// } +// catch (Throwable e) +// { +// assert(true); +// } +// } @Test public void R1604TestWanConnectorSave01Request() diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index 84d851a41..43f5fff5f 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -28,7 +28,7 @@ # org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/bvc/tls-client/truststore.client.jks org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin -org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/bvc/tls-client/keystore.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/bvc/tls-client/keystore.client.p12 org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=adminadmin org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true @@ -40,7 +40,8 @@ org.onap.ccsdk.sli.adaptors.aai.application=CCSDK # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://au3txvcaaas10-eth2.auk3.aic.cip.att.com:8443 +#org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 #org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-int2.test.att.com:8443 # -- cgit 1.2.3-korg From 6f3e3e30405fc12a8800771dc54826e837ee6abe Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 23 Jan 2018 16:24:06 +0000 Subject: Convert aai-service provider to blueprint Changes made: * Updated aai-serice pom.xml to include core/utils bundle * Added aaiservice-blueprint.xml * Removed definition for AAIService Activator Change-Id: If77db85b1f76cfdd54858a5ed4bf887bfd803cec Issue-ID: CCSDK-171 Signed-off-by: Rich Tabedzki --- aai-service/provider/pom.xml | 422 ++++---- .../sli/adaptors/aai/AAIClientRESTExecutor.java | 1026 ++++++++++---------- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 2 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 37 +- .../sli/adaptors/aai/AAIServiceActivator.java | 239 ----- .../ccsdk/sli/adaptors/aai/AAIServiceProvider.java | 164 ++++ .../ccsdk/sli/adaptors/aai/AAITrinityService.java | 20 +- .../onap/ccsdk/sli/adaptors/aai/UtilsProvider.java | 36 + .../blueprint/aaiservice-blueprint.xml | 39 + .../adaptors/aai/r1607/R1607AutoGeneratedTest.java | 491 ---------- 10 files changed, 1001 insertions(+), 1475 deletions(-) delete mode 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java create mode 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProvider.java create mode 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UtilsProvider.java create mode 100755 aai-service/provider/src/main/resources/org/opendaylight/blueprint/aaiservice-blueprint.xml delete mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index d96d0be1d..461a222c5 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -1,216 +1,218 @@ - 4.0.0 - - org.onap.ccsdk.sli.adaptors - aai-service - 0.2.0-SNAPSHOT - - aai-service-provider - bundle - AAI Interface Service - Provider - http://maven.apache.org - - UTF-8 - - - - junit - junit - ${junit.version} - test - - - org.mockito - mockito-core - ${mockito.version} - test - - - org.onap.ccsdk.sli.core - sli-common - ${sdnctl.sli.version} - compile - - - org.onap.ccsdk.sli.core - sli-provider - ${sdnctl.sli.version} - compile - - - equinoxSDK381 - org.eclipse.osgi - ${equinox.osgi.version} - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.slf4j - jcl-over-slf4j - ${slf4j.version} - - - com.sun.jersey - jersey-client - ${jersey.client.version} - - - com.sun.jersey - jersey-core - ${jersey.version} - - - org.apache.httpcomponents - httpcore-osgi - ${apache.httpcomponents.core.version} - - - org.apache.httpcomponents - httpclient-osgi - ${apache.httpcomponents.client.version} - - - com.fasterxml.jackson.core - jackson-databind - - ${jackson.version} - - - com.fasterxml.jackson.module - jackson-module-jaxb-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-core - - ${jackson.version} - - - commons-lang - commons-lang - ${commons.lang.version} - - - org.jvnet.jaxb2_commons - jaxb2-basics-runtime - 0.6.4 - - - org.jsoup - jsoup - 1.8.3 - test - - - org.springframework - spring-core - 4.3.5.RELEASE - test - - + 4.0.0 + + org.onap.ccsdk.sli.adaptors + aai-service + 0.2.0-SNAPSHOT + + aai-service-provider + bundle + AAI Interface Service - Provider + http://maven.apache.org + + UTF-8 + + + + junit + junit + ${junit.version} + test + + + org.mockito + mockito-core + ${mockito.version} + test + + + org.onap.ccsdk.sli.core + sli-common + ${sdnctl.sli.version} + compile + + + org.onap.ccsdk.sli.core + sli-provider + ${sdnctl.sli.version} + compile + + + org.onap.ccsdk.sli.core + utils-provider + ${project.version} + + + equinoxSDK381 + org.eclipse.osgi + ${equinox.osgi.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + + + com.sun.jersey + jersey-client + ${jersey.client.version} + + + com.sun.jersey + jersey-core + ${jersey.version} + + + org.apache.httpcomponents + httpcore-osgi + ${apache.httpcomponents.core.version} + + + org.apache.httpcomponents + httpclient-osgi + ${apache.httpcomponents.client.version} + + + com.fasterxml.jackson.core + jackson-databind + + ${jackson.version} + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-core + + ${jackson.version} + + + commons-lang + commons-lang + ${commons.lang.version} + + + org.jvnet.jaxb2_commons + jaxb2-basics-runtime + 0.6.4 + + + org.jsoup + jsoup + 1.8.3 + test + + + org.springframework + spring-core + 4.3.5.RELEASE + test + + - - - - org.apache.felix - maven-bundle-plugin - ${bundle.plugin.version} - true - - - org.openecomp.sdnc.sli.aai - org.onap.ccsdk.sli.adaptors.aai.AAIServiceActivator - org.onap.ccsdk.sli.adaptors.aai.*,org.openecomp.aai.inventory.v11.* + + + + org.apache.felix + maven-bundle-plugin + ${bundle.plugin.version} + true + + + org.openecomp.sdnc.sli.aai + org.onap.ccsdk.sli.adaptors.aai.*,org.openecomp.aai.inventory.v11.* org.openecomp.sdnc.sli.*,org.osgi.framework.*,org.slf4j.*,org.apache.commons.lang3.*,javax.xml.bind.annotation.*,javax.ws.rs.*,javax.ws.rs.core.*,com.fasterxml.jackson.module.jaxb.*,com.sun.jersey.client.urlconnection.*,com.sun.jersey.api.client.config.*,com.fasterxml.jackson.databind.type.*,com.fasterxml.jackson.module.jaxb.*,com.fasterxml.jackson.databind.introspect.*,com.fasterxml.jackson.annotation.*,com.fasterxml.jackson.databind.* - * - true - - - ${project.basedir}/src/main/resources/META-INF - - - - org.jvnet.jaxb2.maven2 - maven-jaxb2-plugin - 0.13.1 - - - gen-xjc - - generate - - - - - ${project.basedir}/src/main/resources - - aai_schema_v11.xsd - - - aai-schema-bindings.xjb - - ${project.build.directory}/generated-sources/main/java + * + true + + + + + org.jvnet.jaxb2.maven2 + maven-jaxb2-plugin + 0.13.1 + + + gen-xjc + + generate + + + + + ${project.basedir}/src/main/resources + + aai_schema_v11.xsd + + + aai-schema-bindings.xjb + + ${project.build.directory}/generated-sources/main/java org.openecomp.aai.inventory.v11 - true - - -Xannotate - - - - org.jvnet.jaxb2_commons - jaxb2-basics-annotate - 0.6.4 - - - - - - - - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - - com.brocade.developer - - - providermodule-plugin - - - [1.2.0.100-SNAPSHOT,) - - - process - - - - - - - - - - - - - + true + + -Xannotate + + + + org.jvnet.jaxb2_commons + jaxb2-basics-annotate + 0.6.4 + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + com.brocade.developer + + + providermodule-plugin + + + [1.2.0.100-SNAPSHOT,) + + + process + + + + + + + + + + + + + diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java index 5e2c8c0a5..8f624e9e5 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java @@ -3,7 +3,7 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -70,54 +70,54 @@ import com.sun.jersey.client.urlconnection.HTTPSProperties; * The AAIClientRESTExecutor class provides CRUD API for AAI Client service. * @author richtabedzki */ -public class AAIClientRESTExecutor implements AAIExecutorInterface { - - private final String truststorePath; - private final String truststorePassword; - private final String keystorePath; - private final String keystorePassword; - private final Boolean ignoreCertificateHostError; - // authentication credentials - private String userName; - private String userPassword; - private final String applicationId; - - /** - * class Constructor - * @param props - properties to initialize an instance. - */ - public AAIClientRESTExecutor(Properties props) { - super(); - - userName = props.getProperty(AAIService.CLIENT_NAME); - userPassword = props.getProperty(AAIService.CLIENT_PWWD); +public class AAIClientRESTExecutor implements AAIExecutorInterface { + + private final String truststorePath; + private final String truststorePassword; + private final String keystorePath; + private final String keystorePassword; + private final Boolean ignoreCertificateHostError; + // authentication credentials + private String userName; + private String userPassword; + private final String applicationId; + + /** + * class Constructor + * @param props - properties to initialize an instance. + */ + public AAIClientRESTExecutor(Properties props) { + super(); + + userName = props.getProperty(AAIService.CLIENT_NAME); + userPassword = props.getProperty(AAIService.CLIENT_PWWD); if(userName == null || userName.isEmpty()){ - LOG.debug("Basic user name is not set"); + LOG.debug("Basic user name is not set"); } if(userPassword == null || userPassword.isEmpty()) { - LOG.debug("Basic password is not set"); + LOG.debug("Basic password is not set"); } - truststorePath = props.getProperty(AAIService.TRUSTSTORE_PATH); - truststorePassword = props.getProperty(AAIService.TRUSTSTORE_PSSWD); - keystorePath = props.getProperty(AAIService.KEYSTORE_PATH); - keystorePassword = props.getProperty(AAIService.KEYSTORE_PSSWD); -// this.read_timeout = read_timeout; + truststorePath = props.getProperty(AAIService.TRUSTSTORE_PATH); + truststorePassword = props.getProperty(AAIService.TRUSTSTORE_PSSWD); + keystorePath = props.getProperty(AAIService.KEYSTORE_PATH); + keystorePassword = props.getProperty(AAIService.KEYSTORE_PSSWD); +// this.read_timeout = read_timeout; - String tmpApplicationId =props.getProperty(AAIService.APPLICATION_ID); - if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { - tmpApplicationId = "SDNC"; - } - applicationId = tmpApplicationId; + String tmpApplicationId =props.getProperty(AAIService.APPLICATION_ID); + if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { + tmpApplicationId = "SDNC"; + } + applicationId = tmpApplicationId; - String iche = props.getProperty(AAIService.CERTIFICATE_HOST_ERROR); - boolean host_error = false; - if(iche != null && !iche.isEmpty()) { - host_error = Boolean.valueOf(iche); - } + String iche = props.getProperty(AAIService.CERTIFICATE_HOST_ERROR); + boolean host_error = false; + if(iche != null && !iche.isEmpty()) { + host_error = Boolean.valueOf(iche); + } - ignoreCertificateHostError = host_error; + ignoreCertificateHostError = host_error; HttpsURLConnection.setDefaultHostnameVerifier( new HostnameVerifier(){ public boolean verify(String string,SSLSession ssls) { @@ -125,54 +125,54 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { } }); - if(truststorePath != null && truststorePassword != null && (new File(truststorePath)).exists()) { - System.setProperty("javax.net.ssl.trustStore", truststorePath); - System.setProperty("javax.net.ssl.trustStorePassword", truststorePassword); - } + if(truststorePath != null && truststorePassword != null && (new File(truststorePath)).exists()) { + System.setProperty("javax.net.ssl.trustStore", truststorePath); + System.setProperty("javax.net.ssl.trustStorePassword", truststorePassword); + } if(keystorePath != null && keystorePassword != null && (new File(keystorePath)).exists()) { - DefaultClientConfig config = new DefaultClientConfig(); - //both jersey and HttpURLConnection can use this - SSLContext ctx = null; - try { - ctx = SSLContext.getInstance("TLS"); - - KeyManagerFactory kmf = null; - try { - String storeType = "PKCS12"; - String def = KeyStore.getDefaultType(); - kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - FileInputStream fin = new FileInputStream(keystorePath); - - String extension = keystorePath.substring(keystorePath.lastIndexOf(".") + 1); - - if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { - storeType = "JKS"; - } - KeyStore ks = KeyStore.getInstance(storeType); - - char[] pwd = keystorePassword.toCharArray(); - ks.load(fin, pwd); - kmf.init(ks, pwd); - } catch (Exception ex) { - LOG.error("AAIResource", ex); - } - - ctx.init(kmf.getKeyManagers(), null, null); - config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { - @Override - public boolean verify( String s, SSLSession sslSession ) { - return ignoreCertificateHostError; - } - }, ctx)); - - CTX = ctx; - LOG.debug("SSLContext created"); - - } catch (KeyManagementException | NoSuchAlgorithmException exc) { - LOG.error("AAIResource", exc); - } + DefaultClientConfig config = new DefaultClientConfig(); + //both jersey and HttpURLConnection can use this + SSLContext ctx = null; + try { + ctx = SSLContext.getInstance("TLS"); + + KeyManagerFactory kmf = null; + try { + String storeType = "PKCS12"; + String def = KeyStore.getDefaultType(); + kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + FileInputStream fin = new FileInputStream(keystorePath); + + String extension = keystorePath.substring(keystorePath.lastIndexOf(".") + 1); + + if(extension != null && !extension.isEmpty() && extension.equalsIgnoreCase("JKS")) { + storeType = "JKS"; + } + KeyStore ks = KeyStore.getInstance(storeType); + + char[] pwd = keystorePassword.toCharArray(); + ks.load(fin, pwd); + kmf.init(ks, pwd); + } catch (Exception ex) { + LOG.error("AAIResource", ex); + } + + ctx.init(kmf.getKeyManagers(), null, null); + config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() { + @Override + public boolean verify( String s, SSLSession sslSession ) { + return ignoreCertificateHostError; + } + }, ctx)); + + CTX = ctx; + LOG.debug("SSLContext created"); + + } catch (KeyManagementException | NoSuchAlgorithmException exc) { + LOG.error("AAIResource", exc); + } } try { @@ -194,68 +194,68 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { methodsField.set(null, methods); } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) { - e.printStackTrace(); + LOG.warn("Adding PATCH method", e); } LOG.info("AAIResource.ctor initialized."); - } + } - private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); - private final MetricLogger ml = new MetricLogger(); + private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); + private final MetricLogger ml = new MetricLogger(); - private SSLContext CTX; + private SSLContext CTX; - private int connection_timeout = 300000; + private int connection_timeout = 300000; - private int read_timeout = 300000; + private int read_timeout = 300000; - /** - * Returns an String that contains JSON data returned from the AAI Server. - *

- * This method always returns immediately, whether or not the - * data exists. - * - * @param request an instance of AAIRequiest representing - * the request made by DirectedGraph node. - * @return the JSON based representation of data instance requested. - * @see String - */ - @Override - public String get(AAIRequest request) throws AAIServiceException { - String response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; + /** + * Returns an String that contains JSON data returned from the AAI Server. + *

+ * This method always returns immediately, whether or not the + * data exists. + * + * @param request an instance of AAIRequiest representing + * the request made by DirectedGraph node. + * @return the JSON based representation of data instance requested. + * @see String + */ + @Override + public String get(AAIRequest request) throws AAIServiceException { + String response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; - StringBuilder errorStringBuilder = new StringBuilder(); + StringBuilder errorStringBuilder = new StringBuilder(); - try { + try { if(request.getRequestObject() != null) { - requestUrl = request.getRequestUrl(HttpMethod.POST, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.POST); - String json_text = request.toJSONString(); - LOGwriteDateTrace("data", json_text); - logMetricRequest("POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); - osw.flush(); + requestUrl = request.getRequestUrl(HttpMethod.POST, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.POST); + String json_text = request.toJSONString(); + LOGwriteDateTrace("data", json_text); + logMetricRequest("POST "+requestUrl.getPath(), json_text, requestUrl.getPath()); + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + osw.write(json_text); + osw.flush(); } else { - requestUrl = request.getRequestUrl(HttpMethod.GET, null); - requestUrl = appendDepth(requestUrl, request); - con = getConfiguredConnection(requestUrl, HttpMethod.GET); - logMetricRequest("GET "+requestUrl.getPath(), "", requestUrl.getPath()); + requestUrl = request.getRequestUrl(HttpMethod.GET, null); + requestUrl = appendDepth(requestUrl, request); + con = getConfiguredConnection(requestUrl, HttpMethod.GET); + logMetricRequest("GET "+requestUrl.getPath(), "", requestUrl.getPath()); } // Check for errors String responseMessage = con.getResponseMessage(); int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); + inputStream = con.getInputStream(); } else { - inputStream = con.getErrorStream(); + inputStream = con.getErrorStream(); } // Process the response @@ -267,121 +267,121 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { ObjectMapper mapper = AAIService.getObjectMapper(); - if (responseCode == HttpURLConnection.HTTP_OK) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - response = stringBuilder.toString(); - try { - Object object = mapper.readValue(response, Object.class); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); - } catch(Exception exc) { - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); - } + if (responseCode == HttpURLConnection.HTTP_OK) { + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + response = stringBuilder.toString(); + try { + Object object = mapper.readValue(response, Object.class); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(object)); + } catch(Exception exc) { + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, responseMessage, mapper.writeValueAsString(response)); + } } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - ErrorResponse errorresponse = null; - try { - errorresponse = mapper.readValue(reader, ErrorResponse.class); - } catch(Exception exc) { - errorresponse = new ErrorResponse(); - RequestError requestError = new RequestError(); - ServiceException serviceException = new ServiceException(); - serviceException.setText("Entry does not exist."); - requestError.setServiceException(serviceException); - errorresponse.setRequestError(requestError ); - } - throw new AAIServiceException(responseCode, errorresponse); + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + ErrorResponse errorresponse = null; + try { + errorresponse = mapper.readValue(reader, ErrorResponse.class); + } catch(Exception exc) { + errorresponse = new ErrorResponse(); + RequestError requestError = new RequestError(); + ServiceException serviceException = new ServiceException(); + serviceException.setText("Entry does not exist."); + requestError.setServiceException(serviceException); + errorresponse.setRequestError(requestError ); + } + throw new AAIServiceException(responseCode, errorresponse); } else if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { - StringBuilder stringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - ServiceException serviceException = new ServiceException(); - serviceException.setMessageId("HTTP_UNAUTHORIZED"); - serviceException.setText(stringBuilder.toString()); - RequestError requestError = new RequestError(); - requestError.setServiceException(serviceException); - ErrorResponse errorresponse = new ErrorResponse(); - errorresponse.setRequestError(requestError); - throw new AAIServiceException(responseCode, errorresponse); + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + ServiceException serviceException = new ServiceException(); + serviceException.setMessageId("HTTP_UNAUTHORIZED"); + serviceException.setText(stringBuilder.toString()); + RequestError requestError = new RequestError(); + requestError.setServiceException(serviceException); + ErrorResponse errorresponse = new ErrorResponse(); + errorresponse.setRequestError(requestError); + throw new AAIServiceException(responseCode, errorresponse); } else { -// StringBuilder errorStringBuilder = new StringBuilder(); - String line = null; - while( ( line = reader.readLine() ) != null ) { - errorStringBuilder.append("\n").append( line ); - } - - ErrorResponse errorresponse = mapper.readValue(errorStringBuilder.toString(), ErrorResponse.class); -// ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); +// StringBuilder errorStringBuilder = new StringBuilder(); + String line = null; + while( ( line = reader.readLine() ) != null ) { + errorStringBuilder.append("\n").append( line ); + } + + ErrorResponse errorresponse = mapper.readValue(errorStringBuilder.toString(), ErrorResponse.class); +// ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn(errorStringBuilder.toString(), exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - /** - * Returns an String that contains JSON data returned from the AAI Server. - *

- * This method always returns immediately, whether or not the - * data exists. - * - * @param request an instance of AAIRequiest representing - * the request made by DirectedGraph node. - * @return the JSON based representation of data instance requested. - * @see String - */ - @Override - public String post(AAIRequest request) throws AAIServiceException { - InputStream inputStream = null; - - try { - String resourceVersion = null; - AAIDatum instance = request.getRequestObject(); - - try { - Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); - if(getResourceVersionMethod != null){ - try { - Object object = getResourceVersionMethod.invoke(instance); - if(object != null) - resourceVersion = object.toString(); - } catch (InvocationTargetException x) { - Throwable cause = x.getCause(); - } - } - } catch(Exception exc) { - LOG.error("", exc); - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); - ObjectMapper mapper = AAIService.getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest("PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn(errorStringBuilder.toString(), exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + /** + * Returns an String that contains JSON data returned from the AAI Server. + *

+ * This method always returns immediately, whether or not the + * data exists. + * + * @param request an instance of AAIRequiest representing + * the request made by DirectedGraph node. + * @return the JSON based representation of data instance requested. + * @see String + */ + @Override + public String post(AAIRequest request) throws AAIServiceException { + InputStream inputStream = null; + + try { + String resourceVersion = null; + AAIDatum instance = request.getRequestObject(); + + try { + Method getResourceVersionMethod = instance.getClass().getMethod("getResourceVersion"); + if(getResourceVersionMethod != null){ + try { + Object object = getResourceVersionMethod.invoke(instance); + if(object != null) + resourceVersion = object.toString(); + } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); + } + } + } catch(Exception exc) { + LOG.error("", exc); + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); + ObjectMapper mapper = AAIService.getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest("PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); osw.write(json_text); osw.flush(); @@ -389,9 +389,9 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { String responseMessage = con.getResponseMessage(); int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); + inputStream = con.getInputStream(); } else { - inputStream = con.getErrorStream(); + inputStream = con.getErrorStream(); } LOG.debug("HttpURLConnection result:" + responseCode + " : " + responseMessage); @@ -403,58 +403,58 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { reader = new BufferedReader( new InputStreamReader( inputStream ) ); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return stringBuilder.toString(); + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder.length() > 0) ? stringBuilder.toString() : "{no-data}"); + return stringBuilder.toString(); } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); + throw new AAIServiceException(responseCode, errorresponse); } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.post", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - /** - * Returns Boolean that contains completion state of the command executed. - *

- * This method always returns immediately, whether or not the - * data exists. - * - * @param request an instance of AAIRequiest representing - * @param resourceVersion a resource version of the data instacne to be deleted. - * the request made by DirectedGraph node. - * @return completion state of the command. - * @see String - */ - @Override - public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { - Boolean response = null; - InputStream inputStream = null; - - if(resourceVersion == null) { - throw new AAIServiceException("resource-version is required for DELETE request"); - } - - try { - URL requestUrl = null; + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.post", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + /** + * Returns Boolean that contains completion state of the command executed. + *

+ * This method always returns immediately, whether or not the + * data exists. + * + * @param request an instance of AAIRequiest representing + * @param resourceVersion a resource version of the data instacne to be deleted. + * the request made by DirectedGraph node. + * @return completion state of the command. + * @see String + */ + @Override + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { + Boolean response = null; + InputStream inputStream = null; + + if(resourceVersion == null) { + throw new AAIServiceException("resource-version is required for DELETE request"); + } + + try { + URL requestUrl = null; HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); logMetricRequest("DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); conn.setDoOutput(true); @@ -463,9 +463,9 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { String responseMessage = conn.getResponseMessage(); int responseCode = conn.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = conn.getInputStream(); + inputStream = conn.getInputStream(); } else { - inputStream = conn.getErrorStream(); + inputStream = conn.getErrorStream(); } // Process the response @@ -478,59 +478,59 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { ObjectMapper mapper = AAIService.getObjectMapper(); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); - - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); - response = true; - } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { - LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); - response = false; + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, stringBuilder.toString()); + response = true; + } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) { + LOGwriteEndingTrace(responseCode, responseMessage, "Entry does not exist."); + response = false; } else { - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("delete", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - } - return response; - } - - /** - * Returns an String that contains JSON data returned from the AAI Server. - *

- * This method always returns immediately, whether or not the - * data exists. - * - * @param request an instance of AAIRequiest representing - * the request made by DirectedGraph node. - * @param clas an definition of the class for which data will be returned - * @return the instance of the class with data. - * @see String - */ - @Override - public Object query(AAIRequest request, Class clas) throws AAIServiceException { - Object response = null; - InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; - - try { + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("delete", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + } + return response; + } + + /** + * Returns an String that contains JSON data returned from the AAI Server. + *

+ * This method always returns immediately, whether or not the + * data exists. + * + * @param request an instance of AAIRequiest representing + * the request made by DirectedGraph node. + * @param clas an definition of the class for which data will be returned + * @return the instance of the class with data. + * @see String + */ + @Override + public Object query(AAIRequest request, Class clas) throws AAIServiceException { + Object response = null; + InputStream inputStream = null; + HttpURLConnection con = null; + URL requestUrl = null; + + try { con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); logMetricRequest("GET "+requestUrl.getPath(), "", requestUrl.getPath()); @@ -538,66 +538,66 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { String responseMessage = con.getResponseMessage(); int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = con.getInputStream(); + inputStream = con.getInputStream(); } else { - inputStream = con.getErrorStream(); + inputStream = con.getErrorStream(); } logMetricResponse(responseCode, responseMessage); ObjectMapper mapper = AAIService.getObjectMapper(); - if (responseCode == HttpURLConnection.HTTP_OK) { - // Process the response - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - response = mapper.readValue(reader, clas); - LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); + if (responseCode == HttpURLConnection.HTTP_OK) { + // Process the response + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + response = mapper.readValue(reader, clas); + LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response)); } else if (responseCode == HttpURLConnection.HTTP_NOT_FOUND) { - LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); - return response; - } else { - BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); - throw new AAIServiceException(responseCode, errorresponse); + LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist."); + return response; + } else { + BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) ); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("GET", exc); - throw new AAIServiceException(exc); - } finally { - if(inputStream != null){ - try { - inputStream.close(); - } catch(Exception exc) { - - } - } - con = null; - } - return response; - } - - @Override - public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { - InputStream inputStream = null; - - try { - AAIDatum instance = request.getRequestObject(); - if(instance instanceof ResourceVersion) { - resourceVersion = ((ResourceVersion)instance).getResourceVersion(); - } - - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); - ObjectMapper mapper = AAIService.getObjectMapper(); - String json_text = request.toJSONString(); - - LOGwriteDateTrace("data", json_text); - logMetricRequest("PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); - - OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("GET", exc); + throw new AAIServiceException(exc); + } finally { + if(inputStream != null){ + try { + inputStream.close(); + } catch(Exception exc) { + + } + } + con = null; + } + return response; + } + + @Override + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { + InputStream inputStream = null; + + try { + AAIDatum instance = request.getRequestObject(); + if(instance instanceof ResourceVersion) { + resourceVersion = ((ResourceVersion)instance).getResourceVersion(); + } + + URL requestUrl = null; + HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); + ObjectMapper mapper = AAIService.getObjectMapper(); + String json_text = request.toJSONString(); + + LOGwriteDateTrace("data", json_text); + logMetricRequest("PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); + + OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); osw.write(json_text); osw.flush(); @@ -605,9 +605,9 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { String responseMessage = con.getResponseMessage(); int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - inputStream = con.getInputStream(); + inputStream = con.getInputStream(); } else { - inputStream = con.getErrorStream(); + inputStream = con.getErrorStream(); } LOG.info("HttpURLConnection result: " + responseCode + " : " + responseMessage); @@ -619,133 +619,133 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { reader = new BufferedReader( new InputStreamReader( inputStream ) ); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { - StringBuilder stringBuilder = new StringBuilder(); + if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) { + StringBuilder stringBuilder = new StringBuilder(); - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append( line ); - } - LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); - return true; + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append( line ); + } + LOGwriteEndingTrace(responseCode, responseMessage, (stringBuilder != null) ? stringBuilder.toString() : "{no-data}"); + return true; } else { - StringBuilder stringBuilder = new StringBuilder(); + StringBuilder stringBuilder = new StringBuilder(); + + while( ( line = reader.readLine() ) != null ) { + stringBuilder.append("\n").append( line ); + } + LOG.info(stringBuilder.toString()); + - while( ( line = reader.readLine() ) != null ) { - stringBuilder.append("\n").append( line ); - } - LOG.info(stringBuilder.toString()); + ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); + LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + throw new AAIServiceException(responseCode, errorresponse); + } + } catch(AAIServiceException aaiexc) { + throw aaiexc; + } catch (Exception exc) { + LOG.warn("AAIRequestExecutor.patch", exc); + throw new AAIServiceException(exc); + } finally { + try { + if(inputStream != null) + inputStream.close(); + } catch (Exception exc) { + + } + } + } + + /** + * + * @param httpReqUrl + * @param method + * @return + * @throws Exception + */ + protected HttpURLConnection getConfiguredConnection(URL httpReqUrl, String method) throws Exception { + HttpURLConnection con = (HttpURLConnection) httpReqUrl.openConnection(); + + // Set up the connection properties + con.setRequestProperty("Connection", "close"); + con.setDoInput(true); + con.setDoOutput(true); + con.setUseCaches(false); + con.setConnectTimeout(connection_timeout); + con.setReadTimeout(read_timeout); + con.setRequestMethod(method); + con.setRequestProperty("Accept", "application/json"); + con.setRequestProperty("Transfer-Encoding","chunked"); + con.setRequestProperty("Content-Type", + "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json"); + con.setRequestProperty("X-FromAppId", applicationId); + con.setRequestProperty("X-TransactionId", TransactionIdTracker.getNextTransactionId()); + String mlId = ml.getRequestID(); + if (mlId != null && !mlId.isEmpty()) { + LOG.debug(String.format("MetricLogger requestId = %s", mlId)); + con.setRequestProperty(MetricLogger.REQUEST_ID, mlId); + } else { + LOG.debug("MetricLogger requestId is null"); + } - ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); - LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); + if (userName != null && !userName.isEmpty() && userPassword != null && !userPassword.isEmpty()) { + String basicAuth = "Basic " + new String(Base64.encodeBase64((userName + ":" + userPassword).getBytes())); + con.setRequestProperty("Authorization", basicAuth); + } - throw new AAIServiceException(responseCode, errorresponse); + if (con instanceof HttpsURLConnection && CTX != null) { + SSLSocketFactory sockFact = CTX.getSocketFactory(); + HttpsURLConnection.class.cast(con).setSSLSocketFactory(sockFact); + } + return con; + } + + private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { + + String depth = request.requestProperties.getProperty("depth", "1"); + String path = requestUrl.toString(); + if(path.contains("?depth=") || path.contains("&depth=")) { + return requestUrl; + } else { + if(path.contains("?")) { + path = String.format("%s&depth=%s", path, depth); + } else { + path = String.format("%s?depth=%s", path, depth); } - } catch(AAIServiceException aaiexc) { - throw aaiexc; - } catch (Exception exc) { - LOG.warn("AAIRequestExecutor.patch", exc); - throw new AAIServiceException(exc); - } finally { - try { - if(inputStream != null) - inputStream.close(); - } catch (Exception exc) { - - } - } - } - - /** - * - * @param httpReqUrl - * @param method - * @return - * @throws Exception - */ - protected HttpURLConnection getConfiguredConnection(URL httpReqUrl, String method) throws Exception { - HttpURLConnection con = (HttpURLConnection) httpReqUrl.openConnection(); - - // Set up the connection properties - con.setRequestProperty("Connection", "close"); - con.setDoInput(true); - con.setDoOutput(true); - con.setUseCaches(false); - con.setConnectTimeout(connection_timeout); - con.setReadTimeout(read_timeout); - con.setRequestMethod(method); - con.setRequestProperty("Accept", "application/json"); - con.setRequestProperty("Transfer-Encoding","chunked"); - con.setRequestProperty("Content-Type", - "PATCH".equalsIgnoreCase(method) ? "application/merge-patch+json" : "application/json"); - con.setRequestProperty("X-FromAppId", applicationId); - con.setRequestProperty("X-TransactionId", TransactionIdTracker.getNextTransactionId()); - String mlId = ml.getRequestID(); - if (mlId != null && !mlId.isEmpty()) { - LOG.debug(String.format("MetricLogger requestId = %s", mlId)); - con.setRequestProperty(MetricLogger.REQUEST_ID, mlId); - } else { - LOG.debug("MetricLogger requestId is null"); - } - - if (userName != null && !userName.isEmpty() && userPassword != null && !userPassword.isEmpty()) { - String basicAuth = "Basic " + new String(Base64.encodeBase64((userName + ":" + userPassword).getBytes())); - con.setRequestProperty("Authorization", basicAuth); - } - - if (con instanceof HttpsURLConnection && CTX != null) { - SSLSocketFactory sockFact = CTX.getSocketFactory(); - HttpsURLConnection.class.cast(con).setSSLSocketFactory(sockFact); - } - return con; - } - - private URL appendDepth(URL requestUrl, AAIRequest request) throws MalformedURLException { - - String depth = request.requestProperties.getProperty("depth", "1"); - String path = requestUrl.toString(); - if(path.contains("?depth=") || path.contains("&depth=")) { - return requestUrl; - } else { - if(path.contains("?")) { - path = String.format("%s&depth=%s", path, depth); - } else { - path = String.format("%s?depth=%s", path, depth); - } - return new URL(path); - } - } - - public void logMetricRequest(String targetServiceName, String msg, String path){ - String svcInstanceId = ""; - String svcName = null; - String partnerName = null; - String targetEntity = "A&AI"; - String targetVirtualEntity = null; - - targetServiceName = ""; - - ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); - } - - public void logMetricResponse(int responseCode, String responseDescription){ - ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); - } - - protected void LOGwriteFirstTrace(String method, String url) { - String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); - LOG.info("A&AI transaction :"); - LOG.info("Request Time : " + time + ", Method : " + method); - LOG.info("Request URL : "+ url); - } - - protected void LOGwriteDateTrace(String name, String data) { - LOG.info("Input - " + name + " : " + data); - } - - protected void LOGwriteEndingTrace(int response_code, String comment, String data) { - LOG.info("Response code : " + response_code +", " + comment); - LOG.info(String.format("Response data : %s", data)); - } + return new URL(path); + } + } + + public void logMetricRequest(String targetServiceName, String msg, String path){ + String svcInstanceId = ""; + String svcName = null; + String partnerName = null; + String targetEntity = "A&AI"; + String targetVirtualEntity = null; + + targetServiceName = ""; + + ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); + } + + public void logMetricResponse(int responseCode, String responseDescription){ + ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); + } + + protected void LOGwriteFirstTrace(String method, String url) { + String time = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(System.currentTimeMillis()); + LOG.info("A&AI transaction :"); + LOG.info("Request Time : " + time + ", Method : " + method); + LOG.info("Request URL : "+ url); + } + + protected void LOGwriteDateTrace(String name, String data) { + LOG.info("Input - " + name + " : " + data); + } + + protected void LOGwriteEndingTrace(int response_code, String comment, String data) { + LOG.info("Response code : " + response_code +", " + comment); + LOG.info(String.format("Response data : %s", data)); + } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index f26b71de9..21f8859d5 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -174,7 +174,7 @@ public abstract class AAIRequest { try { URL url = null; - Bundle bundle = FrameworkUtil.getBundle(AAIServiceActivator.class); + Bundle bundle = FrameworkUtil.getBundle(AAIService.class); if(bundle != null) { BundleContext ctx = bundle.getBundleContext(); if(ctx == null) diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index c4604a4a1..c8c5b92df 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -26,6 +26,7 @@ import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; @@ -152,11 +153,25 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe private AAIExecutorInterface executor; - public void setExecutor(AAIExecutorInterface executor) { - this.executor = executor; - } + public AAIService(final UtilsProvider configuration) { + this(configuration.getProperties()); + } + + public AAIService(final URL url) { + this(getProperties(url)); + } + + private static Properties getProperties(URL url) { + Properties properties = new Properties(); + try { + properties.load(url.openStream()); + } catch (IOException exc) { + LOG.error("getProperties", exc); + } + return properties; + } - public AAIService(URL propURL) { + public AAIService(Properties props) { LOG.info("Entered AAIService.ctor"); String runtime = System.getProperty("aaiclient.runtime"); @@ -166,9 +181,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe runtimeOSGI = false; } - Properties props = null; try { - props = initialize(propURL); AAIRequest.setProperties(props, this); } catch(Exception exc){ @@ -198,7 +211,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String tmpApplicationId = props.getProperty(APPLICATION_ID); if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { - tmpApplicationId = "SDNC"; + tmpApplicationId = "SDNC"; } this.applicationId = tmpApplicationId; @@ -329,6 +342,10 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } + public void setExecutor(AAIExecutorInterface executor) { + this.executor = executor; + } + public void cleanUp() { } @@ -1373,7 +1390,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String normResource = resource.split(":")[0]; switch(normResource){ - case "custom-query": + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -1402,7 +1419,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String normResource = resource.split(":")[0]; switch(normResource){ - case "custom-query": + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -1431,7 +1448,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe String normResource = resource.split(":")[0]; switch(normResource){ - case "custom-query": + case "custom-query": case "formatted-query": case "generic-query": case "named-query": diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java deleted file mode 100755 index fab0ee707..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceActivator.java +++ /dev/null @@ -1,239 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FilenameFilter; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashSet; -import java.util.Properties; -import java.util.Set; - -import org.onap.ccsdk.sli.core.sli.ConfigurationException; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AAIServiceActivator implements BundleActivator { - - private static final String DEFAULT_CONFIG_FILE_NAME = "aaiclient.config"; - private static final String DEFAULT_PROPERTY_FILE_NAME = "aaiclient.properties"; - private static final String DEFAULT_KEYWORD = "default"; - - private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR"; - - private static final String BVC_PROPERTY_FILE = "/opt/bvc/controller/configuration/aaiclient.properties"; - private static final String DEFAULT_SDNC_PROPERTY_FILE = "/opt/sdnc/data/properties/aaiclient.properties"; - - private Set registrationSet = new HashSet(); - - private static final Logger LOG = LoggerFactory.getLogger(AAIServiceActivator.class); - - @Override - public void start(BundleContext ctx) throws Exception { - - System.setProperty("aaiclient.runtime", "OSGI"); - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - - // check SDNC CONFIG DIR system property - if(sdnConfigDirectory == null ) { - LOG.error("System property SDNC_CONFIG_DIR is not defined."); - LOG.info("Defaulting SDNC_CONFIG_DIR to '/opt/sdnc/data/properties/'"); - sdnConfigDirectory = "/opt/sdnc/data/properties/"; - } - - LOG.debug("Configuration directory used : " + sdnConfigDirectory); - - // check existance of properties directory - File configDirectory = new File(sdnConfigDirectory); - if(!configDirectory.exists() || !configDirectory.isDirectory()){ - LOG.error("System property SDNC_CONFIG_DIR = '" + sdnConfigDirectory + "' does not point to a valid directory. AAIService will not be initialized."); - return; - } - - Properties properties = new Properties(); - InputStream input = null; - - // find aaiclient config file - File[] files = findFiles(configDirectory, DEFAULT_CONFIG_FILE_NAME); - - // read the aai config data - if(files != null && files.length > 0) { - LOG.debug("AAIService config file exists and it is named :" + files[0].getAbsolutePath() ); - try { - input = new FileInputStream(files[0]); - properties.load(input); - LOG.debug("Loaded AAI Client properties from " + files[0].getAbsolutePath()); - } catch (IOException exc) { - LOG.warn("Problem loading AAI Client properties from " + files[0].getAbsolutePath(), exc); - } finally { - if(input != null ) { - try { - input.close(); - } catch(Exception exc) { - LOG.error("Failed to close InputStream", exc); - } - } - int size = properties.keySet().size() ; - if(size == 0) { - LOG.debug(files[0].getAbsolutePath() + " contained no entries. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - } - } else { - LOG.debug("No configuration entries were found. Adding the default entry"); - properties.put(DEFAULT_KEYWORD, DEFAULT_PROPERTY_FILE_NAME); - } - - Set entrySet = properties. stringPropertyNames(); - String value = null; - - // initialize AAI Service for each aai client property files - for(String entry : entrySet) { - value = properties.getProperty(entry); - if(value != null && !value.isEmpty()) { - - final String fileName = value; - - File[] propertyFileList = findFiles(configDirectory, fileName); - - for(File propertiesFile : propertyFileList) { - LOG.info(propertiesFile.getName()); - // Advertise AAI resource adaptor - AAIClient impl = null; - switch(entry) { - case DEFAULT_KEYWORD: - impl = new AAIService(propertiesFile.toURI().toURL()); - break; - case "trinity": - impl = new AAITrinityService(propertiesFile.toURI().toURL()); - break; - default: - LOG.error("Invalid configuration keyword '"+entry+"' detected in aaiclient.config. Aborting initialization"); - continue; - } - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - - } - } - } - } - -// @Override - @Deprecated - public void start1(BundleContext ctx) throws Exception { - - String sdnConfigDirectory = System.getenv(SDNC_CONFIG_DIR); - String propertiesPath = null; - - if (sdnConfigDirectory == null || sdnConfigDirectory.isEmpty()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - throw new ConfigurationException("Cannot find config file - "+filename+" and "+SDNC_CONFIG_DIR+" is unset"); - } - } - } else { - propertiesPath = sdnConfigDirectory + "/aaiclient.properties"; - LOG.info("Environment variable " + SDNC_CONFIG_DIR + " set, - calculated path " + propertiesPath); - } - - File propFile = new File(propertiesPath); - if(!propFile.exists()) { - String filename = DEFAULT_SDNC_PROPERTY_FILE; - File file = new File(filename); - if(file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - filename = BVC_PROPERTY_FILE; - file = new File(filename); - if(file.exists()) { - propertiesPath = filename; - LOG.info("Using property file (1): " + propertiesPath); - } else { - LOG.error("AnAI Service Property file " + propertiesPath + "does not exist."); - throw new ConfigurationException("Cannot find config file - "+propertiesPath+" and " + SDNC_CONFIG_DIR + " is unset."); - } - } - } - - // Advertise AAI resource adaptor - AAIClient impl = new AAIService(propFile.toURI().toURL()); - String regName = impl.getClass().getName(); - - LOG.debug("Registering AAIService service "+regName); - ServiceRegistration registration = ctx.registerService(regName, impl, null); - registrationSet.add(registration); - } - - @Override - public void stop(BundleContext ctx) throws Exception { - - Set localRegistrationSet = new HashSet(); - localRegistrationSet.addAll(registrationSet); - - for(ServiceRegistration registration : localRegistrationSet) { - if (registration != null) { - try { - AAIService aaiService = (AAIService)ctx.getService(registration.getReference()); - registration.unregister(); - registrationSet.remove(registration); - if(aaiService != null) { - aaiService.cleanUp(); - } - } catch(Exception exc) { - if(LOG.isDebugEnabled()) - LOG.debug(exc.getMessage()); - } - } - } - } - - private File[] findFiles(File configDirectory, final String filter) { - File[] files = configDirectory.listFiles(new FilenameFilter() { - public boolean accept(File dir, String name) { - return name.equalsIgnoreCase(filter); - } - }); - - return files; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProvider.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProvider.java new file mode 100755 index 000000000..3450ff747 --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProvider.java @@ -0,0 +1,164 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Optional; +import java.util.Properties; +import java.util.Vector; + +import org.onap.ccsdk.sli.core.utils.JREFileResolver; +import org.onap.ccsdk.sli.core.utils.KarafRootFileResolver; +import org.onap.ccsdk.sli.core.utils.PropertiesFileResolver; +import org.onap.ccsdk.sli.core.utils.common.BundleContextFileResolver; +import org.onap.ccsdk.sli.core.utils.common.CoreDefaultFileResolver; +import org.onap.ccsdk.sli.core.utils.common.SdncConfigEnvVarFileResolver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Responsible for determining the properties file to use and instantiating the DBResourceManager + * Service. The priority for properties file resolution is as follows: + * + *

    + *
  1. A directory identified by the system environment variable SDNC_CONFIG_DIR
  2. + *
  3. The default directory DEFAULT_DBLIB_PROP_DIR
  4. + *
  5. A directory identified by the JRE argument dblib.properties
  6. + *
  7. A dblib.properties file located in the karaf root directory
  8. + *
+ */ +public class AAIServiceProvider implements UtilsProvider { + + private static final Logger LOG = LoggerFactory.getLogger(AAIServiceProvider.class); + + /** + * The name of the properties file for database configuration + */ + private static final String AAISEERVICE_PROP_FILE_NAME = "aaiclient.properties"; + + /** + * A prioritized list of strategies for resolving dblib properties files. + */ + private Vector dblibPropertiesFileResolvers = new Vector(); + + /** + * The configuration properties for the db connection. + */ + private Properties properties; + + /** + * Set up the prioritized list of strategies for resolving dblib properties files. + */ + public AAIServiceProvider() { + dblibPropertiesFileResolvers.add(new JREFileResolver( + "Using property file (1) from JRE argument", AAIServiceProvider.class + )); + dblibPropertiesFileResolvers.add(new BundleContextFileResolver( + "Using property file (1) from JRE argument", AAIServiceProvider.class + )); + dblibPropertiesFileResolvers.add(new SdncConfigEnvVarFileResolver( + "Using property file (2) from environment variable" + )); + dblibPropertiesFileResolvers.add(new KarafRootFileResolver( + "Using property file (4) from karaf root", this + )); + dblibPropertiesFileResolvers.add(new CoreDefaultFileResolver( + "Using property file (3) from default directory" + )); + + // determines properties file as according to the priority described in the class header comment + final File propertiesFile = determinePropertiesFile(); + if (propertiesFile != null) { + try(FileInputStream fileInputStream = new FileInputStream(propertiesFile)) { + properties = new Properties(); + properties.load(fileInputStream); + } catch (final IOException e) { + LOG.error("Failed to load properties for file: {}", propertiesFile.toString(), + new AAIServiceException("Failed to load properties for file: " + + propertiesFile.toString(), e)); + } + } + } + + /** + * Extract db config properties. + * + * @return the db config properties + */ + public Properties getProperties() { + return properties; + } + + /** + * Reports the method chosen for properties resolution to the Logger. + * + * @param message Some user friendly message + * @param fileOptional The file location of the chosen properties file + * @return the file location of the chosen properties file + */ + private static File reportSuccess(final String message, final Optional fileOptional) { + if(fileOptional.isPresent()) { + final File file = fileOptional.get(); + LOG.info("{} {}", message, file.getPath()); + return file; + } + return null; + } + + /** + * Reports fatal errors. This is the case in which no properties file could be found. + * + * @param message An appropriate fatal error message + * @param dblibConfigurationException An exception describing what went wrong during resolution + */ + private static void reportFailure(final String message, + final AAIServiceException dblibConfigurationException) { + + LOG.error("{}", message, dblibConfigurationException); + } + + /** + * Determines the dblib properties file to use based on the following priority: + *
    + *
  1. A directory identified by the system environment variable SDNC_CONFIG_DIR
  2. + *
  3. The default directory DEFAULT_DBLIB_PROP_DIR
  4. + *
  5. A directory identified by the JRE argument dblib.properties
  6. + *
  7. A dblib.properties file located in the karaf root directory
  8. + *
+ */ + File determinePropertiesFile() { + + for (final PropertiesFileResolver dblibPropertiesFileResolver : dblibPropertiesFileResolvers) { + final Optional fileOptional = dblibPropertiesFileResolver.resolveFile(AAISEERVICE_PROP_FILE_NAME); + if (fileOptional.isPresent()) { + return reportSuccess(dblibPropertiesFileResolver.getSuccessfulResolutionMessage(), fileOptional); + } + } + + reportFailure("Missing configuration properties resource(3)", + new AAIServiceException("Missing configuration properties resource(3): " + + AAISEERVICE_PROP_FILE_NAME)); + return null; + } +} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java index 8b273df73..6c627ff6a 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAITrinityService.java @@ -3,14 +3,14 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,18 +21,16 @@ package org.onap.ccsdk.sli.adaptors.aai; -import java.net.URL; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AAITrinityService extends AAIService { - - private static final Logger LOG = LoggerFactory.getLogger(AAITrinityService.class); - public AAITrinityService(URL propURL) { - super(propURL); - LOG.info("Entered AAITrinityService.ctor"); - } + private static final Logger LOG = LoggerFactory.getLogger(AAITrinityService.class); + + public AAITrinityService(UtilsProvider configuration) { + super(configuration); + LOG.info("Entered AAITrinityService.ctor"); + } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UtilsProvider.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UtilsProvider.java new file mode 100755 index 000000000..c89e35b2c --- /dev/null +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/UtilsProvider.java @@ -0,0 +1,36 @@ +/*- + * ============LICENSE_START======================================================= + * onap + * ================================================================================ + * Copyright (C) 2016 - 2017 ONAP + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import java.util.Properties; + +/** + * @author Rich Tabedzki + * + */ +public interface UtilsProvider { + /** + * Extract configuration properties. + * + * @return the configuration properties + */ + Properties getProperties(); +} diff --git a/aai-service/provider/src/main/resources/org/opendaylight/blueprint/aaiservice-blueprint.xml b/aai-service/provider/src/main/resources/org/opendaylight/blueprint/aaiservice-blueprint.xml new file mode 100755 index 000000000..970936610 --- /dev/null +++ b/aai-service/provider/src/main/resources/org/opendaylight/blueprint/aaiservice-blueprint.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + org.onap.ccsdk.sli.adaptors.aai.AAIService + org.onap.ccsdk.sli.adaptors.aai.AAIClient + + + + diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java deleted file mode 100755 index e0f201230..000000000 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/r1607/R1607AutoGeneratedTest.java +++ /dev/null @@ -1,491 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.r1607; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.xml.bind.SchemaOutputResolver; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.transform.Result; -import javax.xml.transform.stream.StreamResult; - -import org.apache.commons.lang.RandomStringUtils; -import org.apache.commons.lang.StringUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.junit.runners.MethodSorters; -import org.onap.ccsdk.sli.adaptors.aai.AAIClient; -import org.onap.ccsdk.sli.adaptors.aai.AAIDeclarations; -import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; -import org.onap.ccsdk.sli.adaptors.aai.AAIService; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.InventoryResponseItems; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.ObjectMapper; - - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class R1607AutoGeneratedTest { - - private static final Logger LOG = LoggerFactory.getLogger(R1607AutoGeneratedTest.class); - - protected static AAIClient client; - - protected Map cache = new HashMap(); - - @BeforeClass - public static void setUp() throws Exception { -// super.setUp(); - URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); -// client = new AAIService(url); - LOG.info("\nTaicAAIResourceTest.setUp\n"); - } - - @AfterClass - public static void tearDown() throws Exception { -// super.tearDown(); - client = null; - LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); - } - - -// @Test - public void test01AutoGeneratedRequest() { - - String[] requestDefinition = { - "query|generic-vnf|generic-vnf.vnf-id:assign:value:bnfm0001v-1147" - }; - - for(String line : requestDefinition){ - // parse request line resource | key structure - String[] segments = line.split("\\|"); - String action = segments[0]; - String resource = segments[1]; - String[] tmpKeys = segments[2].split("&"); - - - String localId = null; - - List keys = new ArrayList(); - String keyLine = null; - - for(String instruction : tmpKeys) { - String[] parts = instruction.split(":"); - String identifier = parts[0]; - String method = parts[2]; - - if(identifier.startsWith(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { - localId = identifier; - } - - switch(parts[1]) { - case "assign": - String postProcesss = parts[3]; - keyLine = processAssign(identifier, method, postProcesss); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - case "cached": - keyLine = processCached(identifier, method); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - } - - } - - switch(action){ - case "save": - List x = Arrays.asList(localId.split("\\.")); - - testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); - break; - case "query": - test03AutoGeneratedQueryRequest(resource, keys); - break; - case "delete": - test03AutoGeneratedDeleteRequest(resource, keys); - break; - } - } - - LOG.info("done"); - } - - - public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); - - Map data = new HashMap(); - - for(Field field : resourceClass.getDeclaredFields()) { - String type = field.getType().getName(); - if(type.startsWith("java.lang.")){ - Annotation[] fieldAnnotations = field.getAnnotations(); - for(int i = 0; i < fieldAnnotations.length; i++) { - Annotation a = fieldAnnotations[i]; - if(a instanceof JsonProperty){ - JsonProperty pa = (JsonProperty)a; - String name = pa.value(); - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } else - if(a instanceof javax.xml.bind.annotation.XmlElement) { - XmlElement xe = (XmlElement)a; - String name = xe.name(); - if("link-type".equals(name)){ - data.put(name, "roadmTail"); - continue; - } - if("operational-status".equals(name)){ - data.put(name, "available"); - continue; - } - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } - } - } - } - - SvcLogicContext ctx = new SvcLogicContext(); - - data.remove("resource-version"); - - QueryStatus resp = null; - - //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) - resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - SvcLogicContext ctx = new SvcLogicContext(); - try - { - - QueryStatus response = null; - - response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - - public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - SvcLogicContext ctx = new SvcLogicContext(); - - QueryStatus response = null; - - response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - static ArrayList findSetters(Class c) { - ArrayList list = new ArrayList(); - Method[] methods = c.getDeclaredMethods(); - for (Method method : methods) - if (isGetter(method)) - list.add(method); - return list; - } - - - public static boolean isGetter(Method method) { - if (Modifier.isPublic(method.getModifiers()) && - method.getParameterTypes().length == 0) { - if (method.getName().matches("^get[A-Z].*") && - !method.getReturnType().equals(void.class)) - return true; - if (method.getName().matches("^is[A-Z].*") && - method.getReturnType().equals(boolean.class)) - return true; - } - return false; - } - - public static boolean isSetter(Method method) { - return Modifier.isPublic(method.getModifiers()) && - method.getReturnType().equals(void.class) && - method.getParameterTypes().length == 1 && - method.getName().matches("^set[A-Z].*"); - } - - private String processAssign(String identifier, String method, String postProcess) { - String value = null; - if("uuid".equals(method)) { - value = UUID.randomUUID().toString(); - } - - if("cache".equals(postProcess)) { - cache.put(identifier, value); - } - - if("value".equals(method)) { - cache.put(identifier, postProcess); - value = postProcess; - } - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - private String processCached(String identifier, String method) { - String value = cache.get(identifier); - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { - if (key == null) { - return (null); - } - - LOG.debug("Converting key [" + key + "] to where clause"); - - if (key.startsWith("'") && key.endsWith("'")) { - key = key.substring(1, key.length() - 1); - - LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); - } - - String[] keyTerms = key.split("\\s+"); - - StringBuffer whereBuff = new StringBuffer(); - String term1 = null; - String op = null; - String term2 = null; - HashMap results = new HashMap(); - - for (int i = 0; i < keyTerms.length; i++) { - if (term1 == null) { - if ("and".equalsIgnoreCase(keyTerms[i]) - || "or".equalsIgnoreCase(keyTerms[i])) { - // Skip over ADD/OR - } else { - term1 = resolveTerm(keyTerms[i], ctx); - } - } else if (op == null) { - if ("==".equals(keyTerms[i])) { - op = "="; - } else { - op = keyTerms[i]; - } - } else { - term2 = resolveTerm(keyTerms[i], ctx); - term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); - results.put(term1, term2); - - term1 = null; - op = null; - term2 = null; - } - } - - return (results); - } - - private String resolveTerm(String term, SvcLogicContext ctx) { - if (term == null) { - return (null); - } - - LOG.debug("resolveTerm: term is " + term); - - if (term.startsWith("$") && (ctx != null)) { - // Resolve any index variables. - - return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); - } else if (term.startsWith("'") || term.startsWith("\"")) { - return (term); - } else { - return (term.replaceAll("-", "_")); - - } - - } - - private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { - - if (ctxVarName.indexOf('[') == -1) { - // Ctx variable contains no arrays - return (ctx.getAttribute(ctxVarName)); - } - - // Resolve any array references - StringBuffer sbuff = new StringBuffer(); - String[] ctxVarParts = ctxVarName.split("\\["); - sbuff.append(ctxVarParts[0]); - for (int i = 1; i < ctxVarParts.length; i++) { - if (ctxVarParts[i].startsWith("$")) { - int endBracketLoc = ctxVarParts[i].indexOf("]"); - if (endBracketLoc == -1) { - // Missing end bracket ... give up parsing - LOG.warn("Variable reference " + ctxVarName - + " seems to be missing a ']'"); - return (ctx.getAttribute(ctxVarName)); - } - - String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); - String remainder = ctxVarParts[i].substring(endBracketLoc); - - sbuff.append("["); - sbuff.append(ctx.getAttribute(idxVarName)); - sbuff.append(remainder); - - } else { - // Index is not a variable reference - sbuff.append("["); - sbuff.append(ctxVarParts[i]); - } - } - - return (ctx.getAttribute(sbuff.toString())); - } - -// @Test - public void test04VceDataPost() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - URL resource = this.getClass().getResource("/json/tails4.json"); - - LOG.info("Resource is " + resource.getFile()); - File requestFile = new File(resource.getFile()); - if(!requestFile.exists()) { - fail("Test file does not exist"); - } - SvcLogicContext ctx = new SvcLogicContext(); - ObjectMapper mapper = AAIService.getObjectMapper(); - InventoryResponseItems request = mapper.readValue(requestFile, InventoryResponseItems.class); - Map subnetsList = mapper.convertValue(request, Map.class); - AAIDeclarations.class.cast(client).writeMap(subnetsList, "aaiTmp", ctx); - assertNotNull(request); - - } - catch (Exception e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - - static class MySchemaOutputResolver extends SchemaOutputResolver { - - public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { - File file = new File(suggestedFileName); - StreamResult result = new StreamResult(file); - result.setSystemId(file.getAbsolutePath()); - return result; - } - - } -} -- cgit 1.2.3-korg From e920a1343b4aa55f95cd3db2595f52cbbea73399 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Mon, 26 Feb 2018 00:46:36 +0000 Subject: Improved Java Code Conventions compliance Changes made: * Fixed Code conventions bugs * Added test classes to improve code coverage Change-Id: Id524d002cb4fa1bf973be2cfb90729199af94d8e Issue-ID: CCSDK-151 Signed-off-by: Rich Tabedzki --- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 5 +- .../sli/adaptors/aai/AAIClientRESTExecutor.java | 35 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 2 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 2 +- .../sli/adaptors/aai/AAIServiceException.java | 97 +- .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 41 +- .../ccsdk/sli/adaptors/aai/ActionUpdateTest.java | 43 + .../adaptors/aai/AutoGeneratedRegressionTest.java | 1677 ++++++++++---------- .../ccsdk/sli/adaptors/aai/RequestPathTest.java | 76 + 9 files changed, 1045 insertions(+), 933 deletions(-) create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RequestPathTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 3684cf21a..6f466c3b6 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -24,7 +24,6 @@ package org.onap.ccsdk.sli.adaptors.aai; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -import java.util.HashMap; import java.util.Map; import org.openecomp.aai.inventory.v11.*; @@ -76,9 +75,9 @@ public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { public void logKeyError(String keys); - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, Map nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; public String getPathTemplateForResource(String resoourceName, String join, SvcLogicContext ctx) throws MalformedURLException; - public boolean isDeprecatedFormat(String resource, HashMap nameValues); + public boolean isDeprecatedFormat(String resource, Map nameValues); String query(AAIRequest request) throws AAIServiceException; String save(AAIRequest request) throws AAIServiceException; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java index 252f31978..906cd8386 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java @@ -103,7 +103,6 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { truststorePassword = props.getProperty(AAIService.TRUSTSTORE_PSSWD); keystorePath = props.getProperty(AAIService.KEYSTORE_PATH); keystorePassword = props.getProperty(AAIService.KEYSTORE_PSSWD); -// this.read_timeout = read_timeout; String tmpApplicationId =props.getProperty(AAIService.APPLICATION_ID); if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { @@ -310,14 +309,12 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { errorresponse.setRequestError(requestError); throw new AAIServiceException(responseCode, errorresponse); } else { -// StringBuilder errorStringBuilder = new StringBuilder(); String line = null; while( ( line = reader.readLine() ) != null ) { errorStringBuilder.append("\n").append( line ); } ErrorResponse errorresponse = mapper.readValue(errorStringBuilder.toString(), ErrorResponse.class); -// ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class); LOGwriteEndingTrace(responseCode, responseMessage, mapper.writeValueAsString(errorresponse)); throw new AAIServiceException(responseCode, errorresponse); } @@ -373,16 +370,16 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { LOG.error("", exc); } - URL requestUrl = null; - HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion), HttpMethod.PUT); + URL requestUrl = request.getRequestUrl(HttpMethod.PUT, resourceVersion); + HttpURLConnection con = getConfiguredConnection(requestUrl, HttpMethod.PUT); ObjectMapper mapper = AAIService.getObjectMapper(); - String json_text = request.toJSONString(); + String jsonText = request.toJSONString(); - LOGwriteDateTrace("data", json_text); - logMetricRequest("PUT "+requestUrl.getPath(), json_text, requestUrl.getPath()); + LOGwriteDateTrace("data", jsonText); + logMetricRequest("PUT "+requestUrl.getPath(), jsonText, requestUrl.getPath()); OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); + osw.write(jsonText); osw.flush(); // Check for errors @@ -454,8 +451,8 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { } try { - URL requestUrl = null; - HttpURLConnection conn = getConfiguredConnection(requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion), HttpMethod.DELETE); + URL requestUrl = request.getRequestUrl(HttpMethod.DELETE, resourceVersion); + HttpURLConnection conn = getConfiguredConnection(requestUrl, HttpMethod.DELETE); logMetricRequest("DELETE "+requestUrl.getPath(), "", requestUrl.getPath()); conn.setDoOutput(true); @@ -527,11 +524,10 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { public Object query(AAIRequest request, Class clas) throws AAIServiceException { Object response = null; InputStream inputStream = null; - HttpURLConnection con = null; - URL requestUrl = null; try { - con = getConfiguredConnection(requestUrl = request.getRequestQueryUrl(HttpMethod.GET), HttpMethod.GET); + URL requestUrl = request.getRequestQueryUrl(HttpMethod.GET); + HttpURLConnection con = getConfiguredConnection(requestUrl, HttpMethod.GET); logMetricRequest("GET "+requestUrl.getPath(), "", requestUrl.getPath()); // Check for errors @@ -574,7 +570,6 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { LOG.warn("GET", exc); } } - con = null; } return response; } @@ -592,13 +587,13 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { URL requestUrl = null; HttpURLConnection con = getConfiguredConnection(requestUrl = request.getRequestUrl("PATCH", resourceVersion), "PATCH"); ObjectMapper mapper = AAIService.getObjectMapper(); - String json_text = request.toJSONString(); + String jsonText = request.toJSONString(); - LOGwriteDateTrace("data", json_text); - logMetricRequest("PATCH "+requestUrl.getPath(), json_text, requestUrl.getPath()); + LOGwriteDateTrace("data", jsonText); + logMetricRequest("PATCH "+requestUrl.getPath(), jsonText, requestUrl.getPath()); OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream()); - osw.write(json_text); + osw.write(jsonText); osw.flush(); // Check for errors @@ -723,8 +718,6 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { String targetEntity = "A&AI"; String targetVirtualEntity = null; - targetServiceName = ""; - ml.logRequest(svcInstanceId, svcName, partnerName, targetEntity, targetServiceName, targetVirtualEntity, msg); } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index 7966fa97d..d1b148d5a 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -818,7 +818,7 @@ public abstract class AAIDeclarations implements AAIClient { return retval; } - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, HashMap nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, Map nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException { Object response; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 734546947..9e6e60f94 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -1520,7 +1520,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } @Override - public boolean isDeprecatedFormat(String resource, HashMap nameValues) { + public boolean isDeprecatedFormat(String resource, Map nameValues) { return !AAIServiceUtils.isValidFormat(resource, nameValues); } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java index ff182f2d8..9fac977d3 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceException.java @@ -3,14 +3,14 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -25,53 +25,62 @@ import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; public class AAIServiceException extends Exception { - /** - * - */ - private static final long serialVersionUID = -9039257722542999522L; - - protected ErrorResponse errorResponse = null; - protected int returnCode = -1; + /** + * + */ + private static final long serialVersionUID = -9039257722542999522L; - public AAIServiceException() { + protected final ErrorResponse errorResponse; + protected final int returnCode; - } + public AAIServiceException() { + returnCode = -1; + errorResponse = null; + } - public AAIServiceException(String message) { - super(message); - } + public AAIServiceException(String message) { + super(message); + returnCode = -1; + errorResponse = null; + } - public AAIServiceException(Throwable cause) { - super(cause); - } + public AAIServiceException(Throwable cause) { + super(cause); + returnCode = -1; + errorResponse = null; + } - public AAIServiceException(String message, Throwable cause) { - super(message, cause); - } + public AAIServiceException(String message, Throwable cause) { + super(message, cause); + returnCode = -1; + errorResponse = null; + } - public AAIServiceException(String message, Throwable cause, - boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } + public AAIServiceException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + returnCode = -1; + errorResponse = null; + } - public AAIServiceException(int returnCode, ErrorResponse errorresponse) { - this.errorResponse = errorresponse; - this.returnCode = returnCode; - } - - public ErrorResponse getErrorResponse() { - return errorResponse; - } + public AAIServiceException(int returnCode, ErrorResponse errorresponse) { + this.errorResponse = errorresponse; + this.returnCode = returnCode; + } - public int getReturnCode() { - return returnCode; - } - - public String getMessage() { - if(errorResponse != null) { - return errorResponse.getRequestError().getServiceException().getText(); - } else { - return super.getMessage(); - } - } + public ErrorResponse getErrorResponse() { + return errorResponse; + } + + public int getReturnCode() { + return returnCode; + } + + public String getMessage() { + if(errorResponse != null) { + return errorResponse.getRequestError().getServiceException().getText(); + } else { + return super.getMessage(); + } + } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index 102835d90..ca2af1df6 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -28,6 +28,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; import java.util.HashMap; +import java.util.Map; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; @@ -49,14 +50,14 @@ public class AAIServiceUtils { private static final Logger LOG = LoggerFactory.getLogger(AAIService.class); + private AAIServiceUtils() { + } + public static String getPrimaryIdFromClass(Class resourceClass){ // 1. find class getLogger().debug(resourceClass.getName()); - AAIDatum instance = null; try { - instance = resourceClass.newInstance(); - Annotation[] annotations = resourceClass.getAnnotations(); for(Annotation annotation : annotations) { Class anotationType = annotation.annotationType(); @@ -73,19 +74,15 @@ public class AAIServiceUtils { } } } catch(Exception exc) { - + getLogger().warn("getPrimaryIdFromClass failed", exc); } return null; } public static String getSecondaryIdFromClass(Class resourceClass){ - // 1. find class getLogger().debug(resourceClass.getName()); - AAIDatum instance = null; try { - instance = resourceClass.newInstance(); - Annotation[] annotations = resourceClass.getAnnotations(); for(Annotation annotation : annotations) { Class anotationType = annotation.annotationType(); @@ -112,16 +109,16 @@ public class AAIServiceUtils { return null; } - public static Method getRelationshipListGetterMethodFromClassDefinition(Class resourceClass) { - Method getRelationshipListMethod = null; - - try { - getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); - } catch(Exception exc) { - getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); - } - return getRelationshipListMethod; - } + public static Method getRelationshipListGetterMethodFromClassDefinition(Class resourceClass) { + Method getRelationshipListMethod = null; + + try { + getRelationshipListMethod = resourceClass.getMethod("getRelationshipList"); + } catch(Exception exc) { + getLogger().debug("Retrofiting relationship data: " + exc.getMessage()); + } + return getRelationshipListMethod; + } private static Logger getLogger() { return LOG; @@ -314,10 +311,10 @@ public class AAIServiceUtils { return request.getRequestPath(); } - public static boolean isValidFormat(String resource, HashMap nameValues) { + public static boolean isValidFormat(String resource, Map nameValues) { switch(resource){ - case "custom-query": + case "custom-query": case "formatted-query": case "generic-query": case "named-query": @@ -336,10 +333,10 @@ public class AAIServiceUtils { Set keys = nameValues.keySet(); for(String key : keys) { if(!key.contains(".")) { - if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key) || "related-link".equals(key) || "related_link".equals(key) || "selflink".equals(key) || "resource_path".equals(key)) + if("depth".equals(key) || "related-to".equals(key) || "related_to".equals(key) || "related-link".equals(key) || "related_link".equals(key) || "selflink".equals(key) || "resource_path".equals(key)) continue; else { - getLogger().warn(String.format("key '%s' is incompatible with resource type '%s'", key, resource)); + getLogger().warn(String.format("key '%s' is incompatible with resource type '%s'", key, resource)); } } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java new file mode 100755 index 000000000..607182ea9 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java @@ -0,0 +1,43 @@ +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.*; + +import java.util.ArrayList; + +import org.onap.ccsdk.sli.adaptors.aai.update.Action; +import org.onap.ccsdk.sli.adaptors.aai.update.ActionDatum; +import org.junit.Test; + +public class ActionUpdateTest { + @Test + public void getActionData() throws Exception { + final Action resolver = new Action(); + assertNotNull(resolver.getActionData()); + } + + @Test + public void setActionData() throws Exception { + final Action resolver = new Action(); + resolver.setActionData( new ArrayList()); + } + + @Test + public void setActionType() throws Exception { + final Action resolver = new Action(); + resolver.setActionType("create"); + assertEquals("create", resolver.getActionType()); + } + + @Test + public void getAdditionalProperties() throws Exception { + final Action resolver = new Action(); + assertNotNull(resolver.getAdditionalProperties()); + } + + @Test + public void setAdditionalProperty() throws Exception { + final Action resolver = new Action(); + resolver.setAdditionalProperty("outcome", "success"); + assertEquals("success", resolver.getAdditionalProperties().get("outcome")); + } +} \ No newline at end of file diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index 345ff57bb..9bc93609a 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -3,7 +3,7 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ package org.onap.ccsdk.sli.adaptors.aai; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -65,7 +64,6 @@ import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.InventoryResponseItems; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.annotation.AnnotationUtils; @@ -81,697 +79,694 @@ import com.fasterxml.jackson.databind.ObjectMapper; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class AutoGeneratedRegressionTest { - static { - System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "INFO"); - System.setProperty(org.slf4j.impl.SimpleLogger.LOG_FILE_KEY, String.format("AutoGeneratedRegressionTest-%d.txt", System.currentTimeMillis())); - } - private static final Logger LOG = LoggerFactory.getLogger(AutoGeneratedRegressionTest.class); - - - protected static AAIClient client; - - protected Map cache = new HashMap(); - - @BeforeClass - public static void setUp() throws Exception { - URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); - client = new AAIService(url); - LOG.info("----------------------- aicAAIResourceTest.setUp -----------------------"); - } - - @AfterClass - public static void tearDown() throws Exception { - client = null; - LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); - } - - - @Test - public void mainLoadTest () - { - try - { - String currentDir = System.getProperty("user.dir"); - File dir = new File(currentDir); - if(!dir.exists()) { - System.exit(1); - } - dir = new File(dir, "src/main/resources"); - if(!dir.exists()) { - System.exit(1); - } - // parse the document - File file = new File(dir, "aai_schema_v11.xsd"); - if(!file.exists()) { - assert(false); - return; - } - - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(file); - - Stack stack = new Stack(); - List commands = new ArrayList(); - listSubNodes("network", doc, stack, commands); - listSubNodes("cloud-infrastructure", doc, stack, commands); - listSubNodes("service-design-and-creation", doc, stack, commands); - listSubNodes("license-management", doc, stack, commands); - listSubNodes("business", doc, stack, commands); - - String[] requestDefinition = commands.toArray(new String[0]); - LOG.info("\n----------------------------"); - - executeTests(requestDefinition); - } - catch (Throwable e) - { - LOG.error("", e); - } - } - - @Test - public void testFromFile() { - String filename = "testCommands.txt"; - List lines = new ArrayList(); - Scanner scanner = null; - - try { - File testFile = new File(filename); - if(!testFile.exists()) - return; - scanner = new Scanner(testFile); - while (scanner.hasNextLine()) { - lines.add(scanner.nextLine()); - } - } catch (Exception exc) { - - } finally { - if(scanner != null) - scanner.close(); - } - - String[] requestDefinition = lines.toArray(new String[0]); - executeTests(requestDefinition); - } - - - @Test - public void test01AutoGeneratedRequest() { - - String[] requestDefinition = { - "save|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", - "update|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", - "query|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", - "delete|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458" - }; - - executeTests(requestDefinition); - } - - public void executeTests(String[] requestDefinition) { - - for(String line : requestDefinition){ - LOG.info("Executing: " + line); - - // parse request line resource | key structure - String[] segments = line.split("\\|"); - String action = segments[0]; - String resource = segments[1]; - String[] tmpKeys = segments[2].split("&"); -// String[] keyStructure = tmpKey.; - // options :assign:uuid:cache - // :cached - // :query:random - - - String localId = null; - - List keys = new ArrayList(); - String keyLine = null; - - for(String instruction : tmpKeys) { - String[] parts = instruction.split(":"); - String identifier = parts[0]; - String method = parts[2]; - - if(identifier.startsWith(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { - localId = identifier; - } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { - localId = identifier; - } else if("nodes-query".equals(resource)) { - localId = identifier; - } - - switch(parts[1]) { - case "assign": - String postProcesss = parts[3]; - keyLine = processAssign(identifier, method, postProcesss); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - case "cached": - keyLine = processCached(identifier, method); - if(keyLine != null && !keyLine.trim().isEmpty()) { - keys.add(keyLine); - } - break; - } - - } - - List x = Arrays.asList(localId.split("\\.")); - switch(action){ - case "save": - testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); - break; - case "update": - testAutoGeneratedUpdateRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); - break; - - case "query": - test03AutoGeneratedQueryRequest(resource, keys); - break; - case "delete": - test03AutoGeneratedDeleteRequest(resource, keys); - break; - } - } - - LOG.info("done"); - } - - - public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); - - Map data = new HashMap(); - - for(Field field : resourceClass.getDeclaredFields()) { - String type = field.getType().getName(); - switch(type){ - case "bool": - case "boolean": - type = Boolean.class.getName(); - break; - case "int": - type = Integer.class.getName(); - break; - case "long": - type = Long.class.getName(); - break; - - } - if(type.startsWith("java.lang.")){ - Annotation[] fieldAnnotations = field.getAnnotations(); - for(int i = 0; i < fieldAnnotations.length; i++) { - Annotation a = fieldAnnotations[i]; - if(a instanceof JsonProperty){ - JsonProperty pa = (JsonProperty)a; - String name = pa.value(); - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } else - if(a instanceof javax.xml.bind.annotation.XmlElement) { - XmlElement xe = (XmlElement)a; - String name = xe.name(); - if("model-version-id".equals(name)) { - continue; - } - if("model-invariant-id".equals(name)) { - continue; - } - if("link-type".equals(name)){ - data.put(name, "roadmTail"); - continue; - } - if("operational-status".equals(name)){ - data.put(name, "available"); - continue; - } - if(name.equals(identifier)) { - data.put(name, idValue); - continue; - } - - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - } - } - } - } - - SvcLogicContext ctx = new SvcLogicContext(); - - data.remove("resource-version"); - - QueryStatus resp = null; - - //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) - resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); - if(resp == QueryStatus.SUCCESS) { - LOG.info(String.format("Save %s successfull", resource)); - } else { - LOG.info(String.format("Save %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); - } - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - SvcLogicContext ctx = new SvcLogicContext(); - try - { - - QueryStatus response = null; - - response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); - if(response == QueryStatus.SUCCESS) { - LOG.info(String.format("Query %s successfull", resource)); - Set tokens = ctx.getAttributeKeySet(); - Map reponseData = new HashMap(); - - String responsePrefix = String.format("%s", "aaiTest"); - - for(String token : tokens) { - if(token.startsWith(responsePrefix)){ - reponseData.put(token, ctx.getAttribute(token)); - } else { - LOG.info(String.format("%s = ", token, ctx.getAttribute(token))); - } - } - - LOG.info("AAIResponse: " + response.toString()); - assertTrue("AAIRequest:"+resource, reponseData.size() > 0); - } else { - LOG.info(String.format("Query %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); - assert(false); - } - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - } - } - - - public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - SvcLogicContext ctx = new SvcLogicContext(); - - QueryStatus response = null; - - response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); - if(response == QueryStatus.SUCCESS) { - LOG.info(String.format("Delete %s successfull", resource)); - } else { - LOG.info(String.format("Delete %s failed due to : %s", resource, ctx.getAttribute("aaiDelete.error.message"))); - } - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - public void testAutoGeneratedUpdateRequest(String resource, List requestKeys, String identifier, String idValue) { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try - { - Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); - AAIRequest request = AAIRequest.createRequest(resource, nameValues); - Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); - - Map data = new HashMap(); - - boolean skipFirst = true; - boolean breakLoop = false; - for(Field field : resourceClass.getDeclaredFields()) { - if(skipFirst){ - skipFirst = false; - continue; - } - if(breakLoop){ - break; - } - String type = field.getType().getName(); - if(type.startsWith("java.lang.")){ - Annotation[] fieldAnnotations = field.getAnnotations(); - for(int i = 0; i < fieldAnnotations.length; i++) { - Annotation a = fieldAnnotations[i]; - if(a instanceof JsonProperty){ - JsonProperty pa = (JsonProperty)a; - String name = pa.value(); - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - breakLoop = true; - } else - if(a instanceof javax.xml.bind.annotation.XmlElement) { - XmlElement xe = (XmlElement)a; - String name = xe.name(); - if("link-type".equals(name)){ - data.put(name, "roadmTail"); - continue; - } - if("operational-status".equals(name)){ - data.put(name, "available"); - continue; - } - String value; - switch(type) { - case "java.lang.Integer": - case "java.lang.Long": - value = RandomStringUtils.random(6, false, true); - break; - case "java.lang.Boolean": - value = "false"; - break; - default: - if(name.equals(identifier)) { - value = idValue; - } else { - value = RandomStringUtils.random(10, true, false); - } - } - data.put(name, value); - breakLoop = true; - } - } - } - } - - SvcLogicContext ctx = new SvcLogicContext(); - - data.remove("resource-version"); - - QueryStatus resp = null; - - //client.update("ipsec-configuration", "ipsec-configuration.ipsec-configuration-id = 'testConfigurationId01'", data, "aaiTest", ctx); - resp = client.update(resource, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); - if(resp == QueryStatus.SUCCESS) { - LOG.info(String.format("Update %s successfull", resource)); - } else { - LOG.info(String.format("Update %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); - } - - } - catch (Throwable e) - { - LOG.error("Caught exception", e); - fail("Caught exception"); - } - } - - static ArrayList findSetters(Class c) { - ArrayList list = new ArrayList(); - Method[] methods = c.getDeclaredMethods(); - for (Method method : methods) - if (isGetter(method)) - list.add(method); - return list; - } - - - public static boolean isGetter(Method method) { - if (Modifier.isPublic(method.getModifiers()) && - method.getParameterTypes().length == 0) { - if (method.getName().matches("^get[A-Z].*") && - !method.getReturnType().equals(void.class)) - return true; - if (method.getName().matches("^is[A-Z].*") && - method.getReturnType().equals(boolean.class)) - return true; - } - return false; - } - - public static boolean isSetter(Method method) { - return Modifier.isPublic(method.getModifiers()) && - method.getReturnType().equals(void.class) && - method.getParameterTypes().length == 1 && - method.getName().matches("^set[A-Z].*"); - } - - private String processAssign(String identifier, String method, String postProcess) { - String value = null; - if("uuid".equals(method)) { - value = UUID.randomUUID().toString(); - } - - if("cache".equals(postProcess)) { - cache.put(identifier, value); - } - - if("value".equals(method)) { - cache.put(identifier, postProcess); - value = postProcess; - } - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - private String processCached(String identifier, String method) { - String value = cache.get(identifier); - - String key = String.format("%s = '%s'", identifier, value); - return key; - } - - protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { - if (key == null) { - return (null); - } - - LOG.debug("Converting key [" + key + "] to where clause"); - - if (key.startsWith("'") && key.endsWith("'")) { - key = key.substring(1, key.length() - 1); - - LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); - } - - String[] keyTerms = key.split("\\s+"); - - String term1 = null; - String op = null; - String term2 = null; - HashMap results = new HashMap(); - - for (int i = 0; i < keyTerms.length; i++) { - if (term1 == null) { - if ("and".equalsIgnoreCase(keyTerms[i]) - || "or".equalsIgnoreCase(keyTerms[i])) { - // Skip over ADD/OR - } else { - term1 = resolveTerm(keyTerms[i], ctx); - } - } else if (op == null) { - if ("==".equals(keyTerms[i])) { - op = "="; - } else { - op = keyTerms[i]; - } - } else { - term2 = resolveTerm(keyTerms[i], ctx); - term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); - results.put(term1, term2); - - term1 = null; - op = null; - term2 = null; - } - } - - return (results); - } - - private String resolveTerm(String term, SvcLogicContext ctx) { - if (term == null) { - return (null); - } - - LOG.debug("resolveTerm: term is " + term); - - if (term.startsWith("$") && (ctx != null)) { - // Resolve any index variables. - - return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); - } else if (term.startsWith("'") || term.startsWith("\"")) { - return (term); - } else { - return (term.replaceAll("-", "_")); - - } - - } - - private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { - - if (ctxVarName.indexOf('[') == -1) { - // Ctx variable contains no arrays - return (ctx.getAttribute(ctxVarName)); - } - - // Resolve any array references - StringBuffer sbuff = new StringBuffer(); - String[] ctxVarParts = ctxVarName.split("\\["); - sbuff.append(ctxVarParts[0]); - for (int i = 1; i < ctxVarParts.length; i++) { - if (ctxVarParts[i].startsWith("$")) { - int endBracketLoc = ctxVarParts[i].indexOf("]"); - if (endBracketLoc == -1) { - // Missing end bracket ... give up parsing - LOG.warn("Variable reference " + ctxVarName - + " seems to be missing a ']'"); - return (ctx.getAttribute(ctxVarName)); - } - - String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); - String remainder = ctxVarParts[i].substring(endBracketLoc); - - sbuff.append("["); - sbuff.append(ctx.getAttribute(idxVarName)); - sbuff.append(remainder); - - } else { - // Index is not a variable reference - sbuff.append("["); - sbuff.append(ctxVarParts[i]); - } - } - - return (ctx.getAttribute(sbuff.toString())); - } - -// @Test - public void test90QueryTenantRequest() - { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - URL url; - - try { - url = client.requestVserverURLNodeQuery("bpsx0001vm001bps001"); - url = new URL("https://mtanjv9aaas03.aic.cip.att.com:8443/aai/v4/cloud-infrastructure/tenants/tenant/6b012c07bdf1427190ae58f794a86344/vservers/vserver/5acfe828-82e9-swgk092815-13-4d2c-85bb-9c2c1fafcce6"); - client.getTenantIdFromVserverUrl(url); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - @Test - public void R1702NamedQueryRequest() - { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - try - { - SvcLogicContext ctx = new SvcLogicContext(); - URL resource = this.getClass().getResource("/json/nquery2.json"); - - LOG.info("Resource is " + resource.getFile()); - File requestFile = new File(resource.getFile()); - if(!requestFile.exists()) { - fail("Test file does not exist"); - } - ObjectMapper mapper = AAIService.getObjectMapper(); - NamedQueryData request = mapper.readValue(requestFile, NamedQueryData.class); - Map map = mapper.convertValue(request, Map.class); -// AAIDeclartations.class.cast(client).writeMap(map, String.format("%s.%s", "aaiTmp", "inventory-response-items"), ctx); - - - Map data = new HashMap(); - ctx.setAttribute("namedQueryData.instance-filters.instance-filter[0].l3-network.network-role", "example-network-role-val-432223"); - ctx.setAttribute("namedQueryData.instance-filters.instance-filter_length", "1"); - QueryStatus resp = client.query("named-query", false, null, "named-query-uuid = '4f448e43-339f-4c1c-85f6-896c444e25ca' AND prefix = 'namedQueryData' ", "zdzich", null, ctx); - - LOG.info("AAIResponse: " + resp.toString()); - } - catch (Throwable e) - { - assert(true); - } - } - - - static class MySchemaOutputResolver extends SchemaOutputResolver { - - public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { - File file = new File(suggestedFileName); - StreamResult result = new StreamResult(file); - result.setSystemId(file.getAbsolutePath()); - return result; - } - - } - - private static void listSubNodes(String parent, Document doc, Stack stack, List commands) throws Exception { + static { + System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "INFO"); + System.setProperty(org.slf4j.impl.SimpleLogger.LOG_FILE_KEY, String.format("AutoGeneratedRegressionTest-%d.txt", System.currentTimeMillis())); + } + private static final Logger LOG = LoggerFactory.getLogger(AutoGeneratedRegressionTest.class); + + + protected static AAIClient client; + + protected Map cache = new HashMap(); + + @BeforeClass + public static void setUp() throws Exception { + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("----------------------- aicAAIResourceTest.setUp -----------------------"); + } + + @AfterClass + public static void tearDown() throws Exception { + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + + @Test + public void mainLoadTest () + { + try + { + String currentDir = System.getProperty("user.dir"); + File dir = new File(currentDir); + if(!dir.exists()) { + System.exit(1); + } + dir = new File(dir, "src/main/resources"); + if(!dir.exists()) { + System.exit(1); + } + // parse the document + File file = new File(dir, "aai_schema_v11.xsd"); + if(!file.exists()) { + assert(false); + return; + } + + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(file); + + Stack stack = new Stack(); + List commands = new ArrayList(); + listSubNodes("network", doc, stack, commands); + listSubNodes("cloud-infrastructure", doc, stack, commands); + listSubNodes("service-design-and-creation", doc, stack, commands); + listSubNodes("license-management", doc, stack, commands); + listSubNodes("business", doc, stack, commands); + + String[] requestDefinition = commands.toArray(new String[0]); + LOG.info("\n----------------------------"); + + executeTests(requestDefinition); + } + catch (Throwable e) + { + LOG.error("", e); + } + } + + @Test + public void testFromFile() { + String filename = "testCommands.txt"; + List lines = new ArrayList(); + Scanner scanner = null; + + try { + File testFile = new File(filename); + if(!testFile.exists()) + return; + scanner = new Scanner(testFile); + while (scanner.hasNextLine()) { + lines.add(scanner.nextLine()); + } + } catch (Exception exc) { + + } finally { + if(scanner != null) + scanner.close(); + } + + String[] requestDefinition = lines.toArray(new String[0]); + executeTests(requestDefinition); + } + + + @Test + public void test01AutoGeneratedRequest() { + + String[] requestDefinition = { + "save|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", + "update|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", + "query|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458", + "delete|generic-vnf|generic-vnf.vnf-id:assign:value:adb28ac0-a260-4b7d-9ce5-adf15733c458" + }; + + executeTests(requestDefinition); + } + + public void executeTests(String[] requestDefinition) { + + for(String line : requestDefinition){ + LOG.info("Executing: " + line); + + // parse request line resource | key structure + String[] segments = line.split("\\|"); + String action = segments[0]; + String resource = segments[1]; + String[] tmpKeys = segments[2].split("&"); + // String array keyStructure can be tmpKey. + // options :assign:uuid:cache + // :cached + // :query:random + + + String localId = null; + + List keys = new ArrayList(); + String keyLine = null; + + for(String instruction : tmpKeys) { + String[] parts = instruction.split(":"); + String identifier = parts[0]; + String method = parts[2]; + + if(identifier.startsWith(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-bgf".equals(resource)) { + localId = identifier; + } else if(identifier.startsWith("l-interface") && "l2-bridge-sbg".equals(resource)) { + localId = identifier; + } else if("nodes-query".equals(resource)) { + localId = identifier; + } + + switch(parts[1]) { + case "assign": + String postProcesss = parts[3]; + keyLine = processAssign(identifier, method, postProcesss); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + case "cached": + keyLine = processCached(identifier, method); + if(keyLine != null && !keyLine.trim().isEmpty()) { + keys.add(keyLine); + } + break; + } + + } + + List x = Arrays.asList(localId.split("\\.")); + switch(action){ + case "save": + testAutoGeneratedSaveRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + case "update": + testAutoGeneratedUpdateRequest(resource, keys, x.get(x.size() - 1), cache.get(localId)); + break; + + case "query": + test03AutoGeneratedQueryRequest(resource, keys); + break; + case "delete": + test03AutoGeneratedDeleteRequest(resource, keys); + break; + } + } + + LOG.info("done"); + } + + + public void testAutoGeneratedSaveRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + for(Field field : resourceClass.getDeclaredFields()) { + String type = field.getType().getName(); + switch(type){ + case "bool": + case "boolean": + type = Boolean.class.getName(); + break; + case "int": + type = Integer.class.getName(); + break; + case "long": + type = Long.class.getName(); + break; + + } + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("model-version-id".equals(name)) { + continue; + } + if("model-invariant-id".equals(name)) { + continue; + } + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + if(name.equals(identifier)) { + data.put(name, idValue); + continue; + } + + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //(String resource, boolean force, boolean localOnly, String key, Map parms, String prefix, SvcLogicContext ctx) + resp = client.save(resource, false, false, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + if(resp == QueryStatus.SUCCESS) { + LOG.info(String.format("Save %s successfull", resource)); + } else { + LOG.info(String.format("Save %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); + } + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void test03AutoGeneratedQueryRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + SvcLogicContext ctx = new SvcLogicContext(); + try + { + + QueryStatus response = null; + + response = client.query(resource, false, null, StringUtils.join(requestKeys, " AND "), "aaiTest", null, ctx); + if(response == QueryStatus.SUCCESS) { + LOG.info(String.format("Query %s successfull", resource)); + Set tokens = ctx.getAttributeKeySet(); + Map reponseData = new HashMap(); + + String responsePrefix = String.format("%s", "aaiTest"); + + for(String token : tokens) { + if(token.startsWith(responsePrefix)){ + reponseData.put(token, ctx.getAttribute(token)); + } else { + LOG.info(String.format("%s = ", token, ctx.getAttribute(token))); + } + } + + LOG.info("AAIResponse: " + response.toString()); + assertTrue("AAIRequest:"+resource, reponseData.size() > 0); + } else { + LOG.info(String.format("Query %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); + assert(false); + } + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + } + } + + + public void test03AutoGeneratedDeleteRequest(String resource, List requestKeys) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus response = null; + + response = client.delete(resource, StringUtils.join(requestKeys, " AND "), ctx); + if(response == QueryStatus.SUCCESS) { + LOG.info(String.format("Delete %s successfull", resource)); + } else { + LOG.info(String.format("Delete %s failed due to : %s", resource, ctx.getAttribute("aaiDelete.error.message"))); + } + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + public void testAutoGeneratedUpdateRequest(String resource, List requestKeys, String identifier, String idValue) { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + Map nameValues = keyToHashMap(StringUtils.join(requestKeys, " AND "), new SvcLogicContext()); + AAIRequest request = AAIRequest.createRequest(resource, nameValues); + Class resourceClass = (Class) (request==null ? GenericVnf.class : request.getModelClass()); + + Map data = new HashMap(); + + boolean skipFirst = true; + boolean breakLoop = false; + for(Field field : resourceClass.getDeclaredFields()) { + if(skipFirst){ + skipFirst = false; + continue; + } + if(breakLoop){ + break; + } + String type = field.getType().getName(); + if(type.startsWith("java.lang.")){ + Annotation[] fieldAnnotations = field.getAnnotations(); + for(int i = 0; i < fieldAnnotations.length; i++) { + Annotation a = fieldAnnotations[i]; + if(a instanceof JsonProperty){ + JsonProperty pa = (JsonProperty)a; + String name = pa.value(); + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + breakLoop = true; + } else + if(a instanceof javax.xml.bind.annotation.XmlElement) { + XmlElement xe = (XmlElement)a; + String name = xe.name(); + if("link-type".equals(name)){ + data.put(name, "roadmTail"); + continue; + } + if("operational-status".equals(name)){ + data.put(name, "available"); + continue; + } + String value; + switch(type) { + case "java.lang.Integer": + case "java.lang.Long": + value = RandomStringUtils.random(6, false, true); + break; + case "java.lang.Boolean": + value = "false"; + break; + default: + if(name.equals(identifier)) { + value = idValue; + } else { + value = RandomStringUtils.random(10, true, false); + } + } + data.put(name, value); + breakLoop = true; + } + } + } + } + + SvcLogicContext ctx = new SvcLogicContext(); + + data.remove("resource-version"); + + QueryStatus resp = null; + + //client.update("ipsec-configuration", "ipsec-configuration.ipsec-configuration-id = 'testConfigurationId01'", data, "aaiTest", ctx); + resp = client.update(resource, StringUtils.join(requestKeys, " AND "), data, "aaidata", ctx); + if(resp == QueryStatus.SUCCESS) { + LOG.info(String.format("Update %s successfull", resource)); + } else { + LOG.info(String.format("Update %s failed due to : %s", resource, ctx.getAttribute("aaidata.error.message"))); + } + + } + catch (Throwable e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + static ArrayList findSetters(Class c) { + ArrayList list = new ArrayList(); + Method[] methods = c.getDeclaredMethods(); + for (Method method : methods) + if (isGetter(method)) + list.add(method); + return list; + } + + + public static boolean isGetter(Method method) { + if (Modifier.isPublic(method.getModifiers()) && + method.getParameterTypes().length == 0) { + if (method.getName().matches("^get[A-Z].*") && + !method.getReturnType().equals(void.class)) + return true; + if (method.getName().matches("^is[A-Z].*") && + method.getReturnType().equals(boolean.class)) + return true; + } + return false; + } + + public static boolean isSetter(Method method) { + return Modifier.isPublic(method.getModifiers()) && + method.getReturnType().equals(void.class) && + method.getParameterTypes().length == 1 && + method.getName().matches("^set[A-Z].*"); + } + + private String processAssign(String identifier, String method, String postProcess) { + String value = null; + if("uuid".equals(method)) { + value = UUID.randomUUID().toString(); + } + + if("cache".equals(postProcess)) { + cache.put(identifier, value); + } + + if("value".equals(method)) { + cache.put(identifier, postProcess); + value = postProcess; + } + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + private String processCached(String identifier, String method) { + String value = cache.get(identifier); + + String key = String.format("%s = '%s'", identifier, value); + return key; + } + + protected HashMap keyToHashMap(String key, SvcLogicContext ctx) { + if (key == null) { + return (null); + } + + LOG.debug("Converting key [" + key + "] to where clause"); + + if (key.startsWith("'") && key.endsWith("'")) { + key = key.substring(1, key.length() - 1); + + LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); + } + + String[] keyTerms = key.split("\\s+"); + + String term1 = null; + String op = null; + String term2 = null; + HashMap results = new HashMap(); + + for (int i = 0; i < keyTerms.length; i++) { + if (term1 == null) { + if ("and".equalsIgnoreCase(keyTerms[i]) + || "or".equalsIgnoreCase(keyTerms[i])) { + // Skip over ADD/OR + } else { + term1 = resolveTerm(keyTerms[i], ctx); + } + } else if (op == null) { + if ("==".equals(keyTerms[i])) { + op = "="; + } else { + op = keyTerms[i]; + } + } else { + term2 = resolveTerm(keyTerms[i], ctx); + term2 = term2.trim().replace("'", "").replace("$", "").replace("'", ""); + results.put(term1, term2); + + term1 = null; + op = null; + term2 = null; + } + } + + return (results); + } + + private String resolveTerm(String term, SvcLogicContext ctx) { + if (term == null) { + return (null); + } + + LOG.debug("resolveTerm: term is " + term); + + if (term.startsWith("$") && (ctx != null)) { + // Resolve any index variables. + + return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'"); + } else if (term.startsWith("'") || term.startsWith("\"")) { + return (term); + } else { + return (term.replaceAll("-", "_")); + + } + + } + + private String resolveCtxVariable(String ctxVarName, SvcLogicContext ctx) { + + if (ctxVarName.indexOf('[') == -1) { + // Ctx variable contains no arrays + return (ctx.getAttribute(ctxVarName)); + } + + // Resolve any array references + StringBuffer sbuff = new StringBuffer(); + String[] ctxVarParts = ctxVarName.split("\\["); + sbuff.append(ctxVarParts[0]); + for (int i = 1; i < ctxVarParts.length; i++) { + if (ctxVarParts[i].startsWith("$")) { + int endBracketLoc = ctxVarParts[i].indexOf("]"); + if (endBracketLoc == -1) { + // Missing end bracket ... give up parsing + LOG.warn("Variable reference " + ctxVarName + + " seems to be missing a ']'"); + return (ctx.getAttribute(ctxVarName)); + } + + String idxVarName = ctxVarParts[i].substring(1, endBracketLoc); + String remainder = ctxVarParts[i].substring(endBracketLoc); + + sbuff.append("["); + sbuff.append(ctx.getAttribute(idxVarName)); + sbuff.append(remainder); + + } else { + // Index is not a variable reference + sbuff.append("["); + sbuff.append(ctxVarParts[i]); + } + } + + return (ctx.getAttribute(sbuff.toString())); + } + +// @Test + public void test90QueryTenantRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + + try { + url = client.requestVserverURLNodeQuery("bpsx0001vm001bps001"); + url = new URL("https://mtanjv9aaas03.aic.cip.att.com:8443/aai/v4/cloud-infrastructure/tenants/tenant/6b012c07bdf1427190ae58f794a86344/vservers/vserver/5acfe828-82e9-swgk092815-13-4d2c-85bb-9c2c1fafcce6"); + client.getTenantIdFromVserverUrl(url); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Test + public void R1702NamedQueryRequest() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + SvcLogicContext ctx = new SvcLogicContext(); + URL resource = this.getClass().getResource("/json/nquery2.json"); + + LOG.info("Resource is " + resource.getFile()); + File requestFile = new File(resource.getFile()); + if(!requestFile.exists()) { + fail("Test file does not exist"); + } + ObjectMapper mapper = AAIService.getObjectMapper(); + NamedQueryData request = mapper.readValue(requestFile, NamedQueryData.class); + Map map = mapper.convertValue(request, Map.class); + + ctx.setAttribute("namedQueryData.instance-filters.instance-filter[0].l3-network.network-role", "example-network-role-val-432223"); + ctx.setAttribute("namedQueryData.instance-filters.instance-filter_length", "1"); + QueryStatus resp = client.query("named-query", false, null, "named-query-uuid = '4f448e43-339f-4c1c-85f6-896c444e25ca' AND prefix = 'namedQueryData' ", "zdzich", null, ctx); + + LOG.info("AAIResponse: " + resp.toString()); + } + catch (Throwable e) + { + assert(true); + } + } + + + static class MySchemaOutputResolver extends SchemaOutputResolver { + + public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { + File file = new File(suggestedFileName); + StreamResult result = new StreamResult(file); + result.setSystemId(file.getAbsolutePath()); + return result; + } + + } + + private static void listSubNodes(String parent, Document doc, Stack stack, List commands) throws Exception { XPathFactory xFactory = XPathFactory.newInstance(); XPath xPath = xFactory.newXPath(); String format = "/schema/element[@name='%s']/complexType/sequence/element[@ref]"; @@ -787,157 +782,157 @@ public class AutoGeneratedRegressionTest { Node node = nl.item(index); - if(!(node instanceof Element)) - continue; - - String classAlias = null; - - if(node.hasAttributes()) - { - String nm = ((Element)node).getAttribute("ref"); - if(nm != null && !nm.isEmpty()) { - String[] split = nm.split(":"); - classAlias = split[split.length - 1]; - if("relationship-list".equals(classAlias)) - continue; - if("metadata".equals(classAlias)) - continue; - if("classes-of-service".equals(classAlias)) { - classAlias = "class-of-service"; - } else if("l3-interface-ipv4-address-list".equals(classAlias)) { - ; - } else if("l3-interface-ipv6-address-list".equals(classAlias)) { - ; - } else if("cvlan-tags".equals(classAlias)) { - classAlias = "cvlan-tag-entry"; - } else if("network-policies".equals(classAlias)) { - classAlias = "network-policy"; - } else if("complexes".equals(classAlias)) { - classAlias = "complex"; - } else if("dvs-switches".equals(classAlias)) { - classAlias = "dvs-switch"; - } else if("service-capabilities".equals(classAlias)) { - classAlias = "service-capability"; - } else { - classAlias = classAlias.substring(0, classAlias.length() -1); - } - AAIRequest request = AAIRequest.createRequest(classAlias, new HashMap()); - if(request != null) { - Class clazz = request.getModelClass(); - Field[] fieldz = clazz.getDeclaredFields(); - Field field = fieldz[0]; - String fieldName = field.getName(); - XmlElement annotation = field.getAnnotation(XmlElement.class); - - Map map = AnnotationUtils.getAnnotationAttributes(annotation); - String id = (String)map.get("name"); - if("##default".equals(id)) { - id = fieldName; - } - - if("cloud-region".equals(classAlias)) { - String keystring = "cloud-region.cloud-owner:assign:value:att-aic&cloud-region.cloud-region-id:assign:value:AAIAIC25"; - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - listSubNodes(classAlias, doc, stack, commands); - stack.pop(); - } else if("entitlement".equals(classAlias)) { - String keystring = "entitlement.group-uuid:assign:value:"+UUID.randomUUID()+"&entitlement.resource-uuid:assign:value:"+UUID.randomUUID(); - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - listSubNodes(classAlias, doc, stack, commands); - stack.pop(); - } else if("license".equals(classAlias)) { - String keystring = "license.group-uuid:assign:value:"+UUID.randomUUID()+"&license.resource-uuid:assign:value:"+UUID.randomUUID(); - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - listSubNodes(classAlias, doc, stack, commands); - stack.pop(); - } else if("route-target".equals(classAlias)) { - String keystring = "route-target.global-route-target:assign:value:"+UUID.randomUUID()+"&route-target.route-target-role:assign:value:"+UUID.randomUUID(); - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - listSubNodes(classAlias, doc, stack, commands); - stack.pop(); - } else if("service-capability".equals(classAlias)) { - String keystring = "service-capability.service-type:assign:value:"+UUID.randomUUID()+"&service-capability.vnf-type:assign:value:"+UUID.randomUUID(); - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - listSubNodes(classAlias, doc, stack, commands); - stack.pop(); - } else if("ctag-pool".equals(classAlias)) { - String keystring = "ctag-pool.target-pe:assign:value:"+UUID.randomUUID()+"&ctag-pool.availability-zone-name:assign:value:"+UUID.randomUUID(); - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - listSubNodes(classAlias, doc, stack, commands); - stack.pop(); - } else { - String keystring = String.format("%s.%s:assign:value:%s", classAlias, id, UUID.randomUUID()); - stack.push(keystring); - String[] array = stack.toArray(new String[0]); - String key = StringUtils.join(array, "&"); - - String save = String.format("save|%s|%s", classAlias, key); - commands.add(save); - - String query = String.format("query|%s|%s", classAlias, key); - commands.add(query); - - String update = String.format("update|%s|%s", classAlias, key); - commands.add(update); - - if(!parent.equals(classAlias) && !containsCircular(classAlias, id, stack)) { - listSubNodes(classAlias, doc, stack, commands); - } - String delete = String.format("delete|%s|%s", classAlias, key); - commands.add(delete); - stack.pop(); - } - } - } - } + if(!(node instanceof Element)) + continue; + + String classAlias = null; + + if(node.hasAttributes()) + { + String nm = ((Element)node).getAttribute("ref"); + if(nm != null && !nm.isEmpty()) { + String[] split = nm.split(":"); + classAlias = split[split.length - 1]; + if("relationship-list".equals(classAlias)) + continue; + if("metadata".equals(classAlias)) + continue; + if("classes-of-service".equals(classAlias)) { + classAlias = "class-of-service"; + } else if("l3-interface-ipv4-address-list".equals(classAlias)) { + ; + } else if("l3-interface-ipv6-address-list".equals(classAlias)) { + ; + } else if("cvlan-tags".equals(classAlias)) { + classAlias = "cvlan-tag-entry"; + } else if("network-policies".equals(classAlias)) { + classAlias = "network-policy"; + } else if("complexes".equals(classAlias)) { + classAlias = "complex"; + } else if("dvs-switches".equals(classAlias)) { + classAlias = "dvs-switch"; + } else if("service-capabilities".equals(classAlias)) { + classAlias = "service-capability"; + } else { + classAlias = classAlias.substring(0, classAlias.length() -1); + } + AAIRequest request = AAIRequest.createRequest(classAlias, new HashMap()); + if(request != null) { + Class clazz = request.getModelClass(); + Field[] fieldz = clazz.getDeclaredFields(); + Field field = fieldz[0]; + String fieldName = field.getName(); + XmlElement annotation = field.getAnnotation(XmlElement.class); + + Map map = AnnotationUtils.getAnnotationAttributes(annotation); + String id = (String)map.get("name"); + if("##default".equals(id)) { + id = fieldName; + } + + if("cloud-region".equals(classAlias)) { + String keystring = "cloud-region.cloud-owner:assign:value:att-aic&cloud-region.cloud-region-id:assign:value:AAIAIC25"; + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("entitlement".equals(classAlias)) { + String keystring = "entitlement.group-uuid:assign:value:"+UUID.randomUUID()+"&entitlement.resource-uuid:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("license".equals(classAlias)) { + String keystring = "license.group-uuid:assign:value:"+UUID.randomUUID()+"&license.resource-uuid:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("route-target".equals(classAlias)) { + String keystring = "route-target.global-route-target:assign:value:"+UUID.randomUUID()+"&route-target.route-target-role:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("service-capability".equals(classAlias)) { + String keystring = "service-capability.service-type:assign:value:"+UUID.randomUUID()+"&service-capability.vnf-type:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else if("ctag-pool".equals(classAlias)) { + String keystring = "ctag-pool.target-pe:assign:value:"+UUID.randomUUID()+"&ctag-pool.availability-zone-name:assign:value:"+UUID.randomUUID(); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + listSubNodes(classAlias, doc, stack, commands); + stack.pop(); + } else { + String keystring = String.format("%s.%s:assign:value:%s", classAlias, id, UUID.randomUUID()); + stack.push(keystring); + String[] array = stack.toArray(new String[0]); + String key = StringUtils.join(array, "&"); + + String save = String.format("save|%s|%s", classAlias, key); + commands.add(save); + + String query = String.format("query|%s|%s", classAlias, key); + commands.add(query); + + String update = String.format("update|%s|%s", classAlias, key); + commands.add(update); + + if(!parent.equals(classAlias) && !containsCircular(classAlias, id, stack)) { + listSubNodes(classAlias, doc, stack, commands); + } + String delete = String.format("delete|%s|%s", classAlias, key); + commands.add(delete); + stack.pop(); + } + } + } + } } - } + } - public static boolean containsCircular(String classAlias, String id, Stack stack) { - String keystring = String.format("%s.%s", classAlias, id); + public static boolean containsCircular(String classAlias, String id, Stack stack) { + String keystring = String.format("%s.%s", classAlias, id); - Stack localStack = new Stack(); - localStack.addAll(stack); + Stack localStack = new Stack(); + localStack.addAll(stack); - localStack.pop(); + localStack.pop(); - while(!localStack.isEmpty()) { - String instruction = localStack.pop(); - if(instruction.contains(keystring)) { - return true; - } - } + while(!localStack.isEmpty()) { + String instruction = localStack.pop(); + if(instruction.contains(keystring)) { + return true; + } + } - return false; - } + return false; + } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RequestPathTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RequestPathTest.java new file mode 100755 index 000000000..5ee35c647 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RequestPathTest.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; + +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class RequestPathTest { + + private static final Logger LOG = LoggerFactory.getLogger(RequestPathTest.class); + + protected static AAIClient client; + + @BeforeClass + public static void setUp() throws Exception { + URL url = AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES); + client = new AAIService(url); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + client = null; + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + @Test + public void getRequestUrl() { + try { + Map nameValues = new HashMap (); + nameValues.put("generic-vnf.vnf-id","AABBCCDDEEFFGG0123"); + + AAIRequest request = AAIRequest.createRequest("service-instances", nameValues); + request.addRequestProperty("generic-vnf.vnf-id","AABBCCDDEEFFGG0123"); + + URL url = request.getRequestUrl("GET", null); + assertNotNull(url); + url.getPath(); + LOG.info("Received response"); + } catch(Exception exc) { + LOG.info("Caught exception", exc); + } + } +} -- cgit 1.2.3-korg From 6845238493683436d5376b3d5e54abb6393d0f79 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Fri, 16 Mar 2018 20:36:40 +0000 Subject: Improve code metrics for AAIService Changes made: * Created unit test cases for classes that did not have coverage JUnit test yet created Change-Id: I03ce129317d3c2b8715588e0f8e4cb9d814c274a Issue-ID: CCSDK-149 Signed-off-by: Rich Tabedzki --- .../sli/adaptors/aai/CustomQueryRequestTest.java | 117 ++++++++++++++++++++ .../sli/adaptors/aai/GenericVnfRequestTest.java | 117 ++++++++++++++++++++ .../sli/adaptors/aai/RelationshipRequestTest.java | 118 +++++++++++++++++++++ .../sli/adaptors/aai/data/notify/KeyDatumTest.java | 38 +++++++ .../adaptors/aai/data/notify/NotifyEventTest.java | 53 +++++++++ 5 files changed, 443 insertions(+) create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequestTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequestTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequestTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatumTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEventTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequestTest.java new file mode 100644 index 000000000..955f5c4a1 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/CustomQueryRequestTest.java @@ -0,0 +1,117 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class CustomQueryRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(CustomQueryRequestTest.class); + + private static AAIRequest request; + private static AAIService aaiService; + + @BeforeClass + public static void setUp() throws Exception { + aaiService = new AAIService(AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + request = AAIRequest.createRequest("generic-vnf", nameValues); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + request = null; + LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequestTest.java new file mode 100644 index 000000000..062e02d1f --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequestTest.java @@ -0,0 +1,117 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class GenericVnfRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(GenericVnfRequestTest.class); + + private static AAIRequest request; + private static AAIService aaiService; + + @BeforeClass + public static void setUp() throws Exception { + aaiService = new AAIService(AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + request = AAIRequest.createRequest("generic-vnf", nameValues); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + request = null; + LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequestTest.java new file mode 100644 index 000000000..858c9c599 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequestTest.java @@ -0,0 +1,118 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class RelationshipRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(RelationshipRequestTest.class); + + private static AAIRequest request; + private static AAIService aaiService; + + @BeforeClass + public static void setUp() throws Exception { + aaiService = new AAIService(AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + AAIRequest tmpReq = AAIRequest.createRequest("generic-vnf", nameValues); + request = new RelationshipRequest(tmpReq); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + request = null; + LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatumTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatumTest.java new file mode 100644 index 000000000..2ea915213 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/KeyDatumTest.java @@ -0,0 +1,38 @@ +package org.onap.ccsdk.sli.adaptors.aai.data.notify; + +import static org.junit.Assert.*; + +import org.junit.BeforeClass; +import org.junit.Test; + +public class KeyDatumTest { + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + } + + @Test + public void testSetKeyName() { + String testString = "test-value"; + KeyDatum event = new KeyDatum(); + event.setKeyName(testString); + assertEquals(event.getKeyName(), testString); + } + + @Test + public void testSetKeyValue() { + String testString = "test-value"; + KeyDatum event = new KeyDatum(); + event.setKeyValue(testString); + assertEquals(event.getKeyValue(), testString); + } + + @Test + public void testSetAdditionalProperty() { + String testString = "test-value"; + KeyDatum event = new KeyDatum(); + event.setAdditionalProperty("test-key", testString); + assertEquals(event.getAdditionalProperties().get("test-key"), testString); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEventTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEventTest.java new file mode 100644 index 000000000..cb026c001 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/notify/NotifyEventTest.java @@ -0,0 +1,53 @@ +package org.onap.ccsdk.sli.adaptors.aai.data.notify; + +import static org.junit.Assert.*; + +import org.junit.BeforeClass; +import org.junit.Test; + +public class NotifyEventTest { + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + } + + @Test + public void test01() { + String testString = "test-value"; + NotifyEvent event = new NotifyEvent(); + event.setAdditionalProperty("test-key", testString); + assertEquals(event.getAdditionalProperties().get("test-key"), testString); + } + + @Test + public void test02() { + String testString = "test-value"; + NotifyEvent event = new NotifyEvent(); + event.setSelflink(testString); + assertEquals(event.getSelflink(), testString); + } + + @Test + public void test03() { + String testString = "test-value"; + NotifyEvent event = new NotifyEvent(); + event.setEventId(testString); + assertEquals(event.getEventId(), testString); + } + + @Test + public void test04() { + String testString = "test-value"; + NotifyEvent event = new NotifyEvent(); + event.setEventTrigger(testString); + assertEquals(event.getEventTrigger(), testString); + } + + @Test + public void test05() { + String testString = "test-value"; + NotifyEvent event = new NotifyEvent(); + event.setNodeType(testString); + assertEquals(event.getNodeType(), testString); + } +} -- cgit 1.2.3-korg From 0417da35628c007d8ee70825d1d177443f901600 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 20 Mar 2018 14:21:40 +0000 Subject: Improve code metrics in AAIService module Changes made: * Created unit test cases for classes that did not have coverage JUnit test yet created Change-Id: I0ce02a1f2e48909e44dde691bb56371da09ad834 Issue-ID: CCSDK-149 Signed-off-by: Rich Tabedzki --- .../sli/adaptors/aai/AAIClientRESTExecutor.java | 2 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 11 -- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfRequest.java | 144 --------------------- .../adaptors/aai/AAIClientRESTExecutorTest.java | 117 +++++++++++++++++ .../sli/adaptors/aai/AAIServiceProviderTest.java | 31 +++++ .../sli/adaptors/aai/NamedQueryRequestTest.java | 88 +++++++++++++ .../sli/adaptors/aai/NodesQueryRequestTest.java | 87 +++++++++++++ 8 files changed, 325 insertions(+), 157 deletions(-) delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProviderTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java index 906cd8386..b6eacb7af 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java @@ -722,7 +722,7 @@ public class AAIClientRESTExecutor implements AAIExecutorInterface { } public void logMetricResponse(int responseCode, String responseDescription){ - ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); + ml.logResponse(responseCode < 400 ? "COMPLETE" : "ERROR", Integer.toString(responseCode), responseDescription); } protected void LOGwriteFirstTrace(String method, String url) { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index d1b148d5a..1df3cce45 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -721,17 +721,6 @@ public abstract class AAIDeclarations implements AAIClient { if(!itemRemoved) return QueryStatus.NOT_FOUND; - -// AAIRequest masterRequest = new GenericVnfRequest(); -// masterRequest.addRequestProperty(GenericVnfRequest.VNF_ID, vnfId); -// relationshipRequest.addMasterRequest(masterRequest); -// Map attributes = objectToProperties(vnf); -// try { -// Boolean result = getExecutor().delete(relationshipRequest, attributes.get(AAIRequest.RESOURCE_VERSION)); -// } catch (AAIServiceException e) { -// return QueryStatus.FAILURE; -// } - try { this.postGenericVnfData(vnf.getVnfId(), vnf); } catch (AAIServiceException exc) { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 9e6e60f94..1e2940ca9 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -1344,7 +1344,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe } public void logMetricResponse(String requestId, int responseCode, String responseDescription){ - ml.logResponse(responseCode < 400 ? "SUCCESS" : "FAILURE", Integer.toString(responseCode), responseDescription); + ml.logResponse(responseCode < 400 ? "COMPLETE" : "ERROR", Integer.toString(responseCode), responseDescription); } public void logKeyError(String keys){ diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java deleted file mode 100644 index 7aabb8dc7..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfRequest.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.GenericVnf; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class GenericVnfRequest extends AAIRequest { - - // tenant (1602) - public static final String GENERIC_VNF_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf"; - public static final String GENERIC_VNF_QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.query"; - - private final String generic_vnf_path; - private final String generic_vnf_query_path; - - public static final String GENERIC_VNF_ID = "generic_vnf.vnf_id"; - public static final String VNF_ID = "vnf_id"; - - - public GenericVnfRequest() { - generic_vnf_path = configProperties.getProperty(GENERIC_VNF_PATH); - generic_vnf_query_path = configProperties.getProperty(GENERIC_VNF_QUERY_PATH); - } - - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = targetUri+generic_vnf_path; - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = targetUri+generic_vnf_path; - - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - - if(!requestProperties.containsKey(key)) { - aaiService.logKeyError(String.format("%s,%s", VNF_ID, GENERIC_VNF_ID)); - } - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - aaiService.LOGwriteDateTrace("vnf-id", requestProperties.getProperty(key)); - - return http_req_url; - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - GenericVnf tenant = (GenericVnf)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {VNF_ID, GENERIC_VNF_ID}; - return args; - } - - - @Override - public Class getModelClass() { - return GenericVnf.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = VNF_ID; - if(requestProperties.containsKey(GENERIC_VNF_ID)) { - key = GENERIC_VNF_ID; - } - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{vnf-id}", encoded_vnf) ; - - return request_url; - } -} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java new file mode 100644 index 000000000..9905991a7 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java @@ -0,0 +1,117 @@ +package org.onap.ccsdk.sli.adaptors.aai; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.junit.BeforeClass; +import org.junit.Test; + +public class AAIClientRESTExecutorTest { + + private static AAIClientRESTExecutor aaiExecute; + @BeforeClass + public static void setUpBeforeClass() throws Exception { + Properties properties = new Properties(); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore", "true"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.client.name", "SDNC"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.client.psswd", "SDNC"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.application", "CCSDK"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.uri", "http://localhost:8181"); + properties.setProperty("connection.timeout", "60000"); + properties.setProperty("read.timeout", "60000"); + aaiExecute = new AAIClientRESTExecutor(properties); + + + } + + @Test + public void testGet() { + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + AAIRequest request = AAIRequest.createRequest("generic-vnf", nameValues); + try { + aaiExecute.get(request); + } catch (AAIServiceException e) { + } + assert(true); + } + + @Test + public void testPost() { + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + AAIRequest request = AAIRequest.createRequest("generic-vnf", nameValues); + try { + aaiExecute.get(request); + } catch (AAIServiceException e) { + } + assert(true); + } + + @Test + public void testDelete() { + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + AAIRequest request = AAIRequest.createRequest("generic-vnf", nameValues); + try { + aaiExecute.get(request); + } catch (AAIServiceException e) { + } + assert(true); + } + + @Test + public void testQuery() { + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + AAIRequest request = AAIRequest.createRequest("generic-vnf", nameValues); + try { + aaiExecute.get(request); + } catch (AAIServiceException e) { + } + assert(true); + } + + @Test + public void testPatch() { + Map nameValues = new HashMap<>(); + nameValues.put("generic-vnf.vnf-id", "vnf-001"); + AAIRequest request = AAIRequest.createRequest("generic-vnf", nameValues); + try { + aaiExecute.patch(request, "1234567890"); + } catch (AAIServiceException e) { + } + assert(true); + } + + + + @Test + public void testLOGwriteFirstTrace() { + try { + aaiExecute.LOGwriteFirstTrace("GET", null); + } catch (Exception e) { + } + assert(true); + } + + @Test + public void testLOGwriteDateTrace() { + try { + aaiExecute.LOGwriteDateTrace("GET", "<----- test data ------>"); + } catch (Exception e) { + } + assert(true); + } + + @Test + public void testLOGwriteEndingTrace() { + try { + aaiExecute.LOGwriteEndingTrace(200, "GET", "<----- test data ------>"); + } catch (Exception e) { + } + assert(true); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProviderTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProviderTest.java new file mode 100644 index 000000000..bfe3738e0 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceProviderTest.java @@ -0,0 +1,31 @@ +package org.onap.ccsdk.sli.adaptors.aai; + +import org.junit.BeforeClass; +import org.junit.Test; + +public class AAIServiceProviderTest { + + private static AAIServiceProvider provider = null; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + } + + @Test + public void testAAIServiceProvider() { + provider = new AAIServiceProvider(); + } + + @Test + public void testGetProperties() { + provider.getProperties(); + assert(true); + } + + @Test + public void testDeterminePropertiesFile() { + provider.determinePropertiesFile(); + assert(true); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java new file mode 100644 index 000000000..155945dea --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java @@ -0,0 +1,88 @@ +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.*; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class NamedQueryRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(NamedQueryRequestTest.class); + + private static AAIRequest request; + + @BeforeClass + public static void setUp() throws Exception { + + request = new NamedQueryRequest(); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + request = null; + LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + URL url; + try { + url = request.getRequestUrl("GET", null); + assertNotNull(url); + } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java new file mode 100644 index 000000000..17ae52207 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java @@ -0,0 +1,87 @@ +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; + +import java.net.URL; +import java.util.Properties; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class NodesQueryRequestTest { + + private static final Logger LOG = LoggerFactory.getLogger(NodesQueryRequestTest.class); + + private static AAIRequest request; + + @BeforeClass + public static void setUp() throws Exception { + Properties properties = new Properties(); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore", "true"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.client.name", "SDNC"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.client.psswd", "SDNC"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.application", "CCSDK"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.uri", "http://localhost:8181"); + properties.setProperty("connection.timeout", "60000"); + properties.setProperty("read.timeout", "60000"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.query.nodes","/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}"); + + AAIRequest.configProperties = properties; + request = new NodesQueryRequest(); + LOG.info("\nEchoRequestTest.setUp\n"); + } + + @Test + public void runGetRequestUrlTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + URL url = request.getRequestUrl("GET", null); + } catch (Exception exc) { + } + assert(true); + + } + + @Test + public void runToJSONStringTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String json = request.toJSONString(); + assertNotNull(json); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetArgsListTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + String[] args = request.getArgsList(); + assertNotNull(args); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } + + @Test + public void runGetModelTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try { + Class clazz = request.getModelClass(); + assertNotNull(clazz); + } catch (Exception exc) { + LOG.error("Failed test", exc); + } + + } +} -- cgit 1.2.3-korg From d5dd60030741c5e93f24c13d700bc01cc37367db Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 20 Mar 2018 17:37:13 +0000 Subject: Improve code coverage metrics in AAIService module Changes made: * added new unit test GenericVnfTest to test CRUD API of AAIService Change-Id: Ifbc2692f47507ec72fdce93d2fd4e4ee02133cad Issue-ID: CCSDK-149 Signed-off-by: Rich Tabedzki --- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 31 +-- .../ccsdk/sli/adaptors/aai/GenericVnfTest.java | 242 +++++++++++++++++++++ 2 files changed, 250 insertions(+), 23 deletions(-) create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 1e2940ca9..06834c11f 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -111,33 +111,19 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe private final Boolean ignoreCertificateHostError; private final String targetUri; - private final String queryPath; - private final String networkVserverPath; - private final String svcInstancePath; private final String svc_inst_qry_path; - private final String vnf_image_query_path; - - private final String param_service_type; //= "service-type"; - private final String ubb_notify_path; private final String selflinkAvpn; private final String selflinkFqdn; - private final String pInterfacePath; - - private final String servicePath; - private final String sitePairSetPath; - private final int connectionTimeout; private final int readTimeout; // 1602 private final String queryNodesPath; - private final String updatePath; - private final String applicationId; // authentication credentials @@ -206,8 +192,8 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe keystorePassword = props.getProperty(KEYSTORE_PSSWD); targetUri = props.getProperty(TARGET_URI); - queryPath = props.getProperty(QUERY_PATH); - updatePath = props.getProperty(UPDATE_PATH); + props.getProperty(QUERY_PATH); + props.getProperty(UPDATE_PATH); String tmpApplicationId = props.getProperty(APPLICATION_ID); if(tmpApplicationId == null || tmpApplicationId.isEmpty()) { @@ -235,22 +221,21 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe networkVserverPath =props.getProperty(NETWORK_VSERVER_PATH); - svcInstancePath = props.getProperty(SVC_INSTANCE_PATH); + props.getProperty(SVC_INSTANCE_PATH); svc_inst_qry_path = props.getProperty(SVC_INST_QRY_PATH); - param_service_type = props.getProperty(PARAM_SERVICE_TYPE, "service-type"); + props.getProperty(PARAM_SERVICE_TYPE, "service-type"); - // P-Interfaces - pInterfacePath = props.getProperty(P_INTERFACE_PATH); + props.getProperty(P_INTERFACE_PATH); - vnf_image_query_path = props.getProperty(VNF_IMAGE_QUERY_PATH); + props.getProperty(VNF_IMAGE_QUERY_PATH); ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); selflinkAvpn = props.getProperty(SELFLINK_AVPN); selflinkFqdn = props.getProperty(SELFLINK_FQDN); - servicePath = props.getProperty(SERVICE_PATH); + props.getProperty(SERVICE_PATH); - sitePairSetPath = props.getProperty(SITE_PAIR_SET_PATH); + props.getProperty(SITE_PAIR_SET_PATH); queryNodesPath = props.getProperty(QUERY_NODES_PATH); diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java new file mode 100755 index 000000000..afdc4d26e --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -0,0 +1,242 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.UUID; + +import org.apache.commons.lang.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.AAIClient; +import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class GenericVnfTest { + + private static final Logger LOG = LoggerFactory.getLogger(GenericVnfTest.class); + + protected static AAIClient client; + + @BeforeClass + public static void setUp() throws Exception { + Properties properties = new Properties(); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore", "true"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.client.name", "SDNC"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.client.psswd", "SDNC"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.application", "CCSDK"); + properties.setProperty("org.onap.ccsdk.sli.adaptors.aai.uri", "http://localhost:8181"); + properties.setProperty("connection.timeout", "60000"); + properties.setProperty("read.timeout", "60000"); + client = new AAIService(properties); + ((AAIService)client).setExecutor(new TestExecutor()); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + client = null; + LOG.info("----------------------- GenericVnfTest.tearDown -----------------------"); + } + + + @Test + public void test01SaveGenericVnf() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + String uuid = UUID.randomUUID().toString(); + Map data = new HashMap(); + data.put("vnf-id", uuid); + data.put("vnf-name" , "Demo-vmtn5scpx01"); + data.put("vnf-type", "asc_heat-int"); + data.put("service-id", "SDN-MOBILITY"); + data.put("equipment-role", "vSCP"); + data.put("orchestration-status", "active"); + data.put("heat-stack-id", "Devmtn5scpx04/" + data.get("vnf-id")); + data.put("in-maint", "false"); + data.put("is-closed-loop-disabled", "false"); + data.put("encrypted-access-flag","true"); + + QueryStatus resp = client.save("generic-vnf", false, false, "generic-vnf.vnf-id = '"+uuid+"'", data, "aaidata", ctx); + + } + catch (Throwable e) + { + + } + } + + @Test + public void test02QueryGenericVnf() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + List keys = new ArrayList(); + keys.add("vnf-id = 'ec14a84d-7b43-45ad-bb04-c12b74083648'"); + keys.add("depth = 'all'"); + + SvcLogicContext ctx = new SvcLogicContext(); + QueryStatus response = client.query("generic-vnf", false, null, StringUtils.join(keys, " AND "), "aaiTest", null, ctx); + + assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + response.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void test03UpdateGenericVnf() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + String uuid = UUID.randomUUID().toString(); + Map data = new HashMap(); + data.put("service-id", "SDN-MOBILITY"); + data.put("equipment-role", "vSCP"); + data.put("orchestration-status", "active"); + data.put("heat-stack-id", "Devmtn5scpx04/" + data.get("vnf-id")); + data.put("in-maint", "false"); + data.put("is-closed-loop-disabled", "false"); + data.put("encrypted-access-flag","true"); + + QueryStatus resp = client.update("generic-vnf", "generic-vnf.vnf-id = '"+uuid+"'", data, "aaidata", ctx); + + } + catch (Throwable e) + { + + } + } + + @Test + public void test04DeleteGenericVnf() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + List keys = new ArrayList(); + keys.add("generic-vnf.vnf-id = 'VNF-S7'"); + + QueryStatus response = client.delete("generic-vnf", StringUtils.join(keys, " AND "), ctx); + + assertTrue(response == QueryStatus.SUCCESS); + LOG.info("AAIResponse: " + response.toString()); + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void test05GetResource() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + SvcLogicContext ctx = new SvcLogicContext(); + GenericVnf response = ((AAIService)client).getResource("/network/generic-vnfs/generic-vnf/ec14a84d-7b43-45ad-bb04-c12b74083648", GenericVnf.class); + + assertNotNull(response); + } + catch (Exception e) + { + + } + } + + static class TestExecutor implements AAIExecutorInterface { + private String data = "{\"vnf-id\":\"7324200933\",\"vnf-name\":\"vnfinst1m001\",\"vnf-type\":\"TestVnf\",\"service-id\":\"9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\"equipment-role\":\"vTEST\",\"orchestration-status\":\"active\",\"in-maint\":false,\"is-closed-loop-disabled\":false,\"resource-version\":\"1520720941585\"}"; + + @Override + public String get(AAIRequest request) throws AAIServiceException { + return data; + } + + @Override + public String post(AAIRequest request) throws AAIServiceException { + return "success"; + } + + @Override + public Boolean delete(AAIRequest request, String resourceVersion) throws AAIServiceException { + return Boolean.TRUE; + } + + @Override + public Object query(AAIRequest request, Class clas) throws AAIServiceException { + ObjectMapper mapper = AAIService.getObjectMapper(); + try { + return mapper.readValue(data, GenericVnf.class); + } catch (IOException e) { + return new GenericVnf(); + } + } + + @Override + public Boolean patch(AAIRequest request, String resourceVersion) throws AAIServiceException { + return Boolean.TRUE; + } + + } +} -- cgit 1.2.3-korg From f88c714f725e952025b9376bf1b3a64afaac8c15 Mon Sep 17 00:00:00 2001 From: Ruchira Agarwal Date: Mon, 26 Mar 2018 22:40:01 +0000 Subject: Add junit for adaptors Added new junits for aai-service Change-Id: Ia717d0e6180f9fd8ecd9d98935d5ceeeaa69530c Issue-ID: CCSDK-225 Signed-off-by: Ruchira Agarwal --- .../sli/adaptors/aai/data/ErrorResponseTest.java | 51 ++++++++++++ .../sli/adaptors/aai/data/RequestErrorTest.java | 51 ++++++++++++ .../sli/adaptors/aai/data/ResponseMessageTest.java | 71 ++++++++++++++++ .../adaptors/aai/data/ResponseMessagesTest.java | 55 +++++++++++++ .../adaptors/aai/data/ServiceExceptionTest.java | 71 ++++++++++++++++ .../sli/adaptors/aai/data/SubInterfaceTest.java | 95 ++++++++++++++++++++++ .../ccsdk/sli/adaptors/aai/data/VariablesTest.java | 56 +++++++++++++ 7 files changed, 450 insertions(+) create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponseTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestErrorTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessagesTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceExceptionTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/VariablesTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponseTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponseTest.java new file mode 100644 index 000000000..6232ae34a --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ErrorResponseTest.java @@ -0,0 +1,51 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ErrorResponseTest { + + ErrorResponse _erInstance; + protected RequestError _requestError; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _erInstance = new ErrorResponse(); + _requestError = mock(RequestError.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _erInstance = null; + _requestError = null; + _additionalProperties = null; + } + + @Test + public void testSetRequestError() { + _erInstance.setRequestError(_requestError); + assertEquals(_erInstance.getRequestError(), _requestError); + } + + @Test + public void testSetAdditionalProperty() { + _erInstance.setAdditionalProperty("prop1", "propvalue1"); + _erInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_erInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestErrorTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestErrorTest.java new file mode 100644 index 000000000..c752c7656 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/RequestErrorTest.java @@ -0,0 +1,51 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class RequestErrorTest { + + RequestError _reInstance; + protected ServiceException _serviceException; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _reInstance = new RequestError(); + _serviceException = mock(ServiceException.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _reInstance = null; + _serviceException = null; + _additionalProperties = null; + } + + @Test + public void testSetServiceException() { + _reInstance.setServiceException(_serviceException); + assertEquals(_reInstance.getServiceException(), _serviceException); + } + + @Test + public void testSetAdditionalProperty() { + _reInstance.setAdditionalProperty("prop1", "propvalue1"); + _reInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_reInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java new file mode 100644 index 000000000..04c9963b5 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java @@ -0,0 +1,71 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.aai.inventory.v11.Vlans; + +public class ResponseMessageTest { + + ResponseMessage _rmInstance; + protected String _messageId; + protected String _text; + protected Variables _variables; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _rmInstance = new ResponseMessage(); + _messageId = "messageId"; + _text = "text"; + _variables = mock(Variables.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _rmInstance = null; + _messageId = null; + _text = null; + _variables = null; + _additionalProperties = null; + } + + @Test + public void testSetMessageId() { + _rmInstance.setMessageId(_messageId); + assertTrue(_rmInstance.getMessageId().equals(_messageId)); + } + + @Test + public void testSetText() { + _rmInstance.setText(_text); + assertTrue(_rmInstance.getText().equals(_text)); + } + + @Test + public void testSetVariables() { + _rmInstance.setVariables(_variables); + assertEquals(_rmInstance.getVariables(), _variables); + } + + @Test + public void testSetAdditionalProperty() { + _rmInstance.setAdditionalProperty("prop1", "propvalue1"); + _rmInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_rmInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessagesTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessagesTest.java new file mode 100644 index 000000000..f21e969dd --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessagesTest.java @@ -0,0 +1,55 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ResponseMessagesTest { + + ResponseMessages _rmsInstance; + protected List _responseMessage; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _rmsInstance = new ResponseMessages(); + _responseMessage = new ArrayList<>(); + ResponseMessage rm1 = mock(ResponseMessage.class); + ResponseMessage rm2 = mock(ResponseMessage.class); + _responseMessage.add(rm1); + _responseMessage.add(rm2); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _rmsInstance = null; + _responseMessage = null; + _additionalProperties = null; + } + + @Test + public void testSetResponseMessage() { + _rmsInstance.setResponseMessage(_responseMessage); + assertEquals(_rmsInstance.getResponseMessage(), _responseMessage); + } + + @Test + public void testSetAdditionalProperty() { + _rmsInstance.setAdditionalProperty("prop1", "propvalue1"); + _rmsInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_rmsInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceExceptionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceExceptionTest.java new file mode 100644 index 000000000..f44d9b366 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ServiceExceptionTest.java @@ -0,0 +1,71 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ServiceExceptionTest { + + ServiceException _seInstance; + protected String _messageId; + protected String _text; + protected List _variables; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _seInstance = new ServiceException(); + _messageId = "messageId"; + _text = "text"; + _variables = new ArrayList<>(Arrays.asList("var1", "var2", "var3")); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _seInstance = null; + _messageId = null; + _text = null; + _variables = null; + _additionalProperties = null; + } + + @Test + public void testSetMessageId() { + _seInstance.setMessageId(_messageId); + assertTrue(_seInstance.getMessageId().equals(_messageId)); + } + + @Test + public void testSetText() { + _seInstance.setText(_text); + assertTrue(_seInstance.getText().equals(_text)); + } + + @Test + public void testSetVariables() { + _seInstance.setVariables(_variables); + assertEquals(_seInstance.getVariables(), _variables); + } + + @Test + public void testSetAdditionalProperties() { + _seInstance.setAdditionalProperty("prop1", "propvalue1"); + _seInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_seInstance.getAdditionalProperties(), _additionalProperties); + } + + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java new file mode 100644 index 000000000..66717103d --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java @@ -0,0 +1,95 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.aai.inventory.v11.RelationshipList; +import org.openecomp.aai.inventory.v11.Vlans; + +public class SubInterfaceTest { + + SubInterface _siInstance; + protected String _interfaceName; + protected String _interfaceRole; + protected String _resourceVersion; + protected Vlans _vlans; + protected RelationshipList _relationshipList; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _siInstance = new SubInterface(); + _interfaceName = "interfaceName"; + _interfaceRole = "interfaceRole"; + _resourceVersion = "resourceVersion"; + _vlans = mock(Vlans.class); + _relationshipList = mock(RelationshipList.class); + + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + + } + + @After + public void tearDown() throws Exception { + _siInstance = null; + _interfaceName = null; + _interfaceRole = null; + _resourceVersion = null; + _vlans = null; + _relationshipList = null; + _additionalProperties = null; + } + + @Test + public void testSetInterfaceName() { + _siInstance.setInterfaceName(_interfaceName); + assertTrue(_siInstance.getInterfaceName().equals(_interfaceName)); + } + + + @Test + public void testSetInterfaceRole() { + _siInstance.setInterfaceRole(_interfaceRole); + assertTrue(_siInstance.getInterfaceRole().equals(_interfaceRole)); + } + + + @Test + public void testSetResourceVersion() { + _siInstance.setResourceVersion(_resourceVersion); + assertTrue(_siInstance.getResourceVersion().equals(_resourceVersion)); + } + + + @Test + public void testSetVlans() { + _siInstance.setVlans(_vlans); + assertTrue(_siInstance.getVlans().equals(_vlans)); + } + + + @Test + public void testSetRelationshipList() { + _siInstance.setRelationshipList(_relationshipList); + assertTrue(_siInstance.getRelationshipList().equals(_relationshipList)); + } + + @Test + public void testSetAdditionalProperties() { + _siInstance.setAdditionalProperty("prop1", "propvalue1"); + _siInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_siInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/VariablesTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/VariablesTest.java new file mode 100644 index 000000000..1f72f7e67 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/VariablesTest.java @@ -0,0 +1,56 @@ +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.*; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import java.util.ArrayList; + +public class VariablesTest { + Variables _variablesInstance; + protected List _variable; + protected Map _additionalProperties; + + public VariablesTest() { + } + + @Before + public void setUp() throws Exception { + _variablesInstance = new Variables(); + _variable = new ArrayList<>(Arrays.asList("var1", "var2", "var3")); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _variablesInstance = null; + _variable = null; + _additionalProperties = null; + } + + + @Test + public void testSetVariable() { + _variablesInstance.setVariable(_variable); + assertEquals(_variablesInstance.getVariable(), _variable); + } + + @Test + public void testSetAdditionalProperties() { + _variablesInstance.setAdditionalProperty("prop1", "propvalue1"); + _variablesInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_variablesInstance.getAdditionalProperties(), _additionalProperties); + } + +} -- cgit 1.2.3-korg From 78a2b3d07bb2b5165c6795e84f20f9b9c2ecedc7 Mon Sep 17 00:00:00 2001 From: Ruchira Agarwal Date: Tue, 27 Mar 2018 16:54:01 +0000 Subject: Update adaptors witj junits Adding junits for adaptor aai-service query and update Change-Id: I4b95e90ce3c8e2a8a52448cca578e34d51ecc581 Issue-ID: CCSDK-225 Signed-off-by: Ruchira Agarwal --- .../aai/query/FormattedQueryRequestDataTest.java | 53 +++++++ .../aai/query/FormattedQueryResultListTest.java | 49 +++++++ .../sli/adaptors/aai/query/InstanceFilterTest.java | 127 ++++++++++++++++ .../adaptors/aai/query/InstanceFiltersTest.java | 55 +++++++ .../sli/adaptors/aai/query/NamedQueryDataTest.java | 60 ++++++++ .../sli/adaptors/aai/query/NamedQueryTest.java | 51 +++++++ .../adaptors/aai/query/QueryParametersTest.java | 53 +++++++ .../ccsdk/sli/adaptors/aai/query/ResultTest.java | 159 +++++++++++++++++++++ .../sli/adaptors/aai/update/ActionDatumTest.java | 58 ++++++++ .../ccsdk/sli/adaptors/aai/update/ActionTest.java | 64 +++++++++ .../sli/adaptors/aai/update/UpdateNodeKeyTest.java | 53 +++++++ .../ccsdk/sli/adaptors/aai/update/UpdateTest.java | 75 ++++++++++ 12 files changed, 857 insertions(+) create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestDataTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultListTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatumTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKeyTest.java create mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestDataTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestDataTest.java new file mode 100644 index 000000000..a89dbded6 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryRequestDataTest.java @@ -0,0 +1,53 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.sli.adaptors.aai.data.Variables; + +public class FormattedQueryRequestDataTest { + + FormattedQueryRequestData _fqrdInstance; + protected List _start; + protected String _query; + + @Before + public void setUp() throws Exception { + _fqrdInstance = new FormattedQueryRequestData(); + _start = new ArrayList<>(Arrays.asList("start1", "start2", "start3")); + _query = "query"; + } + + @After + public void tearDown() throws Exception { + _fqrdInstance = null; + _start = null; + _query = null; + } + + @Test + public void testSetStart() { + _fqrdInstance.setStart(_start); + assertEquals(_fqrdInstance.getStart(), _start); + } + + @Test + public void testSetQuery() { + _fqrdInstance.setQuery(_query); + assertEquals(_fqrdInstance.getQuery(), _query); + } + + @Test + public void testToString() { + _fqrdInstance.setStart(_start); + _fqrdInstance.setQuery(_query); + assertNotNull(_fqrdInstance.toString()); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultListTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultListTest.java new file mode 100644 index 000000000..f26051917 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/FormattedQueryResultListTest.java @@ -0,0 +1,49 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import java.util.ArrayList; + +public class FormattedQueryResultListTest { + FormattedQueryResultList _fqrlInstance; + protected List _results; + + @Before + public void setUp() throws Exception { + _fqrlInstance = new FormattedQueryResultList(); + _results = new ArrayList<>(); + Result r1 = mock(Result.class); + Result r2 = mock(Result.class); + _results.add(r1); + _results.add(r2); + } + + @After + public void tearDown() throws Exception { + _fqrlInstance = null; + _results = null; + } + + + @Test + public void testSetResults() { + _fqrlInstance.setResults(_results); + assertEquals(_fqrlInstance.getResults(), _results); + } + + @Test + public void testToString() { + _fqrlInstance.setResults(_results); + assertTrue(_fqrlInstance.toString() != null); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java new file mode 100644 index 000000000..1bc226ec5 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java @@ -0,0 +1,127 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import org.openecomp.aai.inventory.v11.CloudRegion; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.L3Network; +import org.openecomp.aai.inventory.v11.Pnf; +import org.openecomp.aai.inventory.v11.LogicalLink; +import org.openecomp.aai.inventory.v11.PInterface; +import org.openecomp.aai.inventory.v11.ServiceInstance; +import org.openecomp.aai.inventory.v11.Tenant; +import org.openecomp.aai.inventory.v11.Vnf; +import org.openecomp.aai.inventory.v11.Vserver; + +public class InstanceFilterTest { + + InstanceFilter _ifInstance; + protected LogicalLink _logicalLink; + protected Pnf _pnf; + protected L3Network _l3Network; + protected PInterface _pInterface; + protected GenericVnf _genericVnf; + protected Vserver _vserver; + protected Tenant _tenant; + protected CloudRegion _cloudRegion; + protected ServiceInstance _serviceInstance; + protected Vnf _vnfc; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _ifInstance = new InstanceFilter(); + LogicalLink _logicalLink = mock(LogicalLink.class); + Pnf _pnf = mock(Pnf.class); + L3Network _l3Network = mock(L3Network.class); + PInterface _pInterface = mock(PInterface.class); + GenericVnf _genericVnf = mock(GenericVnf.class); + Vserver _vserver = mock(Vserver.class); + Tenant _tenant = mock(Tenant.class); + CloudRegion _cloudRegion = mock(CloudRegion.class); + ServiceInstance _serviceInstance = mock(ServiceInstance.class); + // as per class + Vnf _vnfc = mock(Vnf.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _ifInstance = null; + _additionalProperties = null; + } + + @Test + public void testSetLogicalLink() { + _ifInstance.setLogicalLink(_logicalLink); + assertEquals(_ifInstance.getLogicalLink(), _logicalLink); + } + + @Test + public void testSetPnf() { + _ifInstance.setPnf(_pnf); + assertEquals(_ifInstance.getPnf(), _pnf); + } + + @Test + public void testSetL3Network() { + _ifInstance.setL3Network(_l3Network); + assertEquals(_ifInstance.getL3Network(), _l3Network); + } + + @Test + public void testSetServiceInstance() { + _ifInstance.setServiceInstance(_serviceInstance); + assertEquals(_ifInstance.getServiceInstance(), _serviceInstance); + } + + @Test + public void testSetGenericVnf() { + _ifInstance.setGenericVnf(_genericVnf); + assertEquals(_ifInstance.getGenericVnf(), _genericVnf); + } + + @Test + public void testSetVserver() { + _ifInstance.setVserver(_vserver); + assertEquals(_ifInstance.getVserver(), _vserver); + } + + @Test + public void testSetTenant() { + _ifInstance.setTenant(_tenant); + assertEquals(_ifInstance.getTenant(), _tenant); + } + + @Test + public void testSetCloudRegion() { + _ifInstance.setCloudRegion(_cloudRegion); + assertEquals(_ifInstance.getCloudRegion(), _cloudRegion); + } + + @Test + public void testSetVnfc() { + _ifInstance.setVnfc(_vnfc); + assertEquals(_ifInstance.getVnfc(), _vnfc); + } + + @Test + public void testSetAdditionalProperty() { + _ifInstance.setAdditionalProperty("prop1", "propvalue1"); + _ifInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_ifInstance.getAdditionalProperties(), _additionalProperties); + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java new file mode 100644 index 000000000..e44e8454b --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java @@ -0,0 +1,55 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class InstanceFiltersTest { + + InstanceFilters _ifsInstance; + protected List _instanceFilter; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _ifsInstance = new InstanceFilters(); + _instanceFilter = new ArrayList<>(); + InstanceFilter if1 = mock(InstanceFilter.class); + InstanceFilter if2 = mock(InstanceFilter.class); + _instanceFilter.add(if1); + _instanceFilter.add(if2); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _ifsInstance = null; + _instanceFilter = null; + _additionalProperties = null; + } + + @Test + public void testSetInstanceFilter() { + _ifsInstance.setInstanceFilter(_instanceFilter); + assertEquals(_ifsInstance.getInstanceFilter(), _instanceFilter); + + } + + @Test + public void testSetAdditionalProperty() { + _ifsInstance.setAdditionalProperty("prop1", "propvalue1"); + _ifsInstance.setAdditionalProperty("prop2", "propvalue2"); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java new file mode 100644 index 000000000..9f01e84a9 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java @@ -0,0 +1,60 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class NamedQueryDataTest { + + NamedQueryData _nqdInstance; + protected QueryParameters _queryParameters; + protected InstanceFilters _instanceFilters; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _nqdInstance = new NamedQueryData(); + _queryParameters = mock(QueryParameters.class); + _instanceFilters = mock(InstanceFilters.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _nqdInstance = null; + _queryParameters = null; + _instanceFilters = null; + _additionalProperties = null; + } + + @Test + public void testSetQueryParameters() { + _nqdInstance.setQueryParameters(_queryParameters); + assertEquals(_nqdInstance.getQueryParameters(), _queryParameters); + } + + @Test + public void testSetInstanceFilters() { + _nqdInstance.setInstanceFilters(_instanceFilters); + assertEquals(_nqdInstance.getInstanceFilters(), _instanceFilters); + } + + @Test + public void testSetAdditionalProperty() { + _nqdInstance.setAdditionalProperty("prop1", "propvalue1"); + _nqdInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_nqdInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java new file mode 100644 index 000000000..02a239a22 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java @@ -0,0 +1,51 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class NamedQueryTest { + + NamedQuery _nqInstance; + protected String _namedQueryUuid; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _nqInstance = new NamedQuery(); + _namedQueryUuid = "uuid"; + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _nqInstance = null; + _namedQueryUuid = null; + _additionalProperties = null; + } + + @Test + public void testSetNamedQueryUuid() { + _nqInstance.setNamedQueryUuid(_namedQueryUuid); + assertEquals(_nqInstance.getNamedQueryUuid(), _namedQueryUuid); + } + + @Test + public void testSetAdditionalProperty() { + _nqInstance.setAdditionalProperty("prop1", "propvalue1"); + _nqInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_nqInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java new file mode 100644 index 000000000..d9a578903 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java @@ -0,0 +1,53 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; +import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; + +public class QueryParametersTest { + + QueryParameters _qpInstance; + protected NamedQuery _namedQuery; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _qpInstance = new QueryParameters(); + _namedQuery = mock(NamedQuery.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _qpInstance = null; + _namedQuery = null; + _additionalProperties = null; + } + + @Test + public void testSetNamedQuery() { + _qpInstance.setNamedQuery(_namedQuery); + assertEquals(_qpInstance.getNamedQuery(), _namedQuery); + } + + @Test + public void testSetAdditionalProperty() { + _qpInstance.setAdditionalProperty("prop1", "propvalue1"); + _qpInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_qpInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java new file mode 100644 index 000000000..4bec98724 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java @@ -0,0 +1,159 @@ +package org.onap.ccsdk.sli.adaptors.aai.query; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import org.openecomp.aai.inventory.v11.CloudRegion; +import org.openecomp.aai.inventory.v11.Complex; +import org.openecomp.aai.inventory.v11.Configuration; +import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v11.L3InterfaceIpv4AddressList; +import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList; +import org.openecomp.aai.inventory.v11.L3Network; +import org.openecomp.aai.inventory.v11.LInterface; +//import org.openecomp.aai.inventory.v11.OwningEntity; +import org.openecomp.aai.inventory.v11.Pserver; +import org.openecomp.aai.inventory.v11.ServiceInstance; +import org.openecomp.aai.inventory.v11.Vnfc; +import org.openecomp.aai.inventory.v11.Vserver; + +public class ResultTest { + + Result _rInstance; + + protected CloudRegion _cloudRegion; + protected Complex _complex; + protected Configuration _configuration; + protected GenericVnf _genericVnf; + protected L3InterfaceIpv4AddressList _l3InterfaceIpv4AddressList; + protected L3InterfaceIpv6AddressList _l3InterfaceIpv6AddressList; + protected L3Network _l3Network; + protected LInterface _lInterface; + protected Pserver _pserver; + protected ServiceInstance _serviceInstance; + protected Vnfc _vnfc; + protected Vserver _vserver; + + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _rInstance = new Result(); + + CloudRegion _cloudRegion = mock(CloudRegion.class); + Complex _complex = mock(Complex.class); + Configuration _configuration = mock(Configuration.class); + L3InterfaceIpv4AddressList _l3InterfaceIpv4AddressList = mock(L3InterfaceIpv4AddressList.class); + L3InterfaceIpv6AddressList _l3InterfaceIpv6AddressList = mock(L3InterfaceIpv6AddressList.class); + L3Network _l3Network = mock(L3Network.class); + LInterface _pInterface = mock(LInterface.class); + GenericVnf _genericVnf = mock(GenericVnf.class); + Vserver _vserver = mock(Vserver.class); + Pserver _pserver = mock(Pserver.class); + Vnfc _vnfc = mock(Vnfc.class); + ServiceInstance _serviceInstance = mock(ServiceInstance.class); + + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _rInstance = null; + _additionalProperties = null; + } + + @Test + public void testSetComplex() { + _rInstance.setComplex(_complex); + assertEquals(_rInstance.getComplex(), _complex); + } + + @Test + public void testSetConfiguration() { + _rInstance.setConfiguration(_configuration); + assertEquals(_rInstance.getConfiguration(), _configuration); + } + + @Test + public void testSetL3InterfaceIpv4AddressList() { + _rInstance.setL3InterfaceIpv4AddressList(_l3InterfaceIpv4AddressList); + assertEquals(_rInstance.getL3InterfaceIpv4AddressList(), _l3InterfaceIpv4AddressList); + } + + @Test + public void testSetL3InterfaceIpv6AddressList() { + _rInstance.setL3InterfaceIpv6AddressList(_l3InterfaceIpv6AddressList); + assertEquals(_rInstance.getL3InterfaceIpv6AddressList(), _l3InterfaceIpv6AddressList); + } + + @Test + public void testSetL3Network() { + _rInstance.setL3Network(_l3Network); + assertEquals(_rInstance.getL3Network(), _l3Network); + } + + @Test + public void testSetServiceInstance() { + _rInstance.setServiceInstance(_serviceInstance); + assertEquals(_rInstance.getServiceInstance(), _serviceInstance); + } + + @Test + public void testSetGenericVnf() { + _rInstance.setGenericVnf(_genericVnf); + assertEquals(_rInstance.getGenericVnf(), _genericVnf); + } + + @Test + public void testSetVserver() { + _rInstance.setVserver(_vserver); + assertEquals(_rInstance.getVserver(), _vserver); + } + + @Test + public void testSetCloudRegion() { + _rInstance.setCloudRegion(_cloudRegion); + assertEquals(_rInstance.getCloudRegion(), _cloudRegion); + } + + @Test + public void testSetVnfc() { + _rInstance.setVnfc(_vnfc); + assertEquals(_rInstance.getVnfc(), _vnfc); + } + + @Test + public void testSetLInterface() { + _rInstance.setLInterface(_lInterface); + assertEquals(_rInstance.getLInterface(), _lInterface); + } + + @Test + public void testSetPserver() { + _rInstance.setPserver(_pserver); + assertEquals(_rInstance.getPserver(), _pserver); + } + + @Test + public void testSetAdditionalProperty() { + _rInstance.setAdditionalProperty("prop1", "propvalue1"); + _rInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_rInstance.getAdditionalProperties(), _additionalProperties); + } + + @Test + public void testToString() { + assertNotNull(_rInstance.toString()); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatumTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatumTest.java new file mode 100644 index 000000000..7b858ea65 --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionDatumTest.java @@ -0,0 +1,58 @@ +package org.onap.ccsdk.sli.adaptors.aai.update; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ActionDatumTest { + + ActionDatum _oInstance; + protected Map _additionalProperties; + protected String _propertyName; + protected String _propertyValue; + + @Before + public void setUp() throws Exception { + _oInstance = new ActionDatum(); + _propertyName = "propertyName"; + _propertyValue = "propertyValue"; + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _oInstance = null; + _additionalProperties = null; + } + + @Test + public void testSetPropertyName() { + _oInstance.setPropertyName(_propertyName); + assertEquals(_oInstance.getPropertyName(), _propertyName); + } + + @Test + public void testSetPropertyValue() { + _oInstance.setPropertyValue(_propertyValue); + assertEquals(_oInstance.getPropertyValue(), _propertyValue); + } + + @Test + public void testSetAdditionalProperty() { + _oInstance.setAdditionalProperty("prop1", "propvalue1"); + _oInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_oInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionTest.java new file mode 100644 index 000000000..459396c1c --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/ActionTest.java @@ -0,0 +1,64 @@ +package org.onap.ccsdk.sli.adaptors.aai.update; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.sli.adaptors.aai.query.Result; + +public class ActionTest { + + Action _oInstance; + protected Map _additionalProperties; + protected String _actionType; + protected List _actionData; + + @Before + public void setUp() throws Exception { + _oInstance = new Action(); + _actionType = "actionType"; + _actionData = new ArrayList<>(); + ActionDatum a1 = mock(ActionDatum.class); + ActionDatum a2 = mock(ActionDatum.class); + _actionData.add(a1); + _actionData.add(a2); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _oInstance = null; + _actionData = null; + _additionalProperties = null; + } + + @Test + public void testSetActionData() { + _oInstance.setActionData(_actionData); + assertEquals(_oInstance.getActionData(), _actionData); + } + + @Test + public void testSetActionType() { + _oInstance.setActionType(_actionType); + assertEquals(_oInstance.getActionType(), _actionType); + } + + @Test + public void testSetAdditionalProperty() { + _oInstance.setAdditionalProperty("prop1", "propvalue1"); + _oInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_oInstance.getAdditionalProperties(), _additionalProperties); + } +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKeyTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKeyTest.java new file mode 100644 index 000000000..360a0948f --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateNodeKeyTest.java @@ -0,0 +1,53 @@ +package org.onap.ccsdk.sli.adaptors.aai.update; + +import static org.junit.Assert.*; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class UpdateNodeKeyTest { + UpdateNodeKey _oInstance; + protected Map _additionalProperties; + protected String _keyName; + protected String _keyValue; + @Before + public void setUp() throws Exception { + _oInstance = new UpdateNodeKey(); + _keyName = "keyName"; + _keyValue = "keyValue"; + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _oInstance = null; + _additionalProperties = null; + } + + @Test + public void testSetKeyName() { + _oInstance.setKeyName(_keyName); + assertEquals(_oInstance.getKeyName(), _keyName); + } + + @Test + public void testSetKeyValue() { + _oInstance.setKeyName(_keyName); + assertEquals(_oInstance.getKeyName(), _keyName); + } + + @Test + public void testSetAdditionalProperty() { + _oInstance.setAdditionalProperty("prop1", "propvalue1"); + _oInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_oInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateTest.java new file mode 100644 index 000000000..8f8a06eac --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/update/UpdateTest.java @@ -0,0 +1,75 @@ +package org.onap.ccsdk.sli.adaptors.aai.update; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class UpdateTest { + + Update _oInstance; + protected Map _additionalProperties; + protected String _updateNodeType; + protected List _updateNodeKey; + protected List _action; + + @Before + public void setUp() throws Exception { + _oInstance = new Update(); + _updateNodeType = "updateNodeType"; + _action = new ArrayList<>(); + Action a1 = mock(Action.class); + Action a2 = mock(Action.class); + _action.add(a1); + _action.add(a2); + _updateNodeKey = new ArrayList<>(); + UpdateNodeKey k1 = mock(UpdateNodeKey.class); + UpdateNodeKey k2 = mock(UpdateNodeKey.class); + _updateNodeKey.add(k1); + _updateNodeKey.add(k2); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _oInstance = null; + _action = null; + _additionalProperties = null; + } + + @Test + public void testSetUpdateNodeType() { + _oInstance.setUpdateNodeType(_updateNodeType); + assertEquals(_oInstance.getUpdateNodeType(), _updateNodeType); + } + + @Test + public void testSetAction() { + _oInstance.setAction(_action); + assertEquals(_oInstance.getAction(), _action); + } + + @Test + public void testSetUpdateNodeKey() { + _oInstance.setUpdateNodeKey(_updateNodeKey); + assertEquals(_oInstance.getUpdateNodeKey(), _updateNodeKey); + } + + + @Test + public void testSetAdditionalProperty() { + _oInstance.setAdditionalProperty("prop1", "propvalue1"); + _oInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_oInstance.getAdditionalProperties(), _additionalProperties); + } +} -- cgit 1.2.3-korg From 73f95cc58ceac07b45b151d172397dfc2046f0f6 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Tue, 27 Mar 2018 20:47:02 +0000 Subject: Improve code coverage in AAIService module Changes made: * added new unit test PathCreationTest to test CRUD API of AAIService Change-Id: I85f4df8bfed786324db717faf1c1ccc827ffc4dd Issue-ID: CCSDK-149 Signed-off-by: Rich Tabedzki --- .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 4 +- .../sli/adaptors/aai/NamedQueryRequestTest.java | 4 +- .../sli/adaptors/aai/NodesQueryRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/PathCreationTest.java | 200 +++++++++++++++++++++ 4 files changed, 205 insertions(+), 5 deletions(-) create mode 100755 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java index 327e4c652..69541301b 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -42,7 +42,7 @@ public class EchoRequestTest { private static final Logger LOG = LoggerFactory.getLogger(EchoRequestTest.class); - private static AAIRequest request; + private static EchoRequest request; private static AAIService aaiService; @BeforeClass @@ -67,7 +67,7 @@ public class EchoRequestTest { try { url = request.getRequestUrl("GET", null); assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + } catch (UnsupportedEncodingException | MalformedURLException exc) { LOG.error("Failed test", exc); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java index 155945dea..c28a1ed0f 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java @@ -18,7 +18,7 @@ public class NamedQueryRequestTest { private static final Logger LOG = LoggerFactory.getLogger(NamedQueryRequestTest.class); - private static AAIRequest request; + private static NamedQueryRequest request; @BeforeClass public static void setUp() throws Exception { @@ -41,7 +41,7 @@ public class NamedQueryRequestTest { try { url = request.getRequestUrl("GET", null); assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException | URISyntaxException exc) { + } catch (UnsupportedEncodingException | MalformedURLException exc) { LOG.error("Failed test", exc); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java index 17ae52207..33b383950 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java @@ -15,7 +15,7 @@ public class NodesQueryRequestTest { private static final Logger LOG = LoggerFactory.getLogger(NodesQueryRequestTest.class); - private static AAIRequest request; + private static NodesQueryRequest request; @BeforeClass public static void setUp() throws Exception { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java new file mode 100755 index 000000000..f9ec9f49b --- /dev/null +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java @@ -0,0 +1,200 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.sli.adaptors.aai; + +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.FileReader; +import java.net.URL; +import java.util.Arrays; +import java.util.BitSet; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.ListIterator; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.TreeSet; + +import org.apache.commons.lang3.StringUtils; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; +import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.onap.ccsdk.sli.adaptors.aai.AAIServiceUtils; +import org.onap.ccsdk.sli.adaptors.aai.EchoRequest; +import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class PathCreationTest { + + private static final Logger LOG = LoggerFactory.getLogger(PathCreationTest.class); + + private static AAIService aaiService; + + @BeforeClass + public static void setUp() throws Exception { + aaiService = new AAIService( + AAIService.class.getResource(AAIService.AAICLIENT_PROPERTIES)); + LOG.info("\nTaicAAIResourceTest.setUp\n"); + } + + @AfterClass + public static void tearDown() throws Exception { + LOG.info("----------------------- AAIResourceTest.tearDown -----------------------"); + } + + static Set resourceNames = new TreeSet(); + static Map tagValues = new LinkedHashMap(); + + + @Test + public void test01() + { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + + try + { + File file = new File(this.getClass().getResource("/aai-path.properties").getFile()); + if(!file.exists()) { + fail("File does not exist"); + return; + } + FileReader reader = new FileReader(file); + + Properties properties = new Properties(); + properties.load(reader); + LOG.info("loaded " + properties.size()); + + Set keys = properties.stringPropertyNames(); + + int index = 0; + + for(String key : keys) { + String[] tags = key.split("\\|"); + for(String tag : tags) { + if(!resourceNames.contains(tag)) { + resourceNames.add(tag); + tagValues.put(tag, Integer.toString(++index)); + } + } + BitSet bs = new BitSet(256); + for(String tag : tags) { + String value = tagValues.get(tag); + Integer bitIndex = Integer.parseInt(value) ; + bs.set(bitIndex); + } + String path = properties.getProperty(key); + LOG.info(String.format("bitset %s\t\t%s", bs.toString(), path)); + } + } + catch (Exception e) + { + LOG.error("Caught exception", e); + fail("Caught exception"); + } + } + + @Test + public void test02() { + try { + Map nameValues = new HashMap (); + nameValues.put("pserver.hostname", "USAUTOUFTIL0205UJZZ01"); + + AAIRequest request = AAIRequest.createRequest("pserver", nameValues); + request.addRequestProperty("pserver.hostname", "USAUTOUFTIL0205UJZZ01"); + + URL url = request.getRequestUrl("GET", null); + url.getPath(); + LOG.info("Received response"); + } catch(Exception exc) { + LOG.info("Caught exception", exc); + } + } + + @Test + public void test03() { + HashMap nameValues = new HashMap(); + + String path = +// "/aai/v11/network/site-pair-sets/site-pair-set/a3839637-575e-49b3-abb7-a003b0d4cc35/routing-instances/routing-instance/7f08a85e-716f-4bc2-a4f4-70801b07a5e6"; + "/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25"; + + String[] split = path.split("/"); + + LinkedList list = new LinkedList( Arrays.asList(split)); + ListIterator it = list.listIterator(); + +// for(String tag : split) { + while(it.hasNext()) { + String tag = it.next(); + if(!tag.isEmpty()) { + if(resourceNames.contains(tag)){ + LOG.info(tag); + // get the class from tag + Class clazz = null; + try { + clazz = AAIRequest.getClassFromResource(tag); + String fieldName = AAIServiceUtils.getPrimaryIdFromClass(clazz); + int nextIndex = it.nextIndex(); + + String value = list.get(nextIndex); + if(!StringUtils.isEmpty(value)){ + nameValues.put(String.format("%s.%s", tag, fieldName), value); + switch(tag) { + case "cloud-region": + case "entitlement": + case "license": + case "route-target": + case "service-capability": + case "ctag-pool": + String secondaryFieldName = AAIServiceUtils.getSecondaryIdFromClass(clazz); + if(secondaryFieldName != null) { + value = it.next(); + nameValues.put(String.format("%s.%s", tag, secondaryFieldName), value); + } + break; + default: + break; + } + } + } catch (Exception exc) { + LOG.info("Caught exception", exc); + } + // get id from class + // read the follwoing field + // create relationship data + } + } + } + LOG.info(nameValues.toString()); + } +} -- cgit 1.2.3-korg From 8ed112cc25f33315e453b238478c4a1fde3e257e Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Mon, 23 Apr 2018 15:50:06 -0400 Subject: Fixing trustStore issues in AAI Client Changes made: * Updated AAI XSD model to v13 * Updated AAI interface path definitions Change-Id: I047845e574734b45dda67e1f84b3bb07dacca426 Issue-ID: CCSDK-247 Signed-off-by: Rich Tabedzki --- aai-service/provider/pom.xml | 4 +- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 2 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 38 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 2 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 10 +- .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 6 +- .../sli/adaptors/aai/GenericQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequest.java | 4 +- .../ccsdk/sli/adaptors/aai/NamedQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 210 +- .../sli/adaptors/aai/RelationshipListRequest.java | 58 +- .../sli/adaptors/aai/RelationshipRequest.java | 50 +- .../ccsdk/sli/adaptors/aai/data/SubInterface.java | 4 +- .../sli/adaptors/aai/query/InstanceFilter.java | 20 +- .../onap/ccsdk/sli/adaptors/aai/query/Result.java | 26 +- .../src/main/resources/aai-path.properties | 590 +- .../src/main/resources/aai-schema-bindings.xjb | 22 +- .../provider/src/main/resources/aai_schema_v11.xsd | 7643 ------------------- .../provider/src/main/resources/aai_schema_v13.xsd | 8014 ++++++++++++++++++++ .../src/main/resources/aaiclient.properties | 196 +- .../ccsdk/sli/adaptors/aai/AAIServiceTest.java | 2 +- .../adaptors/aai/AutoGeneratedRegressionTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfTest.java | 2 +- .../sli/adaptors/aai/data/ResponseMessageTest.java | 119 +- .../sli/adaptors/aai/data/SubInterfaceTest.java | 189 +- .../sli/adaptors/aai/query/InstanceFilterTest.java | 225 +- .../adaptors/aai/query/InstanceFiltersTest.java | 74 +- .../ccsdk/sli/adaptors/aai/query/ResultTest.java | 284 +- .../src/test/resources/aaiclient.properties | 196 +- 30 files changed, 9025 insertions(+), 8973 deletions(-) delete mode 100755 aai-service/provider/src/main/resources/aai_schema_v11.xsd create mode 100755 aai-service/provider/src/main/resources/aai_schema_v13.xsd (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 97a12a4ac..364a65217 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -146,13 +146,13 @@ ${project.basedir}/src/main/resources - aai_schema_v11.xsd + aai_schema_v13.xsd aai-schema-bindings.xjb ${project.build.directory}/generated-sources/main/java - org.openecomp.aai.inventory.v11 + org.openecomp.aai.inventory.v13 true -Xannotate diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 6f466c3b6..fd5a6f4b7 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -26,7 +26,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Map; -import org.openecomp.aai.inventory.v11.*; +import org.openecomp.aai.inventory.v13.*; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index 7f40c149a..1a31f8b21 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -57,25 +57,25 @@ import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters; import org.onap.ccsdk.sli.adaptors.aai.query.Result; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.Image; -import org.openecomp.aai.inventory.v11.InventoryResponseItem; -import org.openecomp.aai.inventory.v11.InventoryResponseItems; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.LogicalLink; -import org.openecomp.aai.inventory.v11.Metadata; -import org.openecomp.aai.inventory.v11.Metadatum; -import org.openecomp.aai.inventory.v11.Pnf; -import org.openecomp.aai.inventory.v11.RelatedToProperty; -import org.openecomp.aai.inventory.v11.Relationship; -import org.openecomp.aai.inventory.v11.RelationshipData; -import org.openecomp.aai.inventory.v11.RelationshipList; -import org.openecomp.aai.inventory.v11.ResultData; -import org.openecomp.aai.inventory.v11.SearchResults; -import org.openecomp.aai.inventory.v11.ServiceInstance; -import org.openecomp.aai.inventory.v11.Vlan; -import org.openecomp.aai.inventory.v11.Vlans; -import org.openecomp.aai.inventory.v11.Vserver; +import org.openecomp.aai.inventory.v13.GenericVnf; +import org.openecomp.aai.inventory.v13.Image; +import org.openecomp.aai.inventory.v13.InventoryResponseItem; +import org.openecomp.aai.inventory.v13.InventoryResponseItems; +import org.openecomp.aai.inventory.v13.L3Network; +import org.openecomp.aai.inventory.v13.LogicalLink; +import org.openecomp.aai.inventory.v13.Metadata; +import org.openecomp.aai.inventory.v13.Metadatum; +import org.openecomp.aai.inventory.v13.Pnf; +import org.openecomp.aai.inventory.v13.RelatedToProperty; +import org.openecomp.aai.inventory.v13.Relationship; +import org.openecomp.aai.inventory.v13.RelationshipData; +import org.openecomp.aai.inventory.v13.RelationshipList; +import org.openecomp.aai.inventory.v13.ResultData; +import org.openecomp.aai.inventory.v13.SearchResults; +import org.openecomp.aai.inventory.v13.ServiceInstance; +import org.openecomp.aai.inventory.v13.Vlan; +import org.openecomp.aai.inventory.v13.Vlans; +import org.openecomp.aai.inventory.v13.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 382cc53c8..36615d910 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -45,7 +45,7 @@ import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; -import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v13.GenericVnf; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 06834c11f..976530c94 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -77,11 +77,11 @@ import org.onap.ccsdk.sli.core.sli.MetricLogger; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.PhysicalLink; -import org.openecomp.aai.inventory.v11.ResultData; -import org.openecomp.aai.inventory.v11.SearchResults; -import org.openecomp.aai.inventory.v11.Vserver; +import org.openecomp.aai.inventory.v13.GenericVnf; +import org.openecomp.aai.inventory.v13.PhysicalLink; +import org.openecomp.aai.inventory.v13.ResultData; +import org.openecomp.aai.inventory.v13.SearchResults; +import org.openecomp.aai.inventory.v13.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index ca2af1df6..5c421518a 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -38,9 +38,9 @@ import java.util.Set; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.StringUtils; -import org.openecomp.aai.inventory.v11.Relationship; -import org.openecomp.aai.inventory.v11.RelationshipData; -import org.openecomp.aai.inventory.v11.RelationshipList; +import org.openecomp.aai.inventory.v13.Relationship; +import org.openecomp.aai.inventory.v13.RelationshipData; +import org.openecomp.aai.inventory.v13.RelationshipList; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.slf4j.Logger; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index 6dd11238d..599edd88c 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -27,7 +27,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.ResultData; +import org.openecomp.aai.inventory.v13.ResultData; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index 20923cc32..7224d00b0 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -35,8 +35,8 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.L3Networks; +import org.openecomp.aai.inventory.v13.L3Network; +import org.openecomp.aai.inventory.v13.L3Networks; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java index af475d1fb..8bd6644e8 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java @@ -30,7 +30,7 @@ import java.util.List; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.InventoryResponseItems; +import org.openecomp.aai.inventory.v13.InventoryResponseItems; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonProcessingException; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java index f7aaccb9a..27e4567ae 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -3,14 +3,14 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -27,118 +27,118 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.SearchResults; +import org.openecomp.aai.inventory.v13.SearchResults; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class NodesQueryRequest extends AAIRequest { - public static final String NODES_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; - - private final String nodes_search_path; - - public static final String NODE_TYPE = "node-type"; - public static final String ENTITY_IDENTIFIER = "entity-identifier"; - public static final String ENTITY_VALUE = "entity-value"; + public static final String NODES_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes"; + private final String nodes_search_path; - public NodesQueryRequest() { - nodes_search_path = configProperties.getProperty(NODES_SEARCH_PATH); - } + public static final String NODE_TYPE = "node-type"; + public static final String ENTITY_IDENTIFIER = "entity-identifier"; + public static final String ENTITY_VALUE = "entity-value"; - -// @Override -// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + public NodesQueryRequest() { + nodes_search_path = configProperties.getProperty(NODES_SEARCH_PATH); + } + + +// @Override +// public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { +// +// String request_url = targetUri+generic_search_path; +// String key = START_NODE_TYPE; // -// String request_url = targetUri+generic_search_path; -// String key = START_NODE_TYPE; +// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); +// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; // -// String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); -// request_url = request_url.replace("{vnf-id}", encoded_vnf) ; -// -// if(resourceVersion != null) { -// request_url = request_url +"?resource-version="+resourceVersion; -// } -// URL http_req_url = new URL(request_url); +// if(resourceVersion != null) { +// request_url = request_url +"?resource-version="+resourceVersion; +// } +// URL http_req_url = new URL(request_url); // -// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); -// -// -// return http_req_url; -// } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = targetUri+nodes_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = getObjectMapper(); - SearchResults tenant = (SearchResults)requestDatum; - String json_text = null; - try { - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {NODE_TYPE, ENTITY_IDENTIFIER, ENTITY_VALUE}; - return args; - } - - - @Override - public Class getModelClass() { - return SearchResults.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - String key = ENTITY_IDENTIFIER; - - String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{entity-identifier}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("entity-identifier", requestProperties.getProperty(key)); - - key = ENTITY_VALUE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{entity-name}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("entity-name", requestProperties.getProperty(key)); - - key = NODE_TYPE; - - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{node-type}", encoded_vnf) ; - aaiService.LOGwriteDateTrace("node-type", requestProperties.getProperty(key)); - - return request_url; - } +// aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); +// +// +// return http_req_url; +// } + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { + + String request_url = targetUri+nodes_search_path; + + request_url = processPathData(request_url, requestProperties); + + if(resourceVersion != null) { + request_url = request_url +"?resource-version="+resourceVersion; + } + URL http_req_url = new URL(request_url); + + aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); + + return http_req_url; + } + + @Override + public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { + return getRequestUrl(method, null); + } + + + @Override + public String toJSONString() { + ObjectMapper mapper = getObjectMapper(); + SearchResults tenant = (SearchResults)requestDatum; + String json_text = null; + try { + json_text = mapper.writeValueAsString(tenant); + } catch (JsonProcessingException exc) { + handleException(this, exc); + return null; + } + return json_text; + } + + + @Override + public String[] getArgsList() { + String[] args = {NODE_TYPE, ENTITY_IDENTIFIER, ENTITY_VALUE}; + return args; + } + + + @Override + public Class getModelClass() { + return SearchResults.class; + } + + + public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { + + String key = ENTITY_IDENTIFIER; + + String encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{entity-identifier}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("entity-identifier", requestProperties.getProperty(key)); + + key = ENTITY_VALUE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{entity-name}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("entity-name", requestProperties.getProperty(key)); + + key = NODE_TYPE; + + encoded_vnf = encodeQuery(requestProperties.getProperty(key)); + request_url = request_url.replace("{node-type}", encoded_vnf) ; + aaiService.LOGwriteDateTrace("node-type", requestProperties.getProperty(key)); + + return request_url; + } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java index 33e3167f8..eb93fefe8 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java @@ -3,14 +3,14 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,7 +23,6 @@ package org.onap.ccsdk.sli.adaptors.aai; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; -import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.util.List; @@ -31,38 +30,33 @@ import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.RelationshipList; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; +import org.openecomp.aai.inventory.v13.RelationshipList; public class RelationshipListRequest extends GenericRequest { - - public static final String SELFLINK = "selflink"; - public RelationshipListRequest(AAIRequest masterRequest) { - super(RelationshipList.class); - this.addMasterRequest(masterRequest); - } + public static final String SELFLINK = "selflink"; + + public RelationshipListRequest(AAIRequest masterRequest) { + super(RelationshipList.class); + this.addMasterRequest(masterRequest); + } + + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { + URL url = super.getRequestUrl(method, null); + URIBuilder builder = new URIBuilder(url.toURI()); + String newPath = builder.getPath() + "/relationship-list"; + builder.setPath(newPath); + if(resourceVersion != null) { + List queryList = builder.getQueryParams(); + NameValuePair nvp = new BasicNameValuePair("resourceVersion", resourceVersion); + queryList.add(nvp); + } - URL url = super.getRequestUrl(method, null); - URIBuilder builder = new URIBuilder(url.toURI()); - String newPath = builder.getPath() + "/relationship-list"; - builder.setPath(newPath); - if(resourceVersion != null) { - List queryList = builder.getQueryParams(); - NameValuePair nvp = new BasicNameValuePair("resourceVersion", resourceVersion); - queryList.add(nvp); - } + aaiService.LOGwriteFirstTrace(method, builder.toString()); - aaiService.LOGwriteFirstTrace(method, builder.toString()); - - return builder.build().toURL(); - } + return builder.build().toURL(); + } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java index a73206d4f..76a377ea6 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -3,14 +3,14 @@ * openECOMP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. + * reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -32,7 +32,7 @@ import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.Relationship; +import org.openecomp.aai.inventory.v13.Relationship; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -40,28 +40,28 @@ import com.google.common.base.Joiner; public class RelationshipRequest extends GenericRequest { - public RelationshipRequest(AAIRequest masterRequest) { - super(Relationship.class); - this.addMasterRequest(masterRequest); - } + public RelationshipRequest(AAIRequest masterRequest) { + super(Relationship.class); + this.addMasterRequest(masterRequest); + } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { - + + @Override + public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException, URISyntaxException { + - URL url = super.getRequestUrl(method, null); - URIBuilder builder = new URIBuilder(url.toURI()); - String newPath = builder.getPath() + "/relationship-list/relationship"; - builder.setPath(newPath); - if(resourceVersion != null) { - List queryList = builder.getQueryParams(); - NameValuePair nvp = new BasicNameValuePair("resourceVersion", resourceVersion); - queryList.add(nvp); - } + URL url = super.getRequestUrl(method, null); + URIBuilder builder = new URIBuilder(url.toURI()); + String newPath = builder.getPath() + "/relationship-list/relationship"; + builder.setPath(newPath); + if(resourceVersion != null) { + List queryList = builder.getQueryParams(); + NameValuePair nvp = new BasicNameValuePair("resourceVersion", resourceVersion); + queryList.add(nvp); + } - aaiService.LOGwriteFirstTrace(method, builder.toString()); - - return builder.build().toURL(); - } + aaiService.LOGwriteFirstTrace(method, builder.toString()); + + return builder.build().toURL(); + } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java index 91a3cae59..90aafe7bc 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java @@ -31,8 +31,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.openecomp.aai.inventory.v11.RelationshipList; -import org.openecomp.aai.inventory.v11.Vlans; +import org.openecomp.aai.inventory.v13.RelationshipList; +import org.openecomp.aai.inventory.v13.Vlans; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java index 186f099e1..cefb9e33a 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java @@ -33,16 +33,16 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.openecomp.aai.inventory.v11.CloudRegion; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.Pnf; -import org.openecomp.aai.inventory.v11.LogicalLink; -import org.openecomp.aai.inventory.v11.PInterface; -import org.openecomp.aai.inventory.v11.ServiceInstance; -import org.openecomp.aai.inventory.v11.Tenant; -import org.openecomp.aai.inventory.v11.Vnf; -import org.openecomp.aai.inventory.v11.Vserver; +import org.openecomp.aai.inventory.v13.CloudRegion; +import org.openecomp.aai.inventory.v13.GenericVnf; +import org.openecomp.aai.inventory.v13.L3Network; +import org.openecomp.aai.inventory.v13.Pnf; +import org.openecomp.aai.inventory.v13.LogicalLink; +import org.openecomp.aai.inventory.v13.PInterface; +import org.openecomp.aai.inventory.v13.ServiceInstance; +import org.openecomp.aai.inventory.v13.Tenant; +import org.openecomp.aai.inventory.v13.Vnf; +import org.openecomp.aai.inventory.v13.Vserver; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java index 37d4b79b1..d0e256969 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java @@ -30,19 +30,19 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import org.openecomp.aai.inventory.v11.CloudRegion; -import org.openecomp.aai.inventory.v11.Complex; -import org.openecomp.aai.inventory.v11.Configuration; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.L3InterfaceIpv4AddressList; -import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.LInterface; -//import org.openecomp.aai.inventory.v11.OwningEntity; -import org.openecomp.aai.inventory.v11.Pserver; -import org.openecomp.aai.inventory.v11.ServiceInstance; -import org.openecomp.aai.inventory.v11.Vnfc; -import org.openecomp.aai.inventory.v11.Vserver; +import org.openecomp.aai.inventory.v13.CloudRegion; +import org.openecomp.aai.inventory.v13.Complex; +import org.openecomp.aai.inventory.v13.Configuration; +import org.openecomp.aai.inventory.v13.GenericVnf; +import org.openecomp.aai.inventory.v13.L3InterfaceIpv4AddressList; +import org.openecomp.aai.inventory.v13.L3InterfaceIpv6AddressList; +import org.openecomp.aai.inventory.v13.L3Network; +import org.openecomp.aai.inventory.v13.LInterface; +//import org.openecomp.aai.inventory.v13.OwningEntity; +import org.openecomp.aai.inventory.v13.Pserver; +import org.openecomp.aai.inventory.v13.ServiceInstance; +import org.openecomp.aai.inventory.v13.Vnfc; +import org.openecomp.aai.inventory.v13.Vserver; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/aai-service/provider/src/main/resources/aai-path.properties b/aai-service/provider/src/main/resources/aai-path.properties index c648c60c7..0a2e4cc1b 100755 --- a/aai-service/provider/src/main/resources/aai-path.properties +++ b/aai-service/provider/src/main/resources/aai-path.properties @@ -19,293 +19,303 @@ # ============LICENSE_END========================================================= ### -cloud-region = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} -cloud-region|availability-zone = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} -cloud-region|availability-zones = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones -cloud-region|dvs-switch = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} -cloud-region|dvs-switches = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -cloud-region|flavor = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} -cloud-region|flavors = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors -cloud-region|group-assignment = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} -cloud-region|group-assignments = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments -cloud-region|image = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} -cloud-region|image|metadata = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata -cloud-region|image|metadatum = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} -cloud-region|images = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images -cloud-region|oam-network = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} -cloud-region|oam-networks = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks -cloud-regions = /aai/v11/cloud-infrastructure/cloud-regions -cloud-region|snapshot = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} -cloud-region|snapshots = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots -cloud-region|tenant = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -cloud-region|tenants = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants -cloud-region|tenant|vserver = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} -cloud-region|tenant|vserver|l-interface = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interfaces = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces -cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -cloud-region|tenant|vserver|l-interface|vlan = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface|vlans = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans -cloud-region|tenant|vservers = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers -cloud-region|tenant|vserver|volume = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} -cloud-region|tenant|vserver|volumes = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes -cloud-region|volume-group = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} -cloud-region|volume-groups = /aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups -complex = /aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id} -complex|ctag-pool = /aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} -complex|ctag-pools = /aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -complexes = /aai/v11/cloud-infrastructure/complexes -configuration = /aai/v11/network/configurations/configuration/{configuration-id} -configurations = /aai/v11/network/configurations -connector = /aai/v11/business/connectors/connector/{resource-instance-id} -connector|metadata = /aai/v11/business/connectors/connector/{resource-instance-id}/metadata -connector|metadatum = /aai/v11/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} -connectors = /aai/v11/business/connectors -customer = /aai/v11/business/customers/customer/{global-customer-id} -customers = /aai/v11/business/customers -customer|service-subscription = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} -customer|service-subscriptions = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions -customer|service-subscription|service-instance = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -customer|service-subscription|service-instance|allotted-resource = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} -customer|service-subscription|service-instance|allotted-resources = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects -customer|service-subscription|service-instance|metadata = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata -customer|service-subscription|service-instance|metadatum = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} -customer|service-subscription|service-instances = /aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -esr-thirdparty-sdnc = /aai/v11/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} -esr-thirdparty-sdnc-list = /aai/v11/external-system/esr-thirdparty-sdnc-list -generic-vnf = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id} -generic-vnf|entitlement = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -generic-vnf|entitlements = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements -generic-vnf|lag-interface = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -generic-vnf|lag-interface|l-interface = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interfaces = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|lag-interface|l-interface|vlan = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface|vlans = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|lag-interfaces = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces -generic-vnf|license = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -generic-vnf|licenses = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/licenses -generic-vnf|l-interface = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} -generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interfaces = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces -generic-vnf|l-interface|sriov-vf = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|l-interface|sriov-vfs = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|l-interface|vlan = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface|vlans = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnfs = /aai/v11/network/generic-vnfs -generic-vnf|vf-module = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} -generic-vnf|vf-modules = /aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules -instance-group = /aai/v11/network/instance-groups/instance-group/{id} -instance-groups = /aai/v11/network/instance-groups -ipsec-configuration = /aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} -ipsec-configurations = /aai/v11/network/ipsec-configurations -ipsec-configuration|vig-server = /aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} -ipsec-configuration|vig-servers = /aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers -l3-network = /aai/v11/network/l3-networks/l3-network/{network-id} -l3-network|ctag-assignment = /aai/v11/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} -l3-network|ctag-assignments = /aai/v11/network/l3-networks/l3-network/{network-id}/ctag-assignments -l3-networks = /aai/v11/network/l3-networks -l3-network|segmentation-assignment = /aai/v11/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} -l3-network|segmentation-assignments = /aai/v11/network/l3-networks/l3-network/{network-id}/segmentation-assignments -l3-network|subnet = /aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} -l3-network|subnets = /aai/v11/network/l3-networks/l3-network/{network-id}/subnets -lag-link = /aai/v11/network/lag-links/lag-link/{link-name} -lag-links = /aai/v11/network/lag-links -license-key-resource = /aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid} -license-key-resources = /aai/v11/license-management/license-key-resources -logical-link = /aai/v11/network/logical-links/logical-link/{link-name} -logical-links = /aai/v11/network/logical-links -model = /aai/v11/service-design-and-creation/models/model/{model-invariant-id} -model|model-ver = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} -model|model-ver|metadata = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata -model|model-ver|metadatum = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} -model|model-ver|model-element = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} -model|model-ver|model-element|model-constraint = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets -model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets -model|model-ver|model-element|model-constraints = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints -model|model-ver|model-elements = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements -model|model-vers = /aai/v11/service-design-and-creation/models/model/{model-invariant-id}/model-vers -models = /aai/v11/service-design-and-creation/models -multicast-configuration = /aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -multicast-configurations = /aai/v11/network/multicast-configurations -named-queries = /aai/v11/service-design-and-creation/named-queries -named-query = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid} -named-query|named-query-element = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} -named-query|named-query-element|property-constraint = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} -named-query|named-query-element|property-constraints = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints -named-query|named-query-element|related-lookup = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} -named-query|named-query-element|related-lookups = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups -named-query|named-query-elements = /aai/v11/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements -network-policies = /aai/v11/network/network-policies -network-policy = /aai/v11/network/network-policies/network-policy/{network-policy-id} -network-profile = /aai/v11/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} -network-profiles = /aai/v11/cloud-infrastructure/network-profiles -newvce = /aai/v11/network/newvces/newvce/{vnf-id2} -newvce|l-interface = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} -newvce|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interfaces = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces -newvce|l-interface|sriov-vf = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -newvce|l-interface|sriov-vfs = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs -newvce|l-interface|vlan = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface|vlans = /aai/v11/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans -newvces = /aai/v11/network/newvces -physical-link = /aai/v11/network/physical-links/physical-link/{link-name} -physical-links = /aai/v11/network/physical-links -pnf = /aai/v11/network/pnfs/pnf/{pnf-name} -pnf|lag-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} -pnf|lag-interface|l-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interfaces = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pnf|lag-interface|l-interface|sriov-vf = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|lag-interface|l-interface|sriov-vfs = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|lag-interface|l-interface|vlan = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface|vlans = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|lag-interfaces = /aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces -pnf|p-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} -pnf|p-interface|l-interface = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interfaces = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -pnf|p-interface|l-interface|sriov-vf = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|p-interface|l-interface|sriov-vfs = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|p-interface|l-interface|vlan = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface|vlans = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|p-interfaces = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces -pnf|p-interface|sriov-pf = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -pnf|p-interface|sriov-pfs = /aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pnfs = /aai/v11/network/pnfs -pserver = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname} -pserver|lag-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} -pserver|lag-interface|l-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interfaces = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pserver|lag-interface|l-interface|sriov-vf = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|lag-interface|l-interface|sriov-vfs = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|lag-interface|l-interface|vlan = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface|vlans = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|lag-interfaces = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces -pserver|p-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} -pserver|p-interface|l-interface = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interfaces = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces -pserver|p-interface|l-interface|sriov-vf = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|p-interface|l-interface|sriov-vfs = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|p-interface|l-interface|vlan = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface|vlans = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|p-interfaces = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -pserver|p-interface|sriov-pf = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -pserver|p-interface|sriov-pfs = /aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pservers = /aai/v11/cloud-infrastructure/pservers -route-table-reference = /aai/v11/network/route-table-references/route-table-reference/{route-table-reference-id} -route-table-references = /aai/v11/network/route-table-references -service = /aai/v11/service-design-and-creation/services/service/{service-id} -service-capabilities = /aai/v11/service-design-and-creation/service-capabilities -service-capability = /aai/v11/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} -services = /aai/v11/service-design-and-creation/services -site-pair-set = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id} -site-pair-set|routing-instance = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} -site-pair-set|routing-instances = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances -site-pair-set|routing-instance|site-pair = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} -site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service -site-pair-set|routing-instance|site-pair|class-of-service = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} -site-pair-set|routing-instance|site-pairs = /aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs -site-pair-sets = /aai/v11/network/site-pair-sets -vce = /aai/v11/network/vces/vce/{vnf-id} -vce|entitlement = /aai/v11/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vce|entitlements = /aai/v11/network/vces/vce/{vnf-id}/entitlements -vce|license = /aai/v11/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vce|licenses = /aai/v11/network/vces/vce/{vnf-id}/licenses -vce|port-group = /aai/v11/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} -vce|port-group|cvlan-tag-entry = /aai/v11/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} -vce|port-group|cvlan-tags = /aai/v11/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags -vce|port-groups = /aai/v11/network/vces/vce/{vnf-id}/port-groups -vces = /aai/v11/network/vces -virtual-data-center = /aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} -virtual-data-centers = /aai/v11/cloud-infrastructure/virtual-data-centers -vnfc = /aai/v11/network/vnfcs/vnfc/{vnfc-name} -vnfcs = /aai/v11/network/vnfcs -vnf-image = /aai/v11/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} -vnf-images = /aai/v11/service-design-and-creation/vnf-images -vpe = /aai/v11/network/vpes/vpe/{vnf-id} -vpe|entitlement = /aai/v11/network/vpes/vpe/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vpe|lag-interface = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -vpe|lag-interface|l-interface = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|lag-interface|l-interface|sriov-vf = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpe|lag-interface|l-interface|vlan = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|license = /aai/v11/network/vpes/vpe/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vpe|l-interface = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name} -vpe|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpe|l-interface|sriov-vf = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpe|l-interface|vlan = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpe|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpe|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name} -vpls-pe|lag-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} -vpls-pe|lag-interface|l-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interfaces = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|lag-interface|l-interface|vlan = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface|vlans = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|lag-interfaces = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces -vpls-pe|p-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} -vpls-pe|p-interface|l-interface = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interfaces = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -vpls-pe|p-interface|l-interface|sriov-vf = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|p-interface|l-interface|vlan = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface|vlans = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|p-interfaces = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces -vpls-pe|p-interface|sriov-pf = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -vpls-pe|p-interface|sriov-pfs = /aai/v11/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -vpls-pes = /aai/v11/network/vpls-pes -vpn-binding = /aai/v11/network/vpn-bindings/vpn-binding/{vpn-id} -vpn-binding|route-target = /aai/v11/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} -vpn-binding|route-targets = /aai/v11/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets -vpn-bindings = /aai/v11/network/vpn-bindings -zone = /aai/v11/network/zones/zone/{zone-id} -zones = /aai/v11/network/zones +cloud-regions = /aai/v13/cloud-infrastructure/cloud-regions +cloud-region = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +cloud-region|availability-zones = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones +cloud-region|availability-zone = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} +cloud-region|dvs-switches = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +cloud-region|dvs-switch = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +cloud-region|flavors = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors +cloud-region|flavor = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} +cloud-region|flavor|hpa-capabilities = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities +cloud-region|flavor|hpa-capability = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|group-assignments = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments +cloud-region|group-assignment = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} +cloud-region|hpa-capabilities = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities +cloud-region|hpa-capability = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|hpa-capability|hpa-feature-attributes = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|images = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images +cloud-region|image = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} +cloud-region|image|metadata = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata +cloud-region|image|metadatum = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} +cloud-region|oam-networks = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks +cloud-region|oam-network = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +cloud-region|snapshots = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots +cloud-region|snapshot = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} +cloud-region|tenants = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants +cloud-region|tenant = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +cloud-region|tenant|vservers = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers +cloud-region|tenant|vserver = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +cloud-region|tenant|vserver|l-interfaces = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces +cloud-region|tenant|vserver|l-interface = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +cloud-region|tenant|vserver|l-interface|vlans = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans +cloud-region|tenant|vserver|l-interface|vlan = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|volumes = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes +cloud-region|tenant|vserver|volume = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} +cloud-region|vip-ipv4-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} +cloud-region|vip-ipv6-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} +cloud-region|volume-groups = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups +cloud-region|volume-group = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +complexes = /aai/v13/cloud-infrastructure/complexes +complex = /aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id} +complex|ctag-pools = /aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +complex|ctag-pool = /aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +network-profiles = /aai/v13/cloud-infrastructure/network-profiles +network-profile = /aai/v13/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} +operational-environments = /aai/v13/cloud-infrastructure/operational-environments +operational-environment = /aai/v13/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} +pservers = /aai/v13/cloud-infrastructure/pservers +pserver = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname} +pserver|lag-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces +pserver|lag-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} +pserver|lag-interface|l-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pserver|lag-interface|l-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface|sriov-vfs = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|lag-interface|l-interface|sriov-vf = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|lag-interface|l-interface|vlans = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|lag-interface|l-interface|vlan = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +pserver|p-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +pserver|p-interface|l-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces +pserver|p-interface|l-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface|sriov-vfs = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|p-interface|l-interface|sriov-vf = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|p-interface|l-interface|vlans = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|p-interface|l-interface|vlan = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|sriov-pfs = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pserver|p-interface|sriov-pf = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +virtual-data-centers = /aai/v13/cloud-infrastructure/virtual-data-centers +virtual-data-center = /aai/v13/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +connectors = /aai/v13/business/connectors +connector = /aai/v13/business/connectors/connector/{resource-instance-id} +connector|metadata = /aai/v13/business/connectors/connector/{resource-instance-id}/metadata +connector|metadatum = /aai/v13/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} +customers = /aai/v13/business/customers +customer = /aai/v13/business/customers/customer/{global-customer-id} +customer|service-subscriptions = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions +customer|service-subscription = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +customer|service-subscription|service-instances = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +customer|service-subscription|service-instance = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +customer|service-subscription|service-instance|allotted-resources = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources +customer|service-subscription|service-instance|allotted-resource = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} +customer|service-subscription|service-instance|metadata = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata +customer|service-subscription|service-instance|metadatum = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} +lines-of-business = /aai/v13/business/lines-of-business +line-of-business = /aai/v13/business/lines-of-business/line-of-business/{line-of-business-name} +owning-entities = /aai/v13/business/owning-entities +owning-entity = /aai/v13/business/owning-entities/owning-entity/{owning-entity-id} +platforms = /aai/v13/business/platforms +platform = /aai/v13/business/platforms/platform/{platform-name} +projects = /aai/v13/business/projects +project = /aai/v13/business/projects/project/{project-name} +models = /aai/v13/service-design-and-creation/models +model = /aai/v13/service-design-and-creation/models/model/{model-invariant-id} +model|model-vers = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers +model|model-ver = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} +model|model-ver|metadata = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata +model|model-ver|metadatum = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} +model|model-ver|model-elements = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements +model|model-ver|model-element = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} +model|model-ver|model-element|model-constraints = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints +model|model-ver|model-element|model-constraint = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} +model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets +model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} +named-queries = /aai/v13/service-design-and-creation/named-queries +named-query = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid} +named-query|named-query-elements = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements +named-query|named-query-element = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} +named-query|named-query-element|property-constraints = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints +named-query|named-query-element|property-constraint = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} +named-query|named-query-element|related-lookups = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups +named-query|named-query-element|related-lookup = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} +service-capabilities = /aai/v13/service-design-and-creation/service-capabilities +service-capability = /aai/v13/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} +services = /aai/v13/service-design-and-creation/services +service = /aai/v13/service-design-and-creation/services/service/{service-id} +vnf-images = /aai/v13/service-design-and-creation/vnf-images +vnf-image = /aai/v13/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} +configurations = /aai/v13/network/configurations +configuration = /aai/v13/network/configurations/configuration/{configuration-id} +configuration|evcs = /aai/v13/network/configurations/configuration/{configuration-id}/evcs +configuration|evc = /aai/v13/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} +configuration|forwarder-evcs = /aai/v13/network/configurations/configuration/{configuration-id}/forwarder-evcs +configuration|forwarder-evc = /aai/v13/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} +configuration|metadata = /aai/v13/network/configurations/configuration/{configuration-id}/metadata +configuration|metadatum = /aai/v13/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} +forwarding-paths = /aai/v13/network/forwarding-paths +forwarding-path = /aai/v13/network/forwarding-paths/forwarding-path/{forwarding-path-id} +forwarding-path|forwarders = /aai/v13/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders +forwarding-path|forwarder = /aai/v13/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} +generic-vnfs = /aai/v13/network/generic-vnfs +generic-vnf = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id} +generic-vnf|entitlements = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements +generic-vnf|entitlement = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +generic-vnf|l-interfaces = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces +generic-vnf|l-interface = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface|sriov-vfs = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|l-interface|sriov-vf = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|l-interface|vlans = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|l-interface|vlan = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interfaces = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces +generic-vnf|lag-interface = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +generic-vnf|lag-interface|l-interfaces = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +generic-vnf|lag-interface|l-interface = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|lag-interface|l-interface|vlans = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|lag-interface|l-interface|vlan = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|licenses = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/licenses +generic-vnf|license = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +generic-vnf|vf-modules = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules +generic-vnf|vf-module = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +instance-groups = /aai/v13/network/instance-groups +instance-group = /aai/v13/network/instance-groups/instance-group/{id} +ipsec-configurations = /aai/v13/network/ipsec-configurations +ipsec-configuration = /aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +ipsec-configuration|vig-servers = /aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers +ipsec-configuration|vig-server = /aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +l3-networks = /aai/v13/network/l3-networks +l3-network = /aai/v13/network/l3-networks/l3-network/{network-id} +l3-network|ctag-assignments = /aai/v13/network/l3-networks/l3-network/{network-id}/ctag-assignments +l3-network|ctag-assignment = /aai/v13/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} +l3-network|segmentation-assignments = /aai/v13/network/l3-networks/l3-network/{network-id}/segmentation-assignments +l3-network|segmentation-assignment = /aai/v13/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} +l3-network|subnets = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets +l3-network|subnet = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +l3-network|subnet|host-routes = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes +l3-network|subnet|host-route = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} +lag-links = /aai/v13/network/lag-links +lag-link = /aai/v13/network/lag-links/lag-link/{link-name} +logical-links = /aai/v13/network/logical-links +logical-link = /aai/v13/network/logical-links/logical-link/{link-name} +multicast-configurations = /aai/v13/network/multicast-configurations +multicast-configuration = /aai/v13/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +network-policies = /aai/v13/network/network-policies +network-policy = /aai/v13/network/network-policies/network-policy/{network-policy-id} +newvces = /aai/v13/network/newvces +newvce = /aai/v13/network/newvces/newvce/{vnf-id2} +newvce|l-interfaces = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces +newvce|l-interface = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} +newvce|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface|sriov-vfs = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs +newvce|l-interface|sriov-vf = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +newvce|l-interface|vlans = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans +newvce|l-interface|vlan = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +physical-links = /aai/v13/network/physical-links +physical-link = /aai/v13/network/physical-links/physical-link/{link-name} +pnfs = /aai/v13/network/pnfs +pnf = /aai/v13/network/pnfs/pnf/{pnf-name} +pnf|lag-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces +pnf|lag-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} +pnf|lag-interface|l-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pnf|lag-interface|l-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface|sriov-vfs = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|lag-interface|l-interface|sriov-vf = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|lag-interface|l-interface|vlans = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|lag-interface|l-interface|vlan = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces +pnf|p-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} +pnf|p-interface|l-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +pnf|p-interface|l-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface|sriov-vfs = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|p-interface|l-interface|sriov-vf = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|p-interface|l-interface|vlans = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|p-interface|l-interface|vlan = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|sriov-pfs = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pnf|p-interface|sriov-pf = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +route-table-references = /aai/v13/network/route-table-references +route-table-reference = /aai/v13/network/route-table-references/route-table-reference/{route-table-reference-id} +site-pair-sets = /aai/v13/network/site-pair-sets +site-pair-set = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id} +site-pair-set|routing-instances = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances +site-pair-set|routing-instance = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +site-pair-set|routing-instance|site-pairs = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs +site-pair-set|routing-instance|site-pair = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service +site-pair-set|routing-instance|site-pair|class-of-service = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} +vces = /aai/v13/network/vces +vce = /aai/v13/network/vces/vce/{vnf-id} +vce|entitlements = /aai/v13/network/vces/vce/{vnf-id}/entitlements +vce|entitlement = /aai/v13/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vce|licenses = /aai/v13/network/vces/vce/{vnf-id}/licenses +vce|license = /aai/v13/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vce|port-groups = /aai/v13/network/vces/vce/{vnf-id}/port-groups +vce|port-group = /aai/v13/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} +vce|port-group|cvlan-tags = /aai/v13/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags +vce|port-group|cvlan-tag-entry = /aai/v13/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} +vnfcs = /aai/v13/network/vnfcs +vnfc = /aai/v13/network/vnfcs/vnfc/{vnfc-name} +vnfc|l3-interface-ipv4-address-list = /aai/v13/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|l3-interface-ipv6-address-list = /aai/v13/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pes = /aai/v13/network/vpls-pes +vpls-pe = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name} +vpls-pe|lag-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces +vpls-pe|lag-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} +vpls-pe|lag-interface|l-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +vpls-pe|lag-interface|l-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|lag-interface|l-interface|vlans = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|lag-interface|l-interface|vlan = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces +vpls-pe|p-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} +vpls-pe|p-interface|l-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +vpls-pe|p-interface|l-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|p-interface|l-interface|sriov-vf = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|p-interface|l-interface|vlans = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|p-interface|l-interface|vlan = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|sriov-pfs = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +vpls-pe|p-interface|sriov-pf = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +vpn-bindings = /aai/v13/network/vpn-bindings +vpn-binding = /aai/v13/network/vpn-bindings/vpn-binding/{vpn-id} +vpn-binding|route-targets = /aai/v13/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets +vpn-binding|route-target = /aai/v13/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} +zones = /aai/v13/network/zones +zone = /aai/v13/network/zones/zone/{zone-id} \ No newline at end of file diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index 6e4105de3..b11254d18 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -1,11 +1,11 @@ - - - - - - - + + + + + + + diff --git a/aai-service/provider/src/main/resources/aai_schema_v11.xsd b/aai-service/provider/src/main/resources/aai_schema_v11.xsd deleted file mode 100755 index 20f73bd2a..000000000 --- a/aai-service/provider/src/main/resources/aai_schema_v11.xsd +++ /dev/null @@ -1,7643 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="cvlan-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.") - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the volume group.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface",container="l-interfaces") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="MAC address for the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of vserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Readable name of tenant") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field will store the tenant context.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Flavor name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Number of CPUs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Amount of memory") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Disk space") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group description - description of the group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Snapshot name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Operating system architecture") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Image name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Operating system architecture.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of availability zones") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="name of external system.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="type of external systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="vendor of external systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="version of external systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="url used to access external systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="username used to access external systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="password used to access external systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="service IP of ftp server.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="service port of ftp server.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="domain info for authentication.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="default tenant of VIM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ftp passive mode or not.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="resource or performance data file path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the status of external system.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="MultiVIM will discover and expose EPA capabilities.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of network profiles") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="MAC Address of the p-interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="inventory status") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="PTNII name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Number of cpus") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of Pserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="alternative pserver name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="purpose of pserver") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE OBJECT: do not use",nameProps="name",indexedProps="assignment-group-uuid,vnf-image-uuid,name",uniqueProps="vnf-image-uuid",container="license-key-resources",namespace="license-management") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="certificate url of VNFM.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="password used to access SDNC server.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for external system.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="role in the network that this resource will be providing.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing the service role.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this service.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of service instances") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Description of the service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="service version") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed") - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version",uniqueProps="model-version-id",container="model-vers") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Description") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="For example, static or BGP") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Circuit id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of logical connections") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="identifier of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="type of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="class-of-service of probe") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="probe within a set") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="rpm owner") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of route target information") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="VPN Name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="region of customer vpn") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="id for this customer vpn") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true) - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - see child relationships") - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service. Does not map strictly to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use. See child relationships.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="as-number of the VPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&AI will populate this object through an M&P and tool provided to operations.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="host-route id") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="subnet prefix") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="gateway ip address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="network start address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="cidr mask") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ip version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ip address assignment direction of the subnet") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="sequence of the subnet") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="id.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="network role instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of vf-module") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v6 Loopback address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v6 management address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="as-number of the VNF") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network Management profile of this VNF") - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of VNFs") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="source of name2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="id of pnf") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") - - - - - - - @org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Serial number of the device") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Circuit it") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Units for the upstream BW value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Units for downstream BW value") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ONAP can offer a shared DMZ or a DMZ specific to a customer") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="can be 1 or 2") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc,?aes-192-cbc, aes-265-cbc") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="enable PFS or not") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="The time between DPD probe") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="role of the instance group.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ASDC model id for this resource or service model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ASDC model version uid for this resource model.") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="English name associated with the zone") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Design of zone [Medium/Large?]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Context of zone [production/test]") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Status of a zone.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of zones") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Port Mirror Configuration.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="port-mirroring-configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="vprobe, pprobe.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Orchestration status of the configuration.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="id of the configuration used to customize the resource") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Collection of configurations") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Version") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Description") - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties") - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Extra properties for inventory item for response list") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") - - - - - - - - - - - - - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") - - - - - - - - - - - - @org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") - - - - - - - @org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - diff --git a/aai-service/provider/src/main/resources/aai_schema_v13.xsd b/aai-service/provider/src/main/resources/aai_schema_v13.xsd new file mode 100755 index 000000000..6b630a22c --- /dev/null +++ b/aai-service/provider/src/main/resources/aai_schema_v13.xsd @@ -0,0 +1,8014 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface",container="l-interfaces") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id, owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id, owning-entity-name",container="owning-entities",namespace="business") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + diff --git a/aai-service/provider/src/main/resources/aaiclient.properties b/aai-service/provider/src/main/resources/aaiclient.properties index c1ef22214..c84d05d87 100755 --- a/aai-service/provider/src/main/resources/aaiclient.properties +++ b/aai-service/provider/src/main/resources/aaiclient.properties @@ -26,210 +26,52 @@ # # Certificate keystore and truststore # -org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/bvc/tls-client/truststore.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/ccsdk/data/stores/truststore.onap.client.jks org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin -org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/bvc/tls-client/keystore.client.p12 -org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=adminadmin org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true org.onap.ccsdk.sli.adaptors.aai.client.name=SDNC org.onap.ccsdk.sli.adaptors.aai.client.psswd=SDNC org.onap.ccsdk.sli.adaptors.aai.application=CCSDK - # # Configuration file for A&AI Client # org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 - -# connection.timeout=60000 read.timeout=60000 # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v11/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v11/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 # named query org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query - #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v11/actions/update - -# vce -org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v11/network/vces/vce/ -org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v11/network/vces/ - -# customer -org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v11/business/customers/customer/{customer-id} - -# service subscription -org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} - -# service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v11/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v11/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} - -# tenant -org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} - -# vservers -org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ -org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} - -# vpls-pe -org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v11/network/vpls-pes/ -org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v11/network/vpls-pes/vpls-pe/ - -# ctag-pool -org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} - -# -#-------------- 1510 ---------------------- -# - -# pservers -org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v11/cloud-infrastructure/pservers -org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname} - -# generic-vnf -#org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v11/network/generic-vnfs -#org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id} +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update -# dvs-switch -org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} - -# L3 Networks -org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v11/network/l3-networks -org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v11/network/l3-networks/l3-network/{network-id} -org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v11/network/l3-networks/l3-network?network-name={network-name} +# UBB Notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} - -# Physical Link -org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v11/network/physical-links -org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v11/network/physical-links/physical-link/{link-name} - -# VPN Bindings -org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v11/network/vpn-bindings/ -org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v11/network/vpn-bindings/vpn-binding/{vpn-id} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v11/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v11/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} - -# UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://sdncodl.it.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://sdncodl-conexus.it.us.02.aic.cip.att.com:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information - -# Service -org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id} -org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creation/services - - -# -#-------------- 1604 ---------------------- -# - -# VNFC -org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v11/network/vnfcs/vnfc/{vnfc-name} - -# site-pair -org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} - -# routing-instance -org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} - -# site-pair-set -org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id} - -# license key resource -org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v11/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid} - -# logical-link -org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v11/network/logical-links/logical-link/{link-name} - -# virtual-data-center -org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} - -# wan-connector -org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v11/business/connectors/connector/{resource-instance-id} - -# l-interface -org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} - -# l-interface pnf -org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} - -# subinterface -org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} - -# l3-interface-ipv4-address-list -org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - -# l3-interface-ipv6-address-list -org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} -# ipsec-configuration -org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} - -# vig server -org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} - -# l3-network -org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v11/network/l3-networks/l3-network/{network-id} - -# subnet -org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} - -# multicast-configuration -org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} - -# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - -# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - -# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - -# volume.group -org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} - -#cloud region -org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} - -# vf-module -org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} - -# network-policy -org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v11/network/network-policies/network-policy/{network-policy-id} - -# pnf -org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v11/network/pnfs/pnf/{pnf-name} - -# oam-network -org.onap.ccsdk.sli.adaptors.aai.path.oam.network=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +# service instance +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -# route-table-reference -org.onap.ccsdk.sli.adaptors.aai.path.route.table.reference=/aai/v11/network/route-table-references/route-table-reference/{route-table-reference-id} +# VNF IMAGES QUERY +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java index 011b926c0..5be8a73e0 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -51,7 +51,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.openecomp.aai.inventory.v11.*; +import org.openecomp.aai.inventory.v13.*; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index 9bc93609a..0e616d576 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -63,7 +63,7 @@ import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v13.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.annotation.AnnotationUtils; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java index eb84cfdf3..eaedf66f6 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -38,7 +38,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v11.LInterface; +import org.openecomp.aai.inventory.v13.LInterface; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java index afdc4d26e..8ed704d7a 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -49,7 +49,7 @@ import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; import org.onap.ccsdk.sli.adaptors.aai.AAIService; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v11.GenericVnf; +import org.openecomp.aai.inventory.v13.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java index 04c9963b5..daf95b02d 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/ResponseMessageTest.java @@ -1,71 +1,68 @@ -package org.onap.ccsdk.sli.adaptors.aai.data; - -import static org.junit.Assert.*; -import static org.mockito.Mockito.mock; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; + +import java.util.HashMap; +import java.util.Map; + import org.junit.After; import org.junit.Before; -import org.junit.Test; -import org.openecomp.aai.inventory.v11.Vlans; +import org.junit.Test; + +public class ResponseMessageTest { + + ResponseMessage _rmInstance; + protected String _messageId; + protected String _text; + protected Variables _variables; + protected Map _additionalProperties; -public class ResponseMessageTest { - - ResponseMessage _rmInstance; - protected String _messageId; - protected String _text; - protected Variables _variables; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _rmInstance = new ResponseMessage(); - _messageId = "messageId"; - _text = "text"; - _variables = mock(Variables.class); - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } + @Before + public void setUp() throws Exception { + _rmInstance = new ResponseMessage(); + _messageId = "messageId"; + _text = "text"; + _variables = mock(Variables.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } - @After - public void tearDown() throws Exception { - _rmInstance = null; - _messageId = null; - _text = null; - _variables = null; - _additionalProperties = null; - } + @After + public void tearDown() throws Exception { + _rmInstance = null; + _messageId = null; + _text = null; + _variables = null; + _additionalProperties = null; + } - @Test - public void testSetMessageId() { - _rmInstance.setMessageId(_messageId); - assertTrue(_rmInstance.getMessageId().equals(_messageId)); - } + @Test + public void testSetMessageId() { + _rmInstance.setMessageId(_messageId); + assertTrue(_rmInstance.getMessageId().equals(_messageId)); + } - @Test - public void testSetText() { - _rmInstance.setText(_text); - assertTrue(_rmInstance.getText().equals(_text)); - } + @Test + public void testSetText() { + _rmInstance.setText(_text); + assertTrue(_rmInstance.getText().equals(_text)); + } - @Test - public void testSetVariables() { - _rmInstance.setVariables(_variables); - assertEquals(_rmInstance.getVariables(), _variables); - } + @Test + public void testSetVariables() { + _rmInstance.setVariables(_variables); + assertEquals(_rmInstance.getVariables(), _variables); + } - @Test - public void testSetAdditionalProperty() { - _rmInstance.setAdditionalProperty("prop1", "propvalue1"); - _rmInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_rmInstance.getAdditionalProperties(), _additionalProperties); - } + @Test + public void testSetAdditionalProperty() { + _rmInstance.setAdditionalProperty("prop1", "propvalue1"); + _rmInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_rmInstance.getAdditionalProperties(), _additionalProperties); + } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java index 66717103d..21fc86d12 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java @@ -1,95 +1,94 @@ -package org.onap.ccsdk.sli.adaptors.aai.data; - -import static org.junit.Assert.*; -import static org.mockito.Mockito.mock; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.openecomp.aai.inventory.v11.RelationshipList; -import org.openecomp.aai.inventory.v11.Vlans; - -public class SubInterfaceTest { - - SubInterface _siInstance; - protected String _interfaceName; - protected String _interfaceRole; - protected String _resourceVersion; - protected Vlans _vlans; - protected RelationshipList _relationshipList; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _siInstance = new SubInterface(); - _interfaceName = "interfaceName"; - _interfaceRole = "interfaceRole"; - _resourceVersion = "resourceVersion"; - _vlans = mock(Vlans.class); - _relationshipList = mock(RelationshipList.class); - - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - - } - - @After - public void tearDown() throws Exception { - _siInstance = null; - _interfaceName = null; - _interfaceRole = null; - _resourceVersion = null; - _vlans = null; - _relationshipList = null; - _additionalProperties = null; - } - - @Test - public void testSetInterfaceName() { - _siInstance.setInterfaceName(_interfaceName); - assertTrue(_siInstance.getInterfaceName().equals(_interfaceName)); - } - - - @Test - public void testSetInterfaceRole() { - _siInstance.setInterfaceRole(_interfaceRole); - assertTrue(_siInstance.getInterfaceRole().equals(_interfaceRole)); - } - - - @Test - public void testSetResourceVersion() { - _siInstance.setResourceVersion(_resourceVersion); - assertTrue(_siInstance.getResourceVersion().equals(_resourceVersion)); - } - - - @Test - public void testSetVlans() { - _siInstance.setVlans(_vlans); - assertTrue(_siInstance.getVlans().equals(_vlans)); - } - - - @Test - public void testSetRelationshipList() { - _siInstance.setRelationshipList(_relationshipList); - assertTrue(_siInstance.getRelationshipList().equals(_relationshipList)); - } - - @Test - public void testSetAdditionalProperties() { - _siInstance.setAdditionalProperty("prop1", "propvalue1"); - _siInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_siInstance.getAdditionalProperties(), _additionalProperties); - } - -} +package org.onap.ccsdk.sli.adaptors.aai.data; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.aai.inventory.v13.RelationshipList; +import org.openecomp.aai.inventory.v13.Vlans; + +public class SubInterfaceTest { + + SubInterface _siInstance; + protected String _interfaceName; + protected String _interfaceRole; + protected String _resourceVersion; + protected Vlans _vlans; + protected RelationshipList _relationshipList; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _siInstance = new SubInterface(); + _interfaceName = "interfaceName"; + _interfaceRole = "interfaceRole"; + _resourceVersion = "resourceVersion"; + _vlans = mock(Vlans.class); + _relationshipList = mock(RelationshipList.class); + + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + + } + + @After + public void tearDown() throws Exception { + _siInstance = null; + _interfaceName = null; + _interfaceRole = null; + _resourceVersion = null; + _vlans = null; + _relationshipList = null; + _additionalProperties = null; + } + + @Test + public void testSetInterfaceName() { + _siInstance.setInterfaceName(_interfaceName); + assertTrue(_siInstance.getInterfaceName().equals(_interfaceName)); + } + + + @Test + public void testSetInterfaceRole() { + _siInstance.setInterfaceRole(_interfaceRole); + assertTrue(_siInstance.getInterfaceRole().equals(_interfaceRole)); + } + + + @Test + public void testSetResourceVersion() { + _siInstance.setResourceVersion(_resourceVersion); + assertTrue(_siInstance.getResourceVersion().equals(_resourceVersion)); + } + + + @Test + public void testSetVlans() { + _siInstance.setVlans(_vlans); + assertTrue(_siInstance.getVlans().equals(_vlans)); + } + + + @Test + public void testSetRelationshipList() { + _siInstance.setRelationshipList(_relationshipList); + assertTrue(_siInstance.getRelationshipList().equals(_relationshipList)); + } + + @Test + public void testSetAdditionalProperties() { + _siInstance.setAdditionalProperty("prop1", "propvalue1"); + _siInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_siInstance.getAdditionalProperties(), _additionalProperties); + } + +} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java index 1bc226ec5..2a115d708 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java @@ -1,127 +1,124 @@ package org.onap.ccsdk.sli.adaptors.aai.query; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; - -import org.openecomp.aai.inventory.v11.CloudRegion; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.Pnf; -import org.openecomp.aai.inventory.v11.LogicalLink; -import org.openecomp.aai.inventory.v11.PInterface; -import org.openecomp.aai.inventory.v11.ServiceInstance; -import org.openecomp.aai.inventory.v11.Tenant; -import org.openecomp.aai.inventory.v11.Vnf; -import org.openecomp.aai.inventory.v11.Vserver; +import org.openecomp.aai.inventory.v13.CloudRegion; +import org.openecomp.aai.inventory.v13.GenericVnf; +import org.openecomp.aai.inventory.v13.L3Network; +import org.openecomp.aai.inventory.v13.LogicalLink; +import org.openecomp.aai.inventory.v13.PInterface; +import org.openecomp.aai.inventory.v13.Pnf; +import org.openecomp.aai.inventory.v13.ServiceInstance; +import org.openecomp.aai.inventory.v13.Tenant; +import org.openecomp.aai.inventory.v13.Vnf; +import org.openecomp.aai.inventory.v13.Vserver; public class InstanceFilterTest { - - InstanceFilter _ifInstance; - protected LogicalLink _logicalLink; - protected Pnf _pnf; - protected L3Network _l3Network; - protected PInterface _pInterface; - protected GenericVnf _genericVnf; - protected Vserver _vserver; - protected Tenant _tenant; - protected CloudRegion _cloudRegion; - protected ServiceInstance _serviceInstance; - protected Vnf _vnfc; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _ifInstance = new InstanceFilter(); - LogicalLink _logicalLink = mock(LogicalLink.class); - Pnf _pnf = mock(Pnf.class); - L3Network _l3Network = mock(L3Network.class); - PInterface _pInterface = mock(PInterface.class); - GenericVnf _genericVnf = mock(GenericVnf.class); - Vserver _vserver = mock(Vserver.class); - Tenant _tenant = mock(Tenant.class); - CloudRegion _cloudRegion = mock(CloudRegion.class); - ServiceInstance _serviceInstance = mock(ServiceInstance.class); - // as per class - Vnf _vnfc = mock(Vnf.class); - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } - - @After - public void tearDown() throws Exception { - _ifInstance = null; - _additionalProperties = null; - } - - @Test - public void testSetLogicalLink() { - _ifInstance.setLogicalLink(_logicalLink); - assertEquals(_ifInstance.getLogicalLink(), _logicalLink); - } - - @Test - public void testSetPnf() { - _ifInstance.setPnf(_pnf); - assertEquals(_ifInstance.getPnf(), _pnf); - } - - @Test - public void testSetL3Network() { - _ifInstance.setL3Network(_l3Network); - assertEquals(_ifInstance.getL3Network(), _l3Network); - } - - @Test - public void testSetServiceInstance() { - _ifInstance.setServiceInstance(_serviceInstance); - assertEquals(_ifInstance.getServiceInstance(), _serviceInstance); - } - - @Test - public void testSetGenericVnf() { - _ifInstance.setGenericVnf(_genericVnf); - assertEquals(_ifInstance.getGenericVnf(), _genericVnf); - } - - @Test - public void testSetVserver() { - _ifInstance.setVserver(_vserver); - assertEquals(_ifInstance.getVserver(), _vserver); - } - - @Test - public void testSetTenant() { - _ifInstance.setTenant(_tenant); - assertEquals(_ifInstance.getTenant(), _tenant); - } - - @Test - public void testSetCloudRegion() { - _ifInstance.setCloudRegion(_cloudRegion); - assertEquals(_ifInstance.getCloudRegion(), _cloudRegion); - } - - @Test - public void testSetVnfc() { - _ifInstance.setVnfc(_vnfc); - assertEquals(_ifInstance.getVnfc(), _vnfc); - } - - @Test - public void testSetAdditionalProperty() { - _ifInstance.setAdditionalProperty("prop1", "propvalue1"); - _ifInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_ifInstance.getAdditionalProperties(), _additionalProperties); - } + + InstanceFilter _ifInstance; + protected LogicalLink _logicalLink; + protected Pnf _pnf; + protected L3Network _l3Network; + protected PInterface _pInterface; + protected GenericVnf _genericVnf; + protected Vserver _vserver; + protected Tenant _tenant; + protected CloudRegion _cloudRegion; + protected ServiceInstance _serviceInstance; + protected Vnf _vnfc; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _ifInstance = new InstanceFilter(); + LogicalLink _logicalLink = mock(LogicalLink.class); + Pnf _pnf = mock(Pnf.class); + L3Network _l3Network = mock(L3Network.class); + PInterface _pInterface = mock(PInterface.class); + GenericVnf _genericVnf = mock(GenericVnf.class); + Vserver _vserver = mock(Vserver.class); + Tenant _tenant = mock(Tenant.class); + CloudRegion _cloudRegion = mock(CloudRegion.class); + ServiceInstance _serviceInstance = mock(ServiceInstance.class); + // as per class + Vnf _vnfc = mock(Vnf.class); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _ifInstance = null; + _additionalProperties = null; + } + + @Test + public void testSetLogicalLink() { + _ifInstance.setLogicalLink(_logicalLink); + assertEquals(_ifInstance.getLogicalLink(), _logicalLink); + } + + @Test + public void testSetPnf() { + _ifInstance.setPnf(_pnf); + assertEquals(_ifInstance.getPnf(), _pnf); + } + + @Test + public void testSetL3Network() { + _ifInstance.setL3Network(_l3Network); + assertEquals(_ifInstance.getL3Network(), _l3Network); + } + + @Test + public void testSetServiceInstance() { + _ifInstance.setServiceInstance(_serviceInstance); + assertEquals(_ifInstance.getServiceInstance(), _serviceInstance); + } + + @Test + public void testSetGenericVnf() { + _ifInstance.setGenericVnf(_genericVnf); + assertEquals(_ifInstance.getGenericVnf(), _genericVnf); + } + + @Test + public void testSetVserver() { + _ifInstance.setVserver(_vserver); + assertEquals(_ifInstance.getVserver(), _vserver); + } + + @Test + public void testSetTenant() { + _ifInstance.setTenant(_tenant); + assertEquals(_ifInstance.getTenant(), _tenant); + } + + @Test + public void testSetCloudRegion() { + _ifInstance.setCloudRegion(_cloudRegion); + assertEquals(_ifInstance.getCloudRegion(), _cloudRegion); + } + + @Test + public void testSetVnfc() { + _ifInstance.setVnfc(_vnfc); + assertEquals(_ifInstance.getVnfc(), _vnfc); + } + + @Test + public void testSetAdditionalProperty() { + _ifInstance.setAdditionalProperty("prop1", "propvalue1"); + _ifInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_ifInstance.getAdditionalProperties(), _additionalProperties); + } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java index e44e8454b..6131e13e0 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFiltersTest.java @@ -14,42 +14,42 @@ import org.junit.Test; public class InstanceFiltersTest { - InstanceFilters _ifsInstance; - protected List _instanceFilter; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _ifsInstance = new InstanceFilters(); - _instanceFilter = new ArrayList<>(); - InstanceFilter if1 = mock(InstanceFilter.class); - InstanceFilter if2 = mock(InstanceFilter.class); - _instanceFilter.add(if1); - _instanceFilter.add(if2); - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } - - @After - public void tearDown() throws Exception { - _ifsInstance = null; - _instanceFilter = null; - _additionalProperties = null; - } - - @Test - public void testSetInstanceFilter() { - _ifsInstance.setInstanceFilter(_instanceFilter); - assertEquals(_ifsInstance.getInstanceFilter(), _instanceFilter); - - } - - @Test - public void testSetAdditionalProperty() { - _ifsInstance.setAdditionalProperty("prop1", "propvalue1"); - _ifsInstance.setAdditionalProperty("prop2", "propvalue2"); - } + InstanceFilters _ifsInstance; + protected List _instanceFilter; + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _ifsInstance = new InstanceFilters(); + _instanceFilter = new ArrayList<>(); + InstanceFilter if1 = mock(InstanceFilter.class); + InstanceFilter if2 = mock(InstanceFilter.class); + _instanceFilter.add(if1); + _instanceFilter.add(if2); + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _ifsInstance = null; + _instanceFilter = null; + _additionalProperties = null; + } + + @Test + public void testSetInstanceFilter() { + _ifsInstance.setInstanceFilter(_instanceFilter); + assertEquals(_ifsInstance.getInstanceFilter(), _instanceFilter); + + } + + @Test + public void testSetAdditionalProperty() { + _ifsInstance.setAdditionalProperty("prop1", "propvalue1"); + _ifsInstance.setAdditionalProperty("prop2", "propvalue2"); + } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java index 4bec98724..576778bb5 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java @@ -10,150 +10,150 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.openecomp.aai.inventory.v11.CloudRegion; -import org.openecomp.aai.inventory.v11.Complex; -import org.openecomp.aai.inventory.v11.Configuration; -import org.openecomp.aai.inventory.v11.GenericVnf; -import org.openecomp.aai.inventory.v11.L3InterfaceIpv4AddressList; -import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList; -import org.openecomp.aai.inventory.v11.L3Network; -import org.openecomp.aai.inventory.v11.LInterface; -//import org.openecomp.aai.inventory.v11.OwningEntity; -import org.openecomp.aai.inventory.v11.Pserver; -import org.openecomp.aai.inventory.v11.ServiceInstance; -import org.openecomp.aai.inventory.v11.Vnfc; -import org.openecomp.aai.inventory.v11.Vserver; +import org.openecomp.aai.inventory.v13.CloudRegion; +import org.openecomp.aai.inventory.v13.Complex; +import org.openecomp.aai.inventory.v13.Configuration; +import org.openecomp.aai.inventory.v13.GenericVnf; +import org.openecomp.aai.inventory.v13.L3InterfaceIpv4AddressList; +import org.openecomp.aai.inventory.v13.L3InterfaceIpv6AddressList; +import org.openecomp.aai.inventory.v13.L3Network; +import org.openecomp.aai.inventory.v13.LInterface; +//import org.openecomp.aai.inventory.v13.OwningEntity; +import org.openecomp.aai.inventory.v13.Pserver; +import org.openecomp.aai.inventory.v13.ServiceInstance; +import org.openecomp.aai.inventory.v13.Vnfc; +import org.openecomp.aai.inventory.v13.Vserver; public class ResultTest { - Result _rInstance; - - protected CloudRegion _cloudRegion; - protected Complex _complex; - protected Configuration _configuration; - protected GenericVnf _genericVnf; - protected L3InterfaceIpv4AddressList _l3InterfaceIpv4AddressList; - protected L3InterfaceIpv6AddressList _l3InterfaceIpv6AddressList; - protected L3Network _l3Network; - protected LInterface _lInterface; - protected Pserver _pserver; - protected ServiceInstance _serviceInstance; - protected Vnfc _vnfc; - protected Vserver _vserver; - - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _rInstance = new Result(); - - CloudRegion _cloudRegion = mock(CloudRegion.class); - Complex _complex = mock(Complex.class); - Configuration _configuration = mock(Configuration.class); - L3InterfaceIpv4AddressList _l3InterfaceIpv4AddressList = mock(L3InterfaceIpv4AddressList.class); - L3InterfaceIpv6AddressList _l3InterfaceIpv6AddressList = mock(L3InterfaceIpv6AddressList.class); - L3Network _l3Network = mock(L3Network.class); - LInterface _pInterface = mock(LInterface.class); - GenericVnf _genericVnf = mock(GenericVnf.class); - Vserver _vserver = mock(Vserver.class); - Pserver _pserver = mock(Pserver.class); - Vnfc _vnfc = mock(Vnfc.class); - ServiceInstance _serviceInstance = mock(ServiceInstance.class); - - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } - - @After - public void tearDown() throws Exception { - _rInstance = null; - _additionalProperties = null; - } - - @Test - public void testSetComplex() { - _rInstance.setComplex(_complex); - assertEquals(_rInstance.getComplex(), _complex); - } - - @Test - public void testSetConfiguration() { - _rInstance.setConfiguration(_configuration); - assertEquals(_rInstance.getConfiguration(), _configuration); - } - - @Test - public void testSetL3InterfaceIpv4AddressList() { - _rInstance.setL3InterfaceIpv4AddressList(_l3InterfaceIpv4AddressList); - assertEquals(_rInstance.getL3InterfaceIpv4AddressList(), _l3InterfaceIpv4AddressList); - } - - @Test - public void testSetL3InterfaceIpv6AddressList() { - _rInstance.setL3InterfaceIpv6AddressList(_l3InterfaceIpv6AddressList); - assertEquals(_rInstance.getL3InterfaceIpv6AddressList(), _l3InterfaceIpv6AddressList); - } - - @Test - public void testSetL3Network() { - _rInstance.setL3Network(_l3Network); - assertEquals(_rInstance.getL3Network(), _l3Network); - } - - @Test - public void testSetServiceInstance() { - _rInstance.setServiceInstance(_serviceInstance); - assertEquals(_rInstance.getServiceInstance(), _serviceInstance); - } - - @Test - public void testSetGenericVnf() { - _rInstance.setGenericVnf(_genericVnf); - assertEquals(_rInstance.getGenericVnf(), _genericVnf); - } - - @Test - public void testSetVserver() { - _rInstance.setVserver(_vserver); - assertEquals(_rInstance.getVserver(), _vserver); - } - - @Test - public void testSetCloudRegion() { - _rInstance.setCloudRegion(_cloudRegion); - assertEquals(_rInstance.getCloudRegion(), _cloudRegion); - } - - @Test - public void testSetVnfc() { - _rInstance.setVnfc(_vnfc); - assertEquals(_rInstance.getVnfc(), _vnfc); - } - - @Test - public void testSetLInterface() { - _rInstance.setLInterface(_lInterface); - assertEquals(_rInstance.getLInterface(), _lInterface); - } - - @Test - public void testSetPserver() { - _rInstance.setPserver(_pserver); - assertEquals(_rInstance.getPserver(), _pserver); - } - - @Test - public void testSetAdditionalProperty() { - _rInstance.setAdditionalProperty("prop1", "propvalue1"); - _rInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_rInstance.getAdditionalProperties(), _additionalProperties); - } - - @Test - public void testToString() { - assertNotNull(_rInstance.toString()); - } + Result _rInstance; + + protected CloudRegion _cloudRegion; + protected Complex _complex; + protected Configuration _configuration; + protected GenericVnf _genericVnf; + protected L3InterfaceIpv4AddressList _l3InterfaceIpv4AddressList; + protected L3InterfaceIpv6AddressList _l3InterfaceIpv6AddressList; + protected L3Network _l3Network; + protected LInterface _lInterface; + protected Pserver _pserver; + protected ServiceInstance _serviceInstance; + protected Vnfc _vnfc; + protected Vserver _vserver; + + protected Map _additionalProperties; + + @Before + public void setUp() throws Exception { + _rInstance = new Result(); + + CloudRegion _cloudRegion = mock(CloudRegion.class); + Complex _complex = mock(Complex.class); + Configuration _configuration = mock(Configuration.class); + L3InterfaceIpv4AddressList _l3InterfaceIpv4AddressList = mock(L3InterfaceIpv4AddressList.class); + L3InterfaceIpv6AddressList _l3InterfaceIpv6AddressList = mock(L3InterfaceIpv6AddressList.class); + L3Network _l3Network = mock(L3Network.class); + LInterface _pInterface = mock(LInterface.class); + GenericVnf _genericVnf = mock(GenericVnf.class); + Vserver _vserver = mock(Vserver.class); + Pserver _pserver = mock(Pserver.class); + Vnfc _vnfc = mock(Vnfc.class); + ServiceInstance _serviceInstance = mock(ServiceInstance.class); + + _additionalProperties = new HashMap() {{ + put("prop1", "propvalue1"); + put("prop2", "propvalue2"); + }}; + } + + @After + public void tearDown() throws Exception { + _rInstance = null; + _additionalProperties = null; + } + + @Test + public void testSetComplex() { + _rInstance.setComplex(_complex); + assertEquals(_rInstance.getComplex(), _complex); + } + + @Test + public void testSetConfiguration() { + _rInstance.setConfiguration(_configuration); + assertEquals(_rInstance.getConfiguration(), _configuration); + } + + @Test + public void testSetL3InterfaceIpv4AddressList() { + _rInstance.setL3InterfaceIpv4AddressList(_l3InterfaceIpv4AddressList); + assertEquals(_rInstance.getL3InterfaceIpv4AddressList(), _l3InterfaceIpv4AddressList); + } + + @Test + public void testSetL3InterfaceIpv6AddressList() { + _rInstance.setL3InterfaceIpv6AddressList(_l3InterfaceIpv6AddressList); + assertEquals(_rInstance.getL3InterfaceIpv6AddressList(), _l3InterfaceIpv6AddressList); + } + + @Test + public void testSetL3Network() { + _rInstance.setL3Network(_l3Network); + assertEquals(_rInstance.getL3Network(), _l3Network); + } + + @Test + public void testSetServiceInstance() { + _rInstance.setServiceInstance(_serviceInstance); + assertEquals(_rInstance.getServiceInstance(), _serviceInstance); + } + + @Test + public void testSetGenericVnf() { + _rInstance.setGenericVnf(_genericVnf); + assertEquals(_rInstance.getGenericVnf(), _genericVnf); + } + + @Test + public void testSetVserver() { + _rInstance.setVserver(_vserver); + assertEquals(_rInstance.getVserver(), _vserver); + } + + @Test + public void testSetCloudRegion() { + _rInstance.setCloudRegion(_cloudRegion); + assertEquals(_rInstance.getCloudRegion(), _cloudRegion); + } + + @Test + public void testSetVnfc() { + _rInstance.setVnfc(_vnfc); + assertEquals(_rInstance.getVnfc(), _vnfc); + } + + @Test + public void testSetLInterface() { + _rInstance.setLInterface(_lInterface); + assertEquals(_rInstance.getLInterface(), _lInterface); + } + + @Test + public void testSetPserver() { + _rInstance.setPserver(_pserver); + assertEquals(_rInstance.getPserver(), _pserver); + } + + @Test + public void testSetAdditionalProperty() { + _rInstance.setAdditionalProperty("prop1", "propvalue1"); + _rInstance.setAdditionalProperty("prop2", "propvalue2"); + assertEquals(_rInstance.getAdditionalProperties(), _additionalProperties); + } + + @Test + public void testToString() { + assertNotNull(_rInstance.toString()); + } } diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index c1ef22214..c84d05d87 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -26,210 +26,52 @@ # # Certificate keystore and truststore # -org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/bvc/tls-client/truststore.client.jks +org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/ccsdk/data/stores/truststore.onap.client.jks org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin -org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/bvc/tls-client/keystore.client.p12 -org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=adminadmin org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true org.onap.ccsdk.sli.adaptors.aai.client.name=SDNC org.onap.ccsdk.sli.adaptors.aai.client.psswd=SDNC org.onap.ccsdk.sli.adaptors.aai.application=CCSDK - # # Configuration file for A&AI Client # org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 - -# connection.timeout=60000 read.timeout=60000 # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v11/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v11/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 # named query org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query - #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v11/actions/update - -# vce -org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v11/network/vces/vce/ -org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v11/network/vces/ - -# customer -org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v11/business/customers/customer/{customer-id} - -# service subscription -org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} - -# service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v11/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v11/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} - -# tenant -org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name} - -# vservers -org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/ -org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} - -# vpls-pe -org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v11/network/vpls-pes/ -org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v11/network/vpls-pes/vpls-pe/ - -# ctag-pool -org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} - -# -#-------------- 1510 ---------------------- -# - -# pservers -org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v11/cloud-infrastructure/pservers -org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname} - -# generic-vnf -#org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v11/network/generic-vnfs -#org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id} +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update -# dvs-switch -org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} - -# L3 Networks -org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v11/network/l3-networks -org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v11/network/l3-networks/l3-network/{network-id} -org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v11/network/l3-networks/l3-network?network-name={network-name} +# UBB Notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} - -# Physical Link -org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v11/network/physical-links -org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v11/network/physical-links/physical-link/{link-name} - -# VPN Bindings -org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v11/network/vpn-bindings/ -org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v11/network/vpn-bindings/vpn-binding/{vpn-id} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v11/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v11/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} - -# UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://sdncodl.it.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} -org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://sdncodl-conexus.it.us.02.aic.cip.att.com:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information - -# Service -org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id} -org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creation/services - - -# -#-------------- 1604 ---------------------- -# - -# VNFC -org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v11/network/vnfcs/vnfc/{vnfc-name} - -# site-pair -org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} - -# routing-instance -org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} - -# site-pair-set -org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id} - -# license key resource -org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v11/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid} - -# logical-link -org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v11/network/logical-links/logical-link/{link-name} - -# virtual-data-center -org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} - -# wan-connector -org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v11/business/connectors/connector/{resource-instance-id} - -# l-interface -org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} - -# l-interface pnf -org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} - -# subinterface -org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name} -org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name} - -# l3-interface-ipv4-address-list -org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - -# l3-interface-ipv6-address-list -org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} -# ipsec-configuration -org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} - -# vig server -org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} - -# l3-network -org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v11/network/l3-networks/l3-network/{network-id} - -# subnet -org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} - -# multicast-configuration -org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} - -# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - -# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} - -# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list -org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} - -# volume.group -org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} - -#cloud region -org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} - -# vf-module -org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} - -# network-policy -org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v11/network/network-policies/network-policy/{network-policy-id} - -# pnf -org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v11/network/pnfs/pnf/{pnf-name} - -# oam-network -org.onap.ccsdk.sli.adaptors.aai.path.oam.network=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +# service instance +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -# route-table-reference -org.onap.ccsdk.sli.adaptors.aai.path.route.table.reference=/aai/v11/network/route-table-references/route-table-reference/{route-table-reference-id} +# VNF IMAGES QUERY +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting -- cgit 1.2.3-korg From 3547d659591f07e9e5405462818cb4f776009e76 Mon Sep 17 00:00:00 2001 From: gaurav Date: Tue, 11 Sep 2018 11:16:06 +0530 Subject: Updating aai adapter to v14 model Updated AAI XSD model to v14 to make new schema's available to SDNC. Change-Id: I9b282bd23e754e0b8ef39a3013f7240a869fae5f Issue-ID: CCSDK-324 Signed-off-by: Gaurav Agrawal --- aai-service/provider/pom.xml | 4 +- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 2 +- .../sli/adaptors/aai/AAIClientRESTExecutor.java | 2 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 42 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 2 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 12 +- .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 6 +- .../sli/adaptors/aai/GenericQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequest.java | 4 +- .../ccsdk/sli/adaptors/aai/NamedQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 2 +- .../sli/adaptors/aai/RelationshipListRequest.java | 2 +- .../sli/adaptors/aai/RelationshipRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/data/SubInterface.java | 4 +- .../sli/adaptors/aai/query/InstanceFilter.java | 20 +- .../onap/ccsdk/sli/adaptors/aai/query/Result.java | 26 +- .../src/main/resources/aai-path.properties | 604 +- .../src/main/resources/aai-schema-bindings.xjb | 2 +- .../provider/src/main/resources/aai_schema_v13.xsd | 8014 ---------------- .../provider/src/main/resources/aai_schema_v14.xsd | 9754 ++++++++++++++++++++ .../src/main/resources/aaiclient.properties | 28 +- .../ccsdk/sli/adaptors/aai/AAIServiceTest.java | 12 +- .../adaptors/aai/AutoGeneratedRegressionTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfTest.java | 2 +- .../sli/adaptors/aai/data/SubInterfaceTest.java | 4 +- .../sli/adaptors/aai/query/InstanceFilterTest.java | 20 +- .../ccsdk/sli/adaptors/aai/query/ResultTest.java | 26 +- .../src/test/resources/aaiclient.properties | 28 +- 29 files changed, 10186 insertions(+), 8446 deletions(-) delete mode 100755 aai-service/provider/src/main/resources/aai_schema_v13.xsd create mode 100644 aai-service/provider/src/main/resources/aai_schema_v14.xsd (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 4c416e176..0324ab3d3 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -132,13 +132,13 @@ ${project.basedir}/src/main/resources - aai_schema_v13.xsd + aai_schema_v14.xsd aai-schema-bindings.xjb ${project.build.directory}/generated-sources/main/java - org.openecomp.aai.inventory.v13 + org.onap.aai.inventory.v14 true -Xannotate diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index fd5a6f4b7..0200ccbb3 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -26,7 +26,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Map; -import org.openecomp.aai.inventory.v13.*; +import org.onap.aai.inventory.v14.*; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java index 85e81b54d..0050afbc4 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutor.java @@ -71,7 +71,7 @@ import org.apache.http.impl.EnglishReasonPhraseCatalog; * The AAIClientRESTExecutor class provides CRUD API for AAI Client service. * @author richtabedzki */ -public class AAIClientRESTExecutor implements AAIExecutorInterface { +public class AAIClientRESTExecutor implements AAIExecutorInterface { private final String truststorePath; private final String truststorePassword; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index e02caac36..9943589b2 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -57,25 +57,25 @@ import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters; import org.onap.ccsdk.sli.adaptors.aai.query.Result; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.openecomp.aai.inventory.v13.GenericVnf; -import org.openecomp.aai.inventory.v13.Image; -import org.openecomp.aai.inventory.v13.InventoryResponseItem; -import org.openecomp.aai.inventory.v13.InventoryResponseItems; -import org.openecomp.aai.inventory.v13.L3Network; -import org.openecomp.aai.inventory.v13.LogicalLink; -import org.openecomp.aai.inventory.v13.Metadata; -import org.openecomp.aai.inventory.v13.Metadatum; -import org.openecomp.aai.inventory.v13.Pnf; -import org.openecomp.aai.inventory.v13.RelatedToProperty; -import org.openecomp.aai.inventory.v13.Relationship; -import org.openecomp.aai.inventory.v13.RelationshipData; -import org.openecomp.aai.inventory.v13.RelationshipList; -import org.openecomp.aai.inventory.v13.ResultData; -import org.openecomp.aai.inventory.v13.SearchResults; -import org.openecomp.aai.inventory.v13.ServiceInstance; -import org.openecomp.aai.inventory.v13.Vlan; -import org.openecomp.aai.inventory.v13.Vlans; -import org.openecomp.aai.inventory.v13.Vserver; +import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v14.Image; +import org.onap.aai.inventory.v14.InventoryResponseItem; +import org.onap.aai.inventory.v14.InventoryResponseItems; +import org.onap.aai.inventory.v14.L3Network; +import org.onap.aai.inventory.v14.LogicalLink; +import org.onap.aai.inventory.v14.Metadata; +import org.onap.aai.inventory.v14.Metadatum; +import org.onap.aai.inventory.v14.Pnf; +import org.onap.aai.inventory.v14.RelatedToProperty; +import org.onap.aai.inventory.v14.Relationship; +import org.onap.aai.inventory.v14.RelationshipData; +import org.onap.aai.inventory.v14.RelationshipList; +import org.onap.aai.inventory.v14.ResultData; +import org.onap.aai.inventory.v14.SearchResults; +import org.onap.aai.inventory.v14.ServiceInstance; +import org.onap.aai.inventory.v14.Vlan; +import org.onap.aai.inventory.v14.Vlans; +import org.onap.aai.inventory.v14.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1264,7 +1264,7 @@ public abstract class AAIDeclarations implements AAIClient { getLogger().debug("About to process related link of {}", relatedLink); if(relatedLink != null) { if(relatedLink.contains("v$")) - relatedLink = relatedLink.replace("v$", "v13"); + relatedLink = relatedLink.replace("v$", "v14"); relationship.setRelatedLink(relatedLink); } else { Map relParams = new HashMap<>(); @@ -1553,7 +1553,7 @@ public abstract class AAIDeclarations implements AAIClient { if (relatedLink != null) { if(relatedLink.contains("v$")) - relatedLink = relatedLink.replace("v$", "v13"); + relatedLink = relatedLink.replace("v$", "v14"); relationship.setRelatedLink(relatedLink); } else { Map relParams = new HashMap<>(); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 36615d910..7ac9423c7 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -45,7 +45,7 @@ import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; -import org.openecomp.aai.inventory.v13.GenericVnf; +import org.onap.aai.inventory.v14.GenericVnf; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 02fab5851..bfed619c6 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -77,11 +77,11 @@ import org.onap.ccsdk.sli.core.sli.MetricLogger; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.openecomp.aai.inventory.v13.GenericVnf; -import org.openecomp.aai.inventory.v13.PhysicalLink; -import org.openecomp.aai.inventory.v13.ResultData; -import org.openecomp.aai.inventory.v13.SearchResults; -import org.openecomp.aai.inventory.v13.Vserver; +import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v14.PhysicalLink; +import org.onap.aai.inventory.v14.ResultData; +import org.onap.aai.inventory.v14.SearchResults; +import org.onap.aai.inventory.v14.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -582,7 +582,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe /* * (non-Javadoc) - * @see org.openecomp.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String) + * @see org.onap.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String) */ @Override public Vserver requestVServerData(String tenantId, String vserverId, String cloudOwner, String cloudRegionId) throws AAIServiceException { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index 5c421518a..10aec46aa 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -38,9 +38,9 @@ import java.util.Set; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.StringUtils; -import org.openecomp.aai.inventory.v13.Relationship; -import org.openecomp.aai.inventory.v13.RelationshipData; -import org.openecomp.aai.inventory.v13.RelationshipList; +import org.onap.aai.inventory.v14.Relationship; +import org.onap.aai.inventory.v14.RelationshipData; +import org.onap.aai.inventory.v14.RelationshipList; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.slf4j.Logger; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index 599edd88c..515359602 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -27,7 +27,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v13.ResultData; +import org.onap.aai.inventory.v14.ResultData; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index 7224d00b0..7987aefc2 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -35,8 +35,8 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v13.L3Network; -import org.openecomp.aai.inventory.v13.L3Networks; +import org.onap.aai.inventory.v14.L3Network; +import org.onap.aai.inventory.v14.L3Networks; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java index 8bd6644e8..691ae27a3 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java @@ -30,7 +30,7 @@ import java.util.List; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v13.InventoryResponseItems; +import org.onap.aai.inventory.v14.InventoryResponseItems; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonProcessingException; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java index 27e4567ae..0099e933d 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -27,7 +27,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v13.SearchResults; +import org.onap.aai.inventory.v14.SearchResults; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java index eb93fefe8..847bdea0a 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java @@ -30,7 +30,7 @@ import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.openecomp.aai.inventory.v13.RelationshipList; +import org.onap.aai.inventory.v14.RelationshipList; public class RelationshipListRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java index 76a377ea6..9967a50cb 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -32,7 +32,7 @@ import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v13.Relationship; +import org.onap.aai.inventory.v14.Relationship; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java index 90aafe7bc..4879c74c8 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java @@ -31,8 +31,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.openecomp.aai.inventory.v13.RelationshipList; -import org.openecomp.aai.inventory.v13.Vlans; +import org.onap.aai.inventory.v14.RelationshipList; +import org.onap.aai.inventory.v14.Vlans; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java index cefb9e33a..b24df92cf 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java @@ -33,16 +33,16 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.openecomp.aai.inventory.v13.CloudRegion; -import org.openecomp.aai.inventory.v13.GenericVnf; -import org.openecomp.aai.inventory.v13.L3Network; -import org.openecomp.aai.inventory.v13.Pnf; -import org.openecomp.aai.inventory.v13.LogicalLink; -import org.openecomp.aai.inventory.v13.PInterface; -import org.openecomp.aai.inventory.v13.ServiceInstance; -import org.openecomp.aai.inventory.v13.Tenant; -import org.openecomp.aai.inventory.v13.Vnf; -import org.openecomp.aai.inventory.v13.Vserver; +import org.onap.aai.inventory.v14.CloudRegion; +import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v14.L3Network; +import org.onap.aai.inventory.v14.Pnf; +import org.onap.aai.inventory.v14.LogicalLink; +import org.onap.aai.inventory.v14.PInterface; +import org.onap.aai.inventory.v14.ServiceInstance; +import org.onap.aai.inventory.v14.Tenant; +import org.onap.aai.inventory.v14.Vnf; +import org.onap.aai.inventory.v14.Vserver; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java index d0e256969..8a22905dc 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java @@ -30,19 +30,19 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import org.openecomp.aai.inventory.v13.CloudRegion; -import org.openecomp.aai.inventory.v13.Complex; -import org.openecomp.aai.inventory.v13.Configuration; -import org.openecomp.aai.inventory.v13.GenericVnf; -import org.openecomp.aai.inventory.v13.L3InterfaceIpv4AddressList; -import org.openecomp.aai.inventory.v13.L3InterfaceIpv6AddressList; -import org.openecomp.aai.inventory.v13.L3Network; -import org.openecomp.aai.inventory.v13.LInterface; -//import org.openecomp.aai.inventory.v13.OwningEntity; -import org.openecomp.aai.inventory.v13.Pserver; -import org.openecomp.aai.inventory.v13.ServiceInstance; -import org.openecomp.aai.inventory.v13.Vnfc; -import org.openecomp.aai.inventory.v13.Vserver; +import org.onap.aai.inventory.v14.CloudRegion; +import org.onap.aai.inventory.v14.Complex; +import org.onap.aai.inventory.v14.Configuration; +import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v14.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v14.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v14.L3Network; +import org.onap.aai.inventory.v14.LInterface; +//import org.onap.aai.inventory.v14.OwningEntity; +import org.onap.aai.inventory.v14.Pserver; +import org.onap.aai.inventory.v14.ServiceInstance; +import org.onap.aai.inventory.v14.Vnfc; +import org.onap.aai.inventory.v14.Vserver; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/aai-service/provider/src/main/resources/aai-path.properties b/aai-service/provider/src/main/resources/aai-path.properties index 0d328a519..85c8ff70d 100755 --- a/aai-service/provider/src/main/resources/aai-path.properties +++ b/aai-service/provider/src/main/resources/aai-path.properties @@ -19,305 +19,305 @@ # ============LICENSE_END========================================================= ### -cloud-regions = /aai/v13/cloud-infrastructure/cloud-regions -cloud-region = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} -cloud-region|availability-zones = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones -cloud-region|availability-zone = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} -cloud-region|dvs-switches = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -cloud-region|dvs-switch = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} -cloud-region|flavors = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors -cloud-region|flavor = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} -cloud-region|flavor|hpa-capabilities = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities -cloud-region|flavor|hpa-capability = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|group-assignments = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments -cloud-region|group-assignment = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} -cloud-region|hpa-capabilities = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities -cloud-region|hpa-capability = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|hpa-capability|hpa-feature-attributes = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|images = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images -cloud-region|image = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} -cloud-region|image|metadata = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata -cloud-region|image|metadatum = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} -cloud-region|oam-networks = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks -cloud-region|oam-network = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} -cloud-region|snapshots = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots -cloud-region|snapshot = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} -cloud-region|tenants = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants -cloud-region|tenant = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -cloud-region|tenant|vservers = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers -cloud-region|tenant|vserver = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} -cloud-region|tenant|vserver|l-interfaces = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces -cloud-region|tenant|vserver|l-interface = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -cloud-region|tenant|vserver|l-interface|vlans = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans -cloud-region|tenant|vserver|l-interface|vlan = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|volumes = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes -cloud-region|tenant|vserver|volume = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} -cloud-region|vip-ipv4-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} -cloud-region|vip-ipv6-address-list = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} -cloud-region|volume-groups = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups -cloud-region|volume-group = /aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} -complexes = /aai/v13/cloud-infrastructure/complexes -complex = /aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id} -complex|ctag-pools = /aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -complex|ctag-pool = /aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} -network-profiles = /aai/v13/cloud-infrastructure/network-profiles -network-profile = /aai/v13/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} -operational-environments = /aai/v13/cloud-infrastructure/operational-environments -operational-environment = /aai/v13/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} -pservers = /aai/v13/cloud-infrastructure/pservers -pserver = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname} -pserver|lag-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces -pserver|lag-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} -pserver|lag-interface|l-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pserver|lag-interface|l-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface|sriov-vfs = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|lag-interface|l-interface|sriov-vf = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|lag-interface|l-interface|vlans = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|lag-interface|l-interface|vlan = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -pserver|p-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} -pserver|p-interface|l-interfaces = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces -pserver|p-interface|l-interface = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface|sriov-vfs = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|p-interface|l-interface|sriov-vf = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|p-interface|l-interface|vlans = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|p-interface|l-interface|vlan = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|sriov-pfs = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pserver|p-interface|sriov-pf = /aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -virtual-data-centers = /aai/v13/cloud-infrastructure/virtual-data-centers -virtual-data-center = /aai/v13/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} -connectors = /aai/v13/business/connectors -connector = /aai/v13/business/connectors/connector/{resource-instance-id} -connector|metadata = /aai/v13/business/connectors/connector/{resource-instance-id}/metadata -connector|metadatum = /aai/v13/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} -customers = /aai/v13/business/customers -customer = /aai/v13/business/customers/customer/{global-customer-id} -customer|service-subscriptions = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions -customer|service-subscription = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} -customer|service-subscription|service-instances = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -customer|service-subscription|service-instance = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -customer|service-subscription|service-instance|allotted-resources = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources -customer|service-subscription|service-instance|allotted-resource = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} -customer|service-subscription|service-instance|metadata = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata -customer|service-subscription|service-instance|metadatum = /aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} -lines-of-business = /aai/v13/business/lines-of-business -line-of-business = /aai/v13/business/lines-of-business/line-of-business/{line-of-business-name} -owning-entities = /aai/v13/business/owning-entities -owning-entity = /aai/v13/business/owning-entities/owning-entity/{owning-entity-id} -platforms = /aai/v13/business/platforms -platform = /aai/v13/business/platforms/platform/{platform-name} -projects = /aai/v13/business/projects -project = /aai/v13/business/projects/project/{project-name} -models = /aai/v13/service-design-and-creation/models -model = /aai/v13/service-design-and-creation/models/model/{model-invariant-id} -model|model-vers = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers -model|model-ver = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} -model|model-ver|metadata = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata -model|model-ver|metadatum = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} -model|model-ver|model-elements = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements -model|model-ver|model-element = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} -model|model-ver|model-element|model-constraints = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints -model|model-ver|model-element|model-constraint = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} -model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets -model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v13/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} -named-queries = /aai/v13/service-design-and-creation/named-queries -named-query = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid} -named-query|named-query-elements = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements -named-query|named-query-element = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} -named-query|named-query-element|property-constraints = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints -named-query|named-query-element|property-constraint = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} -named-query|named-query-element|related-lookups = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups -named-query|named-query-element|related-lookup = /aai/v13/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} -service-capabilities = /aai/v13/service-design-and-creation/service-capabilities -service-capability = /aai/v13/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} -services = /aai/v13/service-design-and-creation/services -service = /aai/v13/service-design-and-creation/services/service/{service-id} -vnf-images = /aai/v13/service-design-and-creation/vnf-images -vnf-image = /aai/v13/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} -configurations = /aai/v13/network/configurations -configuration = /aai/v13/network/configurations/configuration/{configuration-id} -configuration|evcs = /aai/v13/network/configurations/configuration/{configuration-id}/evcs -configuration|evc = /aai/v13/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} -configuration|forwarder-evcs = /aai/v13/network/configurations/configuration/{configuration-id}/forwarder-evcs -configuration|forwarder-evc = /aai/v13/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} -configuration|metadata = /aai/v13/network/configurations/configuration/{configuration-id}/metadata -configuration|metadatum = /aai/v13/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} -forwarding-paths = /aai/v13/network/forwarding-paths -forwarding-path = /aai/v13/network/forwarding-paths/forwarding-path/{forwarding-path-id} -forwarding-path|forwarders = /aai/v13/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders -forwarding-path|forwarder = /aai/v13/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} -generic-vnfs = /aai/v13/network/generic-vnfs -generic-vnf = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id} -generic-vnf|entitlements = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements -generic-vnf|entitlement = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -generic-vnf|l-interfaces = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces -generic-vnf|l-interface = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} -generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface|sriov-vfs = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|l-interface|sriov-vf = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|l-interface|vlans = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|l-interface|vlan = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interfaces = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces -generic-vnf|lag-interface = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -generic-vnf|lag-interface|l-interfaces = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -generic-vnf|lag-interface|l-interface = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|lag-interface|l-interface|vlans = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|lag-interface|l-interface|vlan = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|licenses = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/licenses -generic-vnf|license = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -generic-vnf|vf-modules = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules -generic-vnf|vf-module = /aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} -instance-groups = /aai/v13/network/instance-groups -instance-group = /aai/v13/network/instance-groups/instance-group/{id} -ipsec-configurations = /aai/v13/network/ipsec-configurations -ipsec-configuration = /aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} -ipsec-configuration|vig-servers = /aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers -ipsec-configuration|vig-server = /aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} -l3-networks = /aai/v13/network/l3-networks -l3-network = /aai/v13/network/l3-networks/l3-network/{network-id} -l3-network|ctag-assignments = /aai/v13/network/l3-networks/l3-network/{network-id}/ctag-assignments -l3-network|ctag-assignment = /aai/v13/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} -l3-network|segmentation-assignments = /aai/v13/network/l3-networks/l3-network/{network-id}/segmentation-assignments -l3-network|segmentation-assignment = /aai/v13/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} -l3-network|subnets = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets -l3-network|subnet = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} -l3-network|subnet|host-routes = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes -l3-network|subnet|host-route = /aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} -lag-links = /aai/v13/network/lag-links -lag-link = /aai/v13/network/lag-links/lag-link/{link-name} -logical-links = /aai/v13/network/logical-links -logical-link = /aai/v13/network/logical-links/logical-link/{link-name} -multicast-configurations = /aai/v13/network/multicast-configurations -multicast-configuration = /aai/v13/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -network-policies = /aai/v13/network/network-policies -network-policy = /aai/v13/network/network-policies/network-policy/{network-policy-id} -newvces = /aai/v13/network/newvces -newvce = /aai/v13/network/newvces/newvce/{vnf-id2} -newvce|l-interfaces = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces -newvce|l-interface = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} -newvce|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface|sriov-vfs = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs -newvce|l-interface|sriov-vf = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -newvce|l-interface|vlans = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans -newvce|l-interface|vlan = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -physical-links = /aai/v13/network/physical-links -physical-link = /aai/v13/network/physical-links/physical-link/{link-name} -pnfs = /aai/v13/network/pnfs -pnf = /aai/v13/network/pnfs/pnf/{pnf-name} -pnf|lag-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces -pnf|lag-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} -pnf|lag-interface|l-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pnf|lag-interface|l-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface|sriov-vfs = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|lag-interface|l-interface|sriov-vf = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|lag-interface|l-interface|vlans = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|lag-interface|l-interface|vlan = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces -pnf|p-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} -pnf|p-interface|l-interfaces = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -pnf|p-interface|l-interface = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface|sriov-vfs = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|p-interface|l-interface|sriov-vf = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|p-interface|l-interface|vlans = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|p-interface|l-interface|vlan = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|sriov-pfs = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pnf|p-interface|sriov-pf = /aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -route-table-references = /aai/v13/network/route-table-references -route-table-reference = /aai/v13/network/route-table-references/route-table-reference/{route-table-reference-id} -site-pair-sets = /aai/v13/network/site-pair-sets -site-pair-set = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id} -site-pair-set|routing-instances = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances -site-pair-set|routing-instance = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} -site-pair-set|routing-instance|site-pairs = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs -site-pair-set|routing-instance|site-pair = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} -site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service -site-pair-set|routing-instance|site-pair|class-of-service = /aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} -vces = /aai/v13/network/vces -vce = /aai/v13/network/vces/vce/{vnf-id} -vce|entitlements = /aai/v13/network/vces/vce/{vnf-id}/entitlements -vce|entitlement = /aai/v13/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vce|licenses = /aai/v13/network/vces/vce/{vnf-id}/licenses -vce|license = /aai/v13/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vce|port-groups = /aai/v13/network/vces/vce/{vnf-id}/port-groups -vce|port-group = /aai/v13/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} -vce|port-group|cvlan-tags = /aai/v13/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags -vce|port-group|cvlan-tag-entry = /aai/v13/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} -vnfcs = /aai/v13/network/vnfcs -vnfc = /aai/v13/network/vnfcs/vnfc/{vnfc-name} -vnfc|l3-interface-ipv4-address-list = /aai/v13/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vnfc|l3-interface-ipv6-address-list = /aai/v13/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pes = /aai/v13/network/vpls-pes -vpls-pe = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name} -vpls-pe|lag-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces -vpls-pe|lag-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} -vpls-pe|lag-interface|l-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -vpls-pe|lag-interface|l-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|lag-interface|l-interface|vlans = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|lag-interface|l-interface|vlan = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces -vpls-pe|p-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} -vpls-pe|p-interface|l-interfaces = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -vpls-pe|p-interface|l-interface = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|p-interface|l-interface|sriov-vf = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|p-interface|l-interface|vlans = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|p-interface|l-interface|vlan = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|sriov-pfs = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -vpls-pe|p-interface|sriov-pf = /aai/v13/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -vpn-bindings = /aai/v13/network/vpn-bindings -vpn-binding = /aai/v13/network/vpn-bindings/vpn-binding/{vpn-id} -vpn-binding|route-targets = /aai/v13/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets -vpn-binding|route-target = /aai/v13/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} -zones = /aai/v13/network/zones -zone = /aai/v13/network/zones/zone/{zone-id} -esr-thirdparty-sdnc = /aai/v13/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} -esr-thirdparty-sdnc-list = /aai/v13/external-system/esr-thirdparty-sdnc-list \ No newline at end of file +cloud-regions = /aai/v14/cloud-infrastructure/cloud-regions +cloud-region = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +cloud-region|availability-zones = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones +cloud-region|availability-zone = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} +cloud-region|dvs-switches = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +cloud-region|dvs-switch = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +cloud-region|flavors = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors +cloud-region|flavor = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} +cloud-region|flavor|hpa-capabilities = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities +cloud-region|flavor|hpa-capability = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|group-assignments = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments +cloud-region|group-assignment = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} +cloud-region|hpa-capabilities = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities +cloud-region|hpa-capability = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|hpa-capability|hpa-feature-attributes = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|images = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images +cloud-region|image = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} +cloud-region|image|metadata = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata +cloud-region|image|metadatum = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} +cloud-region|oam-networks = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks +cloud-region|oam-network = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +cloud-region|snapshots = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots +cloud-region|snapshot = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} +cloud-region|tenants = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants +cloud-region|tenant = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +cloud-region|tenant|vservers = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers +cloud-region|tenant|vserver = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +cloud-region|tenant|vserver|l-interfaces = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces +cloud-region|tenant|vserver|l-interface = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +cloud-region|tenant|vserver|l-interface|vlans = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans +cloud-region|tenant|vserver|l-interface|vlan = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|volumes = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes +cloud-region|tenant|vserver|volume = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} +cloud-region|vip-ipv4-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} +cloud-region|vip-ipv6-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} +cloud-region|volume-groups = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups +cloud-region|volume-group = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +complexes = /aai/v14/cloud-infrastructure/complexes +complex = /aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id} +complex|ctag-pools = /aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +complex|ctag-pool = /aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +network-profiles = /aai/v14/cloud-infrastructure/network-profiles +network-profile = /aai/v14/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} +operational-environments = /aai/v14/cloud-infrastructure/operational-environments +operational-environment = /aai/v14/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} +pservers = /aai/v14/cloud-infrastructure/pservers +pserver = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname} +pserver|lag-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces +pserver|lag-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} +pserver|lag-interface|l-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pserver|lag-interface|l-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface|sriov-vfs = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|lag-interface|l-interface|sriov-vf = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|lag-interface|l-interface|vlans = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|lag-interface|l-interface|vlan = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +pserver|p-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +pserver|p-interface|l-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces +pserver|p-interface|l-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface|sriov-vfs = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|p-interface|l-interface|sriov-vf = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|p-interface|l-interface|vlans = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|p-interface|l-interface|vlan = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|sriov-pfs = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pserver|p-interface|sriov-pf = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +virtual-data-centers = /aai/v14/cloud-infrastructure/virtual-data-centers +virtual-data-center = /aai/v14/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +connectors = /aai/v14/business/connectors +connector = /aai/v14/business/connectors/connector/{resource-instance-id} +connector|metadata = /aai/v14/business/connectors/connector/{resource-instance-id}/metadata +connector|metadatum = /aai/v14/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} +customers = /aai/v14/business/customers +customer = /aai/v14/business/customers/customer/{global-customer-id} +customer|service-subscriptions = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions +customer|service-subscription = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +customer|service-subscription|service-instances = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +customer|service-subscription|service-instance = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +customer|service-subscription|service-instance|allotted-resources = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources +customer|service-subscription|service-instance|allotted-resource = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} +customer|service-subscription|service-instance|metadata = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata +customer|service-subscription|service-instance|metadatum = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} +lines-of-business = /aai/v14/business/lines-of-business +line-of-business = /aai/v14/business/lines-of-business/line-of-business/{line-of-business-name} +owning-entities = /aai/v14/business/owning-entities +owning-entity = /aai/v14/business/owning-entities/owning-entity/{owning-entity-id} +platforms = /aai/v14/business/platforms +platform = /aai/v14/business/platforms/platform/{platform-name} +projects = /aai/v14/business/projects +project = /aai/v14/business/projects/project/{project-name} +models = /aai/v14/service-design-and-creation/models +model = /aai/v14/service-design-and-creation/models/model/{model-invariant-id} +model|model-vers = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers +model|model-ver = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} +model|model-ver|metadata = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata +model|model-ver|metadatum = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} +model|model-ver|model-elements = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements +model|model-ver|model-element = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} +model|model-ver|model-element|model-constraints = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints +model|model-ver|model-element|model-constraint = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} +model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets +model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} +named-queries = /aai/v14/service-design-and-creation/named-queries +named-query = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid} +named-query|named-query-elements = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements +named-query|named-query-element = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} +named-query|named-query-element|property-constraints = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints +named-query|named-query-element|property-constraint = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} +named-query|named-query-element|related-lookups = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups +named-query|named-query-element|related-lookup = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} +service-capabilities = /aai/v14/service-design-and-creation/service-capabilities +service-capability = /aai/v14/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} +services = /aai/v14/service-design-and-creation/services +service = /aai/v14/service-design-and-creation/services/service/{service-id} +vnf-images = /aai/v14/service-design-and-creation/vnf-images +vnf-image = /aai/v14/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} +configurations = /aai/v14/network/configurations +configuration = /aai/v14/network/configurations/configuration/{configuration-id} +configuration|evcs = /aai/v14/network/configurations/configuration/{configuration-id}/evcs +configuration|evc = /aai/v14/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} +configuration|forwarder-evcs = /aai/v14/network/configurations/configuration/{configuration-id}/forwarder-evcs +configuration|forwarder-evc = /aai/v14/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} +configuration|metadata = /aai/v14/network/configurations/configuration/{configuration-id}/metadata +configuration|metadatum = /aai/v14/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} +forwarding-paths = /aai/v14/network/forwarding-paths +forwarding-path = /aai/v14/network/forwarding-paths/forwarding-path/{forwarding-path-id} +forwarding-path|forwarders = /aai/v14/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders +forwarding-path|forwarder = /aai/v14/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} +generic-vnfs = /aai/v14/network/generic-vnfs +generic-vnf = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id} +generic-vnf|entitlements = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements +generic-vnf|entitlement = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +generic-vnf|l-interfaces = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces +generic-vnf|l-interface = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface|sriov-vfs = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|l-interface|sriov-vf = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|l-interface|vlans = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|l-interface|vlan = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interfaces = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces +generic-vnf|lag-interface = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +generic-vnf|lag-interface|l-interfaces = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +generic-vnf|lag-interface|l-interface = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|lag-interface|l-interface|vlans = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|lag-interface|l-interface|vlan = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|licenses = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/licenses +generic-vnf|license = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +generic-vnf|vf-modules = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules +generic-vnf|vf-module = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +instance-groups = /aai/v14/network/instance-groups +instance-group = /aai/v14/network/instance-groups/instance-group/{id} +ipsec-configurations = /aai/v14/network/ipsec-configurations +ipsec-configuration = /aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +ipsec-configuration|vig-servers = /aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers +ipsec-configuration|vig-server = /aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +l3-networks = /aai/v14/network/l3-networks +l3-network = /aai/v14/network/l3-networks/l3-network/{network-id} +l3-network|ctag-assignments = /aai/v14/network/l3-networks/l3-network/{network-id}/ctag-assignments +l3-network|ctag-assignment = /aai/v14/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} +l3-network|segmentation-assignments = /aai/v14/network/l3-networks/l3-network/{network-id}/segmentation-assignments +l3-network|segmentation-assignment = /aai/v14/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} +l3-network|subnets = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets +l3-network|subnet = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +l3-network|subnet|host-routes = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes +l3-network|subnet|host-route = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} +lag-links = /aai/v14/network/lag-links +lag-link = /aai/v14/network/lag-links/lag-link/{link-name} +logical-links = /aai/v14/network/logical-links +logical-link = /aai/v14/network/logical-links/logical-link/{link-name} +multicast-configurations = /aai/v14/network/multicast-configurations +multicast-configuration = /aai/v14/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +network-policies = /aai/v14/network/network-policies +network-policy = /aai/v14/network/network-policies/network-policy/{network-policy-id} +newvces = /aai/v14/network/newvces +newvce = /aai/v14/network/newvces/newvce/{vnf-id2} +newvce|l-interfaces = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces +newvce|l-interface = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} +newvce|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface|sriov-vfs = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs +newvce|l-interface|sriov-vf = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +newvce|l-interface|vlans = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans +newvce|l-interface|vlan = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +physical-links = /aai/v14/network/physical-links +physical-link = /aai/v14/network/physical-links/physical-link/{link-name} +pnfs = /aai/v14/network/pnfs +pnf = /aai/v14/network/pnfs/pnf/{pnf-name} +pnf|lag-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces +pnf|lag-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} +pnf|lag-interface|l-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pnf|lag-interface|l-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface|sriov-vfs = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|lag-interface|l-interface|sriov-vf = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|lag-interface|l-interface|vlans = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|lag-interface|l-interface|vlan = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces +pnf|p-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} +pnf|p-interface|l-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +pnf|p-interface|l-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface|sriov-vfs = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|p-interface|l-interface|sriov-vf = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|p-interface|l-interface|vlans = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|p-interface|l-interface|vlan = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|sriov-pfs = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pnf|p-interface|sriov-pf = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +route-table-references = /aai/v14/network/route-table-references +route-table-reference = /aai/v14/network/route-table-references/route-table-reference/{route-table-reference-id} +site-pair-sets = /aai/v14/network/site-pair-sets +site-pair-set = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id} +site-pair-set|routing-instances = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances +site-pair-set|routing-instance = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +site-pair-set|routing-instance|site-pairs = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs +site-pair-set|routing-instance|site-pair = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service +site-pair-set|routing-instance|site-pair|class-of-service = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} +vces = /aai/v14/network/vces +vce = /aai/v14/network/vces/vce/{vnf-id} +vce|entitlements = /aai/v14/network/vces/vce/{vnf-id}/entitlements +vce|entitlement = /aai/v14/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vce|licenses = /aai/v14/network/vces/vce/{vnf-id}/licenses +vce|license = /aai/v14/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vce|port-groups = /aai/v14/network/vces/vce/{vnf-id}/port-groups +vce|port-group = /aai/v14/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} +vce|port-group|cvlan-tags = /aai/v14/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags +vce|port-group|cvlan-tag-entry = /aai/v14/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} +vnfcs = /aai/v14/network/vnfcs +vnfc = /aai/v14/network/vnfcs/vnfc/{vnfc-name} +vnfc|l3-interface-ipv4-address-list = /aai/v14/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|l3-interface-ipv6-address-list = /aai/v14/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pes = /aai/v14/network/vpls-pes +vpls-pe = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name} +vpls-pe|lag-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces +vpls-pe|lag-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} +vpls-pe|lag-interface|l-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +vpls-pe|lag-interface|l-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|lag-interface|l-interface|vlans = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|lag-interface|l-interface|vlan = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces +vpls-pe|p-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} +vpls-pe|p-interface|l-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +vpls-pe|p-interface|l-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|p-interface|l-interface|sriov-vf = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|p-interface|l-interface|vlans = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|p-interface|l-interface|vlan = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|sriov-pfs = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +vpls-pe|p-interface|sriov-pf = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +vpn-bindings = /aai/v14/network/vpn-bindings +vpn-binding = /aai/v14/network/vpn-bindings/vpn-binding/{vpn-id} +vpn-binding|route-targets = /aai/v14/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets +vpn-binding|route-target = /aai/v14/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} +zones = /aai/v14/network/zones +zone = /aai/v14/network/zones/zone/{zone-id} +esr-thirdparty-sdnc = /aai/v14/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} +esr-thirdparty-sdnc-list = /aai/v14/external-system/esr-thirdparty-sdnc-list \ No newline at end of file diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index b11254d18..f2d7ed409 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -3,7 +3,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"> - + diff --git a/aai-service/provider/src/main/resources/aai_schema_v13.xsd b/aai-service/provider/src/main/resources/aai_schema_v13.xsd deleted file mode 100755 index 6b630a22c..000000000 --- a/aai-service/provider/src/main/resources/aai_schema_v13.xsd +++ /dev/null @@ -1,8014 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="cvlan-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") - - - - - - - @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the volume group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") - - - - - - - @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface",container="l-interfaces") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC address for the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Readable name of tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Flavor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of CPUs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of memory") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") - - - - - - - @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group description - description of the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Snapshot name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Image name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of availability zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network profiles") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="inventory status") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",container="pservers",namespace="cloud-infrastructure") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="PTNII name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of cpus") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="alternative pserver name") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose of pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Tenant Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Workload Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vendor of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="version of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="url used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="username used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service port of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="domain info for authentication.") - - - - - - - @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") - - - - - - - @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the status of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for external system.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1") - - - - - - - @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1") - - - - - - - @org.onap.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2") - - - - - - - @org.onap.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role",dependentOn="service-instance",container="allotted-resources") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing the service role.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="create time of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="last update of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="short description for service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") - - - - - - - @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service instances") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id, owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id, owning-entity-name",container="owning-entities",namespace="business") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") - - - - - - - @org.onap.aai.annotations.Metadata(description="Owning entity name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of platforms") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of projects") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description of the service") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service version") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") - - - - - - - @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Distribution Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") - - - - - - - @org.onap.aai.annotations.Metadata(description="For example, static or BGP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="class-of-service of probe") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="probe within a set") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="rpm owner") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of route target information") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN Name") - - - - - - - @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") - - - - - - - @org.onap.aai.annotations.Metadata(description="region of customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="id for this customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") - - - - - - - @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") - - - - - - - @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") - - - - - - - @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") - - - - - - - @org.onap.aai.annotations.Metadata(description="subnet prefix") - - - - - - - @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="gateway ip address") - - - - - - - @org.onap.aai.annotations.Metadata(description="network start address") - - - - - - - @org.onap.aai.annotations.Metadata(description="cidr mask") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="sequence of the subnet") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="network role instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vf-module") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf instance id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf discriptor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 Loopback address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 management address") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of network in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="as-number of the VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VNFs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="source of name2") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of pnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") - - - - - - - @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number of the device") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit it") - - - - - - - @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") - - - - - - - @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") - - - - - - - @org.onap.aai.annotations.Metadata(description="can be 1 or 2") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") - - - - - - - @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="enable PFS or not") - - - - - - - @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") - - - - - - - @org.onap.aai.annotations.Metadata(description="The time between DPD probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the instance group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="English name associated with the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a zone.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal VLAN.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") - - - - - - - @org.onap.aai.annotations.Metadata(description="Commited Information Rate") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diversity Group ID") - - - - - - - @org.onap.aai.annotations.Metadata(description="formerly Performance Group") - - - - - - - @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Identifies ESP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") - - - - - - - @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of configurations") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") - - - - - - - @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the FP") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the self link for this FP") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - diff --git a/aai-service/provider/src/main/resources/aai_schema_v14.xsd b/aai-service/provider/src/main/resources/aai_schema_v14.xsd new file mode 100644 index 000000000..c31850d84 --- /dev/null +++ b/aai-service/provider/src/main/resources/aai_schema_v14.xsd @@ -0,0 +1,9754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of nos") + + + + + + + @org.onap.aai.annotations.Metadata(description="uCPE vendor") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag-cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connection points.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN inner id") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN outer id") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connectivities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of site-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the class of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the version of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of devices") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-service/provider/src/main/resources/aaiclient.properties b/aai-service/provider/src/main/resources/aaiclient.properties index c84d05d87..3d803c108 100755 --- a/aai-service/provider/src/main/resources/aaiclient.properties +++ b/aai-service/provider/src/main/resources/aaiclient.properties @@ -37,41 +37,41 @@ org.onap.ccsdk.sli.adaptors.aai.application=CCSDK # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.onap.org:8443 connection.timeout=60000 read.timeout=60000 # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 # named query org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v14/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v14/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v14/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java index 5be8a73e0..65160b377 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -51,7 +51,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.openecomp.aai.inventory.v13.*; +import org.onap.aai.inventory.v14.*; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; @@ -76,7 +76,7 @@ public class AAIServiceTest { // @Test public void existsGetPserverByCallBackUrl_shouldReturnSuccess() throws MalformedURLException, Exception { - String key = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String key = "https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; String fileLocation = "json/pserverJson.txt"; SvcLogicContext ctx = new SvcLogicContext(); setConnMock(); @@ -93,7 +93,7 @@ public class AAIServiceTest { // @Test public void existsGetPserverByCallBackUrl_throwsExceptionAndReturnsFailure() throws MalformedURLException, Exception { - String key = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String key = "https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; String fileLocation = "json/pserverJson.txt"; SvcLogicContext ctx = new SvcLogicContext(); setConnMock(); @@ -113,7 +113,7 @@ public class AAIServiceTest { // @Test public void pserverDataChangeRequestData_shouldSucceed() throws Exception { String fileLocation = "json/pserverJson.txt"; - String url = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String url = "https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; setConnMock(); when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); @@ -128,7 +128,7 @@ public class AAIServiceTest { // @Test public void pserverDataChangeRequestData_shouldReturnNullFor404() throws Exception { String fileLocation = "json/pserverJson.txt"; - String url = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String url = "https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; setConnMock(); when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); @@ -143,7 +143,7 @@ public class AAIServiceTest { @Test(expected = AAIServiceException.class) public void dataChangeRequestData_throwsAAIServiceException() throws Exception { String fileLocation = "json/pserverJson.txt"; - String url = "https://aai.api.simpledemo.openecomp.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; + String url = "https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; setConnMock(); when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index 0e616d576..9e26a26cb 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -63,7 +63,7 @@ import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v13.GenericVnf; +import org.onap.aai.inventory.v14.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.annotation.AnnotationUtils; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java index eaedf66f6..b7238564b 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -38,7 +38,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.openecomp.aai.inventory.v13.LInterface; +import org.onap.aai.inventory.v14.LInterface; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java index 8ed704d7a..90b3b5fa5 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -49,7 +49,7 @@ import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; import org.onap.ccsdk.sli.adaptors.aai.AAIService; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.openecomp.aai.inventory.v13.GenericVnf; +import org.onap.aai.inventory.v14.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java index 21fc86d12..d3abd675f 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java @@ -10,8 +10,8 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.openecomp.aai.inventory.v13.RelationshipList; -import org.openecomp.aai.inventory.v13.Vlans; +import org.onap.aai.inventory.v14.RelationshipList; +import org.onap.aai.inventory.v14.Vlans; public class SubInterfaceTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java index 2a115d708..b3b7eed93 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java @@ -9,16 +9,16 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.openecomp.aai.inventory.v13.CloudRegion; -import org.openecomp.aai.inventory.v13.GenericVnf; -import org.openecomp.aai.inventory.v13.L3Network; -import org.openecomp.aai.inventory.v13.LogicalLink; -import org.openecomp.aai.inventory.v13.PInterface; -import org.openecomp.aai.inventory.v13.Pnf; -import org.openecomp.aai.inventory.v13.ServiceInstance; -import org.openecomp.aai.inventory.v13.Tenant; -import org.openecomp.aai.inventory.v13.Vnf; -import org.openecomp.aai.inventory.v13.Vserver; +import org.onap.aai.inventory.v14.CloudRegion; +import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v14.L3Network; +import org.onap.aai.inventory.v14.LogicalLink; +import org.onap.aai.inventory.v14.PInterface; +import org.onap.aai.inventory.v14.Pnf; +import org.onap.aai.inventory.v14.ServiceInstance; +import org.onap.aai.inventory.v14.Tenant; +import org.onap.aai.inventory.v14.Vnf; +import org.onap.aai.inventory.v14.Vserver; public class InstanceFilterTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java index 576778bb5..3c142606d 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java @@ -10,19 +10,19 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.openecomp.aai.inventory.v13.CloudRegion; -import org.openecomp.aai.inventory.v13.Complex; -import org.openecomp.aai.inventory.v13.Configuration; -import org.openecomp.aai.inventory.v13.GenericVnf; -import org.openecomp.aai.inventory.v13.L3InterfaceIpv4AddressList; -import org.openecomp.aai.inventory.v13.L3InterfaceIpv6AddressList; -import org.openecomp.aai.inventory.v13.L3Network; -import org.openecomp.aai.inventory.v13.LInterface; -//import org.openecomp.aai.inventory.v13.OwningEntity; -import org.openecomp.aai.inventory.v13.Pserver; -import org.openecomp.aai.inventory.v13.ServiceInstance; -import org.openecomp.aai.inventory.v13.Vnfc; -import org.openecomp.aai.inventory.v13.Vserver; +import org.onap.aai.inventory.v14.CloudRegion; +import org.onap.aai.inventory.v14.Complex; +import org.onap.aai.inventory.v14.Configuration; +import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v14.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v14.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v14.L3Network; +import org.onap.aai.inventory.v14.LInterface; +//import org.onap.aai.inventory.v14.OwningEntity; +import org.onap.aai.inventory.v14.Pserver; +import org.onap.aai.inventory.v14.ServiceInstance; +import org.onap.aai.inventory.v14.Vnfc; +import org.onap.aai.inventory.v14.Vserver; public class ResultTest { diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index c84d05d87..3d803c108 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -37,41 +37,41 @@ org.onap.ccsdk.sli.adaptors.aai.application=CCSDK # # Configuration file for A&AI Client # -org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.openecomp.org:8443 +org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.api.simpledemo.onap.org:8443 connection.timeout=60000 read.timeout=60000 # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 # named query org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid} -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v14/service-design-and-creation/vnf-images +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v14/service-design-and-creation/vnf-images/vnf-image/{att-uuid} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v14/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting -- cgit 1.2.3-korg From 62f2bacc7680182412968f3cbb7ab7acd2f2eef1 Mon Sep 17 00:00:00 2001 From: Rich Tabedzki Date: Wed, 6 Mar 2019 13:47:05 -0500 Subject: Deprecated named-query from AAIService Changes made: * Removed named-query feature from AAIService codebase * Removed any additional unused classes * cleaned up aaiclient.properties * Removed related junit tests Change-Id: Ic9fffbff0eaa85a80f1aa0781c5e675e4bc44602 Issue-ID: CCSDK-1108 Signed-off-by: Rich Tabedzki --- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 128 +----------- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 2 - .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 6 - .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 2 - .../ccsdk/sli/adaptors/aai/NamedQueryRequest.java | 215 --------------------- .../ccsdk/sli/adaptors/aai/query/NamedQuery.java | 76 -------- .../sli/adaptors/aai/query/NamedQueryData.java | 102 ---------- .../sli/adaptors/aai/query/QueryParameters.java | 76 -------- .../src/main/resources/aaiclient.properties | 9 - .../adaptors/aai/AutoGeneratedRegressionTest.java | 34 +--- .../sli/adaptors/aai/NamedQueryRequestTest.java | 88 --------- .../sli/adaptors/aai/query/NamedQueryDataTest.java | 60 ------ .../sli/adaptors/aai/query/NamedQueryTest.java | 51 ----- .../adaptors/aai/query/QueryParametersTest.java | 53 ----- .../src/test/resources/aaiclient.properties | 5 - 15 files changed, 2 insertions(+), 905 deletions(-) delete mode 100755 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java delete mode 100644 aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java delete mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java delete mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java delete mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java delete mode 100644 aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index 3fa954951..11f4f653a 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -55,11 +55,6 @@ import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.StringUtils; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; -import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilter; -import org.onap.ccsdk.sli.adaptors.aai.query.InstanceFilters; -import org.onap.ccsdk.sli.adaptors.aai.query.NamedQuery; -import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; -import org.onap.ccsdk.sli.adaptors.aai.query.QueryParameters; import org.onap.ccsdk.sli.adaptors.aai.query.Result; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; @@ -136,9 +131,6 @@ public abstract class AAIDeclarations implements AAIClient { //Service public static final String SERVICE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.service"; - // P-Interfaces - public static final String P_INTERFACE_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface"; - // site-pair-sets public static final String SITE_PAIR_SET_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set"; @@ -151,7 +143,7 @@ public abstract class AAIDeclarations implements AAIClient { protected abstract Logger getLogger(); public abstract AAIExecutorInterface getExecutor(); - + private static final String RELATIONSHIP_DATA= "Retrofitting relationship data: "; @@ -797,8 +789,6 @@ public abstract class AAIDeclarations implements AAIClient { if(!tmpParams.isEmpty()) { params.putAll(tmpParams); } - if("named-query".equals(resource)) - request.setRequestObject(extractNamedQueryDataFromQueryPrefix(nameValues, params)); } String rv = getExecutor().get(request); @@ -860,14 +850,6 @@ public abstract class AAIDeclarations implements AAIClient { } } - if("named-query".equals(resource)) { - InventoryResponseItems rd = InventoryResponseItems.class.cast(response); - List iRIlist = rd.getInventoryResponseItem(); - if(iRIlist == null || iRIlist.isEmpty()) { - return QueryStatus.NOT_FOUND; - } - } - if("nodes-query".equals(resource)) { SearchResults rd = SearchResults.class.cast(response); List rdList = rd.getResultData(); @@ -2016,114 +1998,6 @@ public abstract class AAIDeclarations implements AAIClient { return prefixMap; } - /** - */ - protected NamedQueryData extractNamedQueryDataFromQueryPrefix(HashMap nameValues, Map parms) { - if(parms.isEmpty()) { - return null; - } - - NamedQueryData data = new NamedQueryData(); - - // query parameters - if(data.getQueryParameters() == null) { - data.setQueryParameters(new QueryParameters()); - } - String namedQueryUuid = nameValues.get("named-query-uuid".replaceAll("-", "_")); - if(namedQueryUuid == null) { - namedQueryUuid = parms.get("query-parameters.named-query.named-query-uuid"); - } - NamedQuery namedQuery = new NamedQuery(); - namedQuery.setNamedQueryUuid(namedQueryUuid); - data.getQueryParameters().setNamedQuery(namedQuery); - - // instance filters - if(data.getInstanceFilters() == null) { - data.setInstanceFilters(new InstanceFilters()); - } - - - String quantity = parms.get("instance-filters.instance-filter_length"); - if(quantity != null && StringUtils.isNumeric(quantity)) { - int max = Integer.parseInt(quantity); - for(int i = 0; i < max; i++) { - String keyPattern = String.format("instance-filters.instance-filter[%d].", i); - Set keys = parms.keySet(); - for(String key: keys) { - if(key.startsWith(keyPattern)){ - String value = parms.get(key); - String remainder = key.substring(keyPattern.length()); - String[] split = remainder.split("\\."); - getLogger().debug(String.format("%s", remainder)); - if("logical-link".equals(split[0])) { - InstanceFilter insf = null; - if(data.getInstanceFilters().getInstanceFilter().isEmpty()) { - insf = new InstanceFilter(); - data.getInstanceFilters().getInstanceFilter().add(insf); - } else { - insf = data.getInstanceFilters().getInstanceFilter().get(0); - } - LogicalLink logicalLink = insf.getLogicalLink(); - if(logicalLink == null) { - logicalLink = new LogicalLink(); - insf.setLogicalLink(logicalLink); - } - - switch(split[1]) { - case "link-name": - logicalLink.setLinkName(value); - break; - case "link-type": - logicalLink.setLinkType(value); - break; - case "operational-state": - logicalLink.setOperationalStatus(value); - break; - } - - } else if("pnf".equals(split[0])) { - Pnf pnf = new Pnf(); - pnf.setPnfName(value); - - InstanceFilter insf = new InstanceFilter(); - insf.setPnf(pnf); - data.getInstanceFilters().getInstanceFilter().add(insf); - - } else if("service-instance".equals(split[0])) { - ServiceInstance serviceInstance = new ServiceInstance(); - serviceInstance.setServiceInstanceId(value); - - InstanceFilter insf = new InstanceFilter(); - insf.setServiceInstance(serviceInstance); - data.getInstanceFilters().getInstanceFilter().add(insf); - - } else if("l3-network".equals(split[0])) { - L3Network l3Network = new L3Network(); - if("network-role".equals(split[1])) { - l3Network.setNetworkRole(value); - } - - InstanceFilter insf = new InstanceFilter(); - insf.setL3Network(l3Network); - data.getInstanceFilters().getInstanceFilter().add(insf); - } else if("generic-vnf".equals(split[0])) { - GenericVnf vnf = new GenericVnf(); - if("vnf-id".equals(split[1])) { - vnf.setVnfId(value); - } - - InstanceFilter insf = new InstanceFilter(); - insf.setGenericVnf(vnf); - data.getInstanceFilters().getInstanceFilter().add(insf); - } - } - } - } - } - - return data; - } - public abstract T getResource(String key, Class type) throws AAIServiceException ; protected abstract boolean deleteList(URL url, String caller) throws AAIServiceException; } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 04312fd7c..0edd09df9 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -117,8 +117,6 @@ public abstract class AAIRequest { switch(resoource){ case "generic-query": return new GenericQueryRequest(); - case "named-query": - return new NamedQueryRequest(); case "nodes-query": return new NodesQueryRequest(); case "custom-query": diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index 2411d292e..d315f64b4 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -219,8 +219,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe svc_inst_query_path = props.getProperty(SVC_INST_QRY_PATH); props.getProperty(PARAM_SERVICE_TYPE, "service-type"); - props.getProperty(P_INTERFACE_PATH); - props.getProperty(VNF_IMAGE_QUERY_PATH); ubb_notify_path = props.getProperty(UBB_NOTIFY_PATH); @@ -1358,7 +1356,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe case "custom-query": case "formatted-query": case "generic-query": - case "named-query": case "nodes-query": case "linterface": case "l2-bridge-sbg": @@ -1387,7 +1384,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe case "custom-query": case "formatted-query": case "generic-query": - case "named-query": case "nodes-query": case "linterface": case "l2-bridge-sbg": @@ -1416,7 +1412,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe case "custom-query": case "formatted-query": case "generic-query": - case "named-query": case "nodes-query": case "linterface": case "l2-bridge-sbg": @@ -1445,7 +1440,6 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe case "custom-query": case "formatted-query": case "generic-query": - case "named-query": case "nodes-query": case "linterface": case "l2-bridge-sbg": diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index 3bd6ac496..e773da52b 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -330,7 +330,6 @@ public class AAIServiceUtils { case "custom-query": case "formatted-query": case "generic-query": - case "named-query": case "nodes-query": case "linterface": case "l2-bridge-sbg": @@ -365,7 +364,6 @@ public class AAIServiceUtils { case "custom-query": case "formatted-query": case "generic-query": - case "named-query": case "nodes-query": case "linterface": case "l2-bridge-sbg": diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java deleted file mode 100755 index d6df6286a..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequest.java +++ /dev/null @@ -1,215 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (C) 2018 IBM. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -/** - * @author Rich Tabedzki - * - */ -package org.onap.ccsdk.sli.adaptors.aai; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v14.InventoryResponseItems; - -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.AnnotationIntrospector; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.databind.type.TypeFactory; -import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; - -public class NamedQueryRequest extends AAIRequest { - - public static final String NAMED_SEARCH_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.named"; - - private final String named_search_path; - - public static final String NAMED_QUERY_UUID = "named-query-uuid"; - public static final String PREFIX = "prefix"; - - - public NamedQueryRequest() { - named_search_path = configProperties.getProperty(NAMED_SEARCH_PATH); - } - - @Override - public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException { - - String request_url = targetUri+named_search_path; - - request_url = processPathData(request_url, requestProperties); - - if(resourceVersion != null) { - request_url = request_url +"?resource-version="+resourceVersion; - } - URL http_req_url = new URL(request_url); - - aaiService.LOGwriteFirstTrace(method, http_req_url.toString()); - - return http_req_url; - } - - @Override - public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException { - return getRequestUrl(method, null); - } - - - @Override - public String toJSONString() { - ObjectMapper mapper = AAIService.getObjectMapper(); - mapper.setSerializationInclusion(Include.NON_NULL); - mapper.setSerializationInclusion(Include.NON_EMPTY); - mapper.setSerializationInclusion(Include.NON_DEFAULT); - - AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); - AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); - mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(introspector, secondary)); - mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); - - AAIDatum tenant = (AAIDatum)requestDatum; - String json_text = null; - try { - ObjectNode node = mapper.valueToTree(tenant); - Iterator it = node.elements(); - while(it.hasNext()){ - JsonNode jn = it.next(); - JsonNode child = jn.get("instance-filter"); - if(child != null) { - child = child.get(0); - if(child.has("l3-network")) { - JsonNode innerChild = child.get("l3-network"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList<>(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("is-")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } else if(child.has("pnf")) { - JsonNode innerChild = child.get("pnf"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList<>(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("in-maint")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } else if(child.has("generic-vnf")) { - JsonNode innerChild = child.get("generic-vnf"); - if(innerChild != null) { - if(innerChild instanceof ObjectNode) { - ObjectNode on = ObjectNode.class.cast(innerChild); - List namesToDelete = new ArrayList<>(); - Iterator names = on.fieldNames(); - while(names.hasNext()) { - String name = names.next(); - if(name != null && name.startsWith("is-")) { - namesToDelete.add(name); - } else if(name != null && name.startsWith("in-maint")) { - namesToDelete.add(name); - } - } - for(String nameToDelete : namesToDelete) { - on.remove(nameToDelete); - } - } - } - } - } - } - json_text = node.toString(); - if(json_text == null) - json_text = mapper.writeValueAsString(tenant); - } catch (JsonProcessingException exc) { - handleException(this, exc); - return null; - } - return json_text; - } - - - @Override - public String[] getArgsList() { - String[] args = {NAMED_QUERY_UUID, PREFIX}; - return args; - } - - - @Override - public Class getModelClass() { - return InventoryResponseItems.class; - } - - - public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException { - - - String encoded_vnf ; - String key = NAMED_QUERY_UUID; - - if(requestProperties.containsKey(key)) { - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{named-query-uuid}", encoded_vnf) ; - aaiService.LOGwriteDateTrace(NAMED_QUERY_UUID, requestProperties.getProperty(key)); - } - - key = PREFIX; - - if(requestProperties.containsKey(key)) { - encoded_vnf = encodeQuery(requestProperties.getProperty(key)); - request_url = request_url.replace("{prefix}", encoded_vnf) ; - aaiService.LOGwriteDateTrace(PREFIX, requestProperties.getProperty(key)); - } - - return request_url; - } -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java deleted file mode 100644 index 170fa78a0..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQuery.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "named-query-uuid" -}) -public class NamedQuery { - - @JsonProperty("named-query-uuid") - private String namedQueryUuid; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The namedQueryUuid - */ - @JsonProperty("named-query-uuid") - public String getNamedQueryUuid() { - return namedQueryUuid; - } - - /** - * - * @param namedQueryUuid - * The named-query-uuid - */ - @JsonProperty("named-query-uuid") - public void setNamedQueryUuid(String namedQueryUuid) { - this.namedQueryUuid = namedQueryUuid; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java deleted file mode 100644 index f71702461..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryData.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; - -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "query-parameters", - "instance-filters" -}) -public class NamedQueryData implements AAIDatum { - - @JsonProperty("query-parameters") - private QueryParameters queryParameters; - @JsonProperty("instance-filters") - private InstanceFilters instanceFilters; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The queryParameters - */ - @JsonProperty("query-parameters") - public QueryParameters getQueryParameters() { - return queryParameters; - } - - /** - * - * @param queryParameters - * The query-parameters - */ - @JsonProperty("query-parameters") - public void setQueryParameters(QueryParameters queryParameters) { - this.queryParameters = queryParameters; - } - - /** - * - * @return - * The instanceFilters - */ - @JsonProperty("instance-filters") - public InstanceFilters getInstanceFilters() { - return instanceFilters; - } - - /** - * - * @param instanceFilters - * The instance-filters - */ - @JsonProperty("instance-filters") - public void setInstanceFilters(InstanceFilters instanceFilters) { - this.instanceFilters = instanceFilters; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java deleted file mode 100644 index ba37900ae..000000000 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParameters.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * openECOMP : SDN-C - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.adaptors.aai.query; - -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@Generated("org.jsonschema2pojo") -@JsonPropertyOrder({ - "named-query" -}) -public class QueryParameters { - - @JsonProperty("named-query") - private NamedQuery namedQuery; - @JsonIgnore - private Map additionalProperties = new HashMap(); - - /** - * - * @return - * The namedQuery - */ - @JsonProperty("named-query") - public NamedQuery getNamedQuery() { - return namedQuery; - } - - /** - * - * @param namedQuery - * The named-query - */ - @JsonProperty("named-query") - public void setNamedQuery(NamedQuery namedQuery) { - this.namedQuery = namedQuery; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - -} diff --git a/aai-service/provider/src/main/resources/aaiclient.properties b/aai-service/provider/src/main/resources/aaiclient.properties index d23078d8f..51a37772f 100755 --- a/aai-service/provider/src/main/resources/aaiclient.properties +++ b/aai-service/provider/src/main/resources/aaiclient.properties @@ -49,9 +49,6 @@ org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 -# named query -org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query - #update org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update @@ -60,13 +57,7 @@ org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information -# P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} - # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v14/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v14/service-design-and-creation/vnf-images/vnf-image/{att-uuid} org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index 9e26a26cb..f39542ad0 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -60,7 +60,6 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.ccsdk.sli.adaptors.aai.query.NamedQueryData; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; import org.onap.aai.inventory.v14.GenericVnf; @@ -724,38 +723,7 @@ public class AutoGeneratedRegressionTest { } } - @Test - public void R1702NamedQueryRequest() - { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - try - { - SvcLogicContext ctx = new SvcLogicContext(); - URL resource = this.getClass().getResource("/json/nquery2.json"); - - LOG.info("Resource is " + resource.getFile()); - File requestFile = new File(resource.getFile()); - if(!requestFile.exists()) { - fail("Test file does not exist"); - } - ObjectMapper mapper = AAIService.getObjectMapper(); - NamedQueryData request = mapper.readValue(requestFile, NamedQueryData.class); - Map map = mapper.convertValue(request, Map.class); - - ctx.setAttribute("namedQueryData.instance-filters.instance-filter[0].l3-network.network-role", "example-network-role-val-432223"); - ctx.setAttribute("namedQueryData.instance-filters.instance-filter_length", "1"); - QueryStatus resp = client.query("named-query", false, null, "named-query-uuid = '4f448e43-339f-4c1c-85f6-896c444e25ca' AND prefix = 'namedQueryData' ", "zdzich", null, ctx); - - LOG.info("AAIResponse: " + resp.toString()); - } - catch (Throwable e) - { - assert(true); - } - } - - - static class MySchemaOutputResolver extends SchemaOutputResolver { + static class MySchemaOutputResolver extends SchemaOutputResolver { public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { File file = new File(suggestedFileName); diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java deleted file mode 100644 index c28a1ed0f..000000000 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NamedQueryRequestTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.onap.ccsdk.sli.adaptors.aai; - -import static org.junit.Assert.*; - -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.net.URL; - -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class NamedQueryRequestTest { - - private static final Logger LOG = LoggerFactory.getLogger(NamedQueryRequestTest.class); - - private static NamedQueryRequest request; - - @BeforeClass - public static void setUp() throws Exception { - - request = new NamedQueryRequest(); - LOG.info("\nEchoRequestTest.setUp\n"); - } - - @AfterClass - public static void tearDown() throws Exception { - request = null; - LOG.info("----------------------- EchoRequestTest.tearDown -----------------------"); - } - - @Test - public void runGetRequestUrlTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - URL url; - try { - url = request.getRequestUrl("GET", null); - assertNotNull(url); - } catch (UnsupportedEncodingException | MalformedURLException exc) { - LOG.error("Failed test", exc); - } - - } - - @Test - public void runToJSONStringTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try { - String json = request.toJSONString(); - assertNotNull(json); - } catch (Exception exc) { - LOG.error("Failed test", exc); - } - - } - - @Test - public void runGetArgsListTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try { - String[] args = request.getArgsList(); - assertNotNull(args); - } catch (Exception exc) { - LOG.error("Failed test", exc); - } - - } - - @Test - public void runGetModelTest() { - LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); - - try { - Class clazz = request.getModelClass(); - assertNotNull(clazz); - } catch (Exception exc) { - LOG.error("Failed test", exc); - } - - } -} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java deleted file mode 100644 index 9f01e84a9..000000000 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryDataTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.onap.ccsdk.sli.adaptors.aai.query; - -import static org.junit.Assert.*; -import static org.mockito.Mockito.mock; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class NamedQueryDataTest { - - NamedQueryData _nqdInstance; - protected QueryParameters _queryParameters; - protected InstanceFilters _instanceFilters; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _nqdInstance = new NamedQueryData(); - _queryParameters = mock(QueryParameters.class); - _instanceFilters = mock(InstanceFilters.class); - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } - - @After - public void tearDown() throws Exception { - _nqdInstance = null; - _queryParameters = null; - _instanceFilters = null; - _additionalProperties = null; - } - - @Test - public void testSetQueryParameters() { - _nqdInstance.setQueryParameters(_queryParameters); - assertEquals(_nqdInstance.getQueryParameters(), _queryParameters); - } - - @Test - public void testSetInstanceFilters() { - _nqdInstance.setInstanceFilters(_instanceFilters); - assertEquals(_nqdInstance.getInstanceFilters(), _instanceFilters); - } - - @Test - public void testSetAdditionalProperty() { - _nqdInstance.setAdditionalProperty("prop1", "propvalue1"); - _nqdInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_nqdInstance.getAdditionalProperties(), _additionalProperties); - } - -} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java deleted file mode 100644 index 02a239a22..000000000 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/NamedQueryTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.onap.ccsdk.sli.adaptors.aai.query; - -import static org.junit.Assert.*; -import static org.mockito.Mockito.mock; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class NamedQueryTest { - - NamedQuery _nqInstance; - protected String _namedQueryUuid; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _nqInstance = new NamedQuery(); - _namedQueryUuid = "uuid"; - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } - - @After - public void tearDown() throws Exception { - _nqInstance = null; - _namedQueryUuid = null; - _additionalProperties = null; - } - - @Test - public void testSetNamedQueryUuid() { - _nqInstance.setNamedQueryUuid(_namedQueryUuid); - assertEquals(_nqInstance.getNamedQueryUuid(), _namedQueryUuid); - } - - @Test - public void testSetAdditionalProperty() { - _nqInstance.setAdditionalProperty("prop1", "propvalue1"); - _nqInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_nqInstance.getAdditionalProperties(), _additionalProperties); - } - -} diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java deleted file mode 100644 index d9a578903..000000000 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/QueryParametersTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.onap.ccsdk.sli.adaptors.aai.query; - -import static org.junit.Assert.*; -import static org.mockito.Mockito.mock; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.onap.ccsdk.sli.adaptors.aai.data.ErrorResponse; -import org.onap.ccsdk.sli.adaptors.aai.data.RequestError; - -public class QueryParametersTest { - - QueryParameters _qpInstance; - protected NamedQuery _namedQuery; - protected Map _additionalProperties; - - @Before - public void setUp() throws Exception { - _qpInstance = new QueryParameters(); - _namedQuery = mock(NamedQuery.class); - _additionalProperties = new HashMap() {{ - put("prop1", "propvalue1"); - put("prop2", "propvalue2"); - }}; - } - - @After - public void tearDown() throws Exception { - _qpInstance = null; - _namedQuery = null; - _additionalProperties = null; - } - - @Test - public void testSetNamedQuery() { - _qpInstance.setNamedQuery(_namedQuery); - assertEquals(_qpInstance.getNamedQuery(), _namedQuery); - } - - @Test - public void testSetAdditionalProperty() { - _qpInstance.setAdditionalProperty("prop1", "propvalue1"); - _qpInstance.setAdditionalProperty("prop2", "propvalue2"); - assertEquals(_qpInstance.getAdditionalProperties(), _additionalProperties); - } - -} diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index d23078d8f..e994d66fa 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -49,9 +49,6 @@ org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 -# named query -org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query - #update org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update @@ -65,8 +62,6 @@ org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastr org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v14/service-design-and-creation/vnf-images -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v14/service-design-and-creation/vnf-images/vnf-image/{att-uuid} org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -- cgit 1.2.3-korg From ce3c0304bf5907e14c32375438a1a955c27c1232 Mon Sep 17 00:00:00 2001 From: "prakash.e" Date: Wed, 15 May 2019 18:08:52 +0530 Subject: Updating aai adapter to v16 model Updated AAI XSD model to v14 to make new schema's available to SDNC. Change-Id: I87030523747c21fcdb2f58ab9cab60124b7f9e25 Issue-ID: SDNC-764 Signed-off-by: Prakash.E --- aai-service/provider/pom.xml | 4 +- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 2 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 40 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 4 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 10 +- .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 6 +- .../sli/adaptors/aai/GenericQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequest.java | 4 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 2 +- .../sli/adaptors/aai/RelationshipListRequest.java | 2 +- .../sli/adaptors/aai/RelationshipRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/data/SubInterface.java | 4 +- .../sli/adaptors/aai/query/InstanceFilter.java | 20 +- .../onap/ccsdk/sli/adaptors/aai/query/Result.java | 26 +- .../src/main/resources/aai-path.properties | 630 +- .../src/main/resources/aai-schema-bindings.xjb | 2 +- .../provider/src/main/resources/aai_schema_v14.xsd | 9779 -------------------- .../provider/src/main/resources/aai_schema_v16.xsd | 9779 ++++++++++++++++++++ .../src/main/resources/aaiclient.properties | 20 +- .../ccsdk/sli/adaptors/aai/AAIServiceTest.java | 2 +- .../adaptors/aai/AutoGeneratedRegressionTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfTest.java | 2 +- .../sli/adaptors/aai/data/SubInterfaceTest.java | 4 +- .../sli/adaptors/aai/query/InstanceFilterTest.java | 20 +- .../ccsdk/sli/adaptors/aai/query/ResultTest.java | 26 +- .../src/test/resources/aaiclient.properties | 24 +- 27 files changed, 10211 insertions(+), 10209 deletions(-) delete mode 100644 aai-service/provider/src/main/resources/aai_schema_v14.xsd create mode 100644 aai-service/provider/src/main/resources/aai_schema_v16.xsd (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 941dc13fb..7b5a80509 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -145,13 +145,13 @@ ${project.basedir}/src/main/resources - aai_schema_v14.xsd + aai_schema_v16.xsd aai-schema-bindings.xjb ${project.build.directory}/generated-sources/main/java - org.onap.aai.inventory.v14 + org.onap.aai.inventory.v16 true -Xannotate diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 752bd9f3b..4b4c439a9 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -30,7 +30,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Map; -import org.onap.aai.inventory.v14.*; +import org.onap.aai.inventory.v16.*; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index 11f4f653a..2aa5c5444 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -58,25 +58,25 @@ import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; import org.onap.ccsdk.sli.adaptors.aai.query.Result; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.aai.inventory.v14.GenericVnf; -import org.onap.aai.inventory.v14.Image; -import org.onap.aai.inventory.v14.InventoryResponseItem; -import org.onap.aai.inventory.v14.InventoryResponseItems; -import org.onap.aai.inventory.v14.L3Network; -import org.onap.aai.inventory.v14.LogicalLink; -import org.onap.aai.inventory.v14.Metadata; -import org.onap.aai.inventory.v14.Metadatum; -import org.onap.aai.inventory.v14.Pnf; -import org.onap.aai.inventory.v14.RelatedToProperty; -import org.onap.aai.inventory.v14.Relationship; -import org.onap.aai.inventory.v14.RelationshipData; -import org.onap.aai.inventory.v14.RelationshipList; -import org.onap.aai.inventory.v14.ResultData; -import org.onap.aai.inventory.v14.SearchResults; -import org.onap.aai.inventory.v14.ServiceInstance; -import org.onap.aai.inventory.v14.Vlan; -import org.onap.aai.inventory.v14.Vlans; -import org.onap.aai.inventory.v14.Vserver; +import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v16.Image; +import org.onap.aai.inventory.v16.InventoryResponseItem; +import org.onap.aai.inventory.v16.InventoryResponseItems; +import org.onap.aai.inventory.v16.L3Network; +import org.onap.aai.inventory.v16.LogicalLink; +import org.onap.aai.inventory.v16.Metadata; +import org.onap.aai.inventory.v16.Metadatum; +import org.onap.aai.inventory.v16.Pnf; +import org.onap.aai.inventory.v16.RelatedToProperty; +import org.onap.aai.inventory.v16.Relationship; +import org.onap.aai.inventory.v16.RelationshipData; +import org.onap.aai.inventory.v16.RelationshipList; +import org.onap.aai.inventory.v16.ResultData; +import org.onap.aai.inventory.v16.SearchResults; +import org.onap.aai.inventory.v16.ServiceInstance; +import org.onap.aai.inventory.v16.Vlan; +import org.onap.aai.inventory.v16.Vlans; +import org.onap.aai.inventory.v16.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1265,7 +1265,7 @@ public abstract class AAIDeclarations implements AAIClient { getLogger().debug("About to process related link of {}", relatedLink); if(relatedLink != null) { if(relatedLink.contains("v$")) - relatedLink = relatedLink.replace(VERSION_PATTERN, "/v14/"); + relatedLink = relatedLink.replace(VERSION_PATTERN, "/v16/"); relationship.setRelatedLink(relatedLink); } else { Map relParams = new HashMap<>(); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 0edd09df9..42a9369a1 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -51,7 +51,7 @@ import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; -import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v16.GenericVnf; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; @@ -473,6 +473,6 @@ public abstract class AAIRequest { } public static final String getSupportedAAIVersion() { - return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v14/"); + return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v16/"); } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index f83ff8ca6..41290c07b 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -81,11 +81,11 @@ import org.onap.ccsdk.sli.core.sli.MetricLogger; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.onap.aai.inventory.v14.GenericVnf; -import org.onap.aai.inventory.v14.PhysicalLink; -import org.onap.aai.inventory.v14.ResultData; -import org.onap.aai.inventory.v14.SearchResults; -import org.onap.aai.inventory.v14.Vserver; +import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v16.PhysicalLink; +import org.onap.aai.inventory.v16.ResultData; +import org.onap.aai.inventory.v16.SearchResults; +import org.onap.aai.inventory.v16.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index e773da52b..793fb0f8f 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -43,9 +43,9 @@ import java.util.Set; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.StringUtils; -import org.onap.aai.inventory.v14.Relationship; -import org.onap.aai.inventory.v14.RelationshipData; -import org.onap.aai.inventory.v14.RelationshipList; +import org.onap.aai.inventory.v16.Relationship; +import org.onap.aai.inventory.v16.RelationshipData; +import org.onap.aai.inventory.v16.RelationshipList; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.slf4j.Logger; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index 07bb69d83..5e8b4345d 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -32,7 +32,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v14.ResultData; +import org.onap.aai.inventory.v16.ResultData; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index 59aba1b8f..7c6234e5c 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -40,8 +40,8 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v14.L3Network; -import org.onap.aai.inventory.v14.L3Networks; +import org.onap.aai.inventory.v16.L3Network; +import org.onap.aai.inventory.v16.L3Networks; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java index 6b050b5ac..b95835937 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -32,7 +32,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v14.SearchResults; +import org.onap.aai.inventory.v16.SearchResults; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java index 8cd7a44e0..70a7d2357 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java @@ -33,7 +33,7 @@ import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.aai.inventory.v14.RelationshipList; +import org.onap.aai.inventory.v16.RelationshipList; public class RelationshipListRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java index e26421aaa..eb00bee42 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -35,7 +35,7 @@ import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.aai.inventory.v14.Relationship; +import org.onap.aai.inventory.v16.Relationship; public class RelationshipRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java index 4879c74c8..e947d9741 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java @@ -31,8 +31,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.onap.aai.inventory.v14.RelationshipList; -import org.onap.aai.inventory.v14.Vlans; +import org.onap.aai.inventory.v16.RelationshipList; +import org.onap.aai.inventory.v16.Vlans; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java index b24df92cf..4f7d922c4 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java @@ -33,16 +33,16 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.onap.aai.inventory.v14.CloudRegion; -import org.onap.aai.inventory.v14.GenericVnf; -import org.onap.aai.inventory.v14.L3Network; -import org.onap.aai.inventory.v14.Pnf; -import org.onap.aai.inventory.v14.LogicalLink; -import org.onap.aai.inventory.v14.PInterface; -import org.onap.aai.inventory.v14.ServiceInstance; -import org.onap.aai.inventory.v14.Tenant; -import org.onap.aai.inventory.v14.Vnf; -import org.onap.aai.inventory.v14.Vserver; +import org.onap.aai.inventory.v16.CloudRegion; +import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v16.L3Network; +import org.onap.aai.inventory.v16.Pnf; +import org.onap.aai.inventory.v16.LogicalLink; +import org.onap.aai.inventory.v16.PInterface; +import org.onap.aai.inventory.v16.ServiceInstance; +import org.onap.aai.inventory.v16.Tenant; +import org.onap.aai.inventory.v16.Vnf; +import org.onap.aai.inventory.v16.Vserver; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java index 8a22905dc..b0f1b8b59 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java @@ -30,19 +30,19 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import org.onap.aai.inventory.v14.CloudRegion; -import org.onap.aai.inventory.v14.Complex; -import org.onap.aai.inventory.v14.Configuration; -import org.onap.aai.inventory.v14.GenericVnf; -import org.onap.aai.inventory.v14.L3InterfaceIpv4AddressList; -import org.onap.aai.inventory.v14.L3InterfaceIpv6AddressList; -import org.onap.aai.inventory.v14.L3Network; -import org.onap.aai.inventory.v14.LInterface; -//import org.onap.aai.inventory.v14.OwningEntity; -import org.onap.aai.inventory.v14.Pserver; -import org.onap.aai.inventory.v14.ServiceInstance; -import org.onap.aai.inventory.v14.Vnfc; -import org.onap.aai.inventory.v14.Vserver; +import org.onap.aai.inventory.v16.CloudRegion; +import org.onap.aai.inventory.v16.Complex; +import org.onap.aai.inventory.v16.Configuration; +import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v16.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v16.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v16.L3Network; +import org.onap.aai.inventory.v16.LInterface; +//import org.onap.aai.inventory.v16.OwningEntity; +import org.onap.aai.inventory.v16.Pserver; +import org.onap.aai.inventory.v16.ServiceInstance; +import org.onap.aai.inventory.v16.Vnfc; +import org.onap.aai.inventory.v16.Vserver; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/aai-service/provider/src/main/resources/aai-path.properties b/aai-service/provider/src/main/resources/aai-path.properties index 2c566f9b2..0ef5abd91 100755 --- a/aai-service/provider/src/main/resources/aai-path.properties +++ b/aai-service/provider/src/main/resources/aai-path.properties @@ -19,317 +19,319 @@ # ============LICENSE_END========================================================= ### -cloud-regions = /aai/v14/cloud-infrastructure/cloud-regions -cloud-region = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} -cloud-region|availability-zones = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones -cloud-region|availability-zone = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} -cloud-region|dvs-switches = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -cloud-region|dvs-switch = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} -cloud-region|flavors = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors -cloud-region|flavor = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} -cloud-region|flavor|hpa-capabilities = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities -cloud-region|flavor|hpa-capability = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|group-assignments = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments -cloud-region|group-assignment = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} -cloud-region|hpa-capabilities = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities -cloud-region|hpa-capability = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|hpa-capability|hpa-feature-attributes = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|images = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images -cloud-region|image = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} -cloud-region|image|metadata = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata -cloud-region|image|metadatum = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} -cloud-region|oam-networks = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks -cloud-region|oam-network = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} -cloud-region|snapshots = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots -cloud-region|snapshot = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} -cloud-region|tenants = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants -cloud-region|tenant = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -cloud-region|tenant|vservers = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers -cloud-region|tenant|vserver = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} -cloud-region|tenant|vserver|l-interfaces = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces -cloud-region|tenant|vserver|l-interface = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -cloud-region|tenant|vserver|l-interface|vlans = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans -cloud-region|tenant|vserver|l-interface|vlan = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|volumes = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes -cloud-region|tenant|vserver|volume = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} -cloud-region|vip-ipv4-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} -cloud-region|vip-ipv6-address-list = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} -cloud-region|volume-groups = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups -cloud-region|volume-group = /aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} -complexes = /aai/v14/cloud-infrastructure/complexes -complex = /aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id} -complex|ctag-pools = /aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -complex|ctag-pool = /aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} -network-profiles = /aai/v14/cloud-infrastructure/network-profiles -network-profile = /aai/v14/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} -operational-environments = /aai/v14/cloud-infrastructure/operational-environments -operational-environment = /aai/v14/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} -pservers = /aai/v14/cloud-infrastructure/pservers -pserver = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname} -pserver|lag-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces -pserver|lag-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} -pserver|lag-interface|l-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pserver|lag-interface|l-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface|sriov-vfs = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|lag-interface|l-interface|sriov-vf = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|lag-interface|l-interface|vlans = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|lag-interface|l-interface|vlan = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -pserver|p-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} -pserver|p-interface|l-interfaces = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces -pserver|p-interface|l-interface = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface|sriov-vfs = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|p-interface|l-interface|sriov-vf = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|p-interface|l-interface|vlans = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|p-interface|l-interface|vlan = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|sriov-pfs = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pserver|p-interface|sriov-pf = /aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -virtual-data-centers = /aai/v14/cloud-infrastructure/virtual-data-centers -virtual-data-center = /aai/v14/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} -connectors = /aai/v14/business/connectors -connector = /aai/v14/business/connectors/connector/{resource-instance-id} -connector|metadata = /aai/v14/business/connectors/connector/{resource-instance-id}/metadata -connector|metadatum = /aai/v14/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} -customers = /aai/v14/business/customers -customer = /aai/v14/business/customers/customer/{global-customer-id} -customer|service-subscriptions = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions -customer|service-subscription = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} -customer|service-subscription|service-instances = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -customer|service-subscription|service-instance = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -customer|service-subscription|service-instance|allotted-resources = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources -customer|service-subscription|service-instance|allotted-resource = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} -customer|service-subscription|service-instance|metadata = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata -customer|service-subscription|service-instance|metadatum = /aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} -configurations = /aai/v14/network/configurations -configuration = /aai/v14/network/configurations/configuration/{configuration-id} -configuration|evcs = /aai/v14/network/configurations/configuration/{configuration-id}/evcs -configuration|evc = /aai/v14/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} -configuration|forwarder-evcs = /aai/v14/network/configurations/configuration/{configuration-id}/forwarder-evcs -configuration|forwarder-evc = /aai/v14/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} -configuration|metadata = /aai/v14/network/configurations/configuration/{configuration-id}/metadata -configuration|metadatum = /aai/v14/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} -connectivities = /aai/v14/network/connectivities -connectivity = /aai/v14/network/connectivities/connectivity/{connectivity-id} -devices = /aai/v14/network/devices -device = /aai/v14/network/devices/device/{device-id} -esr-thirdparty-sdnc = /aai/v14/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} -esr-thirdparty-sdnc-list = /aai/v14/external-system/esr-thirdparty-sdnc-list -forwarding-paths = /aai/v14/network/forwarding-paths -forwarding-path = /aai/v14/network/forwarding-paths/forwarding-path/{forwarding-path-id} -forwarding-path|forwarders = /aai/v14/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders -forwarding-path|forwarder = /aai/v14/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} -generic-vnfs = /aai/v14/network/generic-vnfs -generic-vnf = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id} -generic-vnf|entitlements = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements -generic-vnf|entitlement = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -generic-vnf|l-interfaces = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces -generic-vnf|l-interface = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} -generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface|sriov-vfs = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|l-interface|sriov-vf = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|l-interface|vlans = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|l-interface|vlan = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interfaces = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces -generic-vnf|lag-interface = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -generic-vnf|lag-interface|l-interfaces = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -generic-vnf|lag-interface|l-interface = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|lag-interface|l-interface|vlans = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|lag-interface|l-interface|vlan = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|licenses = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/licenses -generic-vnf|license = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -generic-vnf|vf-modules = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules -generic-vnf|vf-module = /aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} -instance-groups = /aai/v14/network/instance-groups -instance-group = /aai/v14/network/instance-groups/instance-group/{id} -ipsec-configurations = /aai/v14/network/ipsec-configurations -ipsec-configuration = /aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} -ipsec-configuration|vig-servers = /aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers -ipsec-configuration|vig-server = /aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} -l3-networks = /aai/v14/network/l3-networks -l3-network = /aai/v14/network/l3-networks/l3-network/{network-id} -l3-network|ctag-assignments = /aai/v14/network/l3-networks/l3-network/{network-id}/ctag-assignments -l3-network|ctag-assignment = /aai/v14/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} -l3-network|segmentation-assignments = /aai/v14/network/l3-networks/l3-network/{network-id}/segmentation-assignments -l3-network|segmentation-assignment = /aai/v14/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} -l3-network|subnets = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets -l3-network|subnet = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} -l3-network|subnet|host-routes = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes -l3-network|subnet|host-route = /aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} -lag-links = /aai/v14/network/lag-links -lag-link = /aai/v14/network/lag-links/lag-link/{link-name} -lines-of-business = /aai/v14/business/lines-of-business -line-of-business = /aai/v14/business/lines-of-business/line-of-business/{line-of-business-name} -logical-links = /aai/v14/network/logical-links -logical-link = /aai/v14/network/logical-links/logical-link/{link-name} -models = /aai/v14/service-design-and-creation/models -model = /aai/v14/service-design-and-creation/models/model/{model-invariant-id} -model|model-vers = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers -model|model-ver = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} -model|model-ver|metadata = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata -model|model-ver|metadatum = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} -model|model-ver|model-elements = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements -model|model-ver|model-element = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} -model|model-ver|model-element|model-constraints = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints -model|model-ver|model-element|model-constraint = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} -model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets -model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v14/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} -multicast-configurations = /aai/v14/network/multicast-configurations -multicast-configuration = /aai/v14/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -named-queries = /aai/v14/service-design-and-creation/named-queries -named-query = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid} -named-query|named-query-elements = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements -named-query|named-query-element = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} -named-query|named-query-element|property-constraints = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints -named-query|named-query-element|property-constraint = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} -named-query|named-query-element|related-lookups = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups -named-query|named-query-element|related-lookup = /aai/v14/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} -network-policies = /aai/v14/network/network-policies -network-policy = /aai/v14/network/network-policies/network-policy/{network-policy-id} -network-resources = /aai/v14/network/network-resources -network-resource = /aai/v14/network/network-resources/network-resource/{network-id} -newvces = /aai/v14/network/newvces -newvce = /aai/v14/network/newvces/newvce/{vnf-id2} -newvce|l-interfaces = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces -newvce|l-interface = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} -newvce|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface|sriov-vfs = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs -newvce|l-interface|sriov-vf = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -newvce|l-interface|vlans = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans -newvce|l-interface|vlan = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -owning-entities = /aai/v14/business/owning-entities -owning-entity = /aai/v14/business/owning-entities/owning-entity/{owning-entity-id} -physical-links = /aai/v14/network/physical-links -physical-link = /aai/v14/network/physical-links/physical-link/{link-name} -platforms = /aai/v14/business/platforms -platform = /aai/v14/business/platforms/platform/{platform-name} -pnfs = /aai/v14/network/pnfs -pnf = /aai/v14/network/pnfs/pnf/{pnf-name} -pnf|lag-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces -pnf|lag-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} -pnf|lag-interface|l-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pnf|lag-interface|l-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface|sriov-vfs = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|lag-interface|l-interface|sriov-vf = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|lag-interface|l-interface|vlans = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|lag-interface|l-interface|vlan = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces -pnf|p-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} -pnf|p-interface|l-interfaces = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -pnf|p-interface|l-interface = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface|sriov-vfs = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|p-interface|l-interface|sriov-vf = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|p-interface|l-interface|vlans = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|p-interface|l-interface|vlan = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|sriov-pfs = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pnf|p-interface|sriov-pf = /aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -projects = /aai/v14/business/projects -project = /aai/v14/business/projects/project/{project-name} -route-table-references = /aai/v14/network/route-table-references -route-table-reference = /aai/v14/network/route-table-references/route-table-reference/{route-table-reference-id} -sdwan-vpns = /aai/v14/network/sdwan-vpns -sdwan-vpn = /aai/v14/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id} -service-capabilities = /aai/v14/service-design-and-creation/service-capabilities -service-capability = /aai/v14/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} -services = /aai/v14/service-design-and-creation/services -service = /aai/v14/service-design-and-creation/services/service/{service-id} -site-pair-sets = /aai/v14/network/site-pair-sets -site-pair-set = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id} -site-pair-set|routing-instances = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances -site-pair-set|routing-instance = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} -site-pair-set|routing-instance|site-pairs = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs -site-pair-set|routing-instance|site-pair = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} -site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service -site-pair-set|routing-instance|site-pair|class-of-service = /aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} -site-resources = /aai/v14/network/site-resources -site-resource = /aai/v14/network/site-resources/site-resource/{site-resource-id} -vces = /aai/v14/network/vces -vce = /aai/v14/network/vces/vce/{vnf-id} -vce|entitlements = /aai/v14/network/vces/vce/{vnf-id}/entitlements -vce|entitlement = /aai/v14/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vce|licenses = /aai/v14/network/vces/vce/{vnf-id}/licenses -vce|license = /aai/v14/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vce|port-groups = /aai/v14/network/vces/vce/{vnf-id}/port-groups -vce|port-group = /aai/v14/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} -vce|port-group|cvlan-tags = /aai/v14/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags -vce|port-group|cvlan-tag-entry = /aai/v14/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} -vnf-images = /aai/v14/service-design-and-creation/vnf-images -vnf-image = /aai/v14/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} -vnfcs = /aai/v14/network/vnfcs -vnfc = /aai/v14/network/vnfcs/vnfc/{vnfc-name} -vnfc|l3-interface-ipv4-address-list = /aai/v14/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vnfc|l3-interface-ipv6-address-list = /aai/v14/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pes = /aai/v14/network/vpls-pes -vpls-pe = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name} -vpls-pe|lag-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces -vpls-pe|lag-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} -vpls-pe|lag-interface|l-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -vpls-pe|lag-interface|l-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|lag-interface|l-interface|vlans = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|lag-interface|l-interface|vlan = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces -vpls-pe|p-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} -vpls-pe|p-interface|l-interfaces = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -vpls-pe|p-interface|l-interface = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|p-interface|l-interface|sriov-vf = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|p-interface|l-interface|vlans = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|p-interface|l-interface|vlan = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|sriov-pfs = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -vpls-pe|p-interface|sriov-pf = /aai/v14/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -vpn-bindings = /aai/v14/network/vpn-bindings -vpn-binding = /aai/v14/network/vpn-bindings/vpn-binding/{vpn-id} -vpn-binding|route-targets = /aai/v14/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets -vpn-binding|route-target = /aai/v14/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} -wan-port-configs = /aai/v14/network/wan-port-configs -wan-port-config = /aai/v14/network/wan-port-configs/wan-port-config/{wan-port-config-id} -zones = /aai/v14/network/zones -zone = /aai/v14/network/zones/zone/{zone-id} \ No newline at end of file +cloud-regions = /aai/v16/cloud-infrastructure/cloud-regions +cloud-region = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +cloud-region|availability-zones = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones +cloud-region|availability-zone = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} +cloud-region|dvs-switches = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +cloud-region|dvs-switch = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +cloud-region|flavors = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors +cloud-region|flavor = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} +cloud-region|flavor|hpa-capabilities = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities +cloud-region|flavor|hpa-capability = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|group-assignments = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments +cloud-region|group-assignment = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} +cloud-region|hpa-capabilities = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities +cloud-region|hpa-capability = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|hpa-capability|hpa-feature-attributes = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|images = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images +cloud-region|image = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} +cloud-region|image|metadata = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata +cloud-region|image|metadatum = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} +cloud-region|oam-networks = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks +cloud-region|oam-network = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +cloud-region|snapshots = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots +cloud-region|snapshot = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} +cloud-region|tenants = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants +cloud-region|tenant = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +cloud-region|tenant|vservers = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers +cloud-region|tenant|vserver = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +cloud-region|tenant|vserver|l-interfaces = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces +cloud-region|tenant|vserver|l-interface = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +cloud-region|tenant|vserver|l-interface|vlans = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans +cloud-region|tenant|vserver|l-interface|vlan = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|volumes = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes +cloud-region|tenant|vserver|volume = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} +cloud-region|vip-ipv4-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} +cloud-region|vip-ipv6-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} +cloud-region|volume-groups = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups +cloud-region|volume-group = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +complexes = /aai/v16/cloud-infrastructure/complexes +complex = /aai/v16/cloud-infrastructure/complexes/complex/{physical-location-id} +complex|ctag-pools = /aai/v16/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +complex|ctag-pool = /aai/v16/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +network-profiles = /aai/v16/cloud-infrastructure/network-profiles +network-profile = /aai/v16/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} +operational-environments = /aai/v16/cloud-infrastructure/operational-environments +operational-environment = /aai/v16/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} +pservers = /aai/v16/cloud-infrastructure/pservers +pserver = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname} +pserver|lag-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces +pserver|lag-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} +pserver|lag-interface|l-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pserver|lag-interface|l-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface|sriov-vfs = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|lag-interface|l-interface|sriov-vf = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|lag-interface|l-interface|vlans = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|lag-interface|l-interface|vlan = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +pserver|p-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +pserver|p-interface|l-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces +pserver|p-interface|l-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface|sriov-vfs = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|p-interface|l-interface|sriov-vf = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|p-interface|l-interface|vlans = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|p-interface|l-interface|vlan = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|sriov-pfs = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pserver|p-interface|sriov-pf = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +virtual-data-centers = /aai/v16/cloud-infrastructure/virtual-data-centers +virtual-data-center = /aai/v16/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +connectors = /aai/v16/business/connectors +connector = /aai/v16/business/connectors/connector/{resource-instance-id} +connector|metadata = /aai/v16/business/connectors/connector/{resource-instance-id}/metadata +connector|metadatum = /aai/v16/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} +customers = /aai/v16/business/customers +customer = /aai/v16/business/customers/customer/{global-customer-id} +customer|service-subscriptions = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions +customer|service-subscription = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +customer|service-subscription|service-instances = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +customer|service-subscription|service-instance = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +customer|service-subscription|service-instance|allotted-resources = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources +customer|service-subscription|service-instance|allotted-resource = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} +customer|service-subscription|service-instance|metadata = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata +customer|service-subscription|service-instance|metadatum = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} +configurations = /aai/v16/network/configurations +configuration = /aai/v16/network/configurations/configuration/{configuration-id} +configuration|evcs = /aai/v16/network/configurations/configuration/{configuration-id}/evcs +configuration|evc = /aai/v16/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} +configuration|forwarder-evcs = /aai/v16/network/configurations/configuration/{configuration-id}/forwarder-evcs +configuration|forwarder-evc = /aai/v16/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} +configuration|metadata = /aai/v16/network/configurations/configuration/{configuration-id}/metadata +configuration|metadatum = /aai/v16/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} +connectivities = /aai/v16/network/connectivities +connectivity = /aai/v16/network/connectivities/connectivity/{connectivity-id} +devices = /aai/v16/network/devices +device = /aai/v16/network/devices/device/{device-id} +esr-thirdparty-sdnc = /aai/v16/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} +esr-thirdparty-sdnc-list = /aai/v16/external-system/esr-thirdparty-sdnc-list +forwarding-paths = /aai/v16/network/forwarding-paths +forwarding-path = /aai/v16/network/forwarding-paths/forwarding-path/{forwarding-path-id} +forwarding-path|forwarders = /aai/v16/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders +forwarding-path|forwarder = /aai/v16/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} +generic-vnfs = /aai/v16/network/generic-vnfs +generic-vnf = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id} +generic-vnf|entitlements = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements +generic-vnf|entitlement = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +generic-vnf|l-interfaces = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces +generic-vnf|l-interface = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface|sriov-vfs = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|l-interface|sriov-vf = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|l-interface|vlans = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|l-interface|vlan = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interfaces = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces +generic-vnf|lag-interface = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +generic-vnf|lag-interface|l-interfaces = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +generic-vnf|lag-interface|l-interface = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|lag-interface|l-interface|vlans = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|lag-interface|l-interface|vlan = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|licenses = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/licenses +generic-vnf|license = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +generic-vnf|vf-modules = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules +generic-vnf|vf-module = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +instance-groups = /aai/v16/network/instance-groups +instance-group = /aai/v16/network/instance-groups/instance-group/{id} +ipsec-configurations = /aai/v16/network/ipsec-configurations +ipsec-configuration = /aai/v16/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +ipsec-configuration|vig-servers = /aai/v16/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers +ipsec-configuration|vig-server = /aai/v16/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +l3-networks = /aai/v16/network/l3-networks +l3-network = /aai/v16/network/l3-networks/l3-network/{network-id} +l3-network|ctag-assignments = /aai/v16/network/l3-networks/l3-network/{network-id}/ctag-assignments +l3-network|ctag-assignment = /aai/v16/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} +l3-network|segmentation-assignments = /aai/v16/network/l3-networks/l3-network/{network-id}/segmentation-assignments +l3-network|segmentation-assignment = /aai/v16/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} +l3-network|subnets = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets +l3-network|subnet = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +l3-network|subnet|host-routes = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes +l3-network|subnet|host-route = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} +lag-links = /aai/v16/network/lag-links +lag-link = /aai/v16/network/lag-links/lag-link/{link-name} +lines-of-business = /aai/v16/business/lines-of-business +line-of-business = /aai/v16/business/lines-of-business/line-of-business/{line-of-business-name} +logical-links = /aai/v16/network/logical-links +logical-link = /aai/v16/network/logical-links/logical-link/{link-name} +models = /aai/v16/service-design-and-creation/models +model = /aai/v16/service-design-and-creation/models/model/{model-invariant-id} +model|model-vers = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers +model|model-ver = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} +model|model-ver|metadata = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata +model|model-ver|metadatum = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} +model|model-ver|model-elements = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements +model|model-ver|model-element = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} +model|model-ver|model-element|model-constraints = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints +model|model-ver|model-element|model-constraint = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} +model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets +model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} +multicast-configurations = /aai/v16/network/multicast-configurations +multicast-configuration = /aai/v16/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +named-queries = /aai/v16/service-design-and-creation/named-queries +named-query = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid} +named-query|named-query-elements = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements +named-query|named-query-element = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} +named-query|named-query-element|property-constraints = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints +named-query|named-query-element|property-constraint = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} +named-query|named-query-element|related-lookups = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups +named-query|named-query-element|related-lookup = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} +network-policies = /aai/v16/network/network-policies +network-policy = /aai/v16/network/network-policies/network-policy/{network-policy-id} +network-resources = /aai/v16/network/network-resources +network-resource = /aai/v16/network/network-resources/network-resource/{network-id} +newvces = /aai/v16/network/newvces +newvce = /aai/v16/network/newvces/newvce/{vnf-id2} +newvce|l-interfaces = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces +newvce|l-interface = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} +newvce|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface|sriov-vfs = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs +newvce|l-interface|sriov-vf = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +newvce|l-interface|vlans = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans +newvce|l-interface|vlan = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +owning-entities = /aai/v16/business/owning-entities +owning-entity = /aai/v16/business/owning-entities/owning-entity/{owning-entity-id} +physical-links = /aai/v16/network/physical-links +physical-link = /aai/v16/network/physical-links/physical-link/{link-name} +platforms = /aai/v16/business/platforms +platform = /aai/v16/business/platforms/platform/{platform-name} +pnfs = /aai/v16/network/pnfs +pnf = /aai/v16/network/pnfs/pnf/{pnf-name} +pnf|lag-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces +pnf|lag-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} +pnf|lag-interface|l-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pnf|lag-interface|l-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface|sriov-vfs = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|lag-interface|l-interface|sriov-vf = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|lag-interface|l-interface|vlans = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|lag-interface|l-interface|vlan = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces +pnf|p-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} +pnf|p-interface|l-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +pnf|p-interface|l-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface|sriov-vfs = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|p-interface|l-interface|sriov-vf = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|p-interface|l-interface|vlans = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|p-interface|l-interface|vlan = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|sriov-pfs = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pnf|p-interface|sriov-pf = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +projects = /aai/v16/business/projects +project = /aai/v16/business/projects/project/{project-name} +route-table-references = /aai/v16/network/route-table-references +route-table-reference = /aai/v16/network/route-table-references/route-table-reference/{route-table-reference-id} +sdwan-vpns = /aai/v16/network/sdwan-vpns +sdwan-vpn = /aai/v16/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id} +service-capabilities = /aai/v16/service-design-and-creation/service-capabilities +service-capability = /aai/v16/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} +services = /aai/v16/service-design-and-creation/services +service = /aai/v16/service-design-and-creation/services/service/{service-id} +site-pair-sets = /aai/v16/network/site-pair-sets +site-pair-set = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id} +site-pair-set|routing-instances = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances +site-pair-set|routing-instance = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +site-pair-set|routing-instance|site-pairs = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs +site-pair-set|routing-instance|site-pair = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service +site-pair-set|routing-instance|site-pair|class-of-service = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} +site-resources = /aai/v16/network/site-resources +site-resource = /aai/v16/network/site-resources/site-resource/{site-resource-id} +vces = /aai/v16/network/vces +vce = /aai/v16/network/vces/vce/{vnf-id} +vce|entitlements = /aai/v16/network/vces/vce/{vnf-id}/entitlements +vce|entitlement = /aai/v16/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vce|licenses = /aai/v16/network/vces/vce/{vnf-id}/licenses +vce|license = /aai/v16/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vce|port-groups = /aai/v16/network/vces/vce/{vnf-id}/port-groups +vce|port-group = /aai/v16/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} +vce|port-group|cvlan-tags = /aai/v16/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags +vce|port-group|cvlan-tag-entry = /aai/v16/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} +vnf-images = /aai/v16/service-design-and-creation/vnf-images +vnf-image = /aai/v16/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} +vnfcs = /aai/v16/network/vnfcs +vnfc = /aai/v16/network/vnfcs/vnfc/{vnfc-name} +vnfc|l3-interface-ipv4-address-list = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|l3-interface-ipv6-address-list = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pes = /aai/v16/network/vpls-pes +vpls-pe = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name} +vpls-pe|lag-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces +vpls-pe|lag-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} +vpls-pe|lag-interface|l-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +vpls-pe|lag-interface|l-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|lag-interface|l-interface|vlans = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|lag-interface|l-interface|vlan = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces +vpls-pe|p-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} +vpls-pe|p-interface|l-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +vpls-pe|p-interface|l-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|p-interface|l-interface|sriov-vf = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|p-interface|l-interface|vlans = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|p-interface|l-interface|vlan = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|sriov-pfs = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +vpls-pe|p-interface|sriov-pf = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +vpn-bindings = /aai/v16/network/vpn-bindings +vpn-binding = /aai/v16/network/vpn-bindings/vpn-binding/{vpn-id} +vpn-binding|route-targets = /aai/v16/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets +vpn-binding|route-target = /aai/v16/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} +wan-port-configs = /aai/v16/network/wan-port-configs +wan-port-config = /aai/v16/network/wan-port-configs/wan-port-config/{wan-port-config-id} +lan-port-configs = /aai/v16/network/lan-port-configs +lan-port-config = /aai/v16/network/lan-port-configs/lan-port-config/{lan-port-config-id} +zones = /aai/v16/network/zones +zone = /aai/v16/network/zones/zone/{zone-id} diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index f2d7ed409..e7e432247 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -3,7 +3,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"> - + diff --git a/aai-service/provider/src/main/resources/aai_schema_v14.xsd b/aai-service/provider/src/main/resources/aai_schema_v14.xsd deleted file mode 100644 index 0c3256c91..000000000 --- a/aai-service/provider/src/main/resources/aai_schema_v14.xsd +++ /dev/null @@ -1,9779 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="cvlan-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") - - - - - - - @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the volume group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") - - - - - - - @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC address for the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of nos") - - - - - - - @org.onap.aai.annotations.Metadata(description="uCPE vendor") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Readable name of tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA schema version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hardware architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of CPUs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of memory") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") - - - - - - - @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group description - description of the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Snapshot name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Image name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of availability zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vendor of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="version of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="url used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="username used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service port of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="domain info for authentication.") - - - - - - - @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") - - - - - - - @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the status of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network profiles") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="inventory status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="PTNII name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of cpus") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="alternative pserver name") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose of pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Tenant Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Workload Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") - - - - - - - @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for external system.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing the service role.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="create time of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="last update of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="short description for service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") - - - - - - - @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service instances") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") - - - - - - - @org.onap.aai.annotations.Metadata(description="Owning entity name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of platforms") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of projects") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description of the service") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service version") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") - - - - - - - @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Distribution Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") - - - - - - - @org.onap.aai.annotations.Metadata(description="For example, static or BGP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="class-of-service of probe") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="probe within a set") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="rpm owner") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of route target information") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN Name") - - - - - - - @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") - - - - - - - @org.onap.aai.annotations.Metadata(description="region of customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="id for this customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag-cvlan-tag}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") - - - - - - - @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") - - - - - - - @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of connection points.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") - - - - - - - @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") - - - - - - - @org.onap.aai.annotations.Metadata(description="subnet prefix") - - - - - - - @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="gateway ip address") - - - - - - - @org.onap.aai.annotations.Metadata(description="network start address") - - - - - - - @org.onap.aai.annotations.Metadata(description="cidr mask") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="sequence of the subnet") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="network role instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vf-module") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf instance id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf discriptor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 Loopback address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 management address") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of network in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="as-number of the VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VNFs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="source of name2") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of pnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") - - - - - - - @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number of the device") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit it") - - - - - - - @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") - - - - - - - @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") - - - - - - - @org.onap.aai.annotations.Metadata(description="can be 1 or 2") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") - - - - - - - @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="enable PFS or not") - - - - - - - @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") - - - - - - - @org.onap.aai.annotations.Metadata(description="The time between DPD probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the instance group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance-Group Function") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="English name associated with the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a zone.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal VLAN.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") - - - - - - - @org.onap.aai.annotations.Metadata(description="Commited Information Rate") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diversity Group ID") - - - - - - - @org.onap.aai.annotations.Metadata(description="formerly Performance Group") - - - - - - - @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Identifies ESP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") - - - - - - - @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of configurations") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") - - - - - - - @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the FP") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the self link for this FP") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="collection name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection type") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection Role") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection function") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") - - - - - - - @org.onap.aai.annotations.Metadata(description="VLAN inner id") - - - - - - - @org.onap.aai.annotations.Metadata(description="VLAN outer id") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of connectivities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network-resources") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") - - - - - - - @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of site-resources") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the class of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the version of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of devices") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - - - - - - - - - - - - - - - diff --git a/aai-service/provider/src/main/resources/aai_schema_v16.xsd b/aai-service/provider/src/main/resources/aai_schema_v16.xsd new file mode 100644 index 000000000..15d2bae1f --- /dev/null +++ b/aai-service/provider/src/main/resources/aai_schema_v16.xsd @@ -0,0 +1,9779 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of nos") + + + + + + + @org.onap.aai.annotations.Metadata(description="uCPE vendor") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag-cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connection points.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN inner id") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN outer id") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connectivities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") + + + + + + + @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of site-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the class of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the version of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of devices") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-service/provider/src/main/resources/aaiclient.properties b/aai-service/provider/src/main/resources/aaiclient.properties index 51a37772f..5e13e9f39 100755 --- a/aai-service/provider/src/main/resources/aaiclient.properties +++ b/aai-service/provider/src/main/resources/aaiclient.properties @@ -42,30 +42,30 @@ connection.timeout=60000 read.timeout=60000 # aai version -org.onap.ccsdk.sli.adaptors.aai.version=/v14/ +org.onap.ccsdk.sli.adaptors.aai.version=/v16/ # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v16/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v16/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v16/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v16/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v16/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v14/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v16/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java index 65160b377..a17c36bf2 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -51,7 +51,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.onap.aai.inventory.v14.*; +import org.onap.aai.inventory.v16.*; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index f39542ad0..9030cf9b1 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -62,7 +62,7 @@ import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v16.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.annotation.AnnotationUtils; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java index b7238564b..f56eee9fc 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -38,7 +38,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v14.LInterface; +import org.onap.aai.inventory.v16.LInterface; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java index 90b3b5fa5..0b715fc39 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -49,7 +49,7 @@ import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; import org.onap.ccsdk.sli.adaptors.aai.AAIService; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.aai.inventory.v14.GenericVnf; +import org.onap.aai.inventory.v16.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java index d3abd675f..f0c844785 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java @@ -10,8 +10,8 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v14.RelationshipList; -import org.onap.aai.inventory.v14.Vlans; +import org.onap.aai.inventory.v16.RelationshipList; +import org.onap.aai.inventory.v16.Vlans; public class SubInterfaceTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java index b3b7eed93..8bc2c93ca 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java @@ -9,16 +9,16 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v14.CloudRegion; -import org.onap.aai.inventory.v14.GenericVnf; -import org.onap.aai.inventory.v14.L3Network; -import org.onap.aai.inventory.v14.LogicalLink; -import org.onap.aai.inventory.v14.PInterface; -import org.onap.aai.inventory.v14.Pnf; -import org.onap.aai.inventory.v14.ServiceInstance; -import org.onap.aai.inventory.v14.Tenant; -import org.onap.aai.inventory.v14.Vnf; -import org.onap.aai.inventory.v14.Vserver; +import org.onap.aai.inventory.v16.CloudRegion; +import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v16.L3Network; +import org.onap.aai.inventory.v16.LogicalLink; +import org.onap.aai.inventory.v16.PInterface; +import org.onap.aai.inventory.v16.Pnf; +import org.onap.aai.inventory.v16.ServiceInstance; +import org.onap.aai.inventory.v16.Tenant; +import org.onap.aai.inventory.v16.Vnf; +import org.onap.aai.inventory.v16.Vserver; public class InstanceFilterTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java index 3c142606d..a4f862407 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java @@ -10,19 +10,19 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v14.CloudRegion; -import org.onap.aai.inventory.v14.Complex; -import org.onap.aai.inventory.v14.Configuration; -import org.onap.aai.inventory.v14.GenericVnf; -import org.onap.aai.inventory.v14.L3InterfaceIpv4AddressList; -import org.onap.aai.inventory.v14.L3InterfaceIpv6AddressList; -import org.onap.aai.inventory.v14.L3Network; -import org.onap.aai.inventory.v14.LInterface; -//import org.onap.aai.inventory.v14.OwningEntity; -import org.onap.aai.inventory.v14.Pserver; -import org.onap.aai.inventory.v14.ServiceInstance; -import org.onap.aai.inventory.v14.Vnfc; -import org.onap.aai.inventory.v14.Vserver; +import org.onap.aai.inventory.v16.CloudRegion; +import org.onap.aai.inventory.v16.Complex; +import org.onap.aai.inventory.v16.Configuration; +import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v16.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v16.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v16.L3Network; +import org.onap.aai.inventory.v16.LInterface; +//import org.onap.aai.inventory.v16.OwningEntity; +import org.onap.aai.inventory.v16.Pserver; +import org.onap.aai.inventory.v16.ServiceInstance; +import org.onap.aai.inventory.v16.Vnfc; +import org.onap.aai.inventory.v16.Vserver; public class ResultTest { diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index e994d66fa..58ff0dfcd 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -42,34 +42,34 @@ connection.timeout=60000 read.timeout=60000 # aai version -org.onap.ccsdk.sli.adaptors.aai.version=/v14/ +org.onap.ccsdk.sli.adaptors.aai.version=/v16/ # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v16/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v16/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v16/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v16/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v16/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v14/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v16/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting -- cgit 1.2.3-korg From 793f714168f7ec92b5a9d77fbda0d832ab109898 Mon Sep 17 00:00:00 2001 From: "Timoney, Dan (dt5972)" Date: Thu, 20 Jun 2019 19:16:28 -0400 Subject: Remove versions from project poms Remove versions from project poms and rely instead on dependencyManagement. Change-Id: I68171346273325e8dee0f7d2538549d2d8c154c8 Issue-ID: CCSDK-1416 Signed-off-by: Timoney, Dan (dt5972) --- aai-service/features/ccsdk-aai-service/pom.xml | 1 + aai-service/provider/pom.xml | 8 +------- .../org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java | 7 ++++--- ansible-adapter/ansible-adapter-bundle/pom.xml | 4 ---- ansible-adapter/ansible-adapter-installer/pom.xml | 6 +----- ansible-adapter/pom.xml | 7 ------- netbox-client/features/ccsdk-netbox-client/pom.xml | 1 + netbox-client/provider/pom.xml | 5 ++--- resource-assignment/provider/pom.xml | 2 -- saltstack-adapter/saltstack-adapter-installer/pom.xml | 5 ----- saltstack-adapter/saltstack-adapter-provider/pom.xml | 17 +++-------------- 11 files changed, 13 insertions(+), 50 deletions(-) (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/features/ccsdk-aai-service/pom.xml b/aai-service/features/ccsdk-aai-service/pom.xml index 5226ab20b..15034fdee 100644 --- a/aai-service/features/ccsdk-aai-service/pom.xml +++ b/aai-service/features/ccsdk-aai-service/pom.xml @@ -29,6 +29,7 @@ ${ccsdk.sli.core.version} xml features + provided diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 7b5a80509..4bff806cb 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -58,7 +58,7 @@ org.onap.ccsdk.sli.core utils-provider - ${sdnctl.sli.version} + ${ccsdk.sli.core.version} org.osgi @@ -76,22 +76,18 @@ org.glassfish.jersey.core jersey-client - ${jersey.version} org.glassfish.jersey.core jersey-common - ${jersey.version} org.apache.httpcomponents httpcore - ${apache.httpcomponents.core.version} org.apache.httpcomponents httpclient - ${apache.httpcomponents.client.version} com.fasterxml.jackson.core @@ -117,13 +113,11 @@ org.jsoup jsoup - 1.8.3 test org.springframework spring-core - 4.3.5.RELEASE test diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java index a17c36bf2..f0be45877 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -146,9 +146,10 @@ public class AAIServiceTest { String url = "https://aai.api.simpledemo.onap.org:8443/aai/v11/cloud-infrastructure/pservers/pserver/chcil129snd"; setConnMock(); - when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); - when(connMock.getResponseCode()).thenReturn(500); - when(connMock.getInputStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); + // The following lines are not needed and cause latest version of mockito to throw an exception +// when(aaiServiceSpy.getConfiguredConnection(new URL(url), HttpMethod.GET)).thenReturn(connMock); +// when(connMock.getResponseCode()).thenReturn(500); +// when(connMock.getInputStream()).thenReturn(getClass().getClassLoader().getResourceAsStream(fileLocation)); aaiServiceSpy.dataChangeRequestAaiData(url, Class.class); } diff --git a/ansible-adapter/ansible-adapter-bundle/pom.xml b/ansible-adapter/ansible-adapter-bundle/pom.xml index 66d25cd22..5a8a9ee00 100644 --- a/ansible-adapter/ansible-adapter-bundle/pom.xml +++ b/ansible-adapter/ansible-adapter-bundle/pom.xml @@ -56,13 +56,11 @@ commons-logging commons-logging - 1.2 org.apache.httpcomponents httpclient - ${apache.httpcomponents.client.version} @@ -70,14 +68,12 @@ org.glassfish.jersey.core jersey-common - 2.9.1 test org.codehaus.jackson jackson-jaxrs - 1.9.13 test diff --git a/ansible-adapter/ansible-adapter-installer/pom.xml b/ansible-adapter/ansible-adapter-installer/pom.xml index 49a525804..562bd179f 100644 --- a/ansible-adapter/ansible-adapter-installer/pom.xml +++ b/ansible-adapter/ansible-adapter-installer/pom.xml @@ -61,11 +61,7 @@ ${project.version} - - javax - javaee-api - 7.0 - + diff --git a/ansible-adapter/pom.xml b/ansible-adapter/pom.xml index 25b45b39d..6b6f4cbe5 100644 --- a/ansible-adapter/pom.xml +++ b/ansible-adapter/pom.xml @@ -165,13 +165,6 @@ ${project.version} - - junit - junit - 4.11 - test - - diff --git a/netbox-client/features/ccsdk-netbox-client/pom.xml b/netbox-client/features/ccsdk-netbox-client/pom.xml index bf8e76f09..6586a5cd9 100644 --- a/netbox-client/features/ccsdk-netbox-client/pom.xml +++ b/netbox-client/features/ccsdk-netbox-client/pom.xml @@ -36,6 +36,7 @@ ${project.version} + org.opendaylight.controller diff --git a/netbox-client/provider/pom.xml b/netbox-client/provider/pom.xml index 6a552c577..583d15813 100644 --- a/netbox-client/provider/pom.xml +++ b/netbox-client/provider/pom.xml @@ -89,9 +89,9 @@ junit junit - ${junit.version} test + org.mockito mockito-core @@ -101,9 +101,9 @@ com.github.tomakehurst wiremock - 2.7.1 test + org.eclipse.jetty jetty-server @@ -113,7 +113,6 @@ ch.qos.logback logback-classic - 1.2.3 test diff --git a/resource-assignment/provider/pom.xml b/resource-assignment/provider/pom.xml index e77ad92d2..510e16209 100755 --- a/resource-assignment/provider/pom.xml +++ b/resource-assignment/provider/pom.xml @@ -74,7 +74,6 @@ org.mariadb.jdbc mariadb-java-client - ${mariadb.connector.version} jar runtime @@ -89,7 +88,6 @@ org.springframework spring-jdbc - ${spring.version} diff --git a/saltstack-adapter/saltstack-adapter-installer/pom.xml b/saltstack-adapter/saltstack-adapter-installer/pom.xml index 65f5e1219..063caf2bd 100644 --- a/saltstack-adapter/saltstack-adapter-installer/pom.xml +++ b/saltstack-adapter/saltstack-adapter-installer/pom.xml @@ -64,11 +64,6 @@ ${project.version} - - javax - javaee-api - 7.0 - diff --git a/saltstack-adapter/saltstack-adapter-provider/pom.xml b/saltstack-adapter/saltstack-adapter-provider/pom.xml index 98590a0c8..91e72d5fd 100644 --- a/saltstack-adapter/saltstack-adapter-provider/pom.xml +++ b/saltstack-adapter/saltstack-adapter-provider/pom.xml @@ -72,31 +72,20 @@ + + + org.apache.sshd sshd-core 0.12.0 - - - - - - - - - - - - - org.apache.commons commons-io - 1.3.2 -- cgit 1.2.3-korg From 83559ddc77a0217391212f2abcdcba2c3ff56937 Mon Sep 17 00:00:00 2001 From: "Agarwal, Ruchira (ra1926)" Date: Tue, 5 Nov 2019 18:16:50 +0000 Subject: minor updates to clean up code clean up code to sync with internal Issue-ID: CCSDK-1873 Signed-off-by: Agarwal, Ruchira (ra1926) Change-Id: Idcc7186d5aaa783c527de3986e7a1ecd9bfcf651 --- aai-service/provider/pom.xml | 8 ++---- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 5 +++- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 1 + .../ccsdk/sli/adaptors/aai/GenericRequest.java | 10 +++++--- .../ccsdk/sli/adaptors/aai/EchoRequestTest.java | 22 ++++++++++++++++ ansible-adapter/ansible-adapter-bundle/pom.xml | 2 ++ .../ccsdk-ansible-adapter/pom.xml | 1 + base/http/provider/pom.xml | 1 - .../sli/adaptors/base/http/BasicAuthFilter.java | 6 ++--- .../adaptors/base/http/BasicAuthFilterTest.java | 2 +- .../features/ccsdk-mdsal-resource/pom.xml | 1 + .../sli/adaptors/resource/mdsal/RestService.java | 5 +++- netbox-client/features/ccsdk-netbox-client/pom.xml | 8 ++---- netbox-client/provider/pom.xml | 8 +++--- .../sli/adaptors/resource/sql/SqlResource.java | 29 +++++++++++++--------- 15 files changed, 70 insertions(+), 39 deletions(-) (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 9650087e5..f63bc424e 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -96,10 +96,6 @@ org.springframework spring-core test - - - org.apache.httpcomponents - httpcore org.apache.httpcomponents @@ -112,7 +108,7 @@ org.jvnet.jaxb2.maven2 maven-jaxb2-plugin - 0.13.1 + 0.14.0 gen-xjc @@ -139,7 +135,7 @@ org.jvnet.jaxb2_commons jaxb2-basics-annotate - 0.6.4 + 0.6.5 diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 4b4c439a9..28b4955a4 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -37,6 +37,9 @@ import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; import org.onap.ccsdk.sli.adaptors.aai.data.notify.NotifyEvent; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; + public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { public SearchResults requestServiceInstanceURL(String svcInstanceId) throws AAIServiceException; @@ -76,7 +79,7 @@ public interface AAIClient extends SvcLogicResource, SvcLogicJavaPlugin { public void logKeyError(String keys); - public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, Map nameValues, String modifier) throws IOException, AAIServiceException ; + public QueryStatus processResponseData(String rv, String resource, AAIRequest request, String prefix, SvcLogicContext ctx, Map nameValues, String modifier) throws JsonParseException, JsonMappingException, IOException, AAIServiceException ; public String getPathTemplateForResource(String resoourceName, String join, SvcLogicContext ctx) throws MalformedURLException; public boolean isDeprecatedFormat(String resource, Map nameValues); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index c57b3a45d..8b8aaaab6 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -1636,6 +1636,7 @@ public abstract class AAIDeclarations implements AAIClient { try { obj = getMetadataMethod.invoke(instance); } catch (InvocationTargetException x) { + Throwable cause = x.getCause(); } } if(obj != null && obj instanceof Metadata){ diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index 7c6234e5c..7f15c03f5 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -189,9 +189,13 @@ public class GenericRequest extends AAIRequest { queryParams.put(splitKey[1], encodeQuery(value)); } else { - String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); - String encoded_vnf = encodeQuery(value); - request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + String encoded_vnf = encodeQuery(value); + if(!resourceName.equals(splitKey[0]) && resourceName.contains(splitKey[0])) { + queryParams.put(splitKey[1], encoded_vnf); + } else { + String token = String.format("%s/{%s}", splitKey[0], splitKey[1]); + request_url = request_url.replace(token, String.format("%s/%s", splitKey[0], encoded_vnf)); + } } } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java index 69541301b..3e0a72f3a 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/EchoRequestTest.java @@ -34,6 +34,8 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -111,4 +113,24 @@ public class EchoRequestTest { } } + +// @Test + public void EchoTest() { + LOG.info("----------------------- Test: " + new Object(){}.getClass().getEnclosingMethod().getName() + " -----------------------"); + try + { + SvcLogicContext ctx = new SvcLogicContext(); + + QueryStatus resp = null; + +// (String resource, boolean localOnly, String select, String key, String prefix, String orderBy, SvcLogicContext ctx) + resp = aaiService.query("echo", false, null, "", "aaidata", null, ctx); + assert(resp == QueryStatus.SUCCESS); + } + catch (Throwable e) + { + LOG.error("Caught exception", e); +// fail("Caught exception"); + } + } } diff --git a/ansible-adapter/ansible-adapter-bundle/pom.xml b/ansible-adapter/ansible-adapter-bundle/pom.xml index c73018b28..614fe6d57 100644 --- a/ansible-adapter/ansible-adapter-bundle/pom.xml +++ b/ansible-adapter/ansible-adapter-bundle/pom.xml @@ -90,11 +90,13 @@ org.onap.ccsdk.sli.core sli-common + provided org.onap.ccsdk.sli.core sli-provider + provided diff --git a/ansible-adapter/ansible-adapter-features/ccsdk-ansible-adapter/pom.xml b/ansible-adapter/ansible-adapter-features/ccsdk-ansible-adapter/pom.xml index bf0b5b543..523d45069 100644 --- a/ansible-adapter/ansible-adapter-features/ccsdk-ansible-adapter/pom.xml +++ b/ansible-adapter/ansible-adapter-features/ccsdk-ansible-adapter/pom.xml @@ -28,6 +28,7 @@ ${ccsdk.sli.core.version} xml features + provided diff --git a/base/http/provider/pom.xml b/base/http/provider/pom.xml index aabeca268..642238cd2 100644 --- a/base/http/provider/pom.xml +++ b/base/http/provider/pom.xml @@ -28,7 +28,6 @@ org.glassfish.jersey.core jersey-client - ${jersey.version} test diff --git a/base/http/provider/src/main/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilter.java b/base/http/provider/src/main/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilter.java index 48d996ef3..5d3d463c9 100644 --- a/base/http/provider/src/main/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilter.java +++ b/base/http/provider/src/main/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilter.java @@ -6,13 +6,9 @@ import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.MultivaluedMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class BasicAuthFilter implements ClientRequestFilter { private final String basicAuthValue; - public BasicAuthFilter(String basicAuthValue) { this.basicAuthValue = basicAuthValue; } @@ -21,4 +17,6 @@ public class BasicAuthFilter implements ClientRequestFilter { MultivaluedMap headers = requestContext.getHeaders(); headers.add("Authorization", basicAuthValue); } + + } diff --git a/base/http/provider/src/test/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilterTest.java b/base/http/provider/src/test/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilterTest.java index b9565ba67..d9d552dac 100644 --- a/base/http/provider/src/test/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilterTest.java +++ b/base/http/provider/src/test/java/org/onap/ccsdk/sli/adaptors/base/http/BasicAuthFilterTest.java @@ -8,7 +8,7 @@ public class BasicAuthFilterTest { @Test public void notNullParameters() throws Exception { - BasicAuthFilter myFilter = new BasicAuthFilter("helloworld"); + BasicAuthFilter myFilter = new BasicAuthFilter("hello"); assertNotNull(myFilter); } diff --git a/mdsal-resource/features/ccsdk-mdsal-resource/pom.xml b/mdsal-resource/features/ccsdk-mdsal-resource/pom.xml index 41b0ef326..ab512ed63 100644 --- a/mdsal-resource/features/ccsdk-mdsal-resource/pom.xml +++ b/mdsal-resource/features/ccsdk-mdsal-resource/pom.xml @@ -29,6 +29,7 @@ ${ccsdk.sli.core.version} xml features + provided diff --git a/mdsal-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/RestService.java b/mdsal-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/RestService.java index 2991e6bef..30859a492 100644 --- a/mdsal-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/RestService.java +++ b/mdsal-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/RestService.java @@ -34,6 +34,7 @@ import java.net.URL; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLSession; +import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -180,9 +181,11 @@ public class RestService { LOG.info("Response body :\n"+respString); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + dbf.setFeature("http://xml.org/sax/features/external-general-entities", false); + dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false); DocumentBuilder db = dbf.newDocumentBuilder(); - response = db.parse(new ByteArrayInputStream(respString.getBytes())); } catch (Exception e) { diff --git a/netbox-client/features/ccsdk-netbox-client/pom.xml b/netbox-client/features/ccsdk-netbox-client/pom.xml index e006b1976..13dc8bf97 100644 --- a/netbox-client/features/ccsdk-netbox-client/pom.xml +++ b/netbox-client/features/ccsdk-netbox-client/pom.xml @@ -38,12 +38,6 @@ - - org.opendaylight.controller - odl-mdsal-broker - xml - features - org.onap.ccsdk.sli.core @@ -51,6 +45,7 @@ ${ccsdk.sli.core.version} xml features + provided @@ -59,6 +54,7 @@ ${ccsdk.sli.core.version} xml features + provided diff --git a/netbox-client/provider/pom.xml b/netbox-client/provider/pom.xml index 475eeb593..b8fa494ad 100644 --- a/netbox-client/provider/pom.xml +++ b/netbox-client/provider/pom.xml @@ -71,13 +71,13 @@ org.onap.ccsdk.sli.core sli-common - compile + provided org.onap.ccsdk.sli.core sliPluginUtils-provider - ${project.version} - compile + ${ccsdk.sli.core.version} + provided org.osgi @@ -101,7 +101,7 @@ com.github.tomakehurst wiremock - 2.23.2 + 2.23.2 test diff --git a/sql-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/sql/SqlResource.java b/sql-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/sql/SqlResource.java index 767fdac79..69965d101 100755 --- a/sql-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/sql/SqlResource.java +++ b/sql-resource/provider/src/main/java/org/onap/ccsdk/sli/adaptors/resource/sql/SqlResource.java @@ -100,7 +100,7 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin { return (QueryStatus.FAILURE); } - String theStmt = resolveCtxVars(key, ctx); + String theStmt = resolveCtxVars(key, ctx, resource); try { CachedRowSet results = dblibSvc.getData(theStmt, null, null); @@ -131,8 +131,9 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin { if (dblibSvc == null) { return (QueryStatus.FAILURE); } + + String sqlQuery = resolveCtxVars(key, ctx, resource); - String sqlQuery = resolveCtxVars(key, ctx); try { @@ -230,7 +231,7 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin { return (QueryStatus.FAILURE); } - String sqlStmt = resolveCtxVars(key, ctx); + String sqlStmt = resolveCtxVars(key, ctx, ""); LOG.debug("key = [" + key + "]; sqlStmt = [" + sqlStmt + "]"); try { @@ -247,7 +248,7 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin { } - private String resolveCtxVars(String key, SvcLogicContext ctx) { + private String resolveCtxVars(String key, SvcLogicContext ctx, String resource) { if (key == null) { return (null); } @@ -257,16 +258,20 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin { LOG.debug("Stripped outer single quotes - key is now [" + key + "]"); } - String[] keyTerms = key.split("\\s+"); + //"SQL-TRUE" allows for the key to be used as is. + if (!resource.equals("SQL-TRUE")) { + String[] keyTerms = key.split("\\s+"); - StringBuffer sqlBuffer = new StringBuffer(); + StringBuffer sqlBuffer = new StringBuffer(); - for (int i = 0; i < keyTerms.length; i++) { - sqlBuffer.append(resolveTerm(keyTerms[i], ctx)); - sqlBuffer.append(" "); - } + for (int i = 0; i < keyTerms.length; i++) { + sqlBuffer.append(resolveTerm(keyTerms[i], ctx)); + sqlBuffer.append(" "); + } + key = sqlBuffer.toString(); + } - return (sqlBuffer.toString()); + return (key); } private String resolveTerm(String term, SvcLogicContext ctx) { @@ -441,7 +446,7 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin { return (strValue); } else { ResultSet results = null; - try (Connection conn = dblibSvc.getConnection(); + try (Connection conn = dblibSvc.getConnection(); PreparedStatement stmt = conn.prepareStatement("SELECT CAST(AES_DECRYPT(?, ?) AS CHAR(50)) FROM DUAL")) { stmt.setBytes(1, colValue); -- cgit 1.2.3-korg From 75e70fdc849c5e6d44ae5ff10acb81863f9c5fb4 Mon Sep 17 00:00:00 2001 From: Gaurav Agrawal Date: Thu, 12 Mar 2020 14:43:38 +0530 Subject: Updating aai adapter to v19 model Updated AAI XSD model to v19 to make new schema's available to SDNC. Change-Id: I5b82d97e0c96e1593237e0d10d790115bf8be965 Issue-ID: CCSDK-2171 Signed-off-by: Gaurav Agrawal --- aai-service/provider/pom.xml | 4 +- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 2 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 40 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 4 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 10 +- .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 6 +- .../sli/adaptors/aai/GenericQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequest.java | 4 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 2 +- .../sli/adaptors/aai/RelationshipListRequest.java | 2 +- .../sli/adaptors/aai/RelationshipRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/data/SubInterface.java | 4 +- .../sli/adaptors/aai/query/InstanceFilter.java | 20 +- .../onap/ccsdk/sli/adaptors/aai/query/Result.java | 26 +- .../src/main/resources/aai-path.properties | 640 +- .../src/main/resources/aai-schema-bindings.xjb | 2 +- .../provider/src/main/resources/aai_schema_v16.xsd | 9779 -------------------- .../provider/src/main/resources/aai_schema_v19.xsd | 9779 ++++++++++++++++++++ .../src/main/resources/aaiclient.properties | 20 +- .../ccsdk/sli/adaptors/aai/AAIServiceTest.java | 2 +- .../adaptors/aai/AutoGeneratedRegressionTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfTest.java | 2 +- .../sli/adaptors/aai/data/SubInterfaceTest.java | 4 +- .../sli/adaptors/aai/query/InstanceFilterTest.java | 20 +- .../ccsdk/sli/adaptors/aai/query/ResultTest.java | 26 +- .../src/test/resources/aaiclient.properties | 24 +- 27 files changed, 10215 insertions(+), 10215 deletions(-) delete mode 100644 aai-service/provider/src/main/resources/aai_schema_v16.xsd create mode 100644 aai-service/provider/src/main/resources/aai_schema_v19.xsd (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 0f564e858..b0b02caaf 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -120,13 +120,13 @@ ${project.basedir}/src/main/resources - aai_schema_v16.xsd + aai_schema_v19.xsd aai-schema-bindings.xjb ${project.build.directory}/generated-sources/main/java - org.onap.aai.inventory.v16 + org.onap.aai.inventory.v19 true -Xannotate diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 28b4955a4..527c4336d 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -30,7 +30,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Map; -import org.onap.aai.inventory.v16.*; +import org.onap.aai.inventory.v19.*; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index 8b8aaaab6..4066f4620 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -58,25 +58,25 @@ import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; import org.onap.ccsdk.sli.adaptors.aai.query.Result; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.aai.inventory.v16.GenericVnf; -import org.onap.aai.inventory.v16.Image; -import org.onap.aai.inventory.v16.InventoryResponseItem; -import org.onap.aai.inventory.v16.InventoryResponseItems; -import org.onap.aai.inventory.v16.L3Network; -import org.onap.aai.inventory.v16.LogicalLink; -import org.onap.aai.inventory.v16.Metadata; -import org.onap.aai.inventory.v16.Metadatum; -import org.onap.aai.inventory.v16.Pnf; -import org.onap.aai.inventory.v16.RelatedToProperty; -import org.onap.aai.inventory.v16.Relationship; -import org.onap.aai.inventory.v16.RelationshipData; -import org.onap.aai.inventory.v16.RelationshipList; -import org.onap.aai.inventory.v16.ResultData; -import org.onap.aai.inventory.v16.SearchResults; -import org.onap.aai.inventory.v16.ServiceInstance; -import org.onap.aai.inventory.v16.Vlan; -import org.onap.aai.inventory.v16.Vlans; -import org.onap.aai.inventory.v16.Vserver; +import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v19.Image; +import org.onap.aai.inventory.v19.InventoryResponseItem; +import org.onap.aai.inventory.v19.InventoryResponseItems; +import org.onap.aai.inventory.v19.L3Network; +import org.onap.aai.inventory.v19.LogicalLink; +import org.onap.aai.inventory.v19.Metadata; +import org.onap.aai.inventory.v19.Metadatum; +import org.onap.aai.inventory.v19.Pnf; +import org.onap.aai.inventory.v19.RelatedToProperty; +import org.onap.aai.inventory.v19.Relationship; +import org.onap.aai.inventory.v19.RelationshipData; +import org.onap.aai.inventory.v19.RelationshipList; +import org.onap.aai.inventory.v19.ResultData; +import org.onap.aai.inventory.v19.SearchResults; +import org.onap.aai.inventory.v19.ServiceInstance; +import org.onap.aai.inventory.v19.Vlan; +import org.onap.aai.inventory.v19.Vlans; +import org.onap.aai.inventory.v19.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1265,7 +1265,7 @@ public abstract class AAIDeclarations implements AAIClient { getLogger().debug("About to process related link of {}", relatedLink); if(relatedLink != null) { if(relatedLink.contains("v$")) - relatedLink = relatedLink.replace(VERSION_PATTERN, "/v16/"); + relatedLink = relatedLink.replace(VERSION_PATTERN, "/v19/"); relationship.setRelatedLink(relatedLink); } else { Map relParams = new HashMap<>(); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index 42a9369a1..9f0a7ffb5 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -51,7 +51,7 @@ import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; -import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v19.GenericVnf; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; @@ -473,6 +473,6 @@ public abstract class AAIRequest { } public static final String getSupportedAAIVersion() { - return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v16/"); + return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v19/"); } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index c0dc5696b..d5c72738c 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -81,11 +81,11 @@ import org.onap.ccsdk.sli.core.sli.MetricLogger; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.onap.aai.inventory.v16.GenericVnf; -import org.onap.aai.inventory.v16.PhysicalLink; -import org.onap.aai.inventory.v16.ResultData; -import org.onap.aai.inventory.v16.SearchResults; -import org.onap.aai.inventory.v16.Vserver; +import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v19.PhysicalLink; +import org.onap.aai.inventory.v19.ResultData; +import org.onap.aai.inventory.v19.SearchResults; +import org.onap.aai.inventory.v19.Vserver; import org.onap.logging.ref.slf4j.ONAPLogConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index 793fb0f8f..722426503 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -43,9 +43,9 @@ import java.util.Set; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.StringUtils; -import org.onap.aai.inventory.v16.Relationship; -import org.onap.aai.inventory.v16.RelationshipData; -import org.onap.aai.inventory.v16.RelationshipList; +import org.onap.aai.inventory.v19.Relationship; +import org.onap.aai.inventory.v19.RelationshipData; +import org.onap.aai.inventory.v19.RelationshipList; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.slf4j.Logger; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index 5e8b4345d..e30c913b7 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -32,7 +32,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v16.ResultData; +import org.onap.aai.inventory.v19.ResultData; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index 7f15c03f5..3a5fb9bfc 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -40,8 +40,8 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v16.L3Network; -import org.onap.aai.inventory.v16.L3Networks; +import org.onap.aai.inventory.v19.L3Network; +import org.onap.aai.inventory.v19.L3Networks; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java index b95835937..61238af17 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -32,7 +32,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v16.SearchResults; +import org.onap.aai.inventory.v19.SearchResults; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java index 70a7d2357..5ee19d46d 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java @@ -33,7 +33,7 @@ import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.aai.inventory.v16.RelationshipList; +import org.onap.aai.inventory.v19.RelationshipList; public class RelationshipListRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java index eb00bee42..1c70031c3 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -35,7 +35,7 @@ import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.aai.inventory.v16.Relationship; +import org.onap.aai.inventory.v19.Relationship; public class RelationshipRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java index e947d9741..e58662421 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java @@ -31,8 +31,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.onap.aai.inventory.v16.RelationshipList; -import org.onap.aai.inventory.v16.Vlans; +import org.onap.aai.inventory.v19.RelationshipList; +import org.onap.aai.inventory.v19.Vlans; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java index 4f7d922c4..82ba0108f 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java @@ -33,16 +33,16 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.onap.aai.inventory.v16.CloudRegion; -import org.onap.aai.inventory.v16.GenericVnf; -import org.onap.aai.inventory.v16.L3Network; -import org.onap.aai.inventory.v16.Pnf; -import org.onap.aai.inventory.v16.LogicalLink; -import org.onap.aai.inventory.v16.PInterface; -import org.onap.aai.inventory.v16.ServiceInstance; -import org.onap.aai.inventory.v16.Tenant; -import org.onap.aai.inventory.v16.Vnf; -import org.onap.aai.inventory.v16.Vserver; +import org.onap.aai.inventory.v19.CloudRegion; +import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v19.L3Network; +import org.onap.aai.inventory.v19.Pnf; +import org.onap.aai.inventory.v19.LogicalLink; +import org.onap.aai.inventory.v19.PInterface; +import org.onap.aai.inventory.v19.ServiceInstance; +import org.onap.aai.inventory.v19.Tenant; +import org.onap.aai.inventory.v19.Vnf; +import org.onap.aai.inventory.v19.Vserver; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java index b0f1b8b59..794effed7 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java @@ -30,19 +30,19 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import org.onap.aai.inventory.v16.CloudRegion; -import org.onap.aai.inventory.v16.Complex; -import org.onap.aai.inventory.v16.Configuration; -import org.onap.aai.inventory.v16.GenericVnf; -import org.onap.aai.inventory.v16.L3InterfaceIpv4AddressList; -import org.onap.aai.inventory.v16.L3InterfaceIpv6AddressList; -import org.onap.aai.inventory.v16.L3Network; -import org.onap.aai.inventory.v16.LInterface; -//import org.onap.aai.inventory.v16.OwningEntity; -import org.onap.aai.inventory.v16.Pserver; -import org.onap.aai.inventory.v16.ServiceInstance; -import org.onap.aai.inventory.v16.Vnfc; -import org.onap.aai.inventory.v16.Vserver; +import org.onap.aai.inventory.v19.CloudRegion; +import org.onap.aai.inventory.v19.Complex; +import org.onap.aai.inventory.v19.Configuration; +import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v19.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v19.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v19.L3Network; +import org.onap.aai.inventory.v19.LInterface; +//import org.onap.aai.inventory.v19.OwningEntity; +import org.onap.aai.inventory.v19.Pserver; +import org.onap.aai.inventory.v19.ServiceInstance; +import org.onap.aai.inventory.v19.Vnfc; +import org.onap.aai.inventory.v19.Vserver; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/aai-service/provider/src/main/resources/aai-path.properties b/aai-service/provider/src/main/resources/aai-path.properties index c980634a1..80fbd1f48 100755 --- a/aai-service/provider/src/main/resources/aai-path.properties +++ b/aai-service/provider/src/main/resources/aai-path.properties @@ -19,323 +19,323 @@ # ============LICENSE_END========================================================= ### -cloud-regions = /aai/v16/cloud-infrastructure/cloud-regions -cloud-region = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} -cloud-region|availability-zones = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones -cloud-region|availability-zone = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} -cloud-region|dvs-switches = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -cloud-region|dvs-switch = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} -cloud-region|flavors = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors -cloud-region|flavor = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} -cloud-region|flavor|hpa-capabilities = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities -cloud-region|flavor|hpa-capability = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|group-assignments = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments -cloud-region|group-assignment = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} -cloud-region|hpa-capabilities = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities -cloud-region|hpa-capability = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|hpa-capability|hpa-feature-attributes = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|images = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images -cloud-region|image = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} -cloud-region|image|metadata = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata -cloud-region|image|metadatum = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} -cloud-region|oam-networks = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks -cloud-region|oam-network = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} -cloud-region|snapshots = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots -cloud-region|snapshot = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} -cloud-region|tenants = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants -cloud-region|tenant = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -cloud-region|tenant|vservers = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers -cloud-region|tenant|vserver = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} -cloud-region|tenant|vserver|l-interfaces = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces -cloud-region|tenant|vserver|l-interface = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -cloud-region|tenant|vserver|l-interface|vlans = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans -cloud-region|tenant|vserver|l-interface|vlan = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|volumes = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes -cloud-region|tenant|vserver|volume = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} -cloud-region|vip-ipv4-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} -cloud-region|vip-ipv6-address-list = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} -cloud-region|volume-groups = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups -cloud-region|volume-group = /aai/v16/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} -complexes = /aai/v16/cloud-infrastructure/complexes -complex = /aai/v16/cloud-infrastructure/complexes/complex/{physical-location-id} -complex|ctag-pools = /aai/v16/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -complex|ctag-pool = /aai/v16/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} -network-profiles = /aai/v16/cloud-infrastructure/network-profiles -network-profile = /aai/v16/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} -operational-environments = /aai/v16/cloud-infrastructure/operational-environments -operational-environment = /aai/v16/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} -pservers = /aai/v16/cloud-infrastructure/pservers -pserver = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname} -pserver|lag-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces -pserver|lag-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} -pserver|lag-interface|l-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pserver|lag-interface|l-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface|sriov-vfs = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|lag-interface|l-interface|sriov-vf = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|lag-interface|l-interface|vlans = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|lag-interface|l-interface|vlan = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -pserver|p-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} -pserver|p-interface|l-interfaces = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces -pserver|p-interface|l-interface = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface|sriov-vfs = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|p-interface|l-interface|sriov-vf = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|p-interface|l-interface|vlans = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|p-interface|l-interface|vlan = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|sriov-pfs = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pserver|p-interface|sriov-pf = /aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -virtual-data-centers = /aai/v16/cloud-infrastructure/virtual-data-centers -virtual-data-center = /aai/v16/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} -connectors = /aai/v16/business/connectors -connector = /aai/v16/business/connectors/connector/{resource-instance-id} -connector|metadata = /aai/v16/business/connectors/connector/{resource-instance-id}/metadata -connector|metadatum = /aai/v16/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} -customers = /aai/v16/business/customers -customer = /aai/v16/business/customers/customer/{global-customer-id} -customer|service-subscriptions = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions -customer|service-subscription = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} -customer|service-subscription|service-instances = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -customer|service-subscription|service-instance = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -customer|service-subscription|service-instance|allotted-resources = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources -customer|service-subscription|service-instance|allotted-resource = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} -customer|service-subscription|service-instance|metadata = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata -customer|service-subscription|service-instance|metadatum = /aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} -configurations = /aai/v16/network/configurations -configuration = /aai/v16/network/configurations/configuration/{configuration-id} -configuration|evcs = /aai/v16/network/configurations/configuration/{configuration-id}/evcs -configuration|evc = /aai/v16/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} -configuration|forwarder-evcs = /aai/v16/network/configurations/configuration/{configuration-id}/forwarder-evcs -configuration|forwarder-evc = /aai/v16/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} -configuration|metadata = /aai/v16/network/configurations/configuration/{configuration-id}/metadata -configuration|metadatum = /aai/v16/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} -connectivities = /aai/v16/network/connectivities -connectivity = /aai/v16/network/connectivities/connectivity/{connectivity-id} -devices = /aai/v16/network/devices -device = /aai/v16/network/devices/device/{device-id} -esr-thirdparty-sdnc = /aai/v16/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} -esr-thirdparty-sdnc-list = /aai/v16/external-system/esr-thirdparty-sdnc-list -forwarding-paths = /aai/v16/network/forwarding-paths -forwarding-path = /aai/v16/network/forwarding-paths/forwarding-path/{forwarding-path-id} -forwarding-path|forwarders = /aai/v16/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders -forwarding-path|forwarder = /aai/v16/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} -generic-vnfs = /aai/v16/network/generic-vnfs -generic-vnf = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id} -generic-vnf|entitlements = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements -generic-vnf|entitlement = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -generic-vnf|l-interfaces = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces -generic-vnf|l-interface = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} -generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface|sriov-vfs = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|l-interface|sriov-vf = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|l-interface|vlans = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|l-interface|vlan = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interfaces = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces -generic-vnf|lag-interface = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -generic-vnf|lag-interface|l-interfaces = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -generic-vnf|lag-interface|l-interface = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|lag-interface|l-interface|vlans = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|lag-interface|l-interface|vlan = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|licenses = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/licenses -generic-vnf|license = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -generic-vnf|vf-modules = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules -generic-vnf|vf-module = /aai/v16/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} -instance-groups = /aai/v16/network/instance-groups -instance-group = /aai/v16/network/instance-groups/instance-group/{id} -ipsec-configurations = /aai/v16/network/ipsec-configurations -ipsec-configuration = /aai/v16/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} -ipsec-configuration|vig-servers = /aai/v16/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers -ipsec-configuration|vig-server = /aai/v16/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} -l3-networks = /aai/v16/network/l3-networks -l3-network = /aai/v16/network/l3-networks/l3-network/{network-id} -l3-network|ctag-assignments = /aai/v16/network/l3-networks/l3-network/{network-id}/ctag-assignments -l3-network|ctag-assignment = /aai/v16/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} -l3-network|segmentation-assignments = /aai/v16/network/l3-networks/l3-network/{network-id}/segmentation-assignments -l3-network|segmentation-assignment = /aai/v16/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} -l3-network|subnets = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets -l3-network|subnet = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} -l3-network|subnet|host-routes = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes -l3-network|subnet|host-route = /aai/v16/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} -lag-links = /aai/v16/network/lag-links -lag-link = /aai/v16/network/lag-links/lag-link/{link-name} -lines-of-business = /aai/v16/business/lines-of-business -line-of-business = /aai/v16/business/lines-of-business/line-of-business/{line-of-business-name} -logical-links = /aai/v16/network/logical-links -logical-link = /aai/v16/network/logical-links/logical-link/{link-name} -models = /aai/v16/service-design-and-creation/models -model = /aai/v16/service-design-and-creation/models/model/{model-invariant-id} -model|model-vers = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers -model|model-ver = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} -model|model-ver|metadata = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata -model|model-ver|metadatum = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} -model|model-ver|model-elements = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements -model|model-ver|model-element = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} -model|model-ver|model-element|model-constraints = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints -model|model-ver|model-element|model-constraint = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} -model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets -model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v16/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} -multicast-configurations = /aai/v16/network/multicast-configurations -multicast-configuration = /aai/v16/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -named-queries = /aai/v16/service-design-and-creation/named-queries -named-query = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid} -named-query|named-query-elements = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements -named-query|named-query-element = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} -named-query|named-query-element|property-constraints = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints -named-query|named-query-element|property-constraint = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} -named-query|named-query-element|related-lookups = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups -named-query|named-query-element|related-lookup = /aai/v16/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} -network-policies = /aai/v16/network/network-policies -network-policy = /aai/v16/network/network-policies/network-policy/{network-policy-id} -network-resources = /aai/v16/network/network-resources -network-resource = /aai/v16/network/network-resources/network-resource/{network-id} -newvces = /aai/v16/network/newvces -newvce = /aai/v16/network/newvces/newvce/{vnf-id2} -newvce|l-interfaces = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces -newvce|l-interface = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} -newvce|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface|sriov-vfs = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs -newvce|l-interface|sriov-vf = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -newvce|l-interface|vlans = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans -newvce|l-interface|vlan = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -owning-entities = /aai/v16/business/owning-entities -owning-entity = /aai/v16/business/owning-entities/owning-entity/{owning-entity-id} -physical-links = /aai/v16/network/physical-links -physical-link = /aai/v16/network/physical-links/physical-link/{link-name} -platforms = /aai/v16/business/platforms -platform = /aai/v16/business/platforms/platform/{platform-name} -pnfs = /aai/v16/network/pnfs -pnf = /aai/v16/network/pnfs/pnf/{pnf-name} -pnf|lag-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces -pnf|lag-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} -pnf|lag-interface|l-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pnf|lag-interface|l-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface|sriov-vfs = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|lag-interface|l-interface|sriov-vf = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|lag-interface|l-interface|vlans = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|lag-interface|l-interface|vlan = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces -pnf|p-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} -pnf|p-interface|l-interfaces = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -pnf|p-interface|l-interface = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface|sriov-vfs = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|p-interface|l-interface|sriov-vf = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|p-interface|l-interface|vlans = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|p-interface|l-interface|vlan = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|sriov-pfs = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pnf|p-interface|sriov-pf = /aai/v16/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -projects = /aai/v16/business/projects -project = /aai/v16/business/projects/project/{project-name} -route-table-references = /aai/v16/network/route-table-references -route-table-reference = /aai/v16/network/route-table-references/route-table-reference/{route-table-reference-id} -sdwan-vpns = /aai/v16/network/sdwan-vpns -sdwan-vpn = /aai/v16/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id} -service-capabilities = /aai/v16/service-design-and-creation/service-capabilities -service-capability = /aai/v16/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} -services = /aai/v16/service-design-and-creation/services -service = /aai/v16/service-design-and-creation/services/service/{service-id} -site-pair-sets = /aai/v16/network/site-pair-sets -site-pair-set = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id} -site-pair-set|routing-instances = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances -site-pair-set|routing-instance = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} -site-pair-set|routing-instance|site-pairs = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs -site-pair-set|routing-instance|site-pair = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} -site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service -site-pair-set|routing-instance|site-pair|class-of-service = /aai/v16/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} -site-resources = /aai/v16/network/site-resources -site-resource = /aai/v16/network/site-resources/site-resource/{site-resource-id} -vces = /aai/v16/network/vces -vce = /aai/v16/network/vces/vce/{vnf-id} -vce|entitlements = /aai/v16/network/vces/vce/{vnf-id}/entitlements -vce|entitlement = /aai/v16/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vce|licenses = /aai/v16/network/vces/vce/{vnf-id}/licenses -vce|license = /aai/v16/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vce|port-groups = /aai/v16/network/vces/vce/{vnf-id}/port-groups -vce|port-group = /aai/v16/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} -vce|port-group|cvlan-tags = /aai/v16/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags -vce|port-group|cvlan-tag-entry = /aai/v16/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} -vnf-images = /aai/v16/service-design-and-creation/vnf-images -vnf-image = /aai/v16/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} -vnfcs = /aai/v16/network/vnfcs -vnfc = /aai/v16/network/vnfcs/vnfc/{vnfc-name} -vnfc|cps = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/cps -vnfc|cp = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id} -vnfc|cp|l3-interface-ipv4-address-list = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vnfc|cp|l3-interface-ipv6-address-list = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vnfc|l3-interface-ipv4-address-list = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vnfc|l3-interface-ipv6-address-list = /aai/v16/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pes = /aai/v16/network/vpls-pes -vpls-pe = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name} -vpls-pe|lag-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces -vpls-pe|lag-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} -vpls-pe|lag-interface|l-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -vpls-pe|lag-interface|l-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|lag-interface|l-interface|vlans = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|lag-interface|l-interface|vlan = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces -vpls-pe|p-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} -vpls-pe|p-interface|l-interfaces = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -vpls-pe|p-interface|l-interface = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|p-interface|l-interface|sriov-vf = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|p-interface|l-interface|vlans = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|p-interface|l-interface|vlan = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|sriov-pfs = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -vpls-pe|p-interface|sriov-pf = /aai/v16/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -vpn-bindings = /aai/v16/network/vpn-bindings -vpn-binding = /aai/v16/network/vpn-bindings/vpn-binding/{vpn-id} -vpn-binding|route-targets = /aai/v16/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets -vpn-binding|route-target = /aai/v16/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} -wan-port-configs = /aai/v16/network/wan-port-configs -wan-port-config = /aai/v16/network/wan-port-configs/wan-port-config/{wan-port-config-id} -lan-port-configs = /aai/v16/network/lan-port-configs -lan-port-config = /aai/v16/network/lan-port-configs/lan-port-config/{lan-port-config-id} -zones = /aai/v16/network/zones -zone = /aai/v16/network/zones/zone/{zone-id} +cloud-regions = /aai/v19/cloud-infrastructure/cloud-regions +cloud-region = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +cloud-region|availability-zones = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones +cloud-region|availability-zone = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} +cloud-region|dvs-switches = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +cloud-region|dvs-switch = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +cloud-region|flavors = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors +cloud-region|flavor = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} +cloud-region|flavor|hpa-capabilities = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities +cloud-region|flavor|hpa-capability = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|group-assignments = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments +cloud-region|group-assignment = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} +cloud-region|hpa-capabilities = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities +cloud-region|hpa-capability = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|hpa-capability|hpa-feature-attributes = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|images = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images +cloud-region|image = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} +cloud-region|image|metadata = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata +cloud-region|image|metadatum = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} +cloud-region|oam-networks = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks +cloud-region|oam-network = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +cloud-region|snapshots = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots +cloud-region|snapshot = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} +cloud-region|tenants = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants +cloud-region|tenant = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +cloud-region|tenant|vservers = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers +cloud-region|tenant|vserver = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +cloud-region|tenant|vserver|l-interfaces = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces +cloud-region|tenant|vserver|l-interface = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +cloud-region|tenant|vserver|l-interface|vlans = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans +cloud-region|tenant|vserver|l-interface|vlan = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|volumes = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes +cloud-region|tenant|vserver|volume = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} +cloud-region|vip-ipv4-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} +cloud-region|vip-ipv6-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} +cloud-region|volume-groups = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups +cloud-region|volume-group = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +complexes = /aai/v19/cloud-infrastructure/complexes +complex = /aai/v19/cloud-infrastructure/complexes/complex/{physical-location-id} +complex|ctag-pools = /aai/v19/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +complex|ctag-pool = /aai/v19/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +network-profiles = /aai/v19/cloud-infrastructure/network-profiles +network-profile = /aai/v19/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} +operational-environments = /aai/v19/cloud-infrastructure/operational-environments +operational-environment = /aai/v19/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} +pservers = /aai/v19/cloud-infrastructure/pservers +pserver = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname} +pserver|lag-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces +pserver|lag-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} +pserver|lag-interface|l-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pserver|lag-interface|l-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface|sriov-vfs = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|lag-interface|l-interface|sriov-vf = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|lag-interface|l-interface|vlans = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|lag-interface|l-interface|vlan = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +pserver|p-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +pserver|p-interface|l-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces +pserver|p-interface|l-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface|sriov-vfs = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|p-interface|l-interface|sriov-vf = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|p-interface|l-interface|vlans = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|p-interface|l-interface|vlan = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|sriov-pfs = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pserver|p-interface|sriov-pf = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +virtual-data-centers = /aai/v19/cloud-infrastructure/virtual-data-centers +virtual-data-center = /aai/v19/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +connectors = /aai/v19/business/connectors +connector = /aai/v19/business/connectors/connector/{resource-instance-id} +connector|metadata = /aai/v19/business/connectors/connector/{resource-instance-id}/metadata +connector|metadatum = /aai/v19/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} +customers = /aai/v19/business/customers +customer = /aai/v19/business/customers/customer/{global-customer-id} +customer|service-subscriptions = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions +customer|service-subscription = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +customer|service-subscription|service-instances = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +customer|service-subscription|service-instance = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +customer|service-subscription|service-instance|allotted-resources = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources +customer|service-subscription|service-instance|allotted-resource = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} +customer|service-subscription|service-instance|metadata = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata +customer|service-subscription|service-instance|metadatum = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} +configurations = /aai/v19/network/configurations +configuration = /aai/v19/network/configurations/configuration/{configuration-id} +configuration|evcs = /aai/v19/network/configurations/configuration/{configuration-id}/evcs +configuration|evc = /aai/v19/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} +configuration|forwarder-evcs = /aai/v19/network/configurations/configuration/{configuration-id}/forwarder-evcs +configuration|forwarder-evc = /aai/v19/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} +configuration|metadata = /aai/v19/network/configurations/configuration/{configuration-id}/metadata +configuration|metadatum = /aai/v19/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} +connectivities = /aai/v19/network/connectivities +connectivity = /aai/v19/network/connectivities/connectivity/{connectivity-id} +devices = /aai/v19/network/devices +device = /aai/v19/network/devices/device/{device-id} +esr-thirdparty-sdnc = /aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} +esr-thirdparty-sdnc-list = /aai/v19/external-system/esr-thirdparty-sdnc-list +forwarding-paths = /aai/v19/network/forwarding-paths +forwarding-path = /aai/v19/network/forwarding-paths/forwarding-path/{forwarding-path-id} +forwarding-path|forwarders = /aai/v19/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders +forwarding-path|forwarder = /aai/v19/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} +generic-vnfs = /aai/v19/network/generic-vnfs +generic-vnf = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id} +generic-vnf|entitlements = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements +generic-vnf|entitlement = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +generic-vnf|l-interfaces = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces +generic-vnf|l-interface = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface|sriov-vfs = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|l-interface|sriov-vf = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|l-interface|vlans = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|l-interface|vlan = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interfaces = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces +generic-vnf|lag-interface = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +generic-vnf|lag-interface|l-interfaces = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +generic-vnf|lag-interface|l-interface = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|lag-interface|l-interface|vlans = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|lag-interface|l-interface|vlan = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|licenses = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/licenses +generic-vnf|license = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +generic-vnf|vf-modules = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules +generic-vnf|vf-module = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +instance-groups = /aai/v19/network/instance-groups +instance-group = /aai/v19/network/instance-groups/instance-group/{id} +ipsec-configurations = /aai/v19/network/ipsec-configurations +ipsec-configuration = /aai/v19/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +ipsec-configuration|vig-servers = /aai/v19/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers +ipsec-configuration|vig-server = /aai/v19/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +l3-networks = /aai/v19/network/l3-networks +l3-network = /aai/v19/network/l3-networks/l3-network/{network-id} +l3-network|ctag-assignments = /aai/v19/network/l3-networks/l3-network/{network-id}/ctag-assignments +l3-network|ctag-assignment = /aai/v19/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} +l3-network|segmentation-assignments = /aai/v19/network/l3-networks/l3-network/{network-id}/segmentation-assignments +l3-network|segmentation-assignment = /aai/v19/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} +l3-network|subnets = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets +l3-network|subnet = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +l3-network|subnet|host-routes = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes +l3-network|subnet|host-route = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} +lag-links = /aai/v19/network/lag-links +lag-link = /aai/v19/network/lag-links/lag-link/{link-name} +lines-of-business = /aai/v19/business/lines-of-business +line-of-business = /aai/v19/business/lines-of-business/line-of-business/{line-of-business-name} +logical-links = /aai/v19/network/logical-links +logical-link = /aai/v19/network/logical-links/logical-link/{link-name} +models = /aai/v19/service-design-and-creation/models +model = /aai/v19/service-design-and-creation/models/model/{model-invariant-id} +model|model-vers = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers +model|model-ver = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} +model|model-ver|metadata = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata +model|model-ver|metadatum = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} +model|model-ver|model-elements = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements +model|model-ver|model-element = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} +model|model-ver|model-element|model-constraints = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints +model|model-ver|model-element|model-constraint = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} +model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets +model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} +multicast-configurations = /aai/v19/network/multicast-configurations +multicast-configuration = /aai/v19/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +named-queries = /aai/v19/service-design-and-creation/named-queries +named-query = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid} +named-query|named-query-elements = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements +named-query|named-query-element = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} +named-query|named-query-element|property-constraints = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints +named-query|named-query-element|property-constraint = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} +named-query|named-query-element|related-lookups = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups +named-query|named-query-element|related-lookup = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} +network-policies = /aai/v19/network/network-policies +network-policy = /aai/v19/network/network-policies/network-policy/{network-policy-id} +network-resources = /aai/v19/network/network-resources +network-resource = /aai/v19/network/network-resources/network-resource/{network-id} +newvces = /aai/v19/network/newvces +newvce = /aai/v19/network/newvces/newvce/{vnf-id2} +newvce|l-interfaces = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces +newvce|l-interface = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} +newvce|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface|sriov-vfs = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs +newvce|l-interface|sriov-vf = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +newvce|l-interface|vlans = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans +newvce|l-interface|vlan = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +owning-entities = /aai/v19/business/owning-entities +owning-entity = /aai/v19/business/owning-entities/owning-entity/{owning-entity-id} +physical-links = /aai/v19/network/physical-links +physical-link = /aai/v19/network/physical-links/physical-link/{link-name} +platforms = /aai/v19/business/platforms +platform = /aai/v19/business/platforms/platform/{platform-name} +pnfs = /aai/v19/network/pnfs +pnf = /aai/v19/network/pnfs/pnf/{pnf-name} +pnf|lag-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces +pnf|lag-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} +pnf|lag-interface|l-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pnf|lag-interface|l-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface|sriov-vfs = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|lag-interface|l-interface|sriov-vf = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|lag-interface|l-interface|vlans = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|lag-interface|l-interface|vlan = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces +pnf|p-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} +pnf|p-interface|l-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +pnf|p-interface|l-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface|sriov-vfs = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|p-interface|l-interface|sriov-vf = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|p-interface|l-interface|vlans = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|p-interface|l-interface|vlan = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|sriov-pfs = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pnf|p-interface|sriov-pf = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +projects = /aai/v19/business/projects +project = /aai/v19/business/projects/project/{project-name} +route-table-references = /aai/v19/network/route-table-references +route-table-reference = /aai/v19/network/route-table-references/route-table-reference/{route-table-reference-id} +sdwan-vpns = /aai/v19/network/sdwan-vpns +sdwan-vpn = /aai/v19/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id} +service-capabilities = /aai/v19/service-design-and-creation/service-capabilities +service-capability = /aai/v19/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} +services = /aai/v19/service-design-and-creation/services +service = /aai/v19/service-design-and-creation/services/service/{service-id} +site-pair-sets = /aai/v19/network/site-pair-sets +site-pair-set = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id} +site-pair-set|routing-instances = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances +site-pair-set|routing-instance = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +site-pair-set|routing-instance|site-pairs = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs +site-pair-set|routing-instance|site-pair = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service +site-pair-set|routing-instance|site-pair|class-of-service = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} +site-resources = /aai/v19/network/site-resources +site-resource = /aai/v19/network/site-resources/site-resource/{site-resource-id} +vces = /aai/v19/network/vces +vce = /aai/v19/network/vces/vce/{vnf-id} +vce|entitlements = /aai/v19/network/vces/vce/{vnf-id}/entitlements +vce|entitlement = /aai/v19/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vce|licenses = /aai/v19/network/vces/vce/{vnf-id}/licenses +vce|license = /aai/v19/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vce|port-groups = /aai/v19/network/vces/vce/{vnf-id}/port-groups +vce|port-group = /aai/v19/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} +vce|port-group|cvlan-tags = /aai/v19/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags +vce|port-group|cvlan-tag-entry = /aai/v19/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} +vnf-images = /aai/v19/service-design-and-creation/vnf-images +vnf-image = /aai/v19/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} +vnfcs = /aai/v19/network/vnfcs +vnfc = /aai/v19/network/vnfcs/vnfc/{vnfc-name} +vnfc|cps = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps +vnfc|cp = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id} +vnfc|cp|l3-interface-ipv4-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|cp|l3-interface-ipv6-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vnfc|l3-interface-ipv4-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|l3-interface-ipv6-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pes = /aai/v19/network/vpls-pes +vpls-pe = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name} +vpls-pe|lag-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces +vpls-pe|lag-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} +vpls-pe|lag-interface|l-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +vpls-pe|lag-interface|l-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|lag-interface|l-interface|vlans = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|lag-interface|l-interface|vlan = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces +vpls-pe|p-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} +vpls-pe|p-interface|l-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +vpls-pe|p-interface|l-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|p-interface|l-interface|sriov-vf = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|p-interface|l-interface|vlans = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|p-interface|l-interface|vlan = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|sriov-pfs = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +vpls-pe|p-interface|sriov-pf = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +vpn-bindings = /aai/v19/network/vpn-bindings +vpn-binding = /aai/v19/network/vpn-bindings/vpn-binding/{vpn-id} +vpn-binding|route-targets = /aai/v19/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets +vpn-binding|route-target = /aai/v19/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} +wan-port-configs = /aai/v19/network/wan-port-configs +wan-port-config = /aai/v19/network/wan-port-configs/wan-port-config/{wan-port-config-id} +lan-port-configs = /aai/v19/network/lan-port-configs +lan-port-config = /aai/v19/network/lan-port-configs/lan-port-config/{lan-port-config-id} +zones = /aai/v19/network/zones +zone = /aai/v19/network/zones/zone/{zone-id} diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index e7e432247..880f4e1c1 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -3,7 +3,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"> - + diff --git a/aai-service/provider/src/main/resources/aai_schema_v16.xsd b/aai-service/provider/src/main/resources/aai_schema_v16.xsd deleted file mode 100644 index 15d2bae1f..000000000 --- a/aai-service/provider/src/main/resources/aai_schema_v16.xsd +++ /dev/null @@ -1,9779 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="cvlan-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") - - - - - - - @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the volume group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") - - - - - - - @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC address for the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of nos") - - - - - - - @org.onap.aai.annotations.Metadata(description="uCPE vendor") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Readable name of tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA schema version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hardware architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of CPUs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of memory") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") - - - - - - - @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group description - description of the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Snapshot name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Image name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of availability zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vendor of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="version of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="url used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="username used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service port of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="domain info for authentication.") - - - - - - - @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") - - - - - - - @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the status of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network profiles") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="inventory status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="PTNII name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of cpus") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="alternative pserver name") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose of pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Tenant Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Workload Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") - - - - - - - @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for external system.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing the service role.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="create time of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="last update of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="short description for service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") - - - - - - - @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service instances") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") - - - - - - - @org.onap.aai.annotations.Metadata(description="Owning entity name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of platforms") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of projects") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description of the service") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service version") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") - - - - - - - @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Distribution Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") - - - - - - - @org.onap.aai.annotations.Metadata(description="For example, static or BGP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="class-of-service of probe") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="probe within a set") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="rpm owner") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of route target information") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN Name") - - - - - - - @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") - - - - - - - @org.onap.aai.annotations.Metadata(description="region of customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="id for this customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag-cvlan-tag}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") - - - - - - - @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") - - - - - - - @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of connection points.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") - - - - - - - @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") - - - - - - - @org.onap.aai.annotations.Metadata(description="subnet prefix") - - - - - - - @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="gateway ip address") - - - - - - - @org.onap.aai.annotations.Metadata(description="network start address") - - - - - - - @org.onap.aai.annotations.Metadata(description="cidr mask") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="sequence of the subnet") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="network role instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vf-module") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf instance id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf discriptor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 Loopback address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 management address") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of network in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="as-number of the VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VNFs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="source of name2") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of pnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") - - - - - - - @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number of the device") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit it") - - - - - - - @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") - - - - - - - @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") - - - - - - - @org.onap.aai.annotations.Metadata(description="can be 1 or 2") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") - - - - - - - @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="enable PFS or not") - - - - - - - @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") - - - - - - - @org.onap.aai.annotations.Metadata(description="The time between DPD probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the instance group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance-Group Function") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="English name associated with the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a zone.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal VLAN.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") - - - - - - - @org.onap.aai.annotations.Metadata(description="Commited Information Rate") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diversity Group ID") - - - - - - - @org.onap.aai.annotations.Metadata(description="formerly Performance Group") - - - - - - - @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Identifies ESP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") - - - - - - - @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of configurations") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") - - - - - - - @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the FP") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the self link for this FP") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="collection name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection type") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection Role") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection function") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") - - - - - - - @org.onap.aai.annotations.Metadata(description="VLAN inner id") - - - - - - - @org.onap.aai.annotations.Metadata(description="VLAN outer id") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of connectivities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network-resources") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") - - - - - - - @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of site-resources") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the class of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the version of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of devices") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - - - - - - - - - - - - - - - diff --git a/aai-service/provider/src/main/resources/aai_schema_v19.xsd b/aai-service/provider/src/main/resources/aai_schema_v19.xsd new file mode 100644 index 000000000..288ac37c0 --- /dev/null +++ b/aai-service/provider/src/main/resources/aai_schema_v19.xsd @@ -0,0 +1,9779 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of nos") + + + + + + + @org.onap.aai.annotations.Metadata(description="uCPE vendor") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata",uriTemplate="/metadata/metadatum/{metaname}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag-cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connection points.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed by ATT or customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,description,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,model-invariant-id,model-version-id",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id",container="collections",uriTemplate="/network/collections/collection/{collection-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN inner id") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN outer id") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connectivities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") + + + + + + + @org.onap.aai.annotations.Metadata(description="copied from complex class to reduce join queries") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of site-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,operational-status",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the class of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the version of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of devices") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,port-type,port-number,device-port-id,wan-port-id,operational-status",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-service/provider/src/main/resources/aaiclient.properties b/aai-service/provider/src/main/resources/aaiclient.properties index 5e13e9f39..9d69df6e8 100755 --- a/aai-service/provider/src/main/resources/aaiclient.properties +++ b/aai-service/provider/src/main/resources/aaiclient.properties @@ -42,30 +42,30 @@ connection.timeout=60000 read.timeout=60000 # aai version -org.onap.ccsdk.sli.adaptors.aai.version=/v16/ +org.onap.ccsdk.sli.adaptors.aai.version=/v19/ # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v16/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v16/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v16/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v19/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v19/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v19/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v16/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v19/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v16/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v19/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v16/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v19/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java index f0be45877..9cc661ff7 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -51,7 +51,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.onap.aai.inventory.v16.*; +import org.onap.aai.inventory.v19.*; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index 9030cf9b1..bdeb9ddef 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -62,7 +62,7 @@ import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v19.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.annotation.AnnotationUtils; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java index f56eee9fc..8030201a2 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -38,7 +38,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v16.LInterface; +import org.onap.aai.inventory.v19.LInterface; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java index 0b715fc39..f5339c24f 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -49,7 +49,7 @@ import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; import org.onap.ccsdk.sli.adaptors.aai.AAIService; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.aai.inventory.v16.GenericVnf; +import org.onap.aai.inventory.v19.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java index f0c844785..3ab823f57 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java @@ -10,8 +10,8 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v16.RelationshipList; -import org.onap.aai.inventory.v16.Vlans; +import org.onap.aai.inventory.v19.RelationshipList; +import org.onap.aai.inventory.v19.Vlans; public class SubInterfaceTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java index 8bc2c93ca..421c28803 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java @@ -9,16 +9,16 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v16.CloudRegion; -import org.onap.aai.inventory.v16.GenericVnf; -import org.onap.aai.inventory.v16.L3Network; -import org.onap.aai.inventory.v16.LogicalLink; -import org.onap.aai.inventory.v16.PInterface; -import org.onap.aai.inventory.v16.Pnf; -import org.onap.aai.inventory.v16.ServiceInstance; -import org.onap.aai.inventory.v16.Tenant; -import org.onap.aai.inventory.v16.Vnf; -import org.onap.aai.inventory.v16.Vserver; +import org.onap.aai.inventory.v19.CloudRegion; +import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v19.L3Network; +import org.onap.aai.inventory.v19.LogicalLink; +import org.onap.aai.inventory.v19.PInterface; +import org.onap.aai.inventory.v19.Pnf; +import org.onap.aai.inventory.v19.ServiceInstance; +import org.onap.aai.inventory.v19.Tenant; +import org.onap.aai.inventory.v19.Vnf; +import org.onap.aai.inventory.v19.Vserver; public class InstanceFilterTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java index a4f862407..c6365ae1e 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java @@ -10,19 +10,19 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v16.CloudRegion; -import org.onap.aai.inventory.v16.Complex; -import org.onap.aai.inventory.v16.Configuration; -import org.onap.aai.inventory.v16.GenericVnf; -import org.onap.aai.inventory.v16.L3InterfaceIpv4AddressList; -import org.onap.aai.inventory.v16.L3InterfaceIpv6AddressList; -import org.onap.aai.inventory.v16.L3Network; -import org.onap.aai.inventory.v16.LInterface; -//import org.onap.aai.inventory.v16.OwningEntity; -import org.onap.aai.inventory.v16.Pserver; -import org.onap.aai.inventory.v16.ServiceInstance; -import org.onap.aai.inventory.v16.Vnfc; -import org.onap.aai.inventory.v16.Vserver; +import org.onap.aai.inventory.v19.CloudRegion; +import org.onap.aai.inventory.v19.Complex; +import org.onap.aai.inventory.v19.Configuration; +import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v19.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v19.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v19.L3Network; +import org.onap.aai.inventory.v19.LInterface; +//import org.onap.aai.inventory.v19.OwningEntity; +import org.onap.aai.inventory.v19.Pserver; +import org.onap.aai.inventory.v19.ServiceInstance; +import org.onap.aai.inventory.v19.Vnfc; +import org.onap.aai.inventory.v19.Vserver; public class ResultTest { diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index 58ff0dfcd..1a6213cf2 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -42,34 +42,34 @@ connection.timeout=60000 read.timeout=60000 # aai version -org.onap.ccsdk.sli.adaptors.aai.version=/v16/ +org.onap.ccsdk.sli.adaptors.aai.version=/v19/ # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v16/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v16/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v16/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v19/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v19/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v19/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v16/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v19/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v16/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v19/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v16/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v16/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v16/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v19/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v16/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting -- cgit 1.2.3-korg From 319ef7c25ee522d27396707ac6a9f5168ecd8820 Mon Sep 17 00:00:00 2001 From: Rupinder Date: Wed, 27 May 2020 14:30:04 +0530 Subject: added assert statements in 5 test files Issue-ID: CCSDK-2232 Change-Id: I31033bc267381cf9f07701e4ebacbd318d3070d9 Signed-off-by: Rupinder --- .../org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java | 6 ++++++ .../java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java | 1 + .../test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java | 7 ++++--- .../org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java | 1 + .../java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java | 4 ++++ 5 files changed, 16 insertions(+), 3 deletions(-) (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java index 9905991a7..b0272f5d0 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java @@ -6,6 +6,7 @@ import java.util.Properties; import org.junit.BeforeClass; import org.junit.Test; +import static org.junit.Assert.assertNotNull; public class AAIClientRESTExecutorTest { @@ -35,6 +36,7 @@ public class AAIClientRESTExecutorTest { } catch (AAIServiceException e) { } assert(true); + assertNotNull(nameValues); } @Test @@ -47,6 +49,7 @@ public class AAIClientRESTExecutorTest { } catch (AAIServiceException e) { } assert(true); + assertNotNull(nameValues); } @Test @@ -59,6 +62,7 @@ public class AAIClientRESTExecutorTest { } catch (AAIServiceException e) { } assert(true); + assertNotNull(nameValues); } @Test @@ -71,6 +75,7 @@ public class AAIClientRESTExecutorTest { } catch (AAIServiceException e) { } assert(true); + assertNotNull(nameValues); } @Test @@ -83,6 +88,7 @@ public class AAIClientRESTExecutorTest { } catch (AAIServiceException e) { } assert(true); + assertNotNull(nameValues); } diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java index 607182ea9..64f9b45ef 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/ActionUpdateTest.java @@ -19,6 +19,7 @@ public class ActionUpdateTest { public void setActionData() throws Exception { final Action resolver = new Action(); resolver.setActionData( new ArrayList()); + assertNotNull(resolver); } @Test diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java index f5339c24f..f0a33fd0a 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -105,12 +105,14 @@ public class GenericVnfTest { data.put("encrypted-access-flag","true"); QueryStatus resp = client.save("generic-vnf", false, false, "generic-vnf.vnf-id = '"+uuid+"'", data, "aaidata", ctx); + assertNotNull(ctx); } catch (Throwable e) { } + ; } @Test @@ -130,8 +132,7 @@ public class GenericVnfTest { assertTrue(response == QueryStatus.SUCCESS); LOG.info("AAIResponse: " + response.toString()); } - catch (Exception e) - { + catch (Exception e) { LOG.error("Caught exception", e); fail("Caught exception"); } @@ -155,7 +156,7 @@ public class GenericVnfTest { data.put("encrypted-access-flag","true"); QueryStatus resp = client.update("generic-vnf", "generic-vnf.vnf-id = '"+uuid+"'", data, "aaidata", ctx); - + assertNotNull(uuid); } catch (Throwable e) { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java index 33b383950..e52f1de04 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequestTest.java @@ -40,6 +40,7 @@ public class NodesQueryRequestTest { try { URL url = request.getRequestUrl("GET", null); + assertNotNull(url); } catch (Exception exc) { } assert(true); diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java index f9ec9f49b..098414fd9 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/PathCreationTest.java @@ -22,6 +22,7 @@ package org.onap.ccsdk.sli.adaptors.aai; import static org.junit.Assert.fail; +import static org.junit.Assert.assertNotNull; import java.io.File; import java.io.FileReader; @@ -135,6 +136,8 @@ public class PathCreationTest { URL url = request.getRequestUrl("GET", null); url.getPath(); LOG.info("Received response"); + assertNotNull(nameValues); + } catch(Exception exc) { LOG.info("Caught exception", exc); } @@ -196,5 +199,6 @@ public class PathCreationTest { } } LOG.info(nameValues.toString()); + assertNotNull(nameValues); } } -- cgit 1.2.3-korg From a19d05b4c780b5fbedf9724a60fa82786924901a Mon Sep 17 00:00:00 2001 From: Rupinder Date: Wed, 27 May 2020 15:11:12 +0530 Subject: added assert statements in 7 test files Issue-ID: CCSDK-2232 Change-Id: I07e3806cac9a317130ad1d5fe4c9af4fb1a17a5d Signed-off-by: Rupinder --- .../test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java | 5 +++++ .../onap/ccsdk/sli/adaptors/resource/mdsal/TestConfigResource.java | 2 ++ .../resource/mdsal/TestMdsalResourcePropertiesProviderImpl.java | 2 ++ .../ccsdk/sli/adaptors/resource/mdsal/TestOperationalResource.java | 2 ++ .../consumer/provider/impl/AbstractBaseConsumerTest.java | 1 + .../java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestLockHelper.java | 2 ++ .../test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java | 5 +++++ 7 files changed, 19 insertions(+) (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java index 0e81e5b52..eb8dbc4a8 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/RegressionTest.java @@ -121,6 +121,7 @@ public class RegressionTest { QueryStatus resp = client.save("connector", false, false, "resource-instance-id = '12345'", data, "aaidata", ctx); LOG.info("AAIResponse: " + resp.toString()); + assertNotNull(ctx); } catch (Exception e) { @@ -158,6 +159,7 @@ public class RegressionTest { QueryStatus resp = client.save("connector", false, false, "resource-instance-id = '11012345'", data, "aaidata", ctx); LOG.info("AAIResponse: " + resp.toString()); + assertNotNull(ctx); } catch (Exception e) { @@ -210,6 +212,7 @@ public class RegressionTest { QueryStatus resp = client.save("logical-link", false, false, "link-name = '1252541'", data, "aaidata", ctx); LOG.info("AAIResponse: " + resp.toString()); + assertNotNull(data); } catch (Exception e) { @@ -241,6 +244,7 @@ public class RegressionTest { QueryStatus resp = client.save("virtual-data-center", false, false, "vdc-id = '1252541'", data, "aaidata", ctx); LOG.info("AAIResponse: " + resp.toString()); + assertNotNull(data); } catch (Exception e) { @@ -408,6 +412,7 @@ public class RegressionTest { // assertTrue(response == QueryStatus.SUCCESS); LOG.info("AAIResponse: " + datum.toString()); + assertNotNull(nameValues); } catch (Exception e) { diff --git a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestConfigResource.java b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestConfigResource.java index a8f4d9483..80563b96b 100644 --- a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestConfigResource.java +++ b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestConfigResource.java @@ -5,6 +5,7 @@ import junit.framework.TestCase; import static org.mockito.Mockito.mock; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import static org.junit.Assert.assertNotNull; public class TestConfigResource extends TestCase { @@ -24,6 +25,7 @@ public class TestConfigResource extends TestCase { res.isAvailable("my-resource", "mykey", "pfx", ctx); res.save("resource", false, false, null, null, null, ctx); res.update("my-resource", "mykey", null, "pfx", ctx); + assertNotNull(res); } } diff --git a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourcePropertiesProviderImpl.java b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourcePropertiesProviderImpl.java index 9af5b59b3..7f05d1e5f 100644 --- a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourcePropertiesProviderImpl.java +++ b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourcePropertiesProviderImpl.java @@ -27,6 +27,7 @@ import org.junit.Test; import java.util.Properties; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; public class TestMdsalResourcePropertiesProviderImpl { @@ -57,6 +58,7 @@ public class TestMdsalResourcePropertiesProviderImpl { MdsalResourcePropertiesProviderImpl test = new MdsalResourcePropertiesProviderImpl(); mdsal.determinePropertiesFile(test); + assertNotNull(test); } } diff --git a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestOperationalResource.java b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestOperationalResource.java index f5725e971..2e9798df1 100644 --- a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestOperationalResource.java +++ b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestOperationalResource.java @@ -5,6 +5,7 @@ import static org.mockito.Mockito.mock; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import junit.framework.TestCase; +import static org.junit.Assert.assertNotNull; public class TestOperationalResource extends TestCase { @@ -25,5 +26,6 @@ public class TestOperationalResource extends TestCase { res.isAvailable("my-resource", "mykey", "pfx", ctx); res.save("resource", false, false, null, null, null, ctx); res.update("my-resource", "mykey", null, "pfx", ctx); + assertNotNull(restService); } } diff --git a/message-router/consumer/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/consumer/provider/impl/AbstractBaseConsumerTest.java b/message-router/consumer/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/consumer/provider/impl/AbstractBaseConsumerTest.java index 99a4f3ff7..75873385b 100644 --- a/message-router/consumer/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/consumer/provider/impl/AbstractBaseConsumerTest.java +++ b/message-router/consumer/provider/src/test/java/org/onap/ccsdk/sli/adaptors/messagerouter/consumer/provider/impl/AbstractBaseConsumerTest.java @@ -58,6 +58,7 @@ public class AbstractBaseConsumerTest { public void callClose() throws Exception { DummyConsumer dummy = getAuthDummy(); dummy.close(); + assertNotNull(dummy); } @Test diff --git a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestLockHelper.java b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestLockHelper.java index 6564dc3d1..a9389b279 100644 --- a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestLockHelper.java +++ b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestLockHelper.java @@ -10,6 +10,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import static org.junit.Assert.assertNotNull; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:test-context.xml" }) @@ -34,6 +35,7 @@ public class TestLockHelper { t1.join(); t2.join(); t3.join(); + assertNotNull(t1); } private class LockThread extends Thread { diff --git a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java index f42ef9c3a..b159127b8 100644 --- a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java +++ b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java @@ -28,6 +28,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import jtest.util.org.onap.ccsdk.sli.adaptors.ra.TestTable; +import static org.junit.Assert.assertNotNull; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:test-context.xml" }) @@ -231,6 +232,7 @@ public class TestReserve { rsList.forEach(r -> { StrUtil.info(log, r); }); + assertNotNull(rsList); } @@ -269,6 +271,7 @@ public class TestReserve { rsList.forEach(r -> { StrUtil.info(log, r); }); + assertNotNull(sd); } @@ -316,6 +319,7 @@ public class TestReserve { rsList.forEach(r -> { StrUtil.info(log, r); }); + assertNotNull(rr); } @@ -478,6 +482,7 @@ public class TestReserve { rsList.forEach(r -> { StrUtil.info(log, r); }); + assertNotNull(rsList); } -- cgit 1.2.3-korg From 6fb8dfad11c84c0833e842183ec43a4ee95e81de Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Tue, 14 Jul 2020 08:55:33 -0400 Subject: Update adaptors to sodium Update sli/adaptors to OpenDaylight Sodium release. 2 changes were needed: - mdsal-resource : needed to add unimplemented abstract methods in inner anonymous BundleContext class in test case. - resource-assignment: needed to correct unit test problems that were ignored in earlier versions of h2 Change-Id: Ice63bfce64768e46c4376db55e3e9e97d0b934ad Issue-ID: CCSDK-2551 Signed-off-by: Dan Timoney --- .gitignore | 1 + .../adaptors/aai/AAIClientRESTExecutorTest.java | 3 ++ features/ccsdk-ansible-adapter/pom.xml | 6 +++ features/ccsdk-saltstack-adapter/pom.xml | 10 ++++- .../resource/mdsal/TestMdsalResourceActivator.java | 49 ++++++++++++++++++---- .../onap/ccsdk/sli/adaptors/ra/TestReserve.java | 8 ++++ .../provider/src/test/resources/sql/schema.sql | 2 +- 7 files changed, 69 insertions(+), 10 deletions(-) (limited to 'aai-service/provider/src/test/java') diff --git a/.gitignore b/.gitignore index cc576b7b2..42cca13bb 100755 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ classes out/ .DS_STORE .metadata +.vscode provider/src/main/java/META-INF/ provider/src/main/java/inventory/ logs/ diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java index b0272f5d0..f60b2da64 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIClientRESTExecutorTest.java @@ -11,6 +11,8 @@ import static org.junit.Assert.assertNotNull; public class AAIClientRESTExecutorTest { private static AAIClientRESTExecutor aaiExecute; + private static AAIService aaiService; + @BeforeClass public static void setUpBeforeClass() throws Exception { Properties properties = new Properties(); @@ -22,6 +24,7 @@ public class AAIClientRESTExecutorTest { properties.setProperty("connection.timeout", "60000"); properties.setProperty("read.timeout", "60000"); aaiExecute = new AAIClientRESTExecutor(properties); + aaiService = new AAIService(properties); } diff --git a/features/ccsdk-ansible-adapter/pom.xml b/features/ccsdk-ansible-adapter/pom.xml index 32ec5058f..da497f56f 100644 --- a/features/ccsdk-ansible-adapter/pom.xml +++ b/features/ccsdk-ansible-adapter/pom.xml @@ -36,6 +36,12 @@ ${project.groupId} ansible-adapter-bundle ${project.version} + + + powermock-api-mockito + org.powermock + + diff --git a/features/ccsdk-saltstack-adapter/pom.xml b/features/ccsdk-saltstack-adapter/pom.xml index ffc43e152..2e51c83be 100644 --- a/features/ccsdk-saltstack-adapter/pom.xml +++ b/features/ccsdk-saltstack-adapter/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 @@ -33,6 +34,13 @@ ${project.groupId} saltstack-adapter-provider ${project.version} + + + + powermock-api-mockito + org.powermock + + diff --git a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourceActivator.java b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourceActivator.java index 397915d08..6174bc84d 100644 --- a/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourceActivator.java +++ b/mdsal-resource/provider/src/test/java/org/onap/ccsdk/sli/adaptors/resource/mdsal/TestMdsalResourceActivator.java @@ -30,7 +30,9 @@ import org.osgi.framework.BundleListener; import org.osgi.framework.Filter; import org.osgi.framework.FrameworkListener; import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceFactory; import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceObjects; import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceRegistration; @@ -49,8 +51,7 @@ public class TestMdsalResourceActivator { mdsal = new MdsalResourceActivator(); } - - @Test (expected = ConfigurationException.class) + @Test(expected = ConfigurationException.class) public void testStartResource() throws Exception { BundleContext ctx = new BundleContext() { @Override @@ -119,27 +120,32 @@ public class TestMdsalResourceActivator { } @Override - public ServiceRegistration registerService(String[] clazzes, Object service, Dictionary properties) { + public ServiceRegistration registerService(String[] clazzes, Object service, + Dictionary properties) { return null; } @Override - public ServiceRegistration registerService(String clazz, Object service, Dictionary properties) { + public ServiceRegistration registerService(String clazz, Object service, + Dictionary properties) { return null; } @Override - public ServiceRegistration registerService(Class clazz, S service, Dictionary properties) { + public ServiceRegistration registerService(Class clazz, S service, + Dictionary properties) { return null; } @Override - public ServiceReference[] getServiceReferences(String clazz, String filter) throws InvalidSyntaxException { + public ServiceReference[] getServiceReferences(String clazz, String filter) + throws InvalidSyntaxException { return new ServiceReference[0]; } @Override - public ServiceReference[] getAllServiceReferences(String clazz, String filter) throws InvalidSyntaxException { + public ServiceReference[] getAllServiceReferences(String clazz, String filter) + throws InvalidSyntaxException { return new ServiceReference[0]; } @@ -154,7 +160,8 @@ public class TestMdsalResourceActivator { } @Override - public Collection> getServiceReferences(Class clazz, String filter) throws InvalidSyntaxException { + public Collection> getServiceReferences(Class clazz, String filter) + throws InvalidSyntaxException { return null; } @@ -182,6 +189,19 @@ public class TestMdsalResourceActivator { public Bundle getBundle(String location) { return null; } + + @Override + public ServiceRegistration registerService(Class clazz, ServiceFactory factory, + Dictionary properties) { + // TODO Auto-generated method stub + return null; + } + + @Override + public ServiceObjects getServiceObjects(ServiceReference reference) { + // TODO Auto-generated method stub + return null; + } }; mdsal.start(ctx); @@ -320,6 +340,19 @@ public class TestMdsalResourceActivator { public Bundle getBundle(String location) { return null; } + + @Override + public ServiceRegistration registerService(Class clazz, ServiceFactory factory, + Dictionary properties) { + // TODO Auto-generated method stub + return null; + } + + @Override + public ServiceObjects getServiceObjects(ServiceReference reference) { + // TODO Auto-generated method stub + return null; + } }; mdsal.stop(ctx); diff --git a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java index ab2d936cf..dbf0c4aac 100644 --- a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java +++ b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java @@ -216,6 +216,7 @@ public class TestReserve { rr.requestType = "New"; rr.rangeMaxOverride = -1; rr.rangeMinOverride = -1; + rr.applicationId = "myapp"; List rsList = new ArrayList<>(); @@ -513,6 +514,7 @@ public class TestReserve { rr.endPointPosition = "VPE-Cust"; rr.rangeMaxOverride = -1; rr.rangeMinOverride = -1; + rr.applicationId = "myapp"; List rsList = new ArrayList<>(); resourceAllocator.reserve(sd, rt, rr, rsList); @@ -533,6 +535,7 @@ public class TestReserve { rr.endPointPosition = "VPE-Core1"; rr.rangeMaxOverride = -1; rr.rangeMinOverride = -1; + rr.applicationId = "myapp"; rsList = new ArrayList<>(); resourceAllocator.reserve(sd, rt, rr, rsList); @@ -553,6 +556,7 @@ public class TestReserve { rr.endPointPosition = "VPE-Core2"; rr.rangeMaxOverride = -1; rr.rangeMinOverride = -1; + rr.applicationId = "myapp"; rsList = new ArrayList<>(); resourceAllocator.reserve(sd, rt, rr, rsList); @@ -573,6 +577,7 @@ public class TestReserve { rr.endPointPosition = "VPE-Core3"; rr.rangeMaxOverride = -1; rr.rangeMinOverride = -1; + rr.applicationId = "myapp"; rsList = new ArrayList<>(); resourceAllocator.reserve(sd, rt, rr, rsList); @@ -720,6 +725,7 @@ public class TestReserve { rr.rangeMaxOverride = 3901; rr.rangeMinOverride = 3900; rr.resourceType = ResourceType.Range; + rr.applicationId = "myapp"; List rsList = new ArrayList<>(); resourceAllocator.reserve(sd, rt, rr, rsList); @@ -748,6 +754,7 @@ public class TestReserve { rr.rangeMinOverride = -1; rr.rangeOverrideList = Arrays.asList(range); rr.resourceType = ResourceType.Range; + rr.applicationId = "myapp"; rsList = new ArrayList<>(); resourceAllocator.reserve(sd, rt, rr, rsList); @@ -781,6 +788,7 @@ public class TestReserve { rr.rangeOverrideList = new ArrayList<>(); rr.rangeOverrideList.add(range1); rr.rangeOverrideList.add(range2); + rr.applicationId = "myapp"; rr.resourceType = ResourceType.Range; rsList = new ArrayList<>(); diff --git a/resource-assignment/provider/src/test/resources/sql/schema.sql b/resource-assignment/provider/src/test/resources/sql/schema.sql index ed123ddd6..275337e44 100644 --- a/resource-assignment/provider/src/test/resources/sql/schema.sql +++ b/resource-assignment/provider/src/test/resources/sql/schema.sql @@ -124,7 +124,7 @@ CREATE TABLE SERVICE_RESOURCE ( service_status VARCHAR(10) NOT NULL, service_change_number SMALLINT NOT NULL, resource_set_id VARCHAR(100) NOT NULL, - resource_union_id VARCHAR(100) NOT NULL, + resource_union_id VARCHAR(100) NOT NULL ); ALTER TABLE SERVICE_RESOURCE ADD CONSTRAINT C1_SERVICE_RESOURCE CHECK (service_status IN ('Active', 'Pending')); -- cgit 1.2.3-korg From ffd3dd43f55c91c99decf53d20d48aab4345580d Mon Sep 17 00:00:00 2001 From: Hesam Rahimi Date: Tue, 20 Oct 2020 11:56:47 -0400 Subject: Updating AAI service adaptor to use version 21 (v21) of the schema model. Issue-ID: CCSDK-2393 Change-Id: I53369c73fd25c7f433fd99456e28fbe0fecbc59a Signed-off-by: Hesam Rahimi --- aai-service/provider/pom.xml | 4 +- .../org/onap/ccsdk/sli/adaptors/aai/AAIClient.java | 2 +- .../ccsdk/sli/adaptors/aai/AAIDeclarations.java | 30 +- .../onap/ccsdk/sli/adaptors/aai/AAIRequest.java | 4 +- .../onap/ccsdk/sli/adaptors/aai/AAIService.java | 10 +- .../ccsdk/sli/adaptors/aai/AAIServiceUtils.java | 6 +- .../sli/adaptors/aai/GenericQueryRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequest.java | 4 +- .../ccsdk/sli/adaptors/aai/NodesQueryRequest.java | 2 +- .../sli/adaptors/aai/RelationshipListRequest.java | 2 +- .../sli/adaptors/aai/RelationshipRequest.java | 2 +- .../ccsdk/sli/adaptors/aai/data/SubInterface.java | 4 +- .../sli/adaptors/aai/query/InstanceFilter.java | 20 +- .../onap/ccsdk/sli/adaptors/aai/query/Result.java | 26 +- .../src/main/resources/aai-path.properties | 660 +- .../src/main/resources/aai-schema-bindings.xjb | 2 +- .../provider/src/main/resources/aai_schema_v19.xsd | 11539 --------------- .../provider/src/main/resources/aai_schema_v21.xsd | 14832 +++++++++++++++++++ .../src/main/resources/aaiclient.properties | 20 +- .../ccsdk/sli/adaptors/aai/AAIServiceTest.java | 2 +- .../adaptors/aai/AutoGeneratedRegressionTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericRequestTest.java | 2 +- .../ccsdk/sli/adaptors/aai/GenericVnfTest.java | 2 +- .../sli/adaptors/aai/data/SubInterfaceTest.java | 4 +- .../sli/adaptors/aai/query/InstanceFilterTest.java | 20 +- .../ccsdk/sli/adaptors/aai/query/ResultTest.java | 26 +- .../src/test/resources/aaiclient.properties | 24 +- 27 files changed, 15273 insertions(+), 11980 deletions(-) delete mode 100644 aai-service/provider/src/main/resources/aai_schema_v19.xsd create mode 100644 aai-service/provider/src/main/resources/aai_schema_v21.xsd (limited to 'aai-service/provider/src/test/java') diff --git a/aai-service/provider/pom.xml b/aai-service/provider/pom.xml index 598150772..75a35cec8 100755 --- a/aai-service/provider/pom.xml +++ b/aai-service/provider/pom.xml @@ -124,13 +124,13 @@ ${project.basedir}/src/main/resources - aai_schema_v19.xsd + aai_schema_v21.xsd aai-schema-bindings.xjb ${project.build.directory}/generated-sources/main/java - org.onap.aai.inventory.v19 + org.onap.aai.inventory.v21 true -Xannotate diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java index 527c4336d..5390d45de 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIClient.java @@ -30,7 +30,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Map; -import org.onap.aai.inventory.v19.*; +import org.onap.aai.inventory.v21.*; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java index dadcca4ff..6765e152b 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIDeclarations.java @@ -60,20 +60,20 @@ import org.onap.ccsdk.sli.adaptors.aai.query.FormattedQueryResultList; import org.onap.ccsdk.sli.adaptors.aai.query.Result; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.aai.inventory.v19.GenericVnf; -import org.onap.aai.inventory.v19.Image; -import org.onap.aai.inventory.v19.Metadata; -import org.onap.aai.inventory.v19.Metadatum; -import org.onap.aai.inventory.v19.RelatedToProperty; -import org.onap.aai.inventory.v19.Relationship; -import org.onap.aai.inventory.v19.RelationshipData; -import org.onap.aai.inventory.v19.RelationshipList; -import org.onap.aai.inventory.v19.ResultData; -import org.onap.aai.inventory.v19.SearchResults; -import org.onap.aai.inventory.v19.ServiceInstance; -import org.onap.aai.inventory.v19.Vlan; -import org.onap.aai.inventory.v19.Vlans; -import org.onap.aai.inventory.v19.Vserver; +import org.onap.aai.inventory.v21.GenericVnf; +import org.onap.aai.inventory.v21.Image; +import org.onap.aai.inventory.v21.Metadata; +import org.onap.aai.inventory.v21.Metadatum; +import org.onap.aai.inventory.v21.RelatedToProperty; +import org.onap.aai.inventory.v21.Relationship; +import org.onap.aai.inventory.v21.RelationshipData; +import org.onap.aai.inventory.v21.RelationshipList; +import org.onap.aai.inventory.v21.ResultData; +import org.onap.aai.inventory.v21.SearchResults; +import org.onap.aai.inventory.v21.ServiceInstance; +import org.onap.aai.inventory.v21.Vlan; +import org.onap.aai.inventory.v21.Vlans; +import org.onap.aai.inventory.v21.Vserver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1288,7 +1288,7 @@ public abstract class AAIDeclarations implements AAIClient { getLogger().debug("About to process related link of {}", relatedLink); if(relatedLink != null) { if(relatedLink.contains("v$")) - relatedLink = relatedLink.replace(VERSION_PATTERN, "/v19/"); + relatedLink = relatedLink.replace(VERSION_PATTERN, "/v21/"); relationship.setRelatedLink(relatedLink); } else { Map relParams = new HashMap<>(); diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java index b1f6743dc..0515218b3 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIRequest.java @@ -51,7 +51,7 @@ import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.StringUtils; -import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v21.GenericVnf; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; @@ -473,6 +473,6 @@ public abstract class AAIRequest { } public static final String getSupportedAAIVersion() { - return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v19/"); + return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v21/"); } } diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java index d5c72738c..4d51550a3 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIService.java @@ -81,11 +81,11 @@ import org.onap.ccsdk.sli.core.sli.MetricLogger; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource; -import org.onap.aai.inventory.v19.GenericVnf; -import org.onap.aai.inventory.v19.PhysicalLink; -import org.onap.aai.inventory.v19.ResultData; -import org.onap.aai.inventory.v19.SearchResults; -import org.onap.aai.inventory.v19.Vserver; +import org.onap.aai.inventory.v21.GenericVnf; +import org.onap.aai.inventory.v21.PhysicalLink; +import org.onap.aai.inventory.v21.ResultData; +import org.onap.aai.inventory.v21.SearchResults; +import org.onap.aai.inventory.v21.Vserver; import org.onap.logging.ref.slf4j.ONAPLogConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java index 722426503..b3ee7474d 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceUtils.java @@ -43,9 +43,9 @@ import java.util.Set; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.StringUtils; -import org.onap.aai.inventory.v19.Relationship; -import org.onap.aai.inventory.v19.RelationshipData; -import org.onap.aai.inventory.v19.RelationshipList; +import org.onap.aai.inventory.v21.Relationship; +import org.onap.aai.inventory.v21.RelationshipData; +import org.onap.aai.inventory.v21.RelationshipList; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.slf4j.Logger; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java index e30c913b7..29fe24ef2 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericQueryRequest.java @@ -32,7 +32,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v19.ResultData; +import org.onap.aai.inventory.v21.ResultData; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java index 3a5fb9bfc..604dd0e5c 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequest.java @@ -40,8 +40,8 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v19.L3Network; -import org.onap.aai.inventory.v19.L3Networks; +import org.onap.aai.inventory.v21.L3Network; +import org.onap.aai.inventory.v21.L3Networks; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java index 61238af17..c40d96cad 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/NodesQueryRequest.java @@ -32,7 +32,7 @@ import java.net.URL; import java.util.Properties; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v19.SearchResults; +import org.onap.aai.inventory.v21.SearchResults; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java index 5ee19d46d..751fe5d59 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipListRequest.java @@ -33,7 +33,7 @@ import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.aai.inventory.v19.RelationshipList; +import org.onap.aai.inventory.v21.RelationshipList; public class RelationshipListRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java index 1c70031c3..fa71d6f22 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/RelationshipRequest.java @@ -35,7 +35,7 @@ import org.apache.http.NameValuePair; import org.apache.http.client.utils.URIBuilder; import org.apache.http.message.BasicNameValuePair; -import org.onap.aai.inventory.v19.Relationship; +import org.onap.aai.inventory.v21.Relationship; public class RelationshipRequest extends GenericRequest { diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java index e58662421..7c66daa62 100644 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterface.java @@ -31,8 +31,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.onap.aai.inventory.v19.RelationshipList; -import org.onap.aai.inventory.v19.Vlans; +import org.onap.aai.inventory.v21.RelationshipList; +import org.onap.aai.inventory.v21.Vlans; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java index 82ba0108f..48ada1fa9 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilter.java @@ -33,16 +33,16 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import org.onap.aai.inventory.v19.CloudRegion; -import org.onap.aai.inventory.v19.GenericVnf; -import org.onap.aai.inventory.v19.L3Network; -import org.onap.aai.inventory.v19.Pnf; -import org.onap.aai.inventory.v19.LogicalLink; -import org.onap.aai.inventory.v19.PInterface; -import org.onap.aai.inventory.v19.ServiceInstance; -import org.onap.aai.inventory.v19.Tenant; -import org.onap.aai.inventory.v19.Vnf; -import org.onap.aai.inventory.v19.Vserver; +import org.onap.aai.inventory.v21.CloudRegion; +import org.onap.aai.inventory.v21.GenericVnf; +import org.onap.aai.inventory.v21.L3Network; +import org.onap.aai.inventory.v21.Pnf; +import org.onap.aai.inventory.v21.LogicalLink; +import org.onap.aai.inventory.v21.PInterface; +import org.onap.aai.inventory.v21.ServiceInstance; +import org.onap.aai.inventory.v21.Tenant; +import org.onap.aai.inventory.v21.Vnf; +import org.onap.aai.inventory.v21.Vserver; @JsonInclude(JsonInclude.Include.NON_NULL) @Generated("org.jsonschema2pojo") diff --git a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java index 794effed7..1f8a17551 100755 --- a/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java +++ b/aai-service/provider/src/main/java/org/onap/ccsdk/sli/adaptors/aai/query/Result.java @@ -30,19 +30,19 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import org.onap.aai.inventory.v19.CloudRegion; -import org.onap.aai.inventory.v19.Complex; -import org.onap.aai.inventory.v19.Configuration; -import org.onap.aai.inventory.v19.GenericVnf; -import org.onap.aai.inventory.v19.L3InterfaceIpv4AddressList; -import org.onap.aai.inventory.v19.L3InterfaceIpv6AddressList; -import org.onap.aai.inventory.v19.L3Network; -import org.onap.aai.inventory.v19.LInterface; -//import org.onap.aai.inventory.v19.OwningEntity; -import org.onap.aai.inventory.v19.Pserver; -import org.onap.aai.inventory.v19.ServiceInstance; -import org.onap.aai.inventory.v19.Vnfc; -import org.onap.aai.inventory.v19.Vserver; +import org.onap.aai.inventory.v21.CloudRegion; +import org.onap.aai.inventory.v21.Complex; +import org.onap.aai.inventory.v21.Configuration; +import org.onap.aai.inventory.v21.GenericVnf; +import org.onap.aai.inventory.v21.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v21.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v21.L3Network; +import org.onap.aai.inventory.v21.LInterface; +//import org.onap.aai.inventory.v21.OwningEntity; +import org.onap.aai.inventory.v21.Pserver; +import org.onap.aai.inventory.v21.ServiceInstance; +import org.onap.aai.inventory.v21.Vnfc; +import org.onap.aai.inventory.v21.Vserver; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/aai-service/provider/src/main/resources/aai-path.properties b/aai-service/provider/src/main/resources/aai-path.properties index c60ef94e3..58d6fc3a4 100755 --- a/aai-service/provider/src/main/resources/aai-path.properties +++ b/aai-service/provider/src/main/resources/aai-path.properties @@ -19,333 +19,333 @@ # ============LICENSE_END========================================================= ### -cloud-regions = /aai/v19/cloud-infrastructure/cloud-regions -cloud-region = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} -cloud-region|availability-zones = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones -cloud-region|availability-zone = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} -cloud-region|dvs-switches = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches -cloud-region|dvs-switch = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} -cloud-region|flavors = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors -cloud-region|flavor = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} -cloud-region|flavor|hpa-capabilities = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities -cloud-region|flavor|hpa-capability = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|group-assignments = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments -cloud-region|group-assignment = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} -cloud-region|hpa-capabilities = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities -cloud-region|hpa-capability = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} -cloud-region|hpa-capability|hpa-feature-attributes = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} -cloud-region|images = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images -cloud-region|image = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} -cloud-region|image|metadata = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata -cloud-region|image|metadatum = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} -cloud-region|oam-networks = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks -cloud-region|oam-network = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} -cloud-region|snapshots = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots -cloud-region|snapshot = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} -cloud-region|tenants = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants -cloud-region|tenant = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} -cloud-region|tenant|vservers = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers -cloud-region|tenant|vserver = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} -cloud-region|tenant|vserver|l-interfaces = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces -cloud-region|tenant|vserver|l-interface = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -cloud-region|tenant|vserver|l-interface|vlans = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans -cloud-region|tenant|vserver|l-interface|vlan = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -cloud-region|tenant|vserver|volumes = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes -cloud-region|tenant|vserver|volume = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} -cloud-region|vip-ipv4-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} -cloud-region|vip-ipv6-address-list = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} -cloud-region|volume-groups = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups -cloud-region|volume-group = /aai/v19/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} -complexes = /aai/v19/cloud-infrastructure/complexes -complex = /aai/v19/cloud-infrastructure/complexes/complex/{physical-location-id} -complex|ctag-pools = /aai/v19/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools -complex|ctag-pool = /aai/v19/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} -network-profiles = /aai/v19/cloud-infrastructure/network-profiles -network-profile = /aai/v19/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} -operational-environments = /aai/v19/cloud-infrastructure/operational-environments -operational-environment = /aai/v19/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} -pservers = /aai/v19/cloud-infrastructure/pservers -pserver = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname} -pserver|lag-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces -pserver|lag-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} -pserver|lag-interface|l-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pserver|lag-interface|l-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|lag-interface|l-interface|sriov-vfs = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|lag-interface|l-interface|sriov-vf = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|lag-interface|l-interface|vlans = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|lag-interface|l-interface|vlan = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -pserver|p-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} -pserver|p-interface|l-interfaces = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces -pserver|p-interface|l-interface = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|l-interface|sriov-vfs = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pserver|p-interface|l-interface|sriov-vf = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pserver|p-interface|l-interface|vlans = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pserver|p-interface|l-interface|vlan = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pserver|p-interface|sriov-pfs = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pserver|p-interface|sriov-pf = /aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -virtual-data-centers = /aai/v19/cloud-infrastructure/virtual-data-centers -virtual-data-center = /aai/v19/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} -connectors = /aai/v19/business/connectors -connector = /aai/v19/business/connectors/connector/{resource-instance-id} -connector|metadata = /aai/v19/business/connectors/connector/{resource-instance-id}/metadata -connector|metadatum = /aai/v19/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} -customers = /aai/v19/business/customers -customer = /aai/v19/business/customers/customer/{global-customer-id} -customer|service-subscriptions = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions -customer|service-subscription = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} -customer|service-subscription|service-instances = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances -customer|service-subscription|service-instance = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} -customer|service-subscription|service-instance|allotted-resources = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources -customer|service-subscription|service-instance|allotted-resource = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects -customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} -customer|service-subscription|service-instance|metadata = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata -customer|service-subscription|service-instance|metadatum = /aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} -configurations = /aai/v19/network/configurations -configuration = /aai/v19/network/configurations/configuration/{configuration-id} -configuration|evcs = /aai/v19/network/configurations/configuration/{configuration-id}/evcs -configuration|evc = /aai/v19/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} -configuration|forwarder-evcs = /aai/v19/network/configurations/configuration/{configuration-id}/forwarder-evcs -configuration|forwarder-evc = /aai/v19/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} -configuration|metadata = /aai/v19/network/configurations/configuration/{configuration-id}/metadata -configuration|metadatum = /aai/v19/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} -connectivities = /aai/v19/network/connectivities -connectivity = /aai/v19/network/connectivities/connectivity/{connectivity-id} -devices = /aai/v19/network/devices -device = /aai/v19/network/devices/device/{device-id} -esr-thirdparty-sdnc = /aai/v19/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} -esr-thirdparty-sdnc-list = /aai/v19/external-system/esr-thirdparty-sdnc-list -forwarding-paths = /aai/v19/network/forwarding-paths -forwarding-path = /aai/v19/network/forwarding-paths/forwarding-path/{forwarding-path-id} -forwarding-path|forwarders = /aai/v19/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders -forwarding-path|forwarder = /aai/v19/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} -generic-vnfs = /aai/v19/network/generic-vnfs -generic-vnf = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id} -generic-vnf|entitlements = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements -generic-vnf|entitlement = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -generic-vnf|l-interfaces = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces -generic-vnf|l-interface = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} -generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|l-interface|sriov-vfs = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|l-interface|sriov-vf = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|l-interface|vlans = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|l-interface|vlan = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interfaces = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces -generic-vnf|lag-interface = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} -generic-vnf|lag-interface|l-interfaces = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -generic-vnf|lag-interface|l-interface = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -generic-vnf|lag-interface|l-interface|vlans = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -generic-vnf|lag-interface|l-interface|vlan = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -generic-vnf|licenses = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/licenses -generic-vnf|license = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -generic-vnf|vf-modules = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules -generic-vnf|vf-module = /aai/v19/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} -instance-groups = /aai/v19/network/instance-groups -instance-group = /aai/v19/network/instance-groups/instance-group/{id} -interlayer-attachments = /aai/v19/network/interlayer-attachments -interlayer-attachment = /aai/v19/network/interlayer-attachments/interlayer-attachment/{id} -ipsec-configurations = /aai/v19/network/ipsec-configurations -ipsec-configuration = /aai/v19/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} -ipsec-configuration|vig-servers = /aai/v19/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers -ipsec-configuration|vig-server = /aai/v19/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} -l3-networks = /aai/v19/network/l3-networks -l3-network = /aai/v19/network/l3-networks/l3-network/{network-id} -l3-network|ctag-assignments = /aai/v19/network/l3-networks/l3-network/{network-id}/ctag-assignments -l3-network|ctag-assignment = /aai/v19/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} -l3-network|segmentation-assignments = /aai/v19/network/l3-networks/l3-network/{network-id}/segmentation-assignments -l3-network|segmentation-assignment = /aai/v19/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} -l3-network|subnets = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets -l3-network|subnet = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} -l3-network|subnet|host-routes = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes -l3-network|subnet|host-route = /aai/v19/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} -label-restrictions = /aai/v19/network/label-restrictions -label-restriction = /aai/v19/network/label-restrictions/label-restriction/{id} -lag-links = /aai/v19/network/lag-links -lag-link = /aai/v19/network/lag-links/lag-link/{link-name} -lines-of-business = /aai/v19/business/lines-of-business -line-of-business = /aai/v19/business/lines-of-business/line-of-business/{line-of-business-name} -logical-links = /aai/v19/network/logical-links -logical-link = /aai/v19/network/logical-links/logical-link/{link-name} -models = /aai/v19/service-design-and-creation/models -model = /aai/v19/service-design-and-creation/models/model/{model-invariant-id} -model|model-vers = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers -model|model-ver = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} -model|model-ver|metadata = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata -model|model-ver|metadatum = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} -model|model-ver|model-elements = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements -model|model-ver|model-element = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} -model|model-ver|model-element|model-constraints = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints -model|model-ver|model-element|model-constraint = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} -model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets -model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets -model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v19/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} -multicast-configurations = /aai/v19/network/multicast-configurations -multicast-configuration = /aai/v19/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} -named-queries = /aai/v19/service-design-and-creation/named-queries -named-query = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid} -named-query|named-query-elements = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements -named-query|named-query-element = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} -named-query|named-query-element|property-constraints = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints -named-query|named-query-element|property-constraint = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} -named-query|named-query-element|related-lookups = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups -named-query|named-query-element|related-lookup = /aai/v19/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} -network-policies = /aai/v19/network/network-policies -network-policy = /aai/v19/network/network-policies/network-policy/{network-policy-id} -network-resources = /aai/v19/network/network-resources -network-resource = /aai/v19/network/network-resources/network-resource/{network-id} -newvces = /aai/v19/network/newvces -newvce = /aai/v19/network/newvces/newvce/{vnf-id2} -newvce|l-interfaces = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces -newvce|l-interface = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} -newvce|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -newvce|l-interface|sriov-vfs = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs -newvce|l-interface|sriov-vf = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -newvce|l-interface|vlans = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans -newvce|l-interface|vlan = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -owning-entities = /aai/v19/business/owning-entities -owning-entity = /aai/v19/business/owning-entities/owning-entity/{owning-entity-id} -physical-links = /aai/v19/network/physical-links -physical-link = /aai/v19/network/physical-links/physical-link/{link-name} -platforms = /aai/v19/business/platforms -platform = /aai/v19/business/platforms/platform/{platform-name} -pnfs = /aai/v19/network/pnfs -pnf = /aai/v19/network/pnfs/pnf/{pnf-name} -pnf|lag-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces -pnf|lag-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} -pnf|lag-interface|l-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -pnf|lag-interface|l-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|lag-interface|l-interface|sriov-vfs = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|lag-interface|l-interface|sriov-vf = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|lag-interface|l-interface|vlans = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|lag-interface|l-interface|vlan = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces -pnf|p-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} -pnf|p-interface|l-interfaces = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -pnf|p-interface|l-interface = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|l-interface|sriov-vfs = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -pnf|p-interface|l-interface|sriov-vf = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -pnf|p-interface|l-interface|vlans = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -pnf|p-interface|l-interface|vlan = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -pnf|p-interface|sriov-pfs = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -pnf|p-interface|sriov-pf = /aai/v19/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -projects = /aai/v19/business/projects -project = /aai/v19/business/projects/project/{project-name} -route-table-references = /aai/v19/network/route-table-references -route-table-reference = /aai/v19/network/route-table-references/route-table-reference/{route-table-reference-id} -sdwan-vpns = /aai/v19/network/sdwan-vpns -sdwan-vpn = /aai/v19/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id} -service-capabilities = /aai/v19/service-design-and-creation/service-capabilities -service-capability = /aai/v19/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} -services = /aai/v19/service-design-and-creation/services -service = /aai/v19/service-design-and-creation/services/service/{service-id} -site-pair-sets = /aai/v19/network/site-pair-sets -site-pair-set = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id} -site-pair-set|routing-instances = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances -site-pair-set|routing-instance = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} -site-pair-set|routing-instance|site-pairs = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs -site-pair-set|routing-instance|site-pair = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} -site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service -site-pair-set|routing-instance|site-pair|class-of-service = /aai/v19/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} -site-resources = /aai/v19/network/site-resources -site-resource = /aai/v19/network/site-resources/site-resource/{site-resource-id} -te-link-attributes = /aai/v19/network/te-link-attributes -te-link-attribute = /aai/v19/network/te-link-attributes/te-link-attribute/{id} -tunnel-termination-points = /aai/v19/network/tunnel-termination-points -tunnel-termination-point = /aai/v19/network/tunnel-termination-points/tunnel-termination-point/{ttp-id} -unis = /aai/v19/network/unis -uni = /aai/v19/network/unis/uni/{id} -vces = /aai/v19/network/vces -vce = /aai/v19/network/vces/vce/{vnf-id} -vce|entitlements = /aai/v19/network/vces/vce/{vnf-id}/entitlements -vce|entitlement = /aai/v19/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} -vce|licenses = /aai/v19/network/vces/vce/{vnf-id}/licenses -vce|license = /aai/v19/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} -vce|port-groups = /aai/v19/network/vces/vce/{vnf-id}/port-groups -vce|port-group = /aai/v19/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} -vce|port-group|cvlan-tags = /aai/v19/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags -vce|port-group|cvlan-tag-entry = /aai/v19/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} -vnf-images = /aai/v19/service-design-and-creation/vnf-images -vnf-image = /aai/v19/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} -vnfcs = /aai/v19/network/vnfcs -vnfc = /aai/v19/network/vnfcs/vnfc/{vnfc-name} -vnfc|cps = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps -vnfc|cp = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id} -vnfc|cp|l3-interface-ipv4-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vnfc|cp|l3-interface-ipv6-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vnfc|l3-interface-ipv4-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vnfc|l3-interface-ipv6-address-list = /aai/v19/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pes = /aai/v19/network/vpls-pes -vpls-pe = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name} -vpls-pe|lag-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces -vpls-pe|lag-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} -vpls-pe|lag-interface|l-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces -vpls-pe|lag-interface|l-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|lag-interface|l-interface|vlans = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|lag-interface|l-interface|vlan = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces -vpls-pe|p-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} -vpls-pe|p-interface|l-interfaces = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces -vpls-pe|p-interface|l-interface = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} -vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs -vpls-pe|p-interface|l-interface|sriov-vf = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} -vpls-pe|p-interface|l-interface|vlans = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans -vpls-pe|p-interface|l-interface|vlan = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} -vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} -vpls-pe|p-interface|sriov-pfs = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs -vpls-pe|p-interface|sriov-pf = /aai/v19/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} -vpn-bindings = /aai/v19/network/vpn-bindings -vpn-binding = /aai/v19/network/vpn-bindings/vpn-binding/{vpn-id} -vpn-binding|route-targets = /aai/v19/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets -vpn-binding|route-target = /aai/v19/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} -wan-port-configs = /aai/v19/network/wan-port-configs -wan-port-config = /aai/v19/network/wan-port-configs/wan-port-config/{wan-port-config-id} -lan-port-configs = /aai/v19/network/lan-port-configs -lan-port-config = /aai/v19/network/lan-port-configs/lan-port-config/{lan-port-config-id} -zones = /aai/v19/network/zones -zone = /aai/v19/network/zones/zone/{zone-id} +cloud-regions = /aai/v21/cloud-infrastructure/cloud-regions +cloud-region = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id} +cloud-region|availability-zones = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones +cloud-region|availability-zone = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/availability-zones/availability-zone/{availability-zone-name} +cloud-region|dvs-switches = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches +cloud-region|dvs-switch = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name} +cloud-region|flavors = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors +cloud-region|flavor = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id} +cloud-region|flavor|hpa-capabilities = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities +cloud-region|flavor|hpa-capability = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|flavor|hpa-capability|hpa-feature-attributes = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/flavors/flavor/{flavor-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|group-assignments = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments +cloud-region|group-assignment = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/group-assignments/group-assignment/{group-id} +cloud-region|hpa-capabilities = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities +cloud-region|hpa-capability = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id} +cloud-region|hpa-capability|hpa-feature-attributes = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/hpa-capabilities/hpa-capability/{hpa-capability-id}/hpa-feature-attributes/{hpa-attribute-key} +cloud-region|images = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images +cloud-region|image = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id} +cloud-region|image|metadata = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata +cloud-region|image|metadatum = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/images/image/{image-id}/metadata/metadatum/{metaname} +cloud-region|oam-networks = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks +cloud-region|oam-network = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/oam-networks/oam-network/{network-uuid} +cloud-region|snapshots = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots +cloud-region|snapshot = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/snapshots/snapshot/{snapshot-id} +cloud-region|tenants = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants +cloud-region|tenant = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id} +cloud-region|tenant|vservers = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers +cloud-region|tenant|vserver = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id} +cloud-region|tenant|vserver|l-interfaces = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces +cloud-region|tenant|vserver|l-interface = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv4-address-list = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|l3-interface-ipv6-address-list = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|l-interface|sriov-vfs = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +cloud-region|tenant|vserver|l-interface|sriov-vf = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +cloud-region|tenant|vserver|l-interface|vlans = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans +cloud-region|tenant|vserver|l-interface|vlan = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +cloud-region|tenant|vserver|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +cloud-region|tenant|vserver|volumes = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes +cloud-region|tenant|vserver|volume = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/volumes/volume/{volume-id} +cloud-region|vip-ipv4-address-list = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv4-address-list/{vip-ipv4-address} +cloud-region|vip-ipv6-address-list = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/vip-ipv6-address-list/{vip-ipv6-address} +cloud-region|volume-groups = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups +cloud-region|volume-group = /aai/v21/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id} +complexes = /aai/v21/cloud-infrastructure/complexes +complex = /aai/v21/cloud-infrastructure/complexes/complex/{physical-location-id} +complex|ctag-pools = /aai/v21/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools +complex|ctag-pool = /aai/v21/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name} +network-profiles = /aai/v21/cloud-infrastructure/network-profiles +network-profile = /aai/v21/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name} +operational-environments = /aai/v21/cloud-infrastructure/operational-environments +operational-environment = /aai/v21/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id} +pservers = /aai/v21/cloud-infrastructure/pservers +pserver = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname} +pserver|lag-interfaces = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces +pserver|lag-interface = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name} +pserver|lag-interface|l-interfaces = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pserver|lag-interface|l-interface = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|lag-interface|l-interface|sriov-vfs = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|lag-interface|l-interface|sriov-vf = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|lag-interface|l-interface|vlans = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|lag-interface|l-interface|vlan = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interfaces = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +pserver|p-interface = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +pserver|p-interface|l-interfaces = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces +pserver|p-interface|l-interface = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pserver|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|l-interface|sriov-vfs = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pserver|p-interface|l-interface|sriov-vf = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pserver|p-interface|l-interface|vlans = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pserver|p-interface|l-interface|vlan = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pserver|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pserver|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pserver|p-interface|sriov-pfs = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pserver|p-interface|sriov-pf = /aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +virtual-data-centers = /aai/v21/cloud-infrastructure/virtual-data-centers +virtual-data-center = /aai/v21/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id} +connectors = /aai/v21/business/connectors +connector = /aai/v21/business/connectors/connector/{resource-instance-id} +connector|metadata = /aai/v21/business/connectors/connector/{resource-instance-id}/metadata +connector|metadatum = /aai/v21/business/connectors/connector/{resource-instance-id}/metadata/metadatum/{metaname} +customers = /aai/v21/business/customers +customer = /aai/v21/business/customers/customer/{global-customer-id} +customer|service-subscriptions = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions +customer|service-subscription = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type} +customer|service-subscription|service-instances = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances +customer|service-subscription|service-instance = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +customer|service-subscription|service-instance|allotted-resources = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources +customer|service-subscription|service-instance|allotted-resource = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id} +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnects = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects +customer|service-subscription|service-instance|allotted-resource|tunnel-xconnect = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/allotted-resources/allotted-resource/{id}/tunnel-xconnects/tunnel-xconnect/{id} +customer|service-subscription|service-instance|metadata = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata +customer|service-subscription|service-instance|metadatum = /aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}/metadata/metadatum/{metaname} +configurations = /aai/v21/network/configurations +configuration = /aai/v21/network/configurations/configuration/{configuration-id} +configuration|evcs = /aai/v21/network/configurations/configuration/{configuration-id}/evcs +configuration|evc = /aai/v21/network/configurations/configuration/{configuration-id}/evcs/evc/{evc-id} +configuration|forwarder-evcs = /aai/v21/network/configurations/configuration/{configuration-id}/forwarder-evcs +configuration|forwarder-evc = /aai/v21/network/configurations/configuration/{configuration-id}/forwarder-evcs/forwarder-evc/{forwarder-evc-id} +configuration|metadata = /aai/v21/network/configurations/configuration/{configuration-id}/metadata +configuration|metadatum = /aai/v21/network/configurations/configuration/{configuration-id}/metadata/metadatum/{metaname} +connectivities = /aai/v21/network/connectivities +connectivity = /aai/v21/network/connectivities/connectivity/{connectivity-id} +devices = /aai/v21/network/devices +device = /aai/v21/network/devices/device/{device-id} +esr-thirdparty-sdnc = /aai/v21/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id} +esr-thirdparty-sdnc-list = /aai/v21/external-system/esr-thirdparty-sdnc-list +forwarding-paths = /aai/v21/network/forwarding-paths +forwarding-path = /aai/v21/network/forwarding-paths/forwarding-path/{forwarding-path-id} +forwarding-path|forwarders = /aai/v21/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders +forwarding-path|forwarder = /aai/v21/network/forwarding-paths/forwarding-path/{forwarding-path-id}/forwarders/forwarder/{sequence} +generic-vnfs = /aai/v21/network/generic-vnfs +generic-vnf = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id} +generic-vnf|entitlements = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements +generic-vnf|entitlement = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +generic-vnf|l-interfaces = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces +generic-vnf|l-interface = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name} +generic-vnf|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|l-interface|sriov-vfs = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|l-interface|sriov-vf = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|l-interface|vlans = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|l-interface|vlan = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interfaces = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces +generic-vnf|lag-interface = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name} +generic-vnf|lag-interface|l-interfaces = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +generic-vnf|lag-interface|l-interface = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +generic-vnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|lag-interface|l-interface|sriov-vfs = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +generic-vnf|lag-interface|l-interface|sriov-vf = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +generic-vnf|lag-interface|l-interface|vlans = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +generic-vnf|lag-interface|l-interface|vlan = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +generic-vnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +generic-vnf|licenses = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/licenses +generic-vnf|license = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +generic-vnf|vf-modules = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules +generic-vnf|vf-module = /aai/v21/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id} +instance-groups = /aai/v21/network/instance-groups +instance-group = /aai/v21/network/instance-groups/instance-group/{id} +interlayer-attachments = /aai/v21/network/interlayer-attachments +interlayer-attachment = /aai/v21/network/interlayer-attachments/interlayer-attachment/{id} +ipsec-configurations = /aai/v21/network/ipsec-configurations +ipsec-configuration = /aai/v21/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id} +ipsec-configuration|vig-servers = /aai/v21/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers +ipsec-configuration|vig-server = /aai/v21/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type} +l3-networks = /aai/v21/network/l3-networks +l3-network = /aai/v21/network/l3-networks/l3-network/{network-id} +l3-network|ctag-assignments = /aai/v21/network/l3-networks/l3-network/{network-id}/ctag-assignments +l3-network|ctag-assignment = /aai/v21/network/l3-networks/l3-network/{network-id}/ctag-assignments/ctag-assignment/{vlan-id-inner} +l3-network|segmentation-assignments = /aai/v21/network/l3-networks/l3-network/{network-id}/segmentation-assignments +l3-network|segmentation-assignment = /aai/v21/network/l3-networks/l3-network/{network-id}/segmentation-assignments/segmentation-assignment/{segmentation-id} +l3-network|subnets = /aai/v21/network/l3-networks/l3-network/{network-id}/subnets +l3-network|subnet = /aai/v21/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id} +l3-network|subnet|host-routes = /aai/v21/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes +l3-network|subnet|host-route = /aai/v21/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}/host-routes/host-route/{host-route-id} +label-restrictions = /aai/v21/network/label-restrictions +label-restriction = /aai/v21/network/label-restrictions/label-restriction/{id} +lag-links = /aai/v21/network/lag-links +lag-link = /aai/v21/network/lag-links/lag-link/{link-name} +lines-of-business = /aai/v21/business/lines-of-business +line-of-business = /aai/v21/business/lines-of-business/line-of-business/{line-of-business-name} +logical-links = /aai/v21/network/logical-links +logical-link = /aai/v21/network/logical-links/logical-link/{link-name} +models = /aai/v21/service-design-and-creation/models +model = /aai/v21/service-design-and-creation/models/model/{model-invariant-id} +model|model-vers = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers +model|model-ver = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} +model|model-ver|metadata = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata +model|model-ver|metadatum = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/metadata/metadatum/{metaname} +model|model-ver|model-elements = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements +model|model-ver|model-element = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid} +model|model-ver|model-element|model-constraints = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints +model|model-ver|model-element|model-constraint = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid} +model|model-ver|model-element|model-constraint|constrained-element-sets = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets +model|model-ver|model-element|model-constraint|constrained-element-set = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid} +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-sets = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets +model|model-ver|model-element|model-constraint|constrained-element-set|element-choice-set = /aai/v21/service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}/model-elements/model-element/{model-element-uuid}/model-constraints/model-constraint/{model-constraint-uuid}/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}/element-choice-sets/element-choice-set/{element-choice-set-uuid} +multicast-configurations = /aai/v21/network/multicast-configurations +multicast-configuration = /aai/v21/network/multicast-configurations/multicast-configuration/{multicast-configuration-id} +named-queries = /aai/v21/service-design-and-creation/named-queries +named-query = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid} +named-query|named-query-elements = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements +named-query|named-query-element = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid} +named-query|named-query-element|property-constraints = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints +named-query|named-query-element|property-constraint = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/property-constraints/property-constraint/{property-constraint-uuid} +named-query|named-query-element|related-lookups = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups +named-query|named-query-element|related-lookup = /aai/v21/service-design-and-creation/named-queries/named-query/{named-query-uuid}/named-query-elements/named-query-element/{named-query-element-uuid}/related-lookups/related-lookup/{related-lookup-uuid} +network-policies = /aai/v21/network/network-policies +network-policy = /aai/v21/network/network-policies/network-policy/{network-policy-id} +network-resources = /aai/v21/network/network-resources +network-resource = /aai/v21/network/network-resources/network-resource/{network-id} +newvces = /aai/v21/network/newvces +newvce = /aai/v21/network/newvces/newvce/{vnf-id2} +newvce|l-interfaces = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces +newvce|l-interface = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name} +newvce|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +newvce|l-interface|sriov-vfs = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs +newvce|l-interface|sriov-vf = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +newvce|l-interface|vlans = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans +newvce|l-interface|vlan = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +newvce|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +newvce|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +owning-entities = /aai/v21/business/owning-entities +owning-entity = /aai/v21/business/owning-entities/owning-entity/{owning-entity-id} +physical-links = /aai/v21/network/physical-links +physical-link = /aai/v21/network/physical-links/physical-link/{link-name} +platforms = /aai/v21/business/platforms +platform = /aai/v21/business/platforms/platform/{platform-name} +pnfs = /aai/v21/network/pnfs +pnf = /aai/v21/network/pnfs/pnf/{pnf-name} +pnf|lag-interfaces = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces +pnf|lag-interface = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name} +pnf|lag-interface|l-interfaces = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +pnf|lag-interface|l-interface = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|lag-interface|l-interface|sriov-vfs = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|lag-interface|l-interface|sriov-vf = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|lag-interface|l-interface|vlans = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|lag-interface|l-interface|vlan = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interfaces = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces +pnf|p-interface = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name} +pnf|p-interface|l-interfaces = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +pnf|p-interface|l-interface = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +pnf|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|l-interface|sriov-vfs = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +pnf|p-interface|l-interface|sriov-vf = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +pnf|p-interface|l-interface|vlans = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +pnf|p-interface|l-interface|vlan = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +pnf|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +pnf|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +pnf|p-interface|sriov-pfs = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +pnf|p-interface|sriov-pf = /aai/v21/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +projects = /aai/v21/business/projects +project = /aai/v21/business/projects/project/{project-name} +route-table-references = /aai/v21/network/route-table-references +route-table-reference = /aai/v21/network/route-table-references/route-table-reference/{route-table-reference-id} +sdwan-vpns = /aai/v21/network/sdwan-vpns +sdwan-vpn = /aai/v21/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id} +service-capabilities = /aai/v21/service-design-and-creation/service-capabilities +service-capability = /aai/v21/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type} +services = /aai/v21/service-design-and-creation/services +service = /aai/v21/service-design-and-creation/services/service/{service-id} +site-pair-sets = /aai/v21/network/site-pair-sets +site-pair-set = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id} +site-pair-set|routing-instances = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances +site-pair-set|routing-instance = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id} +site-pair-set|routing-instance|site-pairs = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs +site-pair-set|routing-instance|site-pair = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id} +site-pair-set|routing-instance|site-pair|classes-of-service = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service +site-pair-set|routing-instance|site-pair|class-of-service = /aai/v21/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos} +site-resources = /aai/v21/network/site-resources +site-resource = /aai/v21/network/site-resources/site-resource/{site-resource-id} +te-link-attributes = /aai/v21/network/te-link-attributes +te-link-attribute = /aai/v21/network/te-link-attributes/te-link-attribute/{id} +tunnel-termination-points = /aai/v21/network/tunnel-termination-points +tunnel-termination-point = /aai/v21/network/tunnel-termination-points/tunnel-termination-point/{ttp-id} +unis = /aai/v21/network/unis +uni = /aai/v21/network/unis/uni/{id} +vces = /aai/v21/network/vces +vce = /aai/v21/network/vces/vce/{vnf-id} +vce|entitlements = /aai/v21/network/vces/vce/{vnf-id}/entitlements +vce|entitlement = /aai/v21/network/vces/vce/{vnf-id}/entitlements/entitlement/{group-uuid}/{resource-uuid} +vce|licenses = /aai/v21/network/vces/vce/{vnf-id}/licenses +vce|license = /aai/v21/network/vces/vce/{vnf-id}/licenses/license/{group-uuid}/{resource-uuid} +vce|port-groups = /aai/v21/network/vces/vce/{vnf-id}/port-groups +vce|port-group = /aai/v21/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id} +vce|port-group|cvlan-tags = /aai/v21/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags +vce|port-group|cvlan-tag-entry = /aai/v21/network/vces/vce/{vnf-id}/port-groups/port-group/{interface-id}/cvlan-tags/cvlan-tag-entry/{cvlan-tag} +vnf-images = /aai/v21/service-design-and-creation/vnf-images +vnf-image = /aai/v21/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid} +vnfcs = /aai/v21/network/vnfcs +vnfc = /aai/v21/network/vnfcs/vnfc/{vnfc-name} +vnfc|cps = /aai/v21/network/vnfcs/vnfc/{vnfc-name}/cps +vnfc|cp = /aai/v21/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id} +vnfc|cp|l3-interface-ipv4-address-list = /aai/v21/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|cp|l3-interface-ipv6-address-list = /aai/v21/network/vnfcs/vnfc/{vnfc-name}/cps/cp/{cp-instance-id}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vnfc|l3-interface-ipv4-address-list = /aai/v21/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vnfc|l3-interface-ipv6-address-list = /aai/v21/network/vnfcs/vnfc/{vnfc-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pes = /aai/v21/network/vpls-pes +vpls-pe = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name} +vpls-pe|lag-interfaces = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces +vpls-pe|lag-interface = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name} +vpls-pe|lag-interface|l-interfaces = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces +vpls-pe|lag-interface|l-interface = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|lag-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|lag-interface|l-interface|sriov-vfs = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|lag-interface|l-interface|sriov-vf = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|lag-interface|l-interface|vlans = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|lag-interface|l-interface|vlan = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|lag-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interfaces = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces +vpls-pe|p-interface = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name} +vpls-pe|p-interface|l-interfaces = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces +vpls-pe|p-interface|l-interface = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name} +vpls-pe|p-interface|l-interface|l3-interface-ipv4-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|l3-interface-ipv6-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|l-interface|sriov-vfs = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs +vpls-pe|p-interface|l-interface|sriov-vf = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/sriov-vfs/sriov-vf/{pci-id} +vpls-pe|p-interface|l-interface|vlans = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans +vpls-pe|p-interface|l-interface|vlan = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv4-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address} +vpls-pe|p-interface|l-interface|vlan|l3-interface-ipv6-address-list = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address} +vpls-pe|p-interface|sriov-pfs = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs +vpls-pe|p-interface|sriov-pf = /aai/v21/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/sriov-pfs/sriov-pf/{pf-pci-id} +vpn-bindings = /aai/v21/network/vpn-bindings +vpn-binding = /aai/v21/network/vpn-bindings/vpn-binding/{vpn-id} +vpn-binding|route-targets = /aai/v21/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets +vpn-binding|route-target = /aai/v21/network/vpn-bindings/vpn-binding/{vpn-id}/route-targets/route-target/{global-route-target}/{route-target-role} +wan-port-configs = /aai/v21/network/wan-port-configs +wan-port-config = /aai/v21/network/wan-port-configs/wan-port-config/{wan-port-config-id} +lan-port-configs = /aai/v21/network/lan-port-configs +lan-port-config = /aai/v21/network/lan-port-configs/lan-port-config/{lan-port-config-id} +zones = /aai/v21/network/zones +zone = /aai/v21/network/zones/zone/{zone-id} diff --git a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb index 880f4e1c1..996a74afd 100755 --- a/aai-service/provider/src/main/resources/aai-schema-bindings.xjb +++ b/aai-service/provider/src/main/resources/aai-schema-bindings.xjb @@ -3,7 +3,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"> - + diff --git a/aai-service/provider/src/main/resources/aai_schema_v19.xsd b/aai-service/provider/src/main/resources/aai_schema_v19.xsd deleted file mode 100644 index 4c7fdfaf0..000000000 --- a/aai-service/provider/src/main/resources/aai_schema_v19.xsd +++ /dev/null @@ -1,11539 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") - - - - - - - @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value of the attribute.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") - - - - - - - @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag",dslStartNodeProps="cvlan-tag,network-uuid,network-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="cvlan-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url",dslStartNodeProps="vcenter-url,switch-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type",dslStartNodeProps="availability-zone-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose",dslStartNodeProps="availability-zone-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region",dslStartNodeProps="identity-url,data-center-code,complex-name,physical-location-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") - - - - - - - @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of physical locations that can house cloud-regions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type",dslStartNodeProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the volume group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ONAP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink",dslStartNodeProps="volume-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address",dslStartNodeProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address",dslStartNodeProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key,orchestration-status,prov-status",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered",dslStartNodeProps="vlan-interface,vlan-id-inner,vpn-key") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id",dslStartNodeProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") - - - - - - - @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name,interface-role,prov-status",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",searchable="interface-name",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered",dslStartNodeProps="macaddr,interface-id,interface-name,network-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC address for the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Priority used for fail-over. Valid values 1-1024, with 1 being the highest priority.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,in-maint,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled",dslStartNodeProps="vserver-name,vserver-id,vserver-name2") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id,prov-status",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}",requiredProps="nos-server-id,nos-server-name,vendor,nos-server-selflink,in-maint",dslStartNodeProps="nos-server-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of nos") - - - - - - - @org.onap.aai.annotations.Metadata(description="uCPE vendor") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name",dslStartNodeProps="tenant-name,tenant-id,tenant-context") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Readable name of tenant") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="tenant parent-id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of openstack tenants.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability",requiredProps="hpa-attribute-key",dslStartNodeProps="hpa-attribute-key") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities",requiredProps="hpa-capability-id,hpa-feature",uriTemplate="/hpa-capabilities/hpa-capability/{hpa-capability-id}",dslStartNodeProps="hpa-feature,architecture,hpa-capability-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA schema version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hardware architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink",dslStartNodeProps="flavor-name,flavor-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud Region Flavor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of CPUs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of memory") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") - - - - - - - @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") - - - - - - - @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name",dslStartNodeProps="group-id,group-type,group-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group description - description of the group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id",dslStartNodeProps="application,snapshot-name,application-vendor,snapshot-id,application-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Snapshot name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="image,service-instance,connector,model-ver",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval",dslStartNodeProps="metaname") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink",dslStartNodeProps="application,image-name,application-vendor,image-id,application-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") - - - - - - - @org.onap.aai.annotations.Metadata(description="Image name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operating system architecture.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") - - - - - - - @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of availability zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network,esr-nfvo",requiredProps="esr-system-info-id,user-name,password,system-type",uriTemplate="/esr-system-info-list/esr-system-info/{esr-system-info-id}",dslStartNodeProps="esr-system-info-id,system-name,system-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vendor of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="version of external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="url used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="username used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access external systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service port of ftp server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="domain info for authentication.") - - - - - - - @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") - - - - - - - @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the status of external system.") - - - - - - - @org.onap.aai.annotations.Metadata(description="OpenStack region ID used by MultiCloud plugin to interact with an OpenStack instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of persistent block-level external system auth info.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id,orchestration-disabled,in-maint",dslStartNodeProps="cloud-owner,cloud-region-id,cloud-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Upgrade cycle for the cloud region. For AIC regions upgrade cycle is designated by A,B,C etc.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether orchestration is enabled for this cloud-region.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not cloud-region object is in maintenance mode.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name",dslStartNodeProps="nm-profile-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network profiles") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an available-bandwidth-map",indexedProps="ab-id",searchable="ab-id",uniqueProps="ab-id",container="available-bandwidth-map",dependentOn="bandwidth-attribute",requiredProps="ab-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="ODU Type that identifies the ODU Eg. ODU0, ODU1, ODU2, ODU3, ODU4") - - - - - - - @org.onap.aai.annotations.Metadata(description="The value of available bandwidth. Applicable only for ENNI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Available Bandwidth. Added for ENNI in MDONS use case.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a otn-label-restriction attribute",indexedProps="lr-id",searchable="lr-id",uniqueProps="lr-id",container="otn-label-restrictions",dependentOn="bandwidth-attribute",requiredProps="lr-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the label restriction") - - - - - - - @org.onap.aai.annotations.Metadata(description="Bitmap of available labels starting from label-start to label-end.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Step of labels in label range.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Label Restriction. Added for ENNI in MDONS use case.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a bandwidth-attribute",indexedProps="bwa-id",searchable="bwa-id",uniqueProps="bwa-id",container="bandwidth-attributes",dependentOn="pnf,p-interface",requiredProps="bwa-id",uriTemplate="/bandwidth-attributes/bandwidth-attribute/{bwa-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the bandwidth attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of bandwidth attribute. Added for ENNI in MDONS use case.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,networkRef,operational-status,interface-role,interface-name2",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",searchable="interface-name",requiredProps="interface-name,in-maint",dslStartNodeProps="interface-name,interface-type,interface-role,interface-function") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name that identifies the physical interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Domain type of the SDNC controllerr.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The data structure to indicate value of available bandwidth. Applicable only for ENNI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(description="inventory status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="connect interdomain link") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role,prov-status",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint",dslStartNodeProps="interface-name,interface-id,interface-role") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ONAP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="HPA Capacity information for compute node",indexedProps="hpa-capacity-key",dependentOn="pserver",requiredProps="hpa-capacity-key",dslStartNodeProps="hpa-capacity-key") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Composite key formed with hpaFeature and append list of hpaFeatureAttributes needed for capacity check") - - - - - - - @org.onap.aai.annotations.Metadata(description="JSON string specifying the capacity (total,free), unit and metadata of the specific HPA attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2",indexedProps="hostname,in-maint,pserver-id,pserver-name2,inv-status,prov-status,ptnii-equip-name",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint",dslStartNodeProps="hostname,pserver-id,pserver-name2") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") - - - - - - - @org.onap.aai.annotations.Metadata(description="PTNII name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Number of cpus") - - - - - - - @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="alternative pserver name") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose of pserver") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of compute hosts.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name",dslStartNodeProps="vdc-name,vdc-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}",requiredProps="operational-environment-id,operational-environment-name,operational-environment-type,operational-environment-status,tenant-context,workload-context") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Tenant Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Workload Context.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}",requiredProps="network-technology-id,network-technology-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") - - - - - - - @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id",uriTemplate="/external-system/esr-ems-list/esr-ems/{ems-id}",dslStartNodeProps="ems-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id",uriTemplate="/external-system/esr-vnfm-list/esr-vnfm/{vnfm-id}",dslStartNodeProps="vnfm-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist NFVO address information used by VF-C.",indexedProps="nfvo-id",searchable="nfvo-id",container="esr-nfvo-list",namespace="external-system",requiredProps="nfvo-id",uriTemplate="/external-system/esr-nfvo-list/esr-nfvo/{nfvo-id}",dslStartNodeProps="nfvo-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of nfvo.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indecate the api-root.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",indexedProps="sdnc-id",searchable="sdnc-id",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id",uriTemplate="/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id}",dslStartNodeProps="sdnc-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") - - - - - - - @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Domain type of the SDNC controllerr.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for external system.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id",dslStartNodeProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name,orchestration-status",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Requirement of comunication service.",uniqueProps="profile-id",indexedProps="profile-id",container="communication-service-profiles",dependentOn="service-instance",uriTemplate="/service-instances/service-instance/{service-instance-id}/communication-service-profiles/communication-service-profile/{profile-id}",searcheable="profile-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="ID of the profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The maximum number of UEs may simultaneously access the communication service") - - - - - - - @org.onap.aai.annotations.Metadata(description="A list of TrackingAreas where the NSI can be selected.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the RAN, CN, and TN part of 5G network and is used to evaluate utilization performance of the end-to-end network slice instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate of upload.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate of download.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User mobility level, value can be stationary, nomadic, restricted mobility, fully mobility.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether the resources to be allocated to the network slice instance may be shared with another network slice instance(s).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of communication service profile.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Requirement of E2E Slice service.",uniqueProps="profile-id",indexedProps="profile-id",container="service-profiles",dependentOn="service-instance",uriTemplate="/service-instances/service-instance/{service-instance-id}/service-profiles/service-profile/{profile-id}",searcheable="profile-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="ID of the profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the RAN, CN, and TN part of 5G network and is used to evaluate utilization performance of the end-to-end network slice instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The maximum number of UEs may simultaneously access the E2E slice service") - - - - - - - @org.onap.aai.annotations.Metadata(description="A list of TrackingAreas where the NSI can be selected.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User mobility level, value can be stationary, nomadic, restricted mobility, fully mobility.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether the resources to be allocated to the network slice instance may be shared with another network slice instance(s).") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate of upload.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate of download.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The area traffic capbility of upload.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The area traffic capbility of download.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The activity factor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="jitter") - - - - - - - @org.onap.aai.annotations.Metadata(description="Survival Time") - - - - - - - @org.onap.aai.annotations.Metadata(description="The availability requirement for an network slice instance, expressed as a percentage.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The reliability requirement for an network slice instance, expressed as a percentage.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate.") - - - - - - - @org.onap.aai.annotations.Metadata(description="traffic density") - - - - - - - @org.onap.aai.annotations.Metadata(description="connection density") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of E2E slice service profile.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Requirement of network slice subnet service.",uniqueProps="profile-id",indexedProps="profile-id",container="slice-profiles",dependentOn="service-instance",uriTemplate="/service-instances/service-instance/{service-instance-id}/slice-profiles/slice-profile/{profile-id}",searcheable="profile-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="ID of the profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the RAN or CN or TN and is used to evaluate utilization performance of the end-to-end network slice instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The maximum number of UEs may simultaneously access the slice subnet service") - - - - - - - @org.onap.aai.annotations.Metadata(description="A list of TrackingAreas where the NSSI can be selected.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User mobility level, value can be stationary, nomadic, restricted mobility, fully mobility.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Whether the resources to be allocated to the slice subnet instance may be shared with another network slice instance(s).") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate of upload.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate of download.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The area traffic capbility of upload.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The area traffic capbility of download.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The activity factor.") - - - - - - - @org.onap.aai.annotations.Metadata(description="e2e latency") - - - - - - - @org.onap.aai.annotations.Metadata(description="jitter") - - - - - - - @org.onap.aai.annotations.Metadata(description="Survival Time") - - - - - - - @org.onap.aai.annotations.Metadata(description="The availability requirement for an network slice subnet instance, expressed as a percentage.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The reliability requirement for an network slice subnet instance, expressed as a percentage.") - - - - - - - @org.onap.aai.annotations.Metadata(description="User experience data rate.") - - - - - - - @org.onap.aai.annotations.Metadata(description="payload size.") - - - - - - - @org.onap.aai.annotations.Metadata(description="traffic density") - - - - - - - @org.onap.aai.annotations.Metadata(description="connection density") - - - - - - - @org.onap.aai.annotations.Metadata(description="service area dimension") - - - - - - - @org.onap.aai.annotations.Metadata(description="S-NSSAI") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of slice subnet service profile.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id",dslStartNodeProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing the service role.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Rate of the service instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Definition of the service layer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Due date of the service creation.") - - - - - - - @org.onap.aai.annotations.Metadata(description="End date of the service creation.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="create time of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="last update of Network Service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="short description for service-instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") - - - - - - - @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing function of the service.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service instances") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type",dslStartNodeProps="service-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ONAP.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type",dslStartNodeProps="subscriber-name,global-customer-id,subscriber-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ONAP to uniquely identify customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of customer identifiers to provide linkage back to BSS information.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name",dslStartNodeProps="line-of-business-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name",dslStartNodeProps="owning-entity-id,owning-entity-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") - - - - - - - @org.onap.aai.annotations.Metadata(description="Owning entity name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name",dslStartNodeProps="platform-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of platforms") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name",dslStartNodeProps="project-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of projects") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource,model-invariant-id,model-version-id",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}",requiredProps="sp-partner-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this sp-partner.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this sp-partner model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this sp-partner model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor",dslStartNodeProps="application,vnf-image-uuid,application-vendor,application-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") - - - - - - - @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The vendor of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The version of the application.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description",dslStartNodeProps="service-description,service-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description of the service") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="service version") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type",dslStartNodeProps="service-type,vnf-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ONAP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="constrained-element-set",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="model-element,model-constraint",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="model-element,",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="model-element,element-choice-set,model-ver",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") - - - - - - - @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") - - - - - - - @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",dependentOn="model",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Distribution Status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration type of this model.") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="named-query-element",container="related-lookups",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property",uriTemplate="/related-lookups/related-lookup/{related-lookup-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value",uriTemplate="/property-constraints/property-constraint/{property-constraint-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="named-query,named-query-element",container="named-query-elements",requiredProps="named-query-element-uuid",uriTemplate="/named-query-elements/named-query-element/{named-query-element-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",requiredProps="named-query-uuid,named-query-name,named-query-version",uriTemplate="/service-design-and-creation/named-queries/named-query/{named-query-uuid}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,link-type,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type",dslStartNodeProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,circuit-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the administrative state of the link") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") - - - - - - - @org.onap.aai.annotations.Metadata(description="For example, static or BGP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of logical connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}",dslStartNodeProps="cos") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="type of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="class-of-service of probe") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}",dslStartNodeProps="site-pair-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix address") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") - - - - - - - @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="probe within a set") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}",dslStartNodeProps="routing-instance-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="rpm owner") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id",dslStartNodeProps="site-pair-set-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding,vrf",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of route target information") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status,model-invariant-id,model-version-id",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name",dslStartNodeProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,model-invariant-id,model-version-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") - - - - - - - @org.onap.aai.annotations.Metadata(description="VPN Name") - - - - - - - @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") - - - - - - - @org.onap.aai.annotations.Metadata(description="region of customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="id for this customer vpn") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name",dslStartNodeProps="equipment-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true) - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}",dslStartNodeProps="multicast-configuration-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}",dslStartNodeProps="cvlan-tag") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name,interface-role,orchestration-status",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status",dslStartNodeProps="port-group-id,heat-stack-id,interface-id,interface-name,switch-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") - - - - - - - @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") - - - - - - - @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid,projectNumber,orderNumber,receiptDate",dependentOn="generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to store CFAS or other project numbers.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Order number.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Date of receipt.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id,orchestration-status",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type",dslStartNodeProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,service-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ONAP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="point of attachment from services or resources to a virtual link or network.",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}",requiredProps="cp-instance-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of connection points.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id,orchestration-status",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}",dslStartNodeProps="vnfc-name,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,group-notation,model-invariant-id,model-version-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") - - - - - - - @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") - - - - - - - @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") - - - - - - - @org.onap.aai.annotations.Metadata(description="subnet prefix") - - - - - - - @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name,orchestration-status",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}",dslStartNodeProps="subnet-id,subnet-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="gateway ip address") - - - - - - - @org.onap.aai.annotations.Metadata(description="network start address") - - - - - - - @org.onap.aai.annotations.Metadata(description="cidr mask") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") - - - - - - - @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") - - - - - - - @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="sequence of the subnet") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}",dslStartNodeProps="vlan-id-inner") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Aggregate route configs are used on the D2 IPE’s for the Voice services. In 1902, SDNC will create aggregate-route objects and write them to A&AI. ",uniqueProps="route-id",container="aggregate-routes",dependentOn="l3-network",uriTemplate="/aggregate-routes/aggregate-route/{route-id}",requiredProps="route-id,network-start-address,cidr-mask,ip-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of the aggregate-route instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the forwarding-path") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIDR-mask for aggregate route subnet") - - - - - - - @org.onap.aai.annotations.Metadata(description="Identifies is aggregate route is ipv4 or ipv6") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of aggregate routes.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role,orchestration-status",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network",dslStartNodeProps="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="network role instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}",dslStartNodeProps="network-policy-id,network-policy-fqdn") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn,orchestration-status",searchable="vf-module-id,vf-module-name",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module,automated-assignment",dslStartNodeProps="vf-module-id,vf-module-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of vf-module") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") - - - - - - - @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role,nm-profile-name,orchestration-status",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled",dslStartNodeProps="vnf-name2,vnf-type,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf instance id.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") - - - - - - - @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf discriptor name") - - - - - - - @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 Loopback address") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 management address") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(description="number of network in vnf.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") - - - - - - - @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") - - - - - - - @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") - - - - - - - @org.onap.aai.annotations.Metadata(description="as-number of the VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") - - - - - - - @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") - - - - - - - @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") - - - - - - - @org.onap.aai.annotations.Metadata(description="Path to the controller object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Gateway address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="VNF instance specific software version") - - - - - - - @org.onap.aai.annotations.Metadata(description="vnf application-id") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of VNFs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name",dslStartNodeProps="link-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2,orchestration-status",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type",dslStartNodeProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id2") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") - - - - - - - @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") - - - - - - - @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") - - - - - - - @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") - - - - - - - @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") - - - - - - - @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Software Version",indexedProps="softwareVersionId,isActiveSwVer",dependentOn="pnf",container="pnf",requiredProps="software-version-id,is-active-sw-ver",uriTemplate="/pnf/software-version/{software-version-id}",dslStartNodeProps="softwareVersionId,isActiveSwVer") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier of the software version") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this software-version is the active one (activeSw = true)") - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of software versions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Definition of vrf",indexedProps="vrf-id",nameProps="vrf-name",dependentOn="pnf",container="vrfs",uriTemplate="/vrfs/vrf/{vrf-id}",requiredProps="vrf-id,vrf-name",dslStartNodeProps="vrf-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="VRF UUID.") - - - - - - - @org.onap.aai.annotations.Metadata(description="VRF Name") - - - - - - - @org.onap.aai.annotations.Metadata(description="VRF Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Route Distinguisher") - - - - - - - @org.onap.aai.annotations.Metadata(description="The type of vrf (bridge-domain as an example)") - - - - - - - @org.onap.aai.annotations.Metadata(description="IP address family (v6/v4/both)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status,nf-role,prov-status,nf-naming-code",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint",dslStartNodeProps="pnf-name,model-invariant-id,model-version-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") - - - - - - - @org.onap.aai.annotations.Metadata(description="source of name2") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of pnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="Naming code for network function") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") - - - - - - - @org.onap.aai.annotations.Metadata(description="identifier of managed customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of this pnf") - - - - - - - @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") - - - - - - - @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Serial number of the device") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") - - - - - - - @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") - - - - - - - @org.onap.aai.annotations.Metadata(description="true, indicate abstract node") - - - - - - - @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv4) for the PNF itself. This is the IPv4 address that the PNF iself can be accessed at.") - - - - - - - @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv6) for the PNF itself. This is the IPv6 address that the PNF iself can be accessed at.") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of Physical Network Functions.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit it") - - - - - - - @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") - - - - - - - @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") - - - - - - - @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(maximumDepth="0",description="Collection of physical connections, typically between p-interfaces") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") - - - - - - - @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Shared DMZ or a DMZ specific to a customer") - - - - - - - @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") - - - - - - - @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") - - - - - - - @org.onap.aai.annotations.Metadata(description="can be 1 or 2") - - - - - - - @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") - - - - - - - @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") - - - - - - - @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") - - - - - - - @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") - - - - - - - @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") - - - - - - - @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") - - - - - - - @org.onap.aai.annotations.Metadata(description="enable PFS or not") - - - - - - - @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") - - - - - - - @org.onap.aai.annotations.Metadata(description="The time between DPD probe") - - - - - - - @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,type,sub-type,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,instance-group-type") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="role of the instance group.") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") - - - - - - - @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance-Group Function") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context,in-maint") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="English name associated with the zone") - - - - - - - @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") - - - - - - - @org.onap.aai.annotations.Metadata(description="Status of a zone.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Concurrency value") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not zone object is in maintenance mode.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of zones") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}",requiredProps="vlan-mapping-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}",requiredProps="forwarder-evc-id",indexedProps="circuit-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal VLAN.") - - - - - - - @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") - - - - - - - @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}",requiredProps="evc-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") - - - - - - - @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") - - - - - - - @org.onap.aai.annotations.Metadata(description="Commited Information Rate") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units") - - - - - - - @org.onap.aai.annotations.Metadata(description="Diversity Group ID") - - - - - - - @org.onap.aai.annotations.Metadata(description="formerly Performance Group") - - - - - - - @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Identifies ESP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") - - - - - - - @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Product ID") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,configuration-name,configuration-type,model-invariant-id,model-version-id,orchestration-status,configuration-role,configuration-function,orchestration-version",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type",dslStartNodeProps="configuration-id,model-invariant-id,model-version-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") - - - - - - - @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") - - - - - - - @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") - - - - - - - @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") - - - - - - - @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to categorize the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to categorize the configuration.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used by some configurations to identify if it's filling a primary role.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used to categorize the configuration.") - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of configurations") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}",requiredProps="sequence") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") - - - - - - - @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}",requiredProps="forwarding-path-id,forwarding-path-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the FP") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the self link for this FP") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id,orchestration-status",container="collections",uriTemplate="/network/collections/collection/{collection-id}",requiredProps="collection-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") - - - - - - - @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="collection name") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection type") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection Role") - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection function") - - - - - - - @org.onap.aai.annotations.Metadata(description="orchestration status") - - - - - - - @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") - - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(namespace="network",container="vlan-tags",uniqueProps="vlan-tag-id",uriTemplate="/network/vlan-tags/vlan-tag/{vlan-tag-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vlan-tag") - - - - - - - @org.onap.aai.annotations.Metadata(description="purpose (l3-network to be connected to)") - - - - - - - @org.onap.aai.annotations.Metadata(description="VLAN inner id") - - - - - - - @org.onap.aai.annotations.Metadata(description="VLAN outer id") - - - - - - - @org.onap.aai.annotations.Metadata(defaultValue="false",description="is VLAN private?") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status,model-invariant-id,model-version-id",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network",requiredProps="connectivity-id",uriTemplate="/network/connectivities/connectivity/{connectivity-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of connectivities") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network",requiredProps="dhcp-service-id",uriTemplate="/network/dhcp-services/dhcp-service/{dhcp-service-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network",requiredProps="lan-port-config-id",uriTemplate="/network/lan-port-configs/lan-port-config/{lan-port-config-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network",requiredProps="network-id",uriTemplate="/network/network-resources/network-resource/{network-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store network type(ETH, OTN) of this network-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of network-resources") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status,model-invariant-id,model-version-id",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network",requiredProps="site-resource-id",uriTemplate="/network/site-resources/site-resource/{site-resource-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of site-resources") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status,model-invariant-id,model-version-id",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network",requiredProps="sdwan-vpn-id",uriTemplate="/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,system-ipv4,system-ipv6,operational-status,model-invariant-id,model-version-id",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network",requiredProps="device-id",uriTemplate="/network/devices/device/{device-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the class of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the type of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the version of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the system-ipv4 of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the system-ipv6 of this device.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of devices") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,ipv4-address,ipv6-address,port-type,port-number,device-port-id,wan-port-id,operational-status,model-invariant-id,model-version-id",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network",requiredProps="wan-port-config-id",uriTemplate="/network/wan-port-configs/wan-port-config/{wan-port-config-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the provider-ipv4-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the provider-ipv6-address of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network",requiredProps="aai-id",uriTemplate="/network/ext-aai-networks/ext-aai-network/{aai-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an label restriction",indexedProps="id,label-start,label-end,range-bitmap,operational-status,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="label-restrictions",namespace="network",requiredProps="id",uriTemplate="/network/label-restrictions/label-restriction/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the label restriction") - - - - - - - @org.onap.aai.annotations.Metadata(description="First number in the label range") - - - - - - - @org.onap.aai.annotations.Metadata(description="Last number in the label range") - - - - - - - @org.onap.aai.annotations.Metadata(description="Bitmap of available labels starting from label-start to label-end.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Step of labels in label range.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate wheather range-bitmap items are inclusive or exclusive.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate the label range e.g.trib-slot, trib-port") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate trib slot granularity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Priority.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Label Restriction.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an User network interface",indexedProps="id,tpId,cVLAN,operational-status,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="unis",namespace="network",requiredProps="id",uriTemplate="/network/unis/uni/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the UNI") - - - - - - - @org.onap.aai.annotations.Metadata(description="Termination point ID.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The cvlan for the site used for ethernet type connectivity.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of User network interface.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an te-link-attribute",indexedProps="id,linkProtectionType,accessType,operational-status,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="te-link-attributes",namespace="network",requiredProps="id",uriTemplate="/network/te-link-attributes/te-link-attribute/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the TE link attribute") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate wheather link is abstract or native") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate desired protection type of the link e.g, unprotected, shared or 1+1") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate link access type e.g, point-to-point or multi-access.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Bandwidth available on link.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The type of ODU e.g, ODU1, ODU2, ODU3, ODU4.") - - - - - - - @org.onap.aai.annotations.Metadata(description="The value of available bandwidth.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of TE link attributes.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an inter layer topology attachment",indexedProps="id,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="interlayer-attachments",namespace="network",requiredProps="id",uriTemplate="/network/interlayer-attachments/interlayer-attachment/{id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the interlayer topology attachment") - - - - - - - @org.onap.aai.annotations.Metadata(description="Inter layer lock id") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of interlayer topology connectivities.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Instance of an tunnel termination point",indexedProps="ttp-id,tunnel-tp-id,name,operational-status,model-invariant-id,model-version-id",searchable="ttp-id",uniqueProps="ttp-id",container="tunnel-termination-points",namespace="network",requiredProps="ttp-id",uriTemplate="/network/tunnel-termination-points/tunnel-termination-point/{ttp-id}") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the tunnel termination point") - - - - - - - @org.onap.aai.annotations.Metadata(description="TTP ID discovered from controller") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of tunnel termination point") - - - - - - - @org.onap.aai.annotations.Metadata(description="Admin status of TTP e.g, up,down,testing,preparing-maintenance,maintenance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Operational status of TTP e.g, up,down,testing,preparing-maintenance,maintenance.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate switching capability of TTP e.g,PSC-1, EVPL,L2SC,TDM,OTN.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Encoding support by the TTP e.g, packet,ethernet,PDH,SDH,digital-wrapper,lambda,fiber,ODUK,line.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Indicate supported protection type of this TTP e.g, unprotected,reroute,reroute-extra,1-for-n,unidir-1-to-1.") - - - - - - - @org.onap.aai.annotations.Metadata(description="correlation between related objects in ETH and OTN topology.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") - - - - - - - @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of Tunnel Termination Point.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key,aai-uri,aai-uuid",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri,aai-uuid") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Contacts store the vendor information and have a relationship to the generic-vnf. In 1902, this will be populated by SDN-GC",uniqueProps="contact-name",container="contacts",namespace="common",nameProps="contact-name,vendor-type",uriTemplate="/common/contacts/contact/{contact-name}",requiredProps="contact-name") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the contact") - - - - - - - @org.onap.aai.annotations.Metadata(description="Tel no. of contact") - - - - - - - @org.onap.aai.annotations.Metadata(description="e-mail of contact") - - - - - - - @org.onap.aai.annotations.Metadata(description="NI (Network Integrator)SI (System Integrator) 3rd Party LCM") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Collection of contacts") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Namespace for common inventory resources.") - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") - - - - - - - @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") - - - - - - - @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Version") - - - - - - - @org.onap.aai.annotations.Metadata(description="Description") - - - - - - - @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") - - - - - - - - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") - - - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") - - - - - - - - - - - - @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") - - - - - - - @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") - - - - - - - - - - - - - - - - - - - - - - diff --git a/aai-service/provider/src/main/resources/aai_schema_v21.xsd b/aai-service/provider/src/main/resources/aai_schema_v21.xsd new file mode 100644 index 000000000..89049bd7f --- /dev/null +++ b/aai-service/provider/src/main/resources/aai_schema_v21.xsd @@ -0,0 +1,14832 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="The specific type of node in the A&AI graph") + + + + + + + @org.onap.aai.annotations.Metadata(description="The URL to the specific resource") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate an attribute.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value of the attribute.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Key part of a key/value pair") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value part of a key/value pair") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A keyword provided by A&AI to indicate type of node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The edge label for this relationship.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to the object in A&AI.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="OAM network, to be deprecated shortly. Do not use for new purposes. ",nameProps="network-name",indexedProps="cvlan-tag,network-uuid,network-name",dependentOn="cloud-region",container="oam-networks",uriTemplate="/oam-networks/oam-network/{network-uuid}",requiredProps="network-uuid,network-name,cvlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="cvlan-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly. Do not use for new purposes. ") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs. A&AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches",uriTemplate="/dvs-switches/dvs-switch/{switch-name}",requiredProps="switch-name,vcenter-url") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="DVS switch name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL used to reach the vcenter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones",uriTemplate="/availability-zones/availability-zone/{availability-zone-name}",requiredProps="availability-zone-name,hypervisor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone. Unique across a cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hypervisor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Serves a PATCH like function. Does not enforce concurrency control. Clear each usage with AAI team.",requiredProps="update-node-type") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of rack-unit",indexedProps="rack-unit-name",dependentOn="rack",container="rack-units",uriTemplate="/rack-units/rack-unit/{rack-unit-name}",requiredProps="rack-unit-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="A unique name for the rack-unit (within the rack).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of pdu",uniqueProps="pdu-name",indexedProps="pdu-name",dependentOn="rack",container="pdus",uriTemplate="/pdus/pdu/{pdu-name}",requiredProps="pdu-name,pdu-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="A unique name for the power distribution unit.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of pdu.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of rack",uniqueProps="rack-name",indexedProps="rack-name",dependentOn="complex",container="racks",uriTemplate="/racks/rack/{rack-name}",requiredProps="rack-name,rack-type,rack-location,rack-power-diversity") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="A unique name for the rack (within the location).") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of rack.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The location of the rack within the building.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The position of the rack (ex-floor-mounted).") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of cable",indexedProps="cable-name",dependentOn="complex",container="cables",uriTemplate="/cables/cable/{cable-name}",requiredProps="cable-name,cable-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="A unique name for the channel-link relative to the physical-link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of cable.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A collection of C tags (vlan tags) grouped for a specific purpose.",indexedProps="availability-zone-name",dependentOn="complex",container="ctag-pools",uriTemplate="/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}",requiredProps="target-pe,availability-zone-name,ctag-pool-purpose") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The Target provider edge router") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the availability zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Comma separated list of ctags") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.",indexedProps="identity-url,data-center-code,complex-name,physical-location-id",searchable="physical-location-id,data-center-code,complex-name,street1,street2,postal-code",uniqueProps="physical-location-id",container="complexes",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/complexes/complex/{physical-location-id}",requiredProps="physical-location-id,physical-location-type,street1,city,postal-code,country,region") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gamma complex name for LCP instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type, e.g., central office, data center.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time zone where the complex is located.") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id,orchestration-status",searchable="volume-group-id,volume-group-name",dependentOn="cloud-region",container="volume-groups",uriTemplate="/volume-groups/volume-group/{volume-group-id}",requiredProps="volume-group-id,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the volume group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ONAP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this volume-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level storage.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes",uriTemplate="/volumes/volume/{volume-id}",requiredProps="volume-id,volume-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp,lag-interface,p-interface",uriTemplate="/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",requiredProps="l3-interface-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc,cp,lag-interface,p-interface",uriTemplate="/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}",requiredProps="l3-interface-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key,orchestration-status,prov-status",dependentOn="l-interface",container="vlans",uriTemplate="/vlans/vlan/{vlan-interface}",requiredProps="vlan-interface,in-maint,is-ip-unnumbered,is-private") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String that identifies the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of vlan (eg. vxlan)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Private VLAN indicator.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Virtual Function (not to be confused with virtual network function)",indexedProps="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id",dependentOn="l-interface",container="sriov-vfs",uriTemplate="/sriov-vfs/sriov-vf/{pci-id}",requiredProps="pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf") + + + + + + + @org.onap.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This option is used to set the link status. Valid values as of 1607 are on, off, and auto.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name,interface-type,interface-function,interface-role,prov-status",dependentOn="generic-vnf,newvce,p-interface,vserver,lag-interface,l-interface,pnf,pserver",nameProps="interface-type",container="l-interfaces",uriTemplate="/l-interfaces/l-interface/{interface-name}",searchable="interface-name",requiredProps="interface-name,is-port-mirrored,in-maint,is-ip-unnumbered") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name given to the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether A&AI should be managing this interface of not. Could have value like CUSTOMER") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type to sub-classify the l-interface (ex, loopback)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Priority used for fail-over. Valid values 1-1024, with 1 being the highest priority.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this Linterface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Identifies l2-multicasting support on an l-interface. true indicates that l2-multicasting is supported; defaulted to false .") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Servers, aka virtual machine or VM.",nameProps="vserver-name",indexedProps="is-closed-loop-disabled,prov-status,vserver-name,vserver-id,vserver-name2",searchable="vserver-id,vserver-name,vserver-name2,operational-status",dependentOn="tenant",container="vservers",uriTemplate="/vservers/vserver/{vserver-id}",requiredProps="vserver-id,vserver-name,vserver-selflink,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternative name of vserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Non-uniform memory access optimization, helps prevent memory-bandwidth bottlenecks. Expected values - 1 or 2 identifying memory access") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.",indexedProps="nos-server-id,prov-status",dependentOn="tenant",nameProps="nos-server-name",container="nos-servers",uriTemplate="/nos-servers/nos-server/{nos-server-id}",requiredProps="nos-server-id,nos-server-name,vendor,nos-server-selflink,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for this nos relative to its tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of nos") + + + + + + + @org.onap.aai.annotations.Metadata(description="uCPE vendor") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="nos-server is the execution environment that will have images, certain versions of VNOS, running on it.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id,tenant-context",searchable="tenant-id,tenant-name",dependentOn="cloud-region",container="tenants",uriTemplate="/tenants/tenant/{tenant-id}",requiredProps="tenant-id,tenant-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Readable name of tenant") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the tenant context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tenant parent-id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack tenants.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capability Feature attributes",indexedProps="hpa-attribute-key",dependentOn="hpa-capability",requiredProps="hpa-attribute-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="name of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the value, unit and type of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a HPA capability",indexedProps="hpa-feature,architecture,hpa-capability-id",dependentOn="flavor,cloud-region",container="hpa-capabilities",requiredProps="hpa-capability-id,hpa-feature",uriTemplate="/hpa-capabilities/hpa-capability/{hpa-capability-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID to uniquely identify a HPA capability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the HPACapability") + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA schema version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hardware architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors",uriTemplate="/flavors/flavor/{flavor-id}",requiredProps="flavor-id,flavor-name,flavor-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Flavor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of CPUs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of memory") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="Amount of ephemeral disk space") + + + + + + + @org.onap.aai.annotations.Metadata(description="amount of swap space allocation") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="List of flavor specific HPA Capabilities") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack flavors.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack group-assignment used to store exclusivity groups (EG).",nameProps="group-name",indexedProps="group-id,group-type,group-name",searchable="group-id,group-name",dependentOn="cloud-region",container="group-assignments",uriTemplate="/group-assignments/group-assignment/{group-id}",requiredProps="group-id,group-type,group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group type - the type of group this instance refers to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name - name assigned to the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group description - description of the group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack group assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack snapshot",nameProps="snapshot-name",uniqueProps="snapshot-id",indexedProps="application,snapshot-name,application-vendor,snapshot-id,application-version,prev-snapshot-id",dependentOn="cloud-region",container="snapshots",uriTemplate="/snapshots/snapshot/{snapshot-id}",requiredProps="snapshot-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Snapshot name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack snapshots") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="image,service-instance,connector,configuration,model-ver,profile",container="metadata",uriTemplate="/metadata/metadatum/{metaname}",requiredProps="metaname,metaval") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images",uriTemplate="/images/image/{image-id}",requiredProps="image-id,image-name,image-os-distro,image-os-version,image-selflink") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Image name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system architecture.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase") + + + + + + + @org.onap.aai.annotations.Metadata(description="The operating system version as specified by the distributor.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collectio of Openstack images.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of availability zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv4-address-list/{vip-ipv4-address}",requiredProps="vip-ipv4-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 32 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="cloud-region",uriTemplate="/vip-ipv6-address-list/{vip-ipv6-address}",requiredProps="vip-ipv6-address") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="IP address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length, 128 for single address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator of fixed or floating address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan tag information",container="vlan-tags",dependentOn="vlan-range",uriTemplate="/vlan-tags/vlan-tag/{vlan-tag-id}",requiredProps="vlan-tag-id,vlan-tag-role,is-private") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Vlan Tag Id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inner VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Outer VLAN tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="is private flag.") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN tag Type") + + + + + + + @org.onap.aai.annotations.Metadata(description="VLAN Tag Function") + + + + + + + @org.onap.aai.annotations.Metadata(description="The config-phase associated with this vlan-tag") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Vlan Tags Assigned out of a Vlan Range") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vlan range",indexedProps="vlan-range-id,vlan-type",dependentOn="cloud-region",container="vlan-ranges",uriTemplate="/vlan-ranges/vlan-range/{vlan-range-id}",searchable="vlan-range-id",requiredProps="vlan-range-id,vlan-id-lower,vlan-id-upper,vlan-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="vlan id in range UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan id in range lower") + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan id in range upper") + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an hostAggregates",dependentOn="cloud-region",container="host-aggregates",uriTemplate="/host-aggregates/host-aggregate/{host-aggregate-id}",requiredProps="host-aggregate-id,host-aggregate-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier for the host-aggregate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the host-aggregate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of HostAggregates.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an activities",uniqueProps="state-order",dependentOn="activity",container="activity-states",uriTemplate="/activity-states/activity-state/{state-order}",requiredProps="state-order,state-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Order for the activity state.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the activity state (ex, NVT-PROV).") + + + + + + + @org.onap.aai.annotations.Metadata(description="View of the activity state.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of activity-states") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an activities",uniqueProps="activity-id",dependentOn="pserver,pnf,cloud-region,p-interface,network-range",container="activities",uriTemplate="/activities/activity/{activity-id}",requiredProps="activity-id,activity-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id for the activity. (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of activity (ex, provisioning).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the activity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Application that created the activity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of activity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Date and Time activity is created.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Current state of the activity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="State reflected by the database.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function") + + + + + + + @org.onap.aai.annotations.Metadata(description="Date/time last updated") + + + + + + + @org.onap.aai.annotations.Metadata(description="Date/time expires") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of activities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="validation audit, value of validation status",indexedProps="validation-id",uniqueProps="validation-id",dependentOn="cloud-region",container="validation-audits",uriTemplate="/validation-audits/validation-audit/{validation-id}",requiredProps="validation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Validation-Audit UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="Request-id to retrieve data from client related to the specified audit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of the audit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Phase in the lifecycle of the configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of validation-audit") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network,esr-nfvo",requiredProps="esr-system-info-id,user-name,password,system-type",uriTemplate="/esr-system-info-list/esr-system-info/{esr-system-info-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of esr system info.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vendor of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="version of external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="url used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="username used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access external systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="it could be vim/vnfm/thirdparty-sdnc/ems-resource/ems-performance/ems-alarm.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of third party SDNC, for example netconf/snmp.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ca file content if enabled ssl on auth-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether to verify VIM's certificate.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service IP of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service port of ftp server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="domain info for authentication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="default tenant of VIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ftp passive mode or not.") + + + + + + + @org.onap.aai.annotations.Metadata(description="resource or performance data file path.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the status of external system.") + + + + + + + @org.onap.aai.annotations.Metadata(description="OpenStack region ID used by MultiCloud plugin to interact with an OpenStack instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of persistent block-level external system auth info.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&Ts AIC cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname and we will use att-aic for AT&T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}",requiredProps="cloud-owner,cloud-region-id,orchestration-disabled,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL of the keystone identity service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number that maps to the letter at the end of the cloud-region-id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function of cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The alias used for this cloud.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upgrade cycle for the cloud region. For AIC regions upgrade cycle is designated by A,B,C etc.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether orchestration is enabled for this cloud-region.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not cloud-region object is in maintenance mode.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="List of cloud-region specific HPA Capabilities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-profiles/network-profile/{nm-profile-name}",requiredProps="nm-profile-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted SNMP community string") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an available-bandwidth-map",indexedProps="ab-id",searchable="ab-id",uniqueProps="ab-id",container="available-bandwidth-map",dependentOn="bandwidth-attribute",requiredProps="ab-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="ODU Type that identifies the ODU Eg. ODU0, ODU1, ODU2, ODU3, ODU4") + + + + + + + @org.onap.aai.annotations.Metadata(description="The value of available bandwidth. Applicable only for ENNI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Available Bandwidth. Added for ENNI in MDONS use case.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a otn-label-restriction attribute",indexedProps="lr-id",searchable="lr-id",uniqueProps="lr-id",container="otn-label-restrictions",dependentOn="bandwidth-attribute",requiredProps="lr-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the label restriction") + + + + + + + @org.onap.aai.annotations.Metadata(description="Bitmap of available labels starting from label-start to label-end.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Step of labels in label range.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Label Restriction. Added for ENNI in MDONS use case.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a bandwidth-attribute",indexedProps="bwa-id",searchable="bwa-id",uniqueProps="bwa-id",container="bandwidth-attributes",dependentOn="pnf,p-interface",requiredProps="bwa-id",uriTemplate="/bandwidth-attributes/bandwidth-attribute/{bwa-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the bandwidth attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of bandwidth attribute. Added for ENNI in MDONS use case.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs",uriTemplate="/sriov-pfs/sriov-pf/{pf-pci-id}",requiredProps="pf-pci-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Physical interface (e.g., nic)",indexedProps="interface-name,prov-status,network-ref,operational-status,interface-role,interface-name2",nameProps="prov-status",dependentOn="vpls-pe,pserver,pnf",container="p-interfaces",uriTemplate="/p-interfaces/p-interface/{interface-name}",searchable="interface-name",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name that identifies the physical interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Domain type of the SDNC controllerr.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role specification for p-interface hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the physical properties of the interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The data structure to indicate value of available bandwidth. Applicable only for ENNI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC Address of the p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="inventory status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this pInterface") + + + + + + + @org.onap.aai.annotations.Metadata(description="MAC address for the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="connect interdomain link") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role,interface-function,prov-status",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces",uriTemplate="/lag-interfaces/lag-interface/{interface-name}",requiredProps="interface-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Human friendly text regarding this interface.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ONAP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The system id used by the LACP protocol.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this Lag interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Minimum links in service before a LAG should be taken out of service") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregate interfaces.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="HPA Capacity information for compute node",indexedProps="hpa-capacity-key",dependentOn="pserver",requiredProps="hpa-capacity-key") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Composite key formed with hpaFeature and append list of hpaFeatureAttributes needed for capacity check") + + + + + + + @org.onap.aai.annotations.Metadata(description="JSON string specifying the capacity (total,free), unit and metadata of the specific HPA attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Compute host whose hostname must be unique and must exactly match what is sent as a relationship to a vserver.",nameProps="pserver-name2,fqdn",indexedProps="hostname,pserver-id,pserver-name2,inv-status,fqdn,prov-status,ptnii-equip-name",searchable="hostname,pserver-name2,pserver-id,ipv4-oam-address,operational-status",uniqueProps="hostname",container="pservers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/pservers/pserver/{hostname}",requiredProps="hostname,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.") + + + + + + + @org.onap.aai.annotations.Metadata(description="PTNII name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of cpus") + + + + + + + @org.onap.aai.annotations.Metadata(description="Disk size, in GBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="RAM size, in MBs") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Fully-qualified domain name") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number, may be queried") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="internet topology of Pserver") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="alternative pserver name") + + + + + + + @org.onap.aai.annotations.Metadata(description="purpose of pserver") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates who owns and or manages the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The role performed by the pserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by the pserver.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of compute hosts.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context",nameProps="vdc-name",indexedProps="vdc-name,vdc-id",container="virtual-data-centers",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}",requiredProps="vdc-id,vdc-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the virtual data center") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="It is a logical partition of the cloud which allows to have multiple environments in the production AIC.",indexedProps="operational-environment-id",nameProps="operational-environment-name",uniqueProps="operational-environment-id",container="operational-environments",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/operational-environments/operational-environment/{operational-environment-id}",requiredProps="operational-environment-id,operational-environment-name,operational-environment-type,operational-environment-status,tenant-context,workload-context") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an operational environment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational Environment Type.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tenant Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Workload Context.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a logical partition of the cloud which allows to have multiple environments in the production AIC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Top level node for a cg-nat geographical region.",indexedProps="geo-region-id",uniqueProps="geo-region-id",container="geo-regions",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/geo-regions/geo-region/{geo-region-id}",requiredProps="geo-region-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID, key for geo-region object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of geo-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of geo-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of geo-region") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function of geo-region") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of geo-regions") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology object is used to capture the supported network technologies of a cloud-region.",nameProps="network-technology-id,network-technology-name",uniqueProps="network-technology-id",container="network-technologies",namespace="cloud-infrastructure",uriTemplate="/cloud-infrastructure/network-technologies/network-technology/{network-technology-id}",requiredProps="network-technology-id,network-technology-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier of the network-technology object (UUID)") + + + + + + + @org.onap.aai.annotations.Metadata(description="The network-technology that a cloud-region can support. Current valid values- CONTRAIL AIC_SR_IOV OVS STANDARD-SR-IOV") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description=" The network-technology object is used to capture the supported network technologies of a cloud-region.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for cloud infrastructure.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist EMS address information used by EMS driver.",indexedProps="ems-id",searchable="ems-id",container="esr-ems-list",namespace="external-system",requiredProps="ems-id",uriTemplate="/external-system/esr-ems-list/esr-ems/{ems-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of EMS.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist VNFM address information used by VF-C.",indexedProps="vnfm-id",searchable="vnfm-id",container="esr-vnfm-list",namespace="external-system",requiredProps="vnfm-id",uriTemplate="/external-system/esr-vnfm-list/esr-vnfm/{vnfm-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the VIM to deploy VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="certificate url of VNFM.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist NFVO address information used by VF-C.",indexedProps="nfvo-id",searchable="nfvo-id",container="esr-nfvo-list",namespace="external-system",requiredProps="nfvo-id",uriTemplate="/external-system/esr-nfvo-list/esr-nfvo/{nfvo-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of nfvo.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indecate the api-root.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Persist SDNC address information used by ONAP SDNC.",container="esr-thirdparty-sdnc-list",namespace="external-system",requiredProps="thirdparty-sdnc-id",uriTemplate="/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/{thirdparty-sdnc-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of SDNC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used for DC type to indicate the location of SDNC, such as Core or Edge.") + + + + + + + @org.onap.aai.annotations.Metadata(description="password used to access SDNC server.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Domain type of the SDNC controllerr.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(maximumDepth="0") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for external system.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets",indexedProps="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version",container="connectors",namespace="business",uriTemplate="/business/connectors/connector/{resource-instance-id}",requiredProps="resource-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted",uniqueProps="id",indexedProps="id",dependentOn="allotted-resource",container="tunnel-xconnects",uriTemplate="/tunnel-xconnects/tunnel-xconnect/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Represents a slice or partial piece of a resource that gets separately allotted",nameProps="description,allotted-resource-name",uniqueProps="id",indexedProps="id,model-invariant-id,model-version-id,type,role,allotted-resource-name,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,vpn-name,orchestration-status",dependentOn="service-instance",container="allotted-resources",uriTemplate="/allotted-resources/allotted-resource/{id}",requiredProps="id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Link back to more information in the controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of allotted resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this resource will be providing.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan of this allotted-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-name of this allotted-resource.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object is used to store slices of services being offered") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Requirement of comunication service.",uniqueProps="profile-id",indexedProps="profile-id",container="communication-service-profiles",dependentOn="service-instance",uriTemplate="/service-instances/service-instance/{service-instance-id}/communication-service-profiles/communication-service-profile/{profile-id}",searcheable="profile-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="ID of the profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The maximum number of UEs may simultaneously access the communication service") + + + + + + + @org.onap.aai.annotations.Metadata(description="A list of TrackingAreas where the NSI can be selected.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the RAN, CN, and TN part of 5G network and is used to evaluate utilization performance of the end-to-end network slice instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="User experience data rate of upload.") + + + + + + + @org.onap.aai.annotations.Metadata(description="User experience data rate of download.") + + + + + + + @org.onap.aai.annotations.Metadata(description="User mobility level, value can be stationary, nomadic, restricted mobility, fully mobility.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the resources to be allocated to the network slice instance may be shared with another network slice instance(s).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of communication service profile.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Requirement of E2E Slice service.",uniqueProps="profile-id",indexedProps="profile-id",container="service-profiles",dependentOn="service-instance",uriTemplate="/service-instances/service-instance/{service-instance-id}/service-profiles/service-profile/{profile-id}",searcheable="profile-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="ID of the profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the RAN, CN, and TN part of 5G network and is used to evaluate utilization performance of the end-to-end network slice instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The maximum number of UEs may simultaneously access the E2E slice service") + + + + + + + @org.onap.aai.annotations.Metadata(description="A list of TrackingAreas where the NSI can be selected.") + + + + + + + @org.onap.aai.annotations.Metadata(description="User mobility level, value can be stationary, nomadic, restricted mobility, fully mobility.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the resources to be allocated to the network slice instance may be shared with another network slice instance(s).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Percentage value of the amount of simultaneous active UEs to the total number of UEs where active means the UEs are exchanging data with the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The jitter requirements of network slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An attribute specifies the time that an application consuming a communication service may continue without an anticipated message.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This parameter specifies the availability requirement, expressed as a percentage.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An attribute specifies in the context of network layer packet transmissions, percentage value of the amount of sent network layer packets successfully delivered to a given system entity within the time constraint required by the targeted service, divided by the total number of sent network layer packets.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This attribute defines achievable data rate of the network slice in downlink that is available ubiquitously across the coverage area of the slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This attribute defines downlink data rate supported by the network slice per UE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This attribute defines achievable data rate of the network slice in uplink that is available ubiquitously across the coverage area of the slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This attribute defines uplink data rate supported by the network slice per UE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This parameter specifies the maximum packet size supported by the network slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This parameter defines the maximum number of concurrent sessions supported by the network slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An attribute specifies the overall user density over the coverage area of the network slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of E2E slice service profile.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Requirement of network slice subnet service.",uniqueProps="profile-id",indexedProps="profile-id",container="slice-profiles",dependentOn="service-instance",uriTemplate="/service-instances/service-instance/{service-instance-id}/slice-profiles/slice-profile/{profile-id}",searcheable="profile-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="ID of the profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the RAN or CN or TN and is used to evaluate utilization performance of the end-to-end network slice instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The maximum number of UEs may simultaneously access the slice subnet service") + + + + + + + @org.onap.aai.annotations.Metadata(description="A list of TrackingAreas where the NSSI can be selected.") + + + + + + + @org.onap.aai.annotations.Metadata(description="User mobility level, value can be stationary, nomadic, restricted mobility, fully mobility.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Whether the resources to be allocated to the slice subnet instance may be shared with another network slice instance(s).") + + + + + + + @org.onap.aai.annotations.Metadata(description="User experience data rate of upload.") + + + + + + + @org.onap.aai.annotations.Metadata(description="User experience data rate of download.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The area traffic capbility of upload.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The area traffic capbility of download.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An attribute specfies the percentage value of the amount of simultaneous active UEs to the total number of UEs where active means the UEs are exchanging data with the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The jitter requirements of network slice subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Survival time for network slice subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Communication service availability target value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maxmun bandwidth value of TN network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Expected date rate for uRLLC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="maxNumberofPDUSession Integer 1 The maximum number of PDU sessions that can simultaneously/concurrently access to the network slice.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Overall User Density.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Communication service reliability mean time between failures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Message size(byte) .") + + + + + + + @org.onap.aai.annotations.Metadata(description="transferIntervalTarget String 1 Target value of transfer interval.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of slice subnet service profile.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a service",indexedProps="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name,operational-status",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances",uriTemplate="/service-instances/service-instance/{service-instance-id}",requiredProps="service-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing the service role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Rate of the service instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of the service layer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Due date of the service creation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="End date of the service creation.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="create time of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last update of Network Service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="short description for service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.") + + + + + + + @org.onap.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing function of the service.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service instances") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type",uriTemplate="/service-subscriptions/service-subscription/{service-type}",requiredProps="service-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ONAP.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This property will be deleted from A&AI in the near future. Only stop gap solution.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of objects that group service instances.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="customer identifiers to provide linkage back to BSS information.",nameProps="subscriber-name",indexedProps="subscriber-name,global-customer-id,subscriber-type",searchable="global-customer-id,subscriber-name",uniqueProps="global-customer-id",container="customers",namespace="business",uriTemplate="/business/customers/customer/{global-customer-id}",requiredProps="global-customer-id,subscriber-name,subscriber-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Global customer id used across ONAP to uniquely identify customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a line-of-business",indexedProps="line-of-business-name",uniqueProps="line-of-business-name",container="lines-of-business",namespace="business",uriTemplate="/business/lines-of-business/line-of-business/{line-of-business-name}",requiredProps="line-of-business-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the line-of-business (product)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lines-of-business") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an owning-entity",indexedProps="owning-entity-id,owning-entity-name",searchable="owning-entity-id",uniqueProps="owning-entity-id,owning-entity-name",container="owning-entities",namespace="business",uriTemplate="/business/owning-entities/owning-entity/{owning-entity-id}",requiredProps="owning-entity-id,owning-entity-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of an owning entity") + + + + + + + @org.onap.aai.annotations.Metadata(description="Owning entity name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of owning-entities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes a platform",indexedProps="platform-name",uniqueProps="platform-name",container="platforms",namespace="business",uriTemplate="/business/platforms/platform/{platform-name}",requiredProps="platform-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the platform") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of platforms") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes the project",indexedProps="project-name",uniqueProps="project-name",container="projects",namespace="business",uriTemplate="/business/projects/project/{project-name}",requiredProps="project-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the project deploying a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of project (ex, VPMO)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Current state of the project.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the project.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of projects") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sp-partner",indexedProps="sp-partner-id,url,callsource,model-invariant-id,model-version-id",nameProps="sp-partner-id",searchable="sp-partner-id",uniqueProps="sp-partner-id",container="sp-partners",namespace="business",uriTemplate="/business/sp-partners/sp-partner/{sp-partner-id}",requiredProps="sp-partner-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sp-partner by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the URL of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the callsource of this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this sp-partner.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this sp-partner model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this sp-partner model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sp-partners") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for business related constructs") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge.",indexedProps="application,vnf-image-uuid,application-vendor,application-version",uniqueProps="vnf-image-uuid",container="vnf-images",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/vnf-images/vnf-image/{vnf-image-uuid}",requiredProps="vnf-image-uuid,application,application-vendor") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset") + + + + + + + @org.onap.aai.annotations.Metadata(description="The application that the image instantiates.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The vendor of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the application.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/services/service/{service-id}",requiredProps="service-id,service-description") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the service") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="service version") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this.",indexedProps="service-type,vnf-type",container="service-capabilities",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/service-capabilities/service-capability/{service-type}/{vnf-type}",requiredProps="service-type,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ONAP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of service capabilities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="element-choice-set-uuid",indexedProps="element-choice-set-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="constrained-element-set",container="element-choice-sets",uriTemplate="/element-choice-sets/element-choice-set/{element-choice-set-uuid}",requiredProps="element-choice-set-uuid,element-choice-set-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="constrained-element-set-uuid",indexedProps="constrained-element-set-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="model-constraint,model-element",container="constrained-element-sets",uriTemplate="/constrained-element-sets/constrained-element-set/{constrained-element-set-uuid}",requiredProps="constrained-element-set-uuid,constraint-type,check-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This is how we would capture constraints defining allowed sets of elements.",uniqueProps="model-constraint-uuid",indexedProps="model-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="model-element",container="model-constraints",uriTemplate="/model-constraints/model-constraint/{model-constraint-uuid}",requiredProps="model-constraint-uuid,constrained-element-set-uuid-to-replace") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model.",uniqueProps="model-element-uuid",indexedProps="model-element-uuid",allowDirectRead="true",dependentOn="element-choice-set,model-element,model-ver",allowDirectWrite="false",container="model-elements",uriTemplate="/model-elements/model-element/{model-element-uuid}",requiredProps="model-element-uuid,new-data-del-flag,cardinality") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model") + + + + + + + @org.onap.aai.annotations.Metadata(description="How many of this type of element are required/allowed") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model") + + + + + + + @org.onap.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models",nameProps="model-name",indexedProps="model-version-id,model-name,model-version,distribution-status",uniqueProps="model-version-id",dependentOn="model",container="model-vers",uriTemplate="/model-vers/model-ver/{model-version-id}",requiredProps="model-version-id,model-name,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Distribution Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="The CDS blue print name associated with the resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The version of the CDS blue print.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version",nameProps="model-type",indexedProps="model-invariant-id,model-type",uniqueProps="model-invariant-id",container="models",namespace="service-design-and-creation",uriTemplate="/service-design-and-creation/models/model/{model-invariant-id}",requiredProps="model-invariant-id,model-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of the model,e.g.,NST,NSST,CST,etc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="named-query-element",container="related-lookups",requiredProps="related-lookup-uuid,source-node-type,source-node-property,target-node-type,target-node-property",uriTemplate="/related-lookups/related-lookup/{related-lookup-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="named-query-element",container="property-constraints",requiredProps="property-constraint-uuid,constraint-type,property-name,property-value",uriTemplate="/property-constraints/property-constraint/{property-constraint-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",dependentOn="named-query,named-query-element",container="named-query-elements",requiredProps="named-query-element-uuid",uriTemplate="/named-query-elements/named-query-element/{named-query-element-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true") + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="TBD",nameProps="named-query-name",uniqueProps="named-query-uuid",indexedProps="named-query-uuid,named-query-name",container="named-queries",namespace="service-design-and-creation",requiredProps="named-query-uuid,named-query-name,named-query-version",uriTemplate="/service-design-and-creation/named-queries/named-query/{named-query-uuid}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for objects managed by ASDC") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Logical links generally connect l-interfaces but are used to express logical connectivity between two points",indexedProps="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,link-function,link-type,purpose,operational-status",uniqueProps="link-id",container="logical-links",namespace="network",searchable="link-name",uriTemplate="/network/logical-links/logical-link/{link-name}",requiredProps="link-name,in-maint,link-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of logical link, e.g., evc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the administrative state of the link") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4, v6, or ds for dual stack") + + + + + + + @org.onap.aai.annotations.Metadata(description="For example, static or BGP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of operational status of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indication of the network use of the logical link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reason for this entity, role it is playing") + + + + + + + @org.onap.aai.annotations.Metadata(description="A description for the logical-link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A segment-id assigned to the logical-link (ex, esi for ethernet segments).") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this logical link") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of logical connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service",uriTemplate="/classes-of-service/class-of-service/{cos}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="class-of-service of probe") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs",uriTemplate="/site-pairs/site-pair/{site-pair-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier of probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix address") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version, v4, v6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="probe within a set") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances",uriTemplate="/routing-instances/routing-instance/{routing-instance-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="rpm owner") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of instances for probes used to measure service level agreements",indexedProps="site-pair-set-id",uniqueProps="site-pair-set-id",container="site-pair-sets",namespace="network",uriTemplate="/network/site-pair-sets/site-pair-set/{site-pair-set-id}",requiredProps="site-pair-set-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding,vrf",canBeLinked="true",uriTemplate="/route-targets/route-target/{global-route-target}/{route-target-role}",requiredProps="global-route-target,route-target-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of route target information") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,vpn-type,access-provider-id,access-client-id,access-topology-id,src-access-node-id,src-access-ltp-id,dst-access-node-id,dst-access-ltp-id,operational-status,model-invariant-id,model-version-id",searchable="vpn-id,vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network",uriTemplate="/network/vpn-bindings/vpn-binding/{vpn-id}",requiredProps="vpn-id,vpn-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&AI") + + + + + + + @org.onap.aai.annotations.Metadata(description="VPN Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values") + + + + + + + @org.onap.aai.annotations.Metadata(description="region of customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="id for this customer vpn") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Max prefix for IPv4.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Max prefix for IPv6.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Max prefix threshold.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Label mode for IPv4.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Label mode for IPv6.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The description of the vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A VNI associated with the VPN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="A variable BGP max AS path length.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network",uriTemplate="/network/vpls-pes/vpls-pe/{equipment-name}",requiredProps="equipment-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true) + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for stag to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network",uriTemplate="/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="protocol of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="rp type of multicast configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags",uriTemplate="/cvlan-tags/cvlan-tag/{cvlan-tag}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the network interfaces of this VCE",nameProps="port-group-name",indexedProps="port-group-id,heat-stack-id,interface-id,switch-name,interface-role,orchestration-status",dependentOn="vce",container="port-groups",uriTemplate="/port-groups/port-group/{interface-id}",requiredProps="interface-id,orchestration-status") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network name of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID for port group in vmware") + + + + + + + @org.onap.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name") + + + + + + + @org.onap.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid,project-number,order-number,receipt-date",dependentOn="chassis,generic-vnf,vce",container="licenses",uriTemplate="/licenses/license/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to store CFAS or other project numbers.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Order number.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Date of receipt.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements",uriTemplate="/entitlements/entitlement/{group-uuid}/{resource-uuid}",requiredProps="group-uuid,resource-uuid") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,vpe-id,prov-status,service-id,orchestration-status",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vces",namespace="network",extendsFrom="vnf",uriTemplate="/network/vces/vce/{vnf-id}",requiredProps="vnf-id,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the SDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ONAP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network role being played by this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router. Implied length of /64.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - see child relationships") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="| SE group | This object captures the point of attachment from services or resources to a virtual link or network. | A&AI clients for this object are typically: DCAE-DTI, (DMaaP-DCAE,...) |",uniqueProps="cp-instance-id",dependentOn="vnfc",container="cps",uriTemplate="/cps/cp/{cp-instance-id}",requiredProps="cp-instance-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the connection point.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port index to represent multiple CPs on VNFC connected to same network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connection points.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id,orchestration-status",searchable="vnfc-name",container="vnfcs",namespace="network",uriTemplate="/network/vnfcs/vnfc/{vnfc-name}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service") + + + + + + + @org.onap.aai.annotations.Metadata(description="prov status of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C") + + + + + + + @org.onap.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group notation of VNFC") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="host-route-id",dependentOn="subnet",container="host-routes",uriTemplate="/host-routes/host-route/{host-route-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="host-route id") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet prefix") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value that is assigned to an IP route for a particular network interface that identifies the cost that is associated with using that route.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of address family",indexedProps="address-family-id,af-type",nameProps="address-family-id,af-type",dependentOn="bgp-group,bgp-neighbor",container="address-families",uriTemplate="/address-families/address-family/{address-family-id}",requiredProps="address-family-id,af-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="address family UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="address family type (aka afi)") + + + + + + + @org.onap.aai.annotations.Metadata(description="address family subtype (aka safi)") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of address-family") + + + + + + + @org.onap.aai.annotations.Metadata(description="function of address-family") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of bgp-neighbor",indexedProps="bgp-neighbor-id",dependentOn="pnf,vrf,subnet,generic-vnf",nameProps="bgp-neighbor-id",container="bgp-neighbors",uriTemplate="/bgp-neighbors/bgp-neighbor/{bgp-neighbor-id}",requiredProps="bgp-neighbor-id,bgp-neighbor-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="local a-s number type of vrf (bridge-domain as an example)") + + + + + + + @org.onap.aai.annotations.Metadata(description="local address") + + + + + + + @org.onap.aai.annotations.Metadata(description="peer a-s number") + + + + + + + @org.onap.aai.annotations.Metadata(description="peer address") + + + + + + + @org.onap.aai.annotations.Metadata(description="description of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="provisioning status. Valid values can be found at (https://wiki.web.att.com/display/SPTIIRP/prov-status).") + + + + + + + @org.onap.aai.annotations.Metadata(description="hostname of the peer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name,subnet-type,subnet-function,orchestration-status",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network,zone",container="subnets",uriTemplate="/subnets/subnet/{subnet-id}",requiredProps="subnet-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the subnet.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron id of this subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="gateway ip address") + + + + + + + @org.onap.aai.annotations.Metadata(description="network start address") + + + + + + + @org.onap.aai.annotations.Metadata(description="cidr mask") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="text used for documentation") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled") + + + + + + + @org.onap.aai.annotations.Metadata(description="the start address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="the last address reserved for use by dhcp") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs") + + + + + + + @org.onap.aai.annotations.Metadata(description="subnet model BGP, VRPP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subtype used to categorize this physical link") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this Linterface") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address assignment direction of the subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="sequence of the subnet") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments",uriTemplate="/ctag-assignments/ctag-assignment/{vlan-id-inner}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments",uriTemplate="/segmentation-assignments/segmentation-assignment/{segmentation-id}",requiredProps="segmentation-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack segmentation assignments") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Aggregate route configs are used on the D2 IPE’s for the Voice services. In 1902, SDNC will create aggregate-route objects and write them to A&AI. ",uniqueProps="agg-route-id",container="aggregate-routes",dependentOn="vrf,l3-network",uriTemplate="/aggregate-routes/aggregate-route/{agg-route-id}",requiredProps="agg-route-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the forwarding-path") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIDR-mask for aggregate route subnet") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies is aggregate route is ipv4 or ipv6") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of aggregate routes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic network definition",nameProps="network-name",indexedProps="heat-stack-id,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role,network-function,orchestration-status",searchable="network-id,network-name",uniqueProps="network-id",container="l3-networks",namespace="network",uriTemplate="/network/l3-networks/l3-network/{network-id}",requiredProps="network-id,is-bound-to-vpn,is-provider-network,is-shared-network,is-external-network") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&AI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the network - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role the network plans - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network technology - who defines these values?") + + + + + + + @org.onap.aai.annotations.Metadata(description="text used for documentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="Neutron network id of this Interface") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="network role instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the network") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name associated with the physical network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Trunked network indication.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this l3 network") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-id,network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network",uriTemplate="/network/network-policies/network-policy/{network-policy-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contrail FQDN for the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID for the openStack Heat instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="The packet transmission latency (millisecond) through the Transport slice connections and is used to evaluate utilization performance of the end-to-end network slice instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="jitter") + + + + + + + @org.onap.aai.annotations.Metadata(description="The maximum bandwidth (mb) of the connection links in a transport slice instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The reliability requirement for an network slice subnet instance, expressed as a percentage.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="a deployment unit of VNFCs",indexedProps="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn,orchestration-status",searchable="vf-module-id,vf-module-name,operational-status",dependentOn="generic-vnf",container="vf-modules",uriTemplate="/vf-modules/vf-module/{vf-module-id}",requiredProps="vf-module-id,is-base-vf-module,automated-assignment") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of vf-module") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Indicates whether vf-module assignment was done via automation or manually") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance") + + + + + + + @org.onap.aai.annotations.Metadata(description="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of bgp-group",indexedProps="bgp-group-id",dependentOn="pnf,vrf,generic-vnf",nameProps="bgp-group-id,bgp-group-name",container="bgp-groups",uriTemplate="/bgp-groups/bgp-group/{bgp-group-id}",requiredProps="bgp-group-id,bgp-group-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="type of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="function of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="local a-s number type of vrf (bridge-domain as an example)") + + + + + + + @org.onap.aai.annotations.Metadata(description="local address") + + + + + + + @org.onap.aai.annotations.Metadata(description="peer a-s number") + + + + + + + @org.onap.aai.annotations.Metadata(description="peer address") + + + + + + + @org.onap.aai.annotations.Metadata(description="description of bgp-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General purpose VNF",nameProps="vnf-name",indexedProps="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role,nm-profile-name,orchestration-status",searchable="vnf-id,vnf-name,vnf-name2,operational-status",uniqueProps="vnf-id",container="generic-vnfs",namespace="network",extendsFrom="vnf",containsSuggestibleProps="true",suggestionAliases="VNFs",uriTemplate="/network/generic-vnfs/generic-vnf/{vnf-id}",requiredProps="vnf-id,vnf-type,in-maint,is-closed-loop-disabled") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf instance id.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED") + + + + + + + @org.onap.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf discriptor name") + + + + + + + @org.onap.aai.annotations.Metadata(description="job id corresponding to vnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 Loopback address") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 management address") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of associated SHD in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of vms in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="number of network in vnf.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.") + + + + + + + @org.onap.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the specific entitlement resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the license assignment group. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="UUID of the actual license resource. OBSOLETE - See child relationships.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="internal",dataCopy="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version") + + + + + + + @org.onap.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&AI widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget.") + + + + + + + @org.onap.aai.annotations.Metadata(description="as-number of the VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="represents sub zone of the rr plane") + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing") + + + + + + + @org.onap.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true") + + + + + + + @org.onap.aai.annotations.Metadata(description="string assigned to this model used for naming purposes") + + + + + + + @org.onap.aai.annotations.Metadata(description="Path to the controller object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Gateway address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix length for oam-address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network Management profile of this VNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="VNF instance specific software version") + + + + + + + @org.onap.aai.annotations.Metadata(description="vnf application-id") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of VNFs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network",uriTemplate="/network/lag-links/lag-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of link aggregation connections") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2,orchestration-status",searchable="vnf-id2,vnf-name,vnf-name2",uniqueProps="vnf-id2",container="newvces",namespace="network",uriTemplate="/network/newvces/newvce/{vnf-id2}",requiredProps="vnf-id2,vnf-name,vnf-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Alternate name of VNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational") + + + + + + + @org.onap.aai.annotations.Metadata(description="OBSOLETE - do not use") + + + + + + + @org.onap.aai.annotations.Metadata(description="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Client should send valid enumerated value.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 Loopback0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO") + + + + + + + @org.onap.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Software Version",indexedProps="software-version-id,is-active-sw-ver",dependentOn="pnf",container="pnf",requiredProps="software-version-id,is-active-sw-ver",uriTemplate="/pnf/software-version/{software-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Identifier of the software version") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this software-version is the active one (activeSw = true)") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of software versions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of vrf",indexedProps="vrf-id,vrf-role,vrf-function",nameProps="vrf-name",dependentOn="pnf",container="vrfs",uriTemplate="/vrfs/vrf/{vrf-id}",requiredProps="vrf-id,vrf-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="VRF UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="VRF Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="VRF Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Route Distinguisher") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of vrf (bridge-domain as an example)") + + + + + + + @org.onap.aai.annotations.Metadata(description="IP address family (v6/v4/both)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for the use of this physical link") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this Linterface") + + + + + + + @org.onap.aai.annotations.Metadata(description="Bridge domain group name") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,nf-type,admin-status,nf-role,prov-status,nf-naming-code,equipment-clli",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network",uriTemplate="/network/pnfs/pnf/{pnf-name}",requiredProps="pnf-name,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="name of Physical Network Function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details.") + + + + + + + @org.onap.aai.annotations.Metadata(description="source of name2") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Naming code for network function") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network operating system used on the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by the pnf.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment type. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="identifier of managed customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses") + + + + + + + @org.onap.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Serial number of the device") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 Loopback 0 address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV4 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 AIM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="IPV6 OAM address") + + + + + + + @org.onap.aai.annotations.Metadata(description="CANOPI's inventory status. Only set with values exactly as defined by CANOPI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.") + + + + + + + @org.onap.aai.annotations.Metadata(description="admin Status of this PNF") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model id for this resource model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ASDC model version for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Notes to aid OPs in troubleshooting, such as attribute aliases or additional descriptions/instructions about an object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains the value of the request id to the most recent configuration file/validation report for this PNF.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of latest configuration attempt represented by the config-url.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subtype used to categorize this pnf") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the PNF/R-Leaf was built with the VNF agnostic common base") + + + + + + + @org.onap.aai.annotations.Metadata(description="11-character equipment CLLI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv4) for the PNF itself. This is the IPv4 address that the PNF iself can be accessed at.") + + + + + + + @org.onap.aai.annotations.Metadata(description="This is the IP address (IPv6) for the PNF itself. This is the IPv6 address that the PNF iself can be accessed at.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Physical Network Functions.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of port",indexedProps="port-name",dependentOn="chassis,pluggable,card",container="ports",uriTemplate="/ports/port/{port-name}",requiredProps="port-name,port-type,port-role,speed-value,speed-units") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="A unique name for the port relative to the containing hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The role of the port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The numeric value for the speed of the port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The units for the speed of the port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of transceiver that creates this port.") + + + + + + + @org.onap.aai.annotations.Metadata(description="clei-code or other similar identifier") + + + + + + + @org.onap.aai.annotations.Metadata(description="part number") + + + + + + + @org.onap.aai.annotations.Metadata(description="Port range start") + + + + + + + @org.onap.aai.annotations.Metadata(description="Port range end") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of pluggable",indexedProps="pluggable-type,part-number,equip-identifier",dependentOn="pluggable-slot",container="pluggables",uriTemplate="/pluggables/pluggable/{pluggable-type}",requiredProps="pluggable-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The type of pluggable.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Part number for this pluggable.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for pluggable hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of card-slot",indexedProps="slot-name",dependentOn="chassis,card",container="pluggable-slots",uriTemplate="/pluggable-slots/pluggable-slot/{slot-name}",requiredProps="slot-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The name of the pluggable-slot. (unique relative to the chassis or card).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of card",indexedProps="card-type",dependentOn="card-slot",container="cards",uriTemplate="/cards/card/{card-type}",requiredProps="card-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The type of card.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of card-slot",indexedProps="slot-name",dependentOn="chassis",container="card-slots",uriTemplate="/card-slots/card-slot/{slot-name}",requiredProps="slot-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="The name of the card-slot (unique relative to the chassis).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of chassis",uniqueProps="chassis-name",indexedProps="chassis-name,part-number,orchestration-status,equip-model,equip-vendor,equip-identifier",container="chassies",namespace="network",uriTemplate="/network/chassies/chassis/{chassis-name}",requiredProps="chassis-name,chassis-type,chassis-role") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="A globally unique name for the chassis.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of chassis..") + + + + + + + @org.onap.aai.annotations.Metadata(description="The role of the chassis relative to the pnf/pserver..") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operating system of the hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The serial number of the chassis..") + + + + + + + @org.onap.aai.annotations.Metadata(description="The asset tag of the chassis.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the chassis.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Part number for this chassis.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of this chassis.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment model.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Equipment vendor. Source of truth should define valid values.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CLEI or other specification for chassis hardware.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Slot number associated with this chassis.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Reflects the admin-state of the device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces",indexedProps="circuit-id,link-name,link-function,link-role,link-type",alternateKeys1="circuit-id",container="physical-links",namespace="network",searchable="link-name,circuit-id,operational-status",uriTemplate="/network/physical-links/physical-link/{link-name}",requiredProps="link-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the numeric part of the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the units corresponding to the speed") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit it") + + + + + + + @org.onap.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary") + + + + + + + @org.onap.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&AI or 3rd party transport provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the service Provider on this link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Upstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for the upstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Downstream Bandwidth value agreed with the service provider") + + + + + + + @org.onap.aai.annotations.Metadata(description="Units for downstream BW value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The function performed by this physical link") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for the use of this physical link") + + + + + + + @org.onap.aai.annotations.Metadata(description="Subtype used to categorize this physical link") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path.",suggestibleOnSearch="true") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607",indexedProps="vig-address-type",dependentOn="ipsec-configuration",container="vig-servers",uriTemplate="/vig-servers/vig-server/{vig-address-type}",requiredProps="vig-address-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET") + + + + + + + @org.onap.aai.annotations.Metadata(description="v4 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="v6 IP of the vig server") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C",indexedProps="ipsec-configuration-id",uniqueProps="ipsec-configuration-id",container="ipsec-configurations",namespace="network",uriTemplate="/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}",requiredProps="ipsec-configuration-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID of this configuration") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Shared DMZ or a DMZ specific to a customer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Network address of shared DMZ") + + + + + + + @org.onap.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information") + + + + + + + @org.onap.aai.annotations.Metadata(description="can be 1 or 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14") + + + + + + + @org.onap.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode") + + + + + + + @org.onap.aai.annotations.Metadata(description="pre-shared key for the above group name ") + + + + + + + @org.onap.aai.annotations.Metadata(description="Lifetime for IKEv1 SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="md5, sha1, sha256, sha384") + + + + + + + @org.onap.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc") + + + + + + + @org.onap.aai.annotations.Metadata(description="Life time for IPSec SA") + + + + + + + @org.onap.aai.annotations.Metadata(description="enable PFS or not") + + + + + + + @org.onap.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm") + + + + + + + @org.onap.aai.annotations.Metadata(description="The time between DPD probe") + + + + + + + @org.onap.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Openstack route table reference.",nameProps="route-table-reference-fqdn",uniqueProps="route-table-reference-id",indexedProps="route-table-reference-id,route-table-reference-fqdn",container="route-table-references",namespace="network",uriTemplate="/network/route-table-references/route-table-reference/{route-table-reference-id}",requiredProps="route-table-reference-id,route-table-reference-fqdn") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="FQDN entry in the route table.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description,instance-group-name",uniqueProps="id",searchable="id,description",indexedProps="id,model-invariant-id,model-version-id",container="instance-groups",namespace="network",uriTemplate="/network/instance-groups/instance-group/{id}",requiredProps="id,instance-group-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of the instance group.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model version uid for this resource model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance-Group Function") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number used to identify an instance-group") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to identify the primary and secondary priority") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of openstack route table references") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A zone is a grouping of assets in a location homing to the same connections into the CBB",nameProps="zone-name",indexedProps="zone-id,design-type,zone-context",uniqueProps="zone-id",container="zones",namespace="network",uriTemplate="/network/zones/zone/{zone-id}",requiredProps="zone-id,zone-name,design-type,zone-context,in-maint") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="English name associated with the zone") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of zone (ex. AIC or NC).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Design of zone [Medium/Large…]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Context of zone [production/test]") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function of a zone.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether or not zone object is in maintenance mode.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of zones") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of Autonomous System",nameProps="autonomous-system-id,autonomous-system-number",indexedProps="autonomous-system-id,autonomous-system-number,autonomous-system-type",uniqueProps="autonomous-system-id",container="autonomous-systems",namespace="network",uriTemplate="/network/autonomous-systems/autonomous-system/{autonomous-system-id}",requiredProps="autonomous-system-id,autonomous-system-number,autonomous-system-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="asn in the range of 0 to 9223372036854775807") + + + + + + + @org.onap.aai.annotations.Metadata(description="type (global vs. local).") + + + + + + + @org.onap.aai.annotations.Metadata(description="geographic region") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of autonomous system") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Autonomous Systems") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of Network Range",nameProps="network-range-name,network-range-type",indexedProps="network-range-id,network-range-name",container="network-ranges",namespace="network",uriTemplate="/network/network-ranges/network-range/{network-range-id}",requiredProps="network-range-id,network-range-name,network-range-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="name") + + + + + + + @org.onap.aai.annotations.Metadata(description="type (ex, esi, vni, vni-rt, lacp-id).") + + + + + + + @org.onap.aai.annotations.Metadata(description="role of network-range") + + + + + + + @org.onap.aai.annotations.Metadata(description="descriptive function") + + + + + + + @org.onap.aai.annotations.Metadata(description="starting range for simple network ranges.") + + + + + + + @org.onap.aai.annotations.Metadata(description="end range for simple network ranges.") + + + + + + + @org.onap.aai.annotations.Metadata(description="last assigned value for simple network ranges") + + + + + + + @org.onap.aai.annotations.Metadata(description="Format Decimal, Hexadecimal, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Prefix of network range.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Concurrency value") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Network Ranges") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="General mechanism for mapping between instances; cg-nat.",indexedProps="mapping-id",uniqueProps="mapping-id",container="mappings",namespace="network",uriTemplate="/network/mappings/mapping/{mapping-id}",requiredProps="mapping-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of mapping") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of mapping.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of mapping") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function of mapping") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of mapping") + + + + + + + @org.onap.aai.annotations.Metadata(description="Location 1") + + + + + + + @org.onap.aai.annotations.Metadata(description="Location 2") + + + + + + + @org.onap.aai.annotations.Metadata(description="Non-unique ID for grouping mappings") + + + + + + + @org.onap.aai.annotations.Metadata(description="Provision status for the mapping object. Valid values can be found at (https://wiki.web.att.com/display/SPTIIRP/prov-status).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Location the object is homed to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Location the object is planned for") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="create/update/delete the hw-component node",indexedProps="hw-component-id",uriTemplate="/network/hw-components/hw-component/{hw-component-id}",requiredProps="hw-component-id",namespace="network",container="hw-components") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of hardware component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of hardware component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of hardware component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function of hardware component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="create/update/delete the sw-component node",indexedProps="sw-component-id",uriTemplate="/network/sw-components/sw-component/{sw-component-id}",requiredProps="sw-component-id",namespace="network",container="sw-components") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of software component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of software component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Role of software component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Function of software component") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="This object represents a network route. For instance, host-route, static-route.",indexedProps="route-id,type,role,function,ip-address,prefix-length,next-hop",uriTemplate="/network/network-routes/network-route/{route-id}",requiredProps="route-id,type,role,function,ip-address,prefix-length,address-family",namespace="network",container="network-routes") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="unique identifier example uuid.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used to categorize this object in conjunction with role & function. The most generic category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used to categorize this object in conjunction with type & function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used to categorize this object in conjunction with type & role. The most specific category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip address that of the specific network-route.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ip-address prefix length.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identity of a logical interface, e.g., VLAN ID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Could be ip-address, hostname, or service-instance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Should be ip-address, hostname, or service-instance to match next-hop.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Value that is assigned to an IP route for a particular network interface that identifies the cost that is associated with using that route.") + + + + + + + @org.onap.aai.annotations.Metadata(description="whether the route address is ipv4, ipv6.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects.",dependentOn="forwarder-evc",uniqueProps="vlan-mapping-id",container="vlan-mappings",uriTemplate="/vlan-mappings/vlan-mapping/{vlan-mapping-id}",requiredProps="vlan-mapping-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for vlan-mapping object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the UNI/ingress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value from the NNI/egress side of the SAREA gateway access device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The internal VLAN ('IVLAN') value. Specific to Arista devices.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan mappings.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="forwarder object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="forwarder-evc-id",container="forwarder-evcs",uriTemplate="/forwarder-evcs/forwarder-evc/{forwarder-evc-id}",requiredProps="forwarder-evc-id",indexedProps="circuit-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Key for forwarder-evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal VLAN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="SVLAN value for ingress of egress forwarder.") + + + + + + + @org.onap.aai.annotations.Metadata(description="CVLAN value for ingress of egress forwarder.") + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="evc object is an optional child object of the Configuration object.",dependentOn="configuration",uniqueProps="evc-id",container="evcs",uriTemplate="/evcs/evc/{evc-id}",requiredProps="evc-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique/key field for the evc object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Point-to-Point, Multi-Point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Commited Information Rate") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units") + + + + + + + @org.onap.aai.annotations.Metadata(description="Diversity Group ID") + + + + + + + @org.onap.aai.annotations.Metadata(description="formerly Performance Group") + + + + + + + @org.onap.aai.annotations.Metadata(description="EVC Circuit ID of ESP EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Committed Information Rate (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="CIR units (For ESP)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Identifies ESP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collector POP CLLI (from the hostname of the access pnf)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Interconnect type on ingress side of EVC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagode for collector side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="tagMode for network side of EVC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Product ID") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Generic configuration object.",indexedProps="configuration-id,configuration-name,configuration-type,model-invariant-id,model-version-id,orchestration-status,configuration-role,configuration-function,orchestration-version",uniqueProps="configuration-id",container="configurations",namespace="network",uriTemplate="/network/configurations/configuration/{configuration-id}",requiredProps="configuration-id,configuration-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID assigned to configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="port-mirroring-configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="vprobe, pprobe.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Orchestration status of the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details from SDN-GC.") + + + + + + + @org.onap.aai.annotations.Metadata(description="id of the configuration used to customize the resource") + + + + + + + @org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth") + + + + + + + @org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to capture the name of the fabric configuration policy that was used to generate the payload sent to PINC for fabric configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize the configuration.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used by some configurations to identify if it's filling a primary role.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize the configuration.") + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of configurations") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(indexedProps="sequence",description="Entity describing a sequenced segment of forwarding path",container="forwarders",dependentOn="forwarding-path",uriTemplate="/forwarders/forwarder/{sequence}",requiredProps="sequence") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this segmentation") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress, intermediate, egress") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",indexedProps="forwarding-path-id,forwarding-path-name",description="Entity that describes the sequenced forwarding path between interfaces of services or resources",container="forwarding-paths",nameProps="forwarding-path-name",uniqueProps="forwarding-path-id",uriTemplate="/network/forwarding-paths/forwarding-path/{forwarding-path-id}",requiredProps="forwarding-path-id,forwarding-path-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of this FP") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the FP") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the self link for this FP") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(namespace="network",description="represents the collection resource in the TOSCA model",uniqueProps="collection-id",indexedProps="collection-id,model-invariant-id,model-version-id,orchestration-status",container="collections",uriTemplate="/network/collections/collection/{collection-id}",requiredProps="collection-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Collection Object UUID") + + + + + + + @org.onap.aai.annotations.Metadata(description="ASDC model id for this resource or service model",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model Version",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="collection name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection Role") + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection function") + + + + + + + @org.onap.aai.annotations.Metadata(description="orchestration status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Captures the id of all the configuration used to customize the resource for the service") + + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Is among the series of routers that are connected together in a network and is the next possible destination for a data packet.",indexedProps="next-hop-id",namespace="network",container="next-hops",uriTemplate="/network/next-hops/next-hop/{next-hop-id}",uniqueProps="next-hop-id",requiredProps="next-hop-id,next-hop-type") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with role & function. The most generic category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with type & function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with type & role. The most specific category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Sequence number.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Ipv4 or Ipv6.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Next hop ip-address.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Cost that is associated with using the route.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="BFD (Bidirectional Forwarding Detection) is a protocol for detecting link failures.The BFD object is for persisting attributes for the links that have BFD enabled.",indexedProps="bfd-id",namespace="network",container="bfds",uriTemplate="/network/bfds/bfd/{bfd-id}",uniqueProps="bfd-id",requiredProps="bfd-id,bfd-type",nameProps="bfd-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with role & function. The most generic category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with type & function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with type & role. The most specific category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="bfd keep-alive parameter") + + + + + + + @org.onap.aai.annotations.Metadata(description="bfd timeout parameter") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="A fully qualified domain name (FQDN) is the complete domain name for a specific computer, or host, on the internet.",requiredProps="fqdn,dns-domain",indexedProps="fqdn",namespace="network",container="fqdns",uriTemplate="/network/fqdns/fqdn/{fqdn}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Fully qualified domain name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with role & function. The most generic category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with type & function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used to categorize this object in conjunction with type & role. The most specific category.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Domain name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a connectivity",indexedProps="connectivity-id,etht-svc-name,bandwidth-profile-name,vpn-type,color-aware,coupling-flag,access-provider-id,access-client-id,access-topology-id,access-node-id,access-ltp-id,operational-status,model-invariant-id,model-version-id",nameProps="etht-svc-name",searchable="connectivity-id",uniqueProps="connectivity-id",container="connectivities",namespace="network",requiredProps="connectivity-id",uriTemplate="/network/connectivities/connectivity/{connectivity-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this connectivity by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of a bandwidth profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EIR of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the CBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the EBS of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the color-awareness of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the coupling flag of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The ethernet service name for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access client of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access node of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the access ltp of this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the cvlan for this connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of connectivities") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a dhcp-service",indexedProps="dhcp-service-id,dhcp-service-type,domain-name,server-ipv4-address,server-ipv6-address",nameProps="domain-name",searchable="dhcp-service-id",uniqueProps="dhcp-service-id",container="dhcp-services",dependentOn="lan-port-config",namespace="network",requiredProps="dhcp-service-id",uriTemplate="/network/dhcp-services/dhcp-service/{dhcp-service-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this dhcp-service by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ip4-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the server-ipv6-address of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the service-enable of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dhcp-service-type of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the lease-time of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the domain-name of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the dns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-primary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ntp-secondary of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the nbns of this dhcp-service.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of dhcp-services") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a lan-port-config",indexedProps="lan-port-config-id,lan-port-config-name,device-id,port-id,ipv4-address,ipv6-address,vlan-tag",nameProps="lan-port-config-name",searchable="lan-port-config-id",uniqueProps="lan-port-config-id",container="lan-port-configs",namespace="network",requiredProps="lan-port-config-id",uriTemplate="/network/lan-port-configs/lan-port-config/{lan-port-config-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this lan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-id of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vlan-tag of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this lan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of lan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a network-resource",indexedProps="network-id,provider-id,client-id,te-topo-id",nameProps="network-id",searchable="network-id",uniqueProps="network-id",container="network-resources",namespace="network",requiredProps="network-id",uriTemplate="/network/network-resources/network-resource/{network-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this network-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the provider of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the client of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the te-topo of this network-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of a network topology, e.g., Ethernet, OTN, WSON.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of network-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a site-resource",indexedProps="site-resource-id,site-resource-name,type,role,generated-site-id,operational-status,model-invariant-id,model-version-id",nameProps="site-resource-name",searchable="site-resource-id",uniqueProps="site-resource-id",container="site-resources",namespace="network",requiredProps="site-resource-id",uriTemplate="/network/site-resources/site-resource/{site-resource-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this site-resource by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the role of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the generated-site-id of this site-resource.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of site-resources") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an sdwan-vpn",indexedProps="sdwan-vpn-id,sdwan-vpn-name,vxlan-id,topology,operational-status,model-invariant-id,model-version-id",nameProps="sdwan-vpn-name",searchable="sdwan-vpn-id",uniqueProps="sdwan-vpn-id",container="sdwan-vpns",namespace="network",requiredProps="sdwan-vpn-id",uriTemplate="/network/sdwan-vpns/sdwan-vpn/{sdwan-vpn-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this sdwan-vpn by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vxlan-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the topology of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the tenant-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vpn-id of this sdwan-vpn.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of sdwan-vpns") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a device",indexedProps="device-id,device-name,esn,vendor,class,type,version,system-ip,system-ipv4,system-ipv6,operational-status,model-invariant-id,model-version-id",nameProps="device-name",searchable="device-id",uniqueProps="device-id",container="devices",namespace="network",requiredProps="device-id",uriTemplate="/network/devices/device/{device-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this device by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the esn of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the vendor of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the class of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the type of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the version of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ip of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ipv4 of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the system-ipv6 of this device.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of devices") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of a wan-port-config",indexedProps="wan-port-config-id,wan-port-config-name,device-id,ip-address,ipv4-address,ipv6-address,port-type,port-number,device-port-id,wan-port-id,operational-status,model-invariant-id,model-version-id",nameProps="wan-port-config-name",searchable="wan-port-config-id",uniqueProps="wan-port-config-id",container="wan-port-configs",namespace="network",requiredProps="wan-port-config-id",uriTemplate="/network/wan-port-configs/wan-port-config/{wan-port-config-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this wan-port-config by id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the device of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the id of the vlan of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv4-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the ipv6-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ip-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ipv4-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the provider-ipv6-address of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the input-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the output-bandwidth of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the description of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-type of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the port-number of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the transport-network-name of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the device-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the wan-port-id of this wan-port-config.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of wan-port-configs") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network",requiredProps="aai-id",uriTemplate="/network/ext-aai-networks/ext-aai-network/{aai-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for network inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define some reserved properties of a vertex",uniqueProps="aai-unique-key,aai-uri",indexedProps="aai-unique-key,source-of-truth,aai-node-type,aai-uri") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Internal map to define the properties of an edge and interpret the map EdgeRules",edgeInfo="aaiUuid,edgeLabel,direction,multiplicityRule,isParent,usesResource,hasDelTarget,SVC-INFRA,SVC-INFRA-REV",uniqueProps="aai-uuid",indexedProps="aai-uuid") + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an hardware-catalog-items",indexedProps="item-name",uniqueProps="item-name",container="hardware-catalog-items",namespace="common",uriTemplate="/common/hardware-catalog-items/hardware-catalog-item/{item-name}",requiredProps="item-name,system-type,manufacturer,model,sku") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique name for the hardware-catalog-item") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of system defined by ATT") + + + + + + + @org.onap.aai.annotations.Metadata(description="Manufacturer of the hardware-catalog-item (ex,Cisco)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Model of the hardware-catalog-item (ex,5501 NCS)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Part number assigned by the manufacturer") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the hardware-catalog-item") + + + + + + + @org.onap.aai.annotations.Metadata(description="Stock-keeping-unit (ATT specific identifier for the hardware-catalog-item)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of hardware-catalog-items") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Contacts store the vendor information and have a relationship to the generic-vnf. In 1902, this will be populated by SDN-GC",uniqueProps="contact-name",container="contacts",namespace="common",nameProps="contact-name,vendor-type",uriTemplate="/common/contacts/contact/{contact-name}",requiredProps="contact-name") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the contact") + + + + + + + @org.onap.aai.annotations.Metadata(description="Tel no. of contact") + + + + + + + @org.onap.aai.annotations.Metadata(description="e-mail of contact") + + + + + + + @org.onap.aai.annotations.Metadata(description="NI (Network Integrator)SI (System Integrator) 3rd Party LCM") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of contacts") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an profiles",indexedProps="profile-name,profile-role,profile-function",uniqueProps="profile-name",nameProps="profile-type",container="profiles",namespace="common",uriTemplate="/common/profiles/profile/{profile-name}",requiredProps="profile-name,profile-type,characteristics") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Name of the profile") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of profile (ex,network-power-profile)") + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of characteristics of the profile.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Descriptive subtype.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used to categorize this object in conjunction with profile-type and profile-function.") + + + + + + + @org.onap.aai.annotations.Metadata(description="used to categorize this object in conjunction with profile-type and profile-role. The most specific category") + + + + + + + @org.onap.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of profiles") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Port List Range",dependentOn="endpoint,rule,object-group",uriTemplate="/port-list/{port}",requiredProps="port") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Port number") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name or assignment for the port") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type or usage of the port") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operator to apply to the port (greater than, less than, etc).") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Selectors list",dependentOn="rule,object-group,endpoint,policy",uriTemplate="/selector-list/{selector}",requiredProps="selector") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Selector") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name or assignment for the selector") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type or usage of the selector") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an rules",container="rules",dependentOn="policy",uriTemplate="/rules/rule/{rule-id}",requiredProps="rule-id,log") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="ingress or egress") + + + + + + + @org.onap.aai.annotations.Metadata(description="Positive protocol match. tcp, udp, icmpv6, sctp, udplite, integer 1-255.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Negative protocol match. tcp, udp, icmpv6, sctp, udplite, integer 1-255.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Action to perform when matching this rule.") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="") + + + + + + + @org.onap.aai.annotations.Metadata(description="Sequence number of the rule.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Threshold") + + + + + + + @org.onap.aai.annotations.Metadata(description="status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Named variable used for counting transactions.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Boolean to indicate whether or not logging is required.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of rules") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Definition of policy",indexedProps="policy-id",uniqueProps="policy-id",container="policies",namespace="common",uriTemplate="/common/policies/policy/{policy-id}",requiredProps="policy-id,do-not-track,pre-dnat,apply-on-forward") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique Policy UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Policy Name") + + + + + + + @org.onap.aai.annotations.Metadata(description="Policy Type") + + + + + + + @org.onap.aai.annotations.Metadata(description="Policy role") + + + + + + + @org.onap.aai.annotations.Metadata(description="policy function") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Do not track") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Pre destination NAT") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="apply on forward") + + + + + + + @org.onap.aai.annotations.Metadata(description="Host and Interface Type Selector",dbAlias="selector-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="Order") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Status") + + + + + + + @org.onap.aai.annotations.Metadata(description="Remote ASN") + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace filter to apply the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description of the policy") + + + + + + + @org.onap.aai.annotations.Metadata(description="Set of rule variables") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an vlan characteristic",indexedProps="vlan-characteristic-id",container="vlan-characteristics",namespace="common",uriTemplate="/common/vlan-characteristics/vlan-characteristic/{vlan-characteristic-id}",requiredProps="vlan-characteristic-id,dhcp-pool,internet-access") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Device role the vlan-characteristic applies to (c-agg-leaf-a, c-agg-leaf-b, r-leaf).") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="DHCP Agent access.") + + + + + + + @org.onap.aai.annotations.Metadata(defaultValue="false",description="Boolean to represent if requires internet access.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of vlan characteristics") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an relationship component",indexedProps="rule-node,rule-property,rule-value,component-order",container="relationship-components",dependentOn="relationship-rule",uriTemplate="common/relationship-components/relationship-component/{rule-node}",requiredProps="rule-node,rule-property,rule-value,component-order") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="NARAD object") + + + + + + + @org.onap.aai.annotations.Metadata(description="Object property") + + + + + + + @org.onap.aai.annotations.Metadata(description="Property value") + + + + + + + @org.onap.aai.annotations.Metadata(description="Order in traversal") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of relationship components") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="describes an relationship rule",indexedProps="rule-id,context,rule-traversals,applies-to",uniqueProps="rule-id",container="relationship-rules",namespace="common",uriTemplate="/common/relationship-rules/relationship-rule/{rule-id}",requiredProps="rule-id,context,rule-traversals,applies-to") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="UUID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Example global,site") + + + + + + + @org.onap.aai.annotations.Metadata(description="Number of traversals") + + + + + + + @org.onap.aai.annotations.Metadata(description="Node the related object applies to") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of relationship rules") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Namespace for common inventory resources.") + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models",requiredProps="model-invariant-id,model-name-version-id,model-type,model-name,model-id,model-version") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC") + + + + + + + @org.onap.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of the model, which can change from version to version.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Version") + + + + + + + @org.onap.aai.annotations.Metadata(description="Description") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query") + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query") + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query") + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Property holder for query properties or instance properties") + + + + + + + + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Extra properties for inventory item for response list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items") + + + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Response container for the results of a named-query or model query") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true",requiredProps="vnf-id") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Unique id of VNF. This is unique across the graph.") + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an User network interface",indexedProps="id,tp-id,cvlan,operational-status,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="unis",namespace="network",requiredProps="id",uriTemplate="/network/unis/uni/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the UNI") + + + + + + + @org.onap.aai.annotations.Metadata(description="Termination point ID.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The cvlan for the site used for ethernet type connectivity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of User network interface.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an inter layer topology attachment",indexedProps="id,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="interlayer-attachments",namespace="network",requiredProps="id",uriTemplate="/network/interlayer-attachments/interlayer-attachment/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the interlayer topology attachment") + + + + + + + @org.onap.aai.annotations.Metadata(description="Inter layer lock id") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of interlayer topology connectivities.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an te-link-attribute",indexedProps="id,link-protection-type,access-type,operational-status,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="te-link-attributes",namespace="network",requiredProps="id",uriTemplate="/network/te-link-attributes/te-link-attribute/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the TE link attribute") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate desired protection type of the link e.g, unprotected, shared or 1+1") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate link access type e.g, point-to-point or multi-access.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Bandwidth available on link.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The type of ODU e.g, ODU1, ODU2, ODU3, ODU4.") + + + + + + + @org.onap.aai.annotations.Metadata(description="The value of available bandwidth.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate wheather link is abstract or native") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of TE link attributes.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an label restriction",indexedProps="id,label-start,label-end,range-bitmap,operational-status,model-invariant-id,model-version-id",searchable="id",uniqueProps="id",container="label-restrictions",namespace="network",requiredProps="id",uriTemplate="/network/label-restrictions/label-restriction/{id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the label restriction") + + + + + + + @org.onap.aai.annotations.Metadata(description="First number in the label range") + + + + + + + @org.onap.aai.annotations.Metadata(description="Last number in the label range") + + + + + + + @org.onap.aai.annotations.Metadata(description="Bitmap of available labels starting from label-start to label-end.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Step of labels in label range.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate wheather range-bitmap items are inclusive or exclusive.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate the label range e.g.trib-slot, trib-port") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate trib slot granularity.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Priority.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Label Restriction.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Instance of an tunnel termination point",indexedProps="ttp-id,tunnel-tp-id,name,operational-status,model-invariant-id,model-version-id",searchable="ttp-id",uniqueProps="ttp-id",container="tunnel-termination-points",namespace="network",requiredProps="ttp-id",uriTemplate="/network/tunnel-termination-points/tunnel-termination-point/{ttp-id}") + + + + + + + @org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the tunnel termination point") + + + + + + + @org.onap.aai.annotations.Metadata(description="TTP ID discovered from controller") + + + + + + + @org.onap.aai.annotations.Metadata(description="Name of tunnel termination point") + + + + + + + @org.onap.aai.annotations.Metadata(description="Admin status of TTP e.g, up,down,testing,preparing-maintenance,maintenance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Operational status of TTP e.g, up,down,testing,preparing-maintenance,maintenance.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate switching capability of TTP e.g,PSC-1, EVPL,L2SC,TDM,OTN.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Encoding support by the TTP e.g, packet,ethernet,PDH,SDH,digital-wrapper,lambda,fiber,ODUK,line.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Indicate supported protection type of this TTP e.g, unprotected,reroute,reroute-extra,1-for-n,unidir-1-to-1.") + + + + + + + @org.onap.aai.annotations.Metadata(description="correlation between related objects in ETH and OTN topology.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the link to get more information for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id",dbAlias="model-invariant-id-local") + + + + + + + @org.onap.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id",dbAlias="model-version-id-local",privateEdge="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}") + + + + + + + @org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency. Must be empty on create, valid on update and delete.") + + + + + + + + + + + + @org.onap.aai.annotations.Metadata(description="Collection of Tunnel Termination Point.") + + + + + + + + + + + + + + + + + + + + + + + diff --git a/aai-service/provider/src/main/resources/aaiclient.properties b/aai-service/provider/src/main/resources/aaiclient.properties index 9d69df6e8..979537f8e 100755 --- a/aai-service/provider/src/main/resources/aaiclient.properties +++ b/aai-service/provider/src/main/resources/aaiclient.properties @@ -42,30 +42,30 @@ connection.timeout=60000 read.timeout=60000 # aai version -org.onap.ccsdk.sli.adaptors.aai.version=/v19/ +org.onap.ccsdk.sli.adaptors.aai.version=/v21/ # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v19/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v19/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v19/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v21/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v21/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v21/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v19/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v21/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v19/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v21/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v21/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v19/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v21/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v21/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java index 9cc661ff7..079c76cbd 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AAIServiceTest.java @@ -51,7 +51,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.onap.aai.inventory.v19.*; +import org.onap.aai.inventory.v21.*; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java index bdeb9ddef..5ac503ff5 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/AutoGeneratedRegressionTest.java @@ -62,7 +62,7 @@ import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v21.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.annotation.AnnotationUtils; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java index 8030201a2..3ce8a6dc5 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericRequestTest.java @@ -38,7 +38,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum; -import org.onap.aai.inventory.v19.LInterface; +import org.onap.aai.inventory.v21.LInterface; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java index f0a33fd0a..5a594298f 100755 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/GenericVnfTest.java @@ -49,7 +49,7 @@ import org.onap.ccsdk.sli.adaptors.aai.AAIRequest; import org.onap.ccsdk.sli.adaptors.aai.AAIService; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; -import org.onap.aai.inventory.v19.GenericVnf; +import org.onap.aai.inventory.v21.GenericVnf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java index 3ab823f57..7975372be 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/data/SubInterfaceTest.java @@ -10,8 +10,8 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v19.RelationshipList; -import org.onap.aai.inventory.v19.Vlans; +import org.onap.aai.inventory.v21.RelationshipList; +import org.onap.aai.inventory.v21.Vlans; public class SubInterfaceTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java index 421c28803..7a81f72cb 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/InstanceFilterTest.java @@ -9,16 +9,16 @@ import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v19.CloudRegion; -import org.onap.aai.inventory.v19.GenericVnf; -import org.onap.aai.inventory.v19.L3Network; -import org.onap.aai.inventory.v19.LogicalLink; -import org.onap.aai.inventory.v19.PInterface; -import org.onap.aai.inventory.v19.Pnf; -import org.onap.aai.inventory.v19.ServiceInstance; -import org.onap.aai.inventory.v19.Tenant; -import org.onap.aai.inventory.v19.Vnf; -import org.onap.aai.inventory.v19.Vserver; +import org.onap.aai.inventory.v21.CloudRegion; +import org.onap.aai.inventory.v21.GenericVnf; +import org.onap.aai.inventory.v21.L3Network; +import org.onap.aai.inventory.v21.LogicalLink; +import org.onap.aai.inventory.v21.PInterface; +import org.onap.aai.inventory.v21.Pnf; +import org.onap.aai.inventory.v21.ServiceInstance; +import org.onap.aai.inventory.v21.Tenant; +import org.onap.aai.inventory.v21.Vnf; +import org.onap.aai.inventory.v21.Vserver; public class InstanceFilterTest { diff --git a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java index c6365ae1e..14c17a563 100644 --- a/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java +++ b/aai-service/provider/src/test/java/org/onap/ccsdk/sli/adaptors/aai/query/ResultTest.java @@ -10,19 +10,19 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.aai.inventory.v19.CloudRegion; -import org.onap.aai.inventory.v19.Complex; -import org.onap.aai.inventory.v19.Configuration; -import org.onap.aai.inventory.v19.GenericVnf; -import org.onap.aai.inventory.v19.L3InterfaceIpv4AddressList; -import org.onap.aai.inventory.v19.L3InterfaceIpv6AddressList; -import org.onap.aai.inventory.v19.L3Network; -import org.onap.aai.inventory.v19.LInterface; -//import org.onap.aai.inventory.v19.OwningEntity; -import org.onap.aai.inventory.v19.Pserver; -import org.onap.aai.inventory.v19.ServiceInstance; -import org.onap.aai.inventory.v19.Vnfc; -import org.onap.aai.inventory.v19.Vserver; +import org.onap.aai.inventory.v21.CloudRegion; +import org.onap.aai.inventory.v21.Complex; +import org.onap.aai.inventory.v21.Configuration; +import org.onap.aai.inventory.v21.GenericVnf; +import org.onap.aai.inventory.v21.L3InterfaceIpv4AddressList; +import org.onap.aai.inventory.v21.L3InterfaceIpv6AddressList; +import org.onap.aai.inventory.v21.L3Network; +import org.onap.aai.inventory.v21.LInterface; +//import org.onap.aai.inventory.v21.OwningEntity; +import org.onap.aai.inventory.v21.Pserver; +import org.onap.aai.inventory.v21.ServiceInstance; +import org.onap.aai.inventory.v21.Vnfc; +import org.onap.aai.inventory.v21.Vserver; public class ResultTest { diff --git a/aai-service/provider/src/test/resources/aaiclient.properties b/aai-service/provider/src/test/resources/aaiclient.properties index 1a6213cf2..571280b81 100755 --- a/aai-service/provider/src/test/resources/aaiclient.properties +++ b/aai-service/provider/src/test/resources/aaiclient.properties @@ -42,34 +42,34 @@ connection.timeout=60000 read.timeout=60000 # aai version -org.onap.ccsdk.sli.adaptors.aai.version=/v19/ +org.onap.ccsdk.sli.adaptors.aai.version=/v21/ # query -org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v19/search/sdn-zone-query -org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v19/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} -org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v19/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 +org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v21/search/sdn-zone-query +org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v21/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name} +org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v21/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3 #update -org.onap.ccsdk.sli.adaptors.aai.update=/aai/v19/actions/update +org.onap.ccsdk.sli.adaptors.aai.update=/aai/v21/actions/update # UBB Notify -org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v19/actions/notify +org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v21/actions/notify org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id} org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information # P-Interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces -org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v19/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces +org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v21/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name} # VNF IMAGES -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v21/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # service instance -org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v19/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance -org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v19/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} +org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v21/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance +org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v21/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id} # VNF IMAGES QUERY -org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v19/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} +org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v21/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor} # # Formatting -- cgit 1.2.3-korg