Merge "Sonar violation"
authorVenkata Harish Kajur <vk250x@att.com>
Wed, 22 Aug 2018 20:53:09 +0000 (20:53 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 22 Aug 2018 20:53:09 +0000 (20:53 +0000)
aai-core/src/main/java/org/onap/aai/util/genxsd/PutOperation.java
aai-schema/src/main/resources/onap/aai_schema/aai_schema_v14.xsd
aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json [new file with mode: 0644]
aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_v14.json
aai-schema/src/main/resources/onap/oxm/v14/aai_oxm_v14.xml

index 16bbc2c..cb5e779 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright © 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
  * ============LICENSE_END=========================================================
  */
 package org.onap.aai.util.genxsd;
-import java.util.StringTokenizer;
 
 import org.apache.commons.lang3.StringUtils;
 import org.onap.aai.setup.SchemaVersion;
 import org.onap.aai.util.GenerateXsd;
 
 public class PutOperation {
-       private String useOpId;
-       private String xmlRootElementName;
-       private String tag;
-       private String path;
-       private String pathParams;
-       private SchemaVersion version;
+    public static final String RELATIONSHIP = "relationship";
+    private String useOpId;
+    private String xmlRootElementName;
+    private String tag;
+    private String path;
+    private String pathParams;
+    private SchemaVersion version;
 
-               public PutOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, SchemaVersion v) {
-                       super();
-                       this.useOpId = useOpId;
-                       this.xmlRootElementName = xmlRootElementName;
-                       this.tag = tag;
-                       this.path = path;
-                       this.pathParams = pathParams;
-                       this.version = v;
-               }
+        public PutOperation(String useOpId, String xmlRootElementName, String tag, String path, String pathParams, SchemaVersion v) {
+            super();
+            this.useOpId = useOpId;
+            this.xmlRootElementName = xmlRootElementName;
+            this.tag = tag;
+            this.path = path;
+            this.pathParams = pathParams;
+            this.version = v;
+        }
 
-               @Override
-               public String toString() {
-                       StringTokenizer st = new StringTokenizer(path, "/");
-                       //a valid tag is necessary
-                       if ( StringUtils.isEmpty(tag) ) {
-                               return "";
-                       }
-                       //All Put operation paths end with "relationship"
-                       //or there is a parameter at the end of the path
-                       //and there is a parameter in the path
-                       if ( path.contains("/relationship/") ) { // filter paths with relationship-list
-                               return "";
-                       }
-                       if ( path.endsWith("/relationship-list")) {
-                               return "";
-                       }
-                       if ( !path.endsWith("/relationship")  &&  !path.endsWith("}") ) {
-                               return "";
-                       }
-                       if ( path.startsWith("/search")) {
-                               return "";
-                       }
-                       StringBuffer pathSb = new StringBuffer();
-                       StringBuffer relationshipExamplesSb = new StringBuffer();
-                       if ( path.endsWith("/relationship") ) {
-                               pathSb.append("  " + path + ":\n" );
-                       }
-                       pathSb.append("    put:\n");
-                       pathSb.append("      tags:\n");
-                       pathSb.append("        - " + tag + "\n");
+        @Override
+        public String toString() {
+            //a valid tag is necessary
+            if ( StringUtils.isEmpty(tag) ) {
+                return "";
+            }
+            //All Put operation paths end with "relationship"
+            //or there is a parameter at the end of the path
+            //and there is a parameter in the path
+            if ( path.contains("/"+RELATIONSHIP+"/") ) { // filter paths with relationship-list
+                return "";
+            }
+            if ( path.endsWith("/"+RELATIONSHIP+"-list")) {
+                return "";
+            }
+            if ( !path.endsWith("/"+RELATIONSHIP)  &&  !path.endsWith("}") ) {
+                return "";
+            }
+            if ( path.startsWith("/search")) {
+                return "";
+            }
+            StringBuffer pathSb = new StringBuffer();
+            StringBuffer relationshipExamplesSb = new StringBuffer();
+            if ( path.endsWith("/"+RELATIONSHIP) ) {
+                pathSb.append("  " + path + ":\n" );
+            }
+            pathSb.append("    put:\n");
+            pathSb.append("      tags:\n");
+            pathSb.append("        - " + tag + "\n");
 
-                       if ( path.endsWith("/relationship") ) {
-                               pathSb.append("      summary: see node definition for valid relationships\n");
-                       } else {
-                               pathSb.append("      summary: create or update an existing " + xmlRootElementName + "\n");
-                               pathSb.append("      description: |\n        Create or update an existing " + xmlRootElementName + ".\n        #\n        Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement.  An example can be found in the [PATCH section] below\n");
-                       }
-                       relationshipExamplesSb.append("[Valid relationship examples shown here](apidocs/relations/"+version.toString()+"/"+useOpId.replace("RelationshipListRelationship", "")+".json)");
-                       pathSb.append("      operationId: createOrUpdate" + useOpId + "\n");
-                       pathSb.append("      consumes:\n");
-                       pathSb.append("        - application/json\n");
-                       pathSb.append("        - application/xml\n");                                   
-                       pathSb.append("      produces:\n");
-                       pathSb.append("        - application/json\n");
-                       pathSb.append("        - application/xml\n");
-                       pathSb.append("      responses:\n");
-                       pathSb.append("        \"default\":\n");
-                       pathSb.append("          " + GenerateXsd.getResponsesUrl());
-               
-                       pathSb.append("      parameters:\n");
-                       pathSb.append(pathParams); // for nesting
-                       pathSb.append("        - name: body\n");
-                       pathSb.append("          in: body\n");
-                       pathSb.append("          description: " + xmlRootElementName + " object that needs to be created or updated. "+relationshipExamplesSb.toString()+"\n");
-                       pathSb.append("          required: true\n");
-                       pathSb.append("          schema:\n");
-                       pathSb.append("            $ref: \"#/definitions/" + xmlRootElementName + "\"\n");
-                       this.tagRelationshipPathMapEntry();
-                       return pathSb.toString();
-               }
+            if ( path.endsWith("/"+RELATIONSHIP) ) {
+                pathSb.append("      summary: see node definition for valid relationships\n");
+            } else {
+                pathSb.append("      summary: create or update an existing " + xmlRootElementName + "\n");
+                pathSb.append("      description: |\n        Create or update an existing " + xmlRootElementName + ".\n        #\n        Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement.  An example can be found in the [PATCH section] below\n");
+            }
+            relationshipExamplesSb.append("[Valid relationship examples shown here](apidocs/relations/"+version.toString()+"/"+useOpId.replace("RelationshipListRelationship", "")+".json)");
+            pathSb.append("      operationId: createOrUpdate" + useOpId + "\n");
+            pathSb.append("      consumes:\n");
+            pathSb.append("        - application/json\n");
+            pathSb.append("        - application/xml\n");                    
+            pathSb.append("      produces:\n");
+            pathSb.append("        - application/json\n");
+            pathSb.append("        - application/xml\n");
+            pathSb.append("      responses:\n");
+            pathSb.append("        \"default\":\n");
+            pathSb.append("          " + GenerateXsd.getResponsesUrl());
+        
+            pathSb.append("      parameters:\n");
+            pathSb.append(pathParams); // for nesting
+            pathSb.append("        - name: body\n");
+            pathSb.append("          in: body\n");
+            pathSb.append("          description: " + xmlRootElementName + " object that needs to be created or updated. "+relationshipExamplesSb.toString()+"\n");
+            pathSb.append("          required: true\n");
+            pathSb.append("          schema:\n");
+            pathSb.append("            $ref: \"#/definitions/" + xmlRootElementName + "\"\n");
+            this.tagRelationshipPathMapEntry();
+            return pathSb.toString();
+        }
 
-               public String tagRelationshipPathMapEntry() {
-                       if ( path.endsWith("/relationship") ) {
-                               PutRelationPathSet.add(useOpId, path);
-                       }
-                       return "";
-               }
-               
-       }
\ No newline at end of file
+        public String tagRelationshipPathMapEntry() {
+            if ( path.endsWith("/"+RELATIONSHIP) ) {
+                PutRelationPathSet.add(useOpId, path);
+            }
+            return "";
+        }
+        
+    }
\ No newline at end of file
index 2019a6a..42dcde8 100644 (file)
@@ -2353,7 +2353,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
     <xs:complexType>
       <xs:annotation>
         <xs:appinfo>
