Add NFVO external-system in AAI

Change-Id: I71601180d47fe3de71ddbc07a4c54db7b398f520
Signed-off-by: udhaya Chandran <udhayachandran.m@verizon.com>
Issue-ID: AAI-2205
diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v16.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v16.xsd
index 7fe4223..2cbd179 100644
--- a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v16.xsd
+++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v16.xsd
@@ -3220,6 +3220,52 @@
       </xs:sequence>
     </xs:complexType>
   </xs:element>
+  <xs:element name="esr-nfvo">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@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}")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="nfvo-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of nfvo.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="api-root" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="indecate the api-root.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:esr-system-info-list" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="esr-nfvo-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(maximumDepth="0")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:esr-nfvo" minOccurs="0" maxOccurs="5000"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="esr-thirdparty-sdnc">
     <xs:complexType>
       <xs:annotation>
@@ -3283,6 +3329,7 @@
       <xs:sequence>
         <xs:element ref="tns:esr-ems-list" minOccurs="0"/>
         <xs:element ref="tns:esr-vnfm-list" minOccurs="0"/>
+        <xs:element ref="tns:esr-nfvo-list" minOccurs="0"/>
         <xs:element ref="tns:esr-thirdparty-sdnc-list" minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>
diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v16/DbEdgeRules_esr_v16.json b/aai-schema/src/main/resources/onap/dbedgerules/v16/DbEdgeRules_esr_v16.json
index fb20986..baa6ab8 100644
--- a/aai-schema/src/main/resources/onap/dbedgerules/v16/DbEdgeRules_esr_v16.json
+++ b/aai-schema/src/main/resources/onap/dbedgerules/v16/DbEdgeRules_esr_v16.json
@@ -26,6 +26,18 @@
     },
     {
       "from": "esr-system-info",
+      "to": "esr-nfvo",
+      "label": "org.onap.relationships.inventory.BelongsTo",
+      "direction": "OUT",
+      "multiplicity": "ONE2ONE",
+      "contains-other-v": "!${direction}",
+      "delete-other-v": "!${direction}",
+      "SVC-INFRA": "NONE",
+      "prevent-delete": "NONE",
+      "default": "true"
+    },
+    {
+      "from": "esr-system-info",
       "to": "esr-thirdparty-sdnc",
       "label": "org.onap.relationships.inventory.BelongsTo",
       "direction": "OUT",
diff --git a/aai-schema/src/main/resources/onap/oxm/v16/aai_oxm_v16.xml b/aai-schema/src/main/resources/onap/oxm/v16/aai_oxm_v16.xml
index 5354618..736a5f6 100644
--- a/aai-schema/src/main/resources/onap/oxm/v16/aai_oxm_v16.xml
+++ b/aai-schema/src/main/resources/onap/oxm/v16/aai_oxm_v16.xml
@@ -234,6 +234,7 @@
                        <java-attributes>
                                <xml-element java-attribute="esrEmsList" name="esr-ems-list" type="inventory.aai.onap.org.v16.EsrEmsList"/>
                                <xml-element java-attribute="esrVnfmList" name="esr-vnfm-list" type="inventory.aai.onap.org.v16.EsrVnfmList"/>
+                               <xml-element java-attribute="esrNfvoList" name="esr-nfvo-list" type="inventory.aai.onap.org.v16.EsrNfvoList"/>
                                <xml-element java-attribute="esrThirdpartySdncList" name="esr-thirdparty-sdnc-list" type="inventory.aai.onap.org.v16.EsrThirdpartySdncList"/>
                        </java-attributes>
                </java-type>
@@ -322,6 +323,49 @@
             </xml-properties>
                </java-type>
 
+               <java-type name="EsrNfvoList">
+                       <xml-root-element name="esr-nfvo-list"/>
+                       <java-attributes>
+                               <xml-element container-type="java.util.ArrayList" java-attribute="esrNfvo" name="esr-nfvo" type="inventory.aai.onap.org.v16.EsrNfvo"/>
+                       </java-attributes>
+            <xml-properties>
+                               <xml-property name="maximumDepth" value="0"/>
+                       </xml-properties>
+               </java-type>
+
+               <java-type name="EsrNfvo">
+                       <xml-root-element name="esr-nfvo"/>
+                       <java-attributes>
+                               <xml-element java-attribute="nfvoId" name="nfvo-id" required="true" type="java.lang.String" xml-key="true">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Unique ID of nfvo."/>
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="apiRoot" name="api-root" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="indecate the api-root."/>
+                                       </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-element>
+                               <xml-element java-attribute="esrSystemInfoList" name="esr-system-info-list" type="inventory.aai.onap.org.v16.EsrSystemInfoList"/>
+                               <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v16.RelationshipList"/>
+                       </java-attributes>
+                       <xml-properties>
+                               <xml-property name="description" value="Persist NFVO address information used by VF-C."/>
+                               <xml-property name="indexedProps" value="nfvo-id"/>
+                               <xml-property name="searchable" value="nfvo-id"/>
+                               <xml-property name="container" value="esr-nfvo-list"/>
+                               <xml-property name="namespace" value="external-system"/>
+                       <xml-property name="requiredProps" value="nfvo-id"/>
+            <xml-property name="uriTemplate" value="/external-system/esr-nfvo-list/esr-nfvo/{nfvo-id}"/>
+            </xml-properties>
+               </java-type>
+
+
                <java-type name="EsrThirdpartySdncList">
                        <xml-root-element name="esr-thirdparty-sdnc-list"/>
                        <java-attributes>
@@ -497,7 +541,7 @@
                                <xml-property name="indexedProps" value="esr-system-info-id,system-name,system-type"/>
                                <xml-property name="searchable" value="esr-system-info-id,system-name,system-type"/>
                                <xml-property name="container" value="esr-system-info-list"/>
-                               <xml-property name="dependentOn" value="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network"/>
+                               <xml-property name="dependentOn" value="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network,esr-nfvo"/>
                        <xml-property name="requiredProps" value="esr-system-info-id,user-name,password,system-type"/>
             <xml-property name="uriTemplate" value="/esr-system-info-list/esr-system-info/{esr-system-info-id}"/>
             </xml-properties>