AAI schema changes to support TN NSSI and transport endpoint. 25/110925/10
authorHesam Rahimi <hesam.rahimi@huawei.com>
Sun, 4 Aug 2019 22:40:09 +0000 (22:40 +0000)
committerHesam Rahimi <hesam.rahimi@huawei.com>
Wed, 19 Aug 2020 19:54:20 +0000 (19:54 +0000)
Issue-ID: AAI-2920

Signed-off-by: Hesam Rahimi <hesam.rahimi@huawei.com>
Change-Id: Ic1e2e1561c4add226abc9d96ac6c623d5255106f

aai-schema/src/main/resources/onap/aai_schema/aai_schema_v20.xsd
aai-schema/src/main/resources/onap/dbedgerules/v20/DbEdgeRules_ccvpn_v20.json
aai-schema/src/main/resources/onap/oxm/v20/aai_oxm_v20.xml

index 9831b7f..fbce150 100644 (file)
@@ -3809,6 +3809,8 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
           </xs:annotation>
         </xs:element>
         <xs:element ref="tns:tunnel-xconnects" minOccurs="0"/>
+        <xs:element ref="tns:logical-links" minOccurs="0"/>
+        <xs:element ref="tns:network-policies" minOccurs="0"/>
         <xs:element ref="tns:relationship-list" minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>
@@ -4189,6 +4191,13 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="max-bandwidth" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="The maximum bandwidth (mb) of the connection links in a transport slice instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element name="exp-data-rate" type="xs:int" minOccurs="0">
           <xs:annotation>
             <xs:appinfo>
@@ -4253,6 +4262,131 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
         <xs:element ref="tns:slice-profile" minOccurs="0" maxOccurs="5000"/>
       </xs:sequence>
     </xs:complexType>
+  </xs:element>
+    <xs:element name="ip-address">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Ip address object.",uniqueProps="ip-address",indexedProps="ip-address",container="ip-address-list",uriTemplate="/endpoints/endpoint/{endpoint-id}/ip-address-list/ip-address/{ip-address}",searcheable="endpoint-id")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="ip-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="IP address.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-address-end" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="IP address end range.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="IP version, either 4 or 6.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="reserved, static, dhcp.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="assignment" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="assignment.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operator" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Operator to apply to the port (greater than, less than, etc).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="ip-address prefix length, 32 for single address.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ip-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="List of IP addresses.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:ip-address" minOccurs="0" maxOccurs="5000"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="endpoint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Endpoint object.",uniqueProps="endpoint-id",indexedProps="endpoint-id",container="endpoints",uriTemplate="/endpoints/endpoint/{endpoint-id}",searcheable="endpoint-id")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="endpoint-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="ID of endpoint.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="endpoint-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Name of endpoint.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="endpoint-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Type of endpoint.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="logical-interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Identity of a logical interface, e.g., VLAN ID, MPLS label.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+               <xs:element ref="tns:ip-address-list" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="endpoints">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Collection of endpoints.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:endpoint" minOccurs="0" maxOccurs="5000"/>
+      </xs:sequence>
+    </xs:complexType>
   </xs:element>
   <xs:element name="service-instance">
     <xs:complexType>
@@ -4443,6 +4577,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
         <xs:element ref="tns:communication-service-profiles" minOccurs="0"/>
         <xs:element ref="tns:service-profiles" minOccurs="0"/>
         <xs:element ref="tns:slice-profiles" minOccurs="0"/>
+        <xs:element ref="tns:endpoints" minOccurs="0"/>
         <xs:element name="service-function" type="xs:string" minOccurs="0">
           <xs:annotation>
             <xs:appinfo>
@@ -7246,6 +7381,48 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Name of the policy.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Type of the policy.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="latency" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="jitter" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="jitter")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="max-bandwidth" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="The maximum bandwidth (mb) of the connection links in a transport slice instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="reliability" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="The reliability requirement for a transport slice network, expressed as a percentage.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element ref="tns:relationship-list" minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>
index f007e0a..475abbe 100644 (file)
                "default": "true",
                "description":"For CCVPN Usecase"
        },