-          <annox:annotate target="class">@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")</annox:annotate>
+          <annox:annotate target="class">@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")</annox:annotate>
         </xs:appinfo>
       </xs:annotation>
       <xs:sequence>
@@ -2448,6 +2448,27 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="network-ref" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="transparent" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the transparent value of this p-interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="oper Status of this p-interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element ref="tns:relationship-list" minOccurs="0"/>
         <xs:element ref="tns:sriov-pfs" minOccurs="0"/>
         <xs:element ref="tns:l-interfaces" minOccurs="0"/>
@@ -3481,6 +3502,13 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="input-parameters" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="String capturing request parameters from SO to pass to Closed Loop.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element ref="tns:relationship-list" minOccurs="0"/>
         <xs:element ref="tns:metadata" minOccurs="0"/>
         <xs:element ref="tns:allotted-resources" minOccurs="0"/>
@@ -4361,7 +4389,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
     <xs:complexType>
       <xs:annotation>
         <xs:appinfo>
-          <annox:annotate target="class">@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")</annox:annotate>
+          <annox:annotate target="class">@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")</annox:annotate>
         </xs:appinfo>
       </xs:annotation>
       <xs:sequence>
@@ -4781,7 +4809,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
     <xs:complexType>
       <xs:annotation>
         <xs:appinfo>
-          <annox:annotate target="class">@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")</annox:annotate>
+          <annox:annotate target="class">@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")</annox:annotate>
         </xs:appinfo>
       </xs:annotation>
       <xs:sequence>
@@ -4834,6 +4862,83 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="access-provider-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the access provider of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="access-client-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the access client of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="access-topology-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the access topology of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="src-access-node-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the src-access-node of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="src-access-ltp-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the src-access-ltp of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dst-access-node-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-node of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dst-access-ltp-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the id of the dst-access-ltp of this vpn.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the model-version-id for this object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the model-invariant-id for this object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element name="resource-version" type="xs:string" minOccurs="0">
           <xs:annotation>
             <xs:appinfo>
@@ -6698,7 +6803,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
     <xs:complexType>
       <xs:annotation>
         <xs:appinfo>
-          <annox:annotate target="class">@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")</annox:annotate>
+          <annox:annotate target="class">@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,operational-status,admin-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network")</annox:annotate>
         </xs:appinfo>
       </xs:annotation>
       <xs:sequence>
@@ -6863,6 +6968,27 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="admin-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="admin Status of this PNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the operational-status for this object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the model-customization-id for this object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
           <xs:annotation>
             <xs:appinfo>
diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json b/aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json
new file mode 100644 (file)
index 0000000..cb1e0e6
--- /dev/null
@@ -0,0 +1,16 @@
+{
+  "rules": [
+       {
+               "from": "vpn-binding",
+               "to": "p-interface",
+               "label": "org.onap.relationships.inventory.BindsTo",
+               "direction": "OUT",
+               "multiplicity": "ONE2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "NONE",
+               "prevent-delete": "NONE",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       }
+  ]
+}
index b407c87..2e65669 100644 (file)
                        "default": "true",
                        "description":""
                }
-               
+       
        ]
 }
index 111946f..d92f3c9 100644 (file)
@@ -4,6 +4,7 @@
   org.onap.aai
   ================================================================================
   Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+  Copyright (C) 2018 Huawei Technologies (Australia) Pty Ltd. All rights reserved.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
                                                <xml-property name="description" value="inventory status" />
                                        </xml-properties>
                                </xml-element>