-        {
+       {
                "from": "p-interface",
                "to": "interlayer-attachment",
                "label": "tosca.relationships.network.LinksTo",
                "description":"For CCVPN Usecase"
 
        },
-        {
+       {
                "from": "tunnel-termination-point",
                "to": "interlayer-attachment",
                "label": "tosca.relationships.network.LinksTo",
                "default": "true",
                "description":"For CCVPN Usecase"
        },
-        {
+       {
                "from": "logical-link",
                "to": "te-link-attribute",
                "label": "tosca.relationships.network.LinksTo",
                "description":"For CCVPN Usecase"
 
        },
-        {
+       {
                "from": "label-restriction",
                "to": "te-link-attribute",
                "label": "tosca.relationships.network.LinksTo",
                 "prevent-delete": "NONE",
                 "default": "true",
                 "description":"For MDONS usecase"
-        }
+        },
+        {
+                "from": "endpoint",
+                "to": "p-interface",
+                "label": "tosca.relationships.network.LinksTo",
+                "direction": "OUT",
+                "multiplicity": "ONE2ONE",
+                "contains-other-v": "NONE",
+                "delete-other-v": "NONE",
+                "prevent-delete": "NONE",
+                "default": "true",
+                "description":"For CCVPN Transport Slicing usecase"
+       }
   ]
 }
index 5669464..8424058 100644 (file)
                 <xml-element java-attribute="communicationServiceProfiles" name="communication-service-profiles" type="inventory.aai.onap.org.v20.CommunicationServiceProfiles"/>
                 <xml-element java-attribute="serviceProfiles" name="service-profiles" type="inventory.aai.onap.org.v20.ServiceProfiles"/>
                 <xml-element java-attribute="sliceProfiles" name="slice-profiles" type="inventory.aai.onap.org.v20.SliceProfiles"/>
+                <xml-element java-attribute="endpoints" name="endpoints" type="inventory.aai.onap.org.v20.Endpoints"/>
                <xml-element java-attribute="serviceFunction" name="service-function" type="java.lang.String">
                   <xml-properties>
                     <xml-property name="description" value="String capturing function of the service."/>
                         <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="name" name="name" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Name of the policy"/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="type" name="type" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Type of the policy"/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="latency" name="latency" type="java.lang.Integer">
+                    <xml-properties>
+                        <xml-property name="description" value="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."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="jitter" name="jitter" type="java.lang.Integer">
+                    <xml-properties>
+                        <xml-property name="description" value="jitter"/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="maxBandwidth" name="max-bandwidth" type="java.lang.Integer">
+                    <xml-properties>
+                        <xml-property name="description" value="The maximum bandwidth (mb) of the connection links in a transport slice instance."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="reliability" name="reliability" type="java.lang.Float">
+                    <xml-properties>
+                        <xml-property name="description" value="The reliability requirement for an network slice subnet instance, expressed as a percentage."/>
+                    </xml-properties>
+                </xml-element>
                 <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v20.RelationshipList"/>
             </java-attributes>
             <xml-properties>
                                        </xml-properties>
                                </xml-element>
                 <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.onap.org.v20.TunnelXconnects"/>
+                <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.onap.org.v20.LogicalLinks"/>
+                <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.onap.org.v20.NetworkPolicies"/>
                 <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v20.RelationshipList"/>
             </java-attributes>
 
             <xml-root-element name="common"/>
             <java-attributes>
                <xml-element java-attribute="contacts" name="contacts" type="inventory.aai.onap.org.v20.Contacts"/>
-                <xml-element java-attribute="profiles" name="profiles" type="inventory.aai.onap.org.v20.Profiles"/>
+              <xml-element java-attribute="profiles" name="profiles" type="inventory.aai.onap.org.v20.Profiles"/>
             </java-attributes>
                </java-type>
 
             <xml-property name="requiredProps" value="contact-name"/>
             </xml-properties>
                </java-type>
-
         <java-type name="Profiles">
             <xml-properties>
                 <xml-property name="description" value="Collection of profiles"/>
                 <xml-property name="requiredProps" value="profile-name"/>
             </xml-properties>
         </java-type>
+
                                <java-type name="AggregateRoutes">
             <xml-properties>
                 <xml-property name="description" value="Collection of aggregate routes."/>
                         <xml-property name="description" value="The availability requirement for an network slice subnet instance, expressed as a percentage."/>
                     </xml-properties>
                 </xml-element>
+                <xml-element java-attribute="maxBandwidth" name="max-bandwidth" type="java.lang.Integer">
+                    <xml-properties>
+                        <xml-property name="description" value="The maximum bandwidth (mb) of the connection links in a transport slice instance."/>
+                    </xml-properties>
+                </xml-element>
                 <xml-element java-attribute="reliability" name="reliability" type="java.lang.Float">
                     <xml-properties>
                         <xml-property name="description" value="The reliability requirement for an network slice subnet instance, expressed as a percentage."/>
                 <xml-property name="searcheable" value="profile-id"/>
             </xml-properties>
                </java-type>
+    <java-type name="IpAddress">
+            <xml-root-element name="ip-address"/>
+            <java-attributes>
+                <xml-element java-attribute="ipAddress" name="ip-address" required="true" type="java.lang.String" xml-key="true" >
+                    <xml-properties>
+                        <xml-property name="description" value="IP address."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="ipAddressEnd" name="ip-address-end" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="IP address end range."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="IP version, either 4 or 6."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="type" name="type" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Type of IP address, eg., Reserved, Static, DHCP."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="assignment" name="assignment" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="assignment."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="operator" name="operator" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Operator to apply to the port (greater than, less than, etc)."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="length" name="length" type="java.lang.Integer">
+                    <xml-properties>
+                        <xml-property name="description" value="ip-address prefix length, 32 for single address."/>
+                    </xml-properties>
+                </xml-element>
+            </java-attributes>
+            <xml-properties>
+                <xml-property name="description" value="IP address."/>
+                <xml-property name="uniqueProps" value="ip-address"/>
+                <xml-property name="indexedProps" value="ip-address"/>
+                <xml-property name="container" value="ip-address-list"/>
+                <xml-property name="uriTemplate" value="/endpoints/endpoint/{endpoint-id}/ip-address-list/ip-address/{ip-address}"/>
+                <xml-property name="searcheable" value="ip-address"/>
+            </xml-properties>
+    </java-type>
+    <java-type name="IpAddressList">
+            <xml-properties>
+                <xml-property name="description" value="List of IP addresses."/>
+            </xml-properties>
+            <xml-root-element name="ip-address-list"/>
+            <java-attributes>
+                <xml-element container-type="java.util.ArrayList" java-attribute="ipAddress" name="ip-address" type="inventory.aai.onap.org.v20.IpAddress"/>
+            </java-attributes>
+        </java-type>
+        <java-type name="Endpoint">
+            <xml-root-element name="endpoint"/>
+            <java-attributes>
+                <xml-element java-attribute="endpointId" name="endpoint-id" required="true" type="java.lang.String" xml-key="true" >
+                    <xml-properties>
+                        <xml-property name="description" value="ID of an endpoint."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="endpointName" name="endpoint-name" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Name of an endpoint."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="endpointType" name="endpoint-type" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Type of an endpoint."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="logicalInterfaceId" name="logical-interface-id" type="java.lang.String">
+                    <xml-properties>
+                        <xml-property name="description" value="Identity of a logical interface, e.g., VLAN ID."/>
+                    </xml-properties>
+                </xml-element>
+                <xml-element java-attribute="ipAddressList" name="ip-address-list" type="inventory.aai.onap.org.v20.IpAddressList"/>
+                <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v20.RelationshipList"/>
+            </java-attributes>
+            <xml-properties>
+                <xml-property name="description" value="Endpoint object."/>
+                <xml-property name="uniqueProps" value="endpoint-id"/>
+                <xml-property name="indexedProps" value="endpoint-id"/>
+                <xml-property name="container" value="endpoints"/>
+                <xml-property name="uriTemplate" value="/endpoints/endpoint/{endpoint-id}"/>
+                <xml-property name="searcheable" value="endpoint-id"/>
+            </xml-properties>
+    </java-type>
+    <java-type name="Endpoints">
+            <xml-properties>
+                <xml-property name="description" value="Collection of Endpoint objects."/>
+            </xml-properties>
+            <xml-root-element name="endpoints"/>
+            <java-attributes>
+                <xml-element container-type="java.util.ArrayList" java-attribute="endpoint" name="endpoint" type="inventory.aai.onap.org.v20.Endpoint"/>
+            </java-attributes>
+        </java-type>
        </java-types>
 </xml-bindings>