+                               <xml-element java-attribute="networkRef" name="network-ref" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the network-ref of this p-interface. Derived from ietf-restconf-notification that identifies a termination-point." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="transparent" name="transparent" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the transparent value of this p-interface." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="oper Status of this p-interface." />
+                                       </xml-properties>
+                               </xml-element>
                                <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v14.RelationshipList" />
                                <xml-element java-attribute="sriovPfs" name="sriov-pfs" type="inventory.aai.onap.org.v14.SriovPfs" />
                                <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v14.LInterfaces" />
                        </java-attributes>
                        <xml-properties>
                                <xml-property name="description" value="Physical interface (e.g., nic)" />
-                               <xml-property name="indexedProps" value="interface-name,prov-status" />
+                               <xml-property name="indexedProps" value="interface-name,prov-status,networkRef,operational-status" />
                                <xml-property name="nameProps" value="prov-status" />
                                <xml-property name="dependentOn" value="vpls-pe,pserver,pnf" />
                                <xml-property name="container" value="p-interfaces" />
                                                <xml-property name="description" value="Orchestration status of this service." />
                                        </xml-properties>
                                </xml-element>
+                               <xml-element java-attribute="inputParameters" name="input-parameters" required="false" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="String capturing request parameters from SO to pass to Closed Loop." />
+                                       </xml-properties>
+                               </xml-element>
                                <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v14.RelationshipList" />
                                <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v14.Metadata" />
                                <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.onap.org.v14.AllottedResources" />
                        </java-attributes>
                        <xml-properties>
                                <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" />
-                               <xml-property name="indexedProps" value="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose" />
+                               <xml-property name="indexedProps" value="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose,operational-status" />
                                <xml-property name="uniqueProps" value="link-id" />
                                <xml-property name="container" value="logical-links" />
                                <xml-property name="namespace" value="network" />
                                                <xml-property name="description" value="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network." />
                                        </xml-properties>
                                </xml-element>
+                               <xml-element java-attribute="accessProviderId" name="access-provider-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the access provider of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="accessClientId" name="access-client-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the access client of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="accessTopologyId" name="access-topology-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the access topology of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="srcAccessNodeId" name="src-access-node-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the src-access-node of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="srcAccessLtpId" name="src-access-ltp-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the src-access-ltp of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="dstAccessNodeId" name="dst-access-node-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the dst-access-node of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="dstAccessLtpId" name="dst-access-ltp-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the id of the dst-access-ltp of this vpn." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the operational-status for this object." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the model-customization-id for this object." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the model-version-id for this object." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the model-invariant-id for this object." />
+                                       </xml-properties>
+                               </xml-element>
                                <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
                                        <xml-properties>
                                                <xml-property name="description" value="Used for optimistic concurrency.  Must be empty on create, valid on update and delete." />
                        <xml-properties>
                                <xml-property name="description" value="VPN binding" />
                                <xml-property name="nameProps" value="vpn-name,vpn-type" />
-                               <xml-property name="indexedProps" value="vpn-name,vpn-id,vpn-type" />
+                               <xml-property name="indexedProps" value="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" />
                                <xml-property name="searchable" value="vpn-id,vpn-name" />
                                <xml-property name="uniqueProps" value="vpn-id" />
                                <xml-property name="container" value="vpn-bindings" />
                                                <xml-property name="description" value="Nf Role is the role performed by this instance in the network." />
                                        </xml-properties>
                                </xml-element>
+                               <xml-element java-attribute="adminStatus" name="admin-status" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="admin Status of this PNF" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the operational-status for this object." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Store the model-customization-id for this object." />
+                                       </xml-properties>
+                               </xml-element>
                                <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
                                        <xml-properties>
                                                <xml-property name="description" value="The ASDC model id for this resource  model."/>
                        </java-attributes>
                        <xml-properties>
                                <xml-property name="description" value="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." />
-                               <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status" />
+                               <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status,operational-status,admin-status" />
                                <xml-property name="searchable" value="pnf-name" />
                                <xml-property name="uniqueProps" value="pnf-name" />
                                <xml-property name="container" value="pnfs" />