diff options
6 files changed, 372 insertions, 9 deletions
diff --git a/aai-queries/src/main/resources/schema/onap/query/stored-queries.json b/aai-queries/src/main/resources/schema/onap/query/stored-queries.json index ba2825c..eb59b14 100644 --- a/aai-queries/src/main/resources/schema/onap/query/stored-queries.json +++ b/aai-queries/src/main/resources/schema/onap/query/stored-queries.json @@ -48,13 +48,20 @@ "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'pnf', 'p-interface').getVerticesByProperty('network-interface-type',porttype).store('x').cap('x').unfold().dedup()" } },{ - "getInterDomainLink": { + "getInterControllerLink": { "query":{ "required-properties":["linktype","controller1","controller2"] }, - "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN,'network-resource','esr-thirdparty-sdnc').getVerticesByProperty('thirdparty-sdnc-id',controller1).createEdgeTraversal(EdgeType.COUSIN,'esr-thirdparty-sdnc','network-resource').createEdgeTraversal(EdgeType.COUSIN,'network-resource','pnf').createEdgeTraversal(EdgeType.TREE,'pnf','p-interface').createEdgeTraversal(EdgeType.COUSIN,'p-interface','logical-link').store('x').getVerticesByProperty('link-type',linktype).where(builder.store('x').createEdgeTraversal(EdgeType.COUSIN,'logical-link','p-interface').createEdgeTraversal(EdgeType.TREE,'p-interface','pnf').createEdgeTraversal(EdgeType.COUSIN,'pnf','network-resource').createEdgeTraversal(EdgeType.COUSIN,'network-resource','esr-thirdparty-sdnc').getVerticesByProperty('thirdparty-sdnc-id',controller2)).cap('x').unfold().dedup()" + "stored-query":"(builder.createEdgeTraversal(EdgeType.COUSIN,'network-resource','esr-thirdparty-sdnc').getVerticesByProperty('thirdparty-sdnc-id',controller1).createEdgeTraversal(EdgeType.COUSIN,'esr-thirdparty-sdnc','network-resource').createEdgeTraversal(EdgeType.COUSIN,'network-resource','pnf').createEdgeTraversal(EdgeType.TREE,'pnf','p-interface').createEdgeTraversal(EdgeType.COUSIN,'p-interface','logical-link').getVerticesByProperty('link-type',linktype).store('x')).where(builder.createEdgeTraversal(EdgeType.COUSIN,'logical-link','p-interface').createEdgeTraversal(EdgeType.TREE,'p-interface','pnf').createEdgeTraversal(EdgeType.COUSIN,'pnf','network-resource').createEdgeTraversal(EdgeType.COUSIN,'network-resource','esr-thirdparty-sdnc').getVerticesByProperty('thirdparty-sdnc-id',controller2)).cap('x').unfold().dedup()" } },{ + "getInterDomainLink": { + "query":{ + "required-properties":["linktype","controller"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN,'network-resource','esr-thirdparty-sdnc').getVerticesByProperty('thirdparty-sdnc-id',controller).createEdgeTraversal(EdgeType.COUSIN,'esr-thirdparty-sdnc','network-resource').createEdgeTraversal(EdgeType.COUSIN,'network-resource','pnf').createEdgeTraversal(EdgeType.TREE,'pnf','p-interface').createEdgeTraversal(EdgeType.COUSIN,'p-interface','logical-link').getVerticesByProperty('link-type',linktype).store('x').cap('x').unfold().dedup()" + } + },{ "getInterfaceDetails": { "query":{ "required-properties":["portid"] diff --git a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v19.xsd b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v19.xsd index 99bb375..be7e6fc 100644 --- a/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v19.xsd +++ b/aai-schema/src/main/resources/onap/aai_schema/aai_schema_v19.xsd @@ -2434,6 +2434,171 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" </xs:sequence> </xs:complexType> </xs:element> + <xs:element name="available-bandwidth"> + <xs:complexType> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="class">@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")</annox:annotate> + </xs:appinfo> + </xs:annotation> + <xs:sequence> + <xs:element name="ab-id" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the attribute")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="odu-type" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="ODU Type that identifies the ODU Eg. ODU0, ODU1, ODU2, ODU3, ODU4")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="number" type="xs:int" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="The value of available bandwidth. Applicable only for ENNI.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="selflink" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the link to get more information 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> + <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:relationship-list" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="available-bandwidth-map"> + <xs:complexType> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Collection of Available Bandwidth. Added for ENNI in MDONS use case.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + <xs:sequence> + <xs:element ref="tns:available-bandwidth" minOccurs="0" maxOccurs="5000"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="otn-label-restriction"> + <xs:complexType> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="class">@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")</annox:annotate> + </xs:appinfo> + </xs:annotation> + <xs:sequence> + <xs:element name="lr-id" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the label restriction")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="range-bitmap" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Bitmap of available labels starting from label-start to label-end.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="label-step" type="xs:int" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Step of labels in label range.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="selflink" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the link to get more information 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> + <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:relationship-list" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="otn-label-restrictions"> + <xs:complexType> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Collection of Label Restriction. Added for ENNI in MDONS use case.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + <xs:sequence> + <xs:element ref="tns:otn-label-restriction" minOccurs="0" maxOccurs="5000"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="bandwidth-attribute"> + <xs:complexType> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="class">@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}")</annox:annotate> + </xs:appinfo> + </xs:annotation> + <xs:sequence> + <xs:element name="bwa-id" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="Id that identifies the bandwidth attribute")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> + <xs:element name="selflink" type="xs:string" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Store the link to get more information 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> + <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:relationship-list" minOccurs="0"/> + <xs:element ref="tns:available-bandwidth-map" minOccurs="0"/> + <xs:element ref="tns:otn-label-restrictions" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="bandwidth-attributes"> + <xs:complexType> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Collection of bandwidth attribute. Added for ENNI in MDONS use case.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + <xs:sequence> + <xs:element ref="tns:bandwidth-attribute" minOccurs="0" maxOccurs="5000"/> + </xs:sequence> + </xs:complexType> + </xs:element> <xs:element name="sriov-pf"> <xs:complexType> <xs:annotation> @@ -2550,6 +2715,13 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" </xs:appinfo> </xs:annotation> </xs:element> + <xs:element ref="tns:bandwidth-attributes" minOccurs="0"> + <xs:annotation> + <xs:appinfo> + <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="The data structure to indicate value of available bandwidth. Applicable only for ENNI.")</annox:annotate> + </xs:appinfo> + </xs:annotation> + </xs:element> <xs:element name="prov-status" type="xs:string" minOccurs="0"> <xs:annotation> <xs:appinfo> diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_ccvpn_v19.json b/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_ccvpn_v19.json index 9306ba6..5856f20 100644 --- a/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_ccvpn_v19.json +++ b/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_ccvpn_v19.json @@ -103,8 +103,8 @@ "direction": "OUT", "multiplicity": "MANY2MANY", "contains-other-v": "NONE", - "delete-other-v": "NONE", - "prevent-delete": "${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", "default": "true", "description":"For CCVPN Usecase" }, @@ -479,6 +479,42 @@ "prevent-delete": "NONE", "default": "true", "description":"" - } + }, + { + "from": "bandwidth-attribute", + "to": "p-interface", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"For MDONS usecase" + }, + { + "from": "available-bandwidth", + "to": "bandwidth-attribute", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"For MDONS usecase" + }, + { + "from": "label-restriction", + "to": "bandwidth-attribute", + "label": "org.onap.relationships.inventory.BelongsTo", + "direction": "OUT", + "multiplicity": "MANY2ONE", + "contains-other-v": "!${direction}", + "delete-other-v": "!${direction}", + "prevent-delete": "NONE", + "default": "true", + "description":"For MDONS usecase" + } ] } diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_esr_v19.json b/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_esr_v19.json index 9849616..0c02671 100644 --- a/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_esr_v19.json +++ b/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_esr_v19.json @@ -63,11 +63,11 @@ { "from": "esr-thirdparty-sdnc", "to": "network-resource", - "label": "org.onap.relationships.inventory.AppliesTo", + "label": "org.onap.relationships.inventory.BelongsTo", "direction": "OUT", "multiplicity": "ONE2MANY", "contains-other-v": "NONE", - "delete-other-v": "NONE", + "delete-other-v": "${direction}", "SVC-INFRA": "NONE", "prevent-delete": "NONE", "default": "true", diff --git a/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_v19.json b/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_v19.json index a4ad903..e8407cd 100644 --- a/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_v19.json +++ b/aai-schema/src/main/resources/onap/dbedgerules/v19/DbEdgeRules_v19.json @@ -1469,9 +1469,9 @@ "to": "logical-link", "label": "tosca.relationships.network.LinksTo", "direction": "OUT", - "multiplicity": "MANY2ONE", + "multiplicity": "MANY2MANY", "contains-other-v": "NONE", - "delete-other-v": "NONE", + "delete-other-v": "!${direction}", "prevent-delete": "NONE", "default": "true", "description":"" diff --git a/aai-schema/src/main/resources/onap/oxm/v19/aai_oxm_v19.xml b/aai-schema/src/main/resources/onap/oxm/v19/aai_oxm_v19.xml index 1262983..11d8ba8 100644 --- a/aai-schema/src/main/resources/onap/oxm/v19/aai_oxm_v19.xml +++ b/aai-schema/src/main/resources/onap/oxm/v19/aai_oxm_v19.xml @@ -2315,6 +2315,11 @@ <xml-property name="description" value="Indicates the physical properties of the interface."/> </xml-properties> </xml-element> + <xml-element java-attribute="bandwidthAttributes" name="bandwidth-attributes" type="inventory.aai.onap.org.v19.BandwidthAttributes"> + <xml-properties> + <xml-property name="description" value="The data structure to indicate value of available bandwidth. Applicable only for ENNI."/> + </xml-properties> + </xml-element> <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems."/> @@ -2376,6 +2381,149 @@ </xml-properties> </java-type> + <java-type name="BandwidthAttributes"> + <xml-properties> + <xml-property name="description" value="Collection of bandwidth attribute. Added for ENNI in MDONS use case."/> + </xml-properties> + <xml-root-element name="bandwidth-attributes"/> + <java-attributes> + <xml-element container-type="java.util.ArrayList" java-attribute="bandwidthAttribute" name="bandwidth-attribute" type="inventory.aai.onap.org.v19.BandwidthAttribute"/> + </java-attributes> + </java-type> + <java-type name="BandwidthAttribute"> + <xml-root-element name="bandwidth-attribute"/> + <java-attributes> + <xml-element java-attribute="bwaId" name="bwa-id" required="true" type="java.lang.String" xml-key="true"> + <xml-properties> + <xml-property name="description" value="Id that identifies the bandwidth attribute"/> + </xml-properties> + </xml-element> + <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> + <xml-properties> + <xml-property name="description" value="Store the link to get more information 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-element> + <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v19.RelationshipList"/> + <xml-element java-attribute="availableBandwidthMap" name="available-bandwidth-map" type="inventory.aai.onap.org.v19.AvailableBandwidthMap"/> + <xml-element java-attribute="OTNLabelRestrictions" name="otn-label-restrictions" type="inventory.aai.onap.org.v19.OTNLabelRestrictions"/> + </java-attributes> + <xml-properties> + <xml-property name="description" value="Instance of a bandwidth-attribute"/> + <xml-property name="indexedProps" value="bwa-id"/> + <xml-property name="searchable" value="bwa-id"/> + <xml-property name="uniqueProps" value="bwa-id"/> + <xml-property name="container" value="bandwidth-attributes"/> + <xml-property name="dependentOn" value="pnf,p-interface"/> + <xml-property name="requiredProps" value="bwa-id"/> + <xml-property name="uriTemplate" value="/bandwidth-attributes/bandwidth-attribute/{bwa-id}"/> + </xml-properties> + </java-type> + + <java-type name="AvailableBandwidthMap"> + <xml-properties> + <xml-property name="description" value="Collection of Available Bandwidth. Added for ENNI in MDONS use case."/> + </xml-properties> + <xml-root-element name="available-bandwidth-map"/> + <java-attributes> + <xml-element container-type="java.util.ArrayList" java-attribute="availableBandwidth" name="available-bandwidth" type="inventory.aai.onap.org.v19.AvailableBandwidth"/> + </java-attributes> + </java-type> + <java-type name="AvailableBandwidth"> + <xml-root-element name="available-bandwidth"/> + <java-attributes> + <xml-element java-attribute="abId" name="ab-id" required="true" type="java.lang.String" xml-key="true"> + <xml-properties> + <xml-property name="description" value="Id that identifies the attribute"/> + </xml-properties> + </xml-element> + <xml-element java-attribute="oduType" name="odu-type" type="java.lang.String"> + <xml-properties> + <xml-property name="description" value="ODU Type that identifies the ODU Eg. ODU0, ODU1, ODU2, ODU3, ODU4"/> + </xml-properties> + </xml-element> + <xml-element java-attribute="number" name="number" type="java.lang.Integer"> + <xml-properties> + <xml-property name="description" value="The value of available bandwidth. Applicable only for ENNI."/> + </xml-properties> + </xml-element> + <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> + <xml-properties> + <xml-property name="description" value="Store the link to get more information 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-element> + <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v19.RelationshipList"/> + </java-attributes> + <xml-properties> + <xml-property name="description" value="Instance of an available-bandwidth-map"/> + <xml-property name="indexedProps" value="ab-id"/> + <xml-property name="searchable" value="ab-id"/> + <xml-property name="uniqueProps" value="ab-id"/> + <xml-property name="container" value="available-bandwidth-map"/> + <xml-property name="dependentOn" value="bandwidth-attribute"/> + <xml-property name="requiredProps" value="ab-id"/> + </xml-properties> + </java-type> + + <java-type name="OTNLabelRestrictions"> + <xml-properties> + <xml-property name="description" value="Collection of Label Restriction. Added for ENNI in MDONS use case."/> + </xml-properties> + <xml-root-element name="otn-label-restrictions"/> + <java-attributes> + <xml-element container-type="java.util.ArrayList" java-attribute="OTNLabelRestriction" name="otn-label-restriction" type="inventory.aai.onap.org.v19.OTNLabelRestriction"/> + </java-attributes> + </java-type> + <java-type name="OTNLabelRestriction"> + <xml-root-element name="otn-label-restriction"/> + <java-attributes> + <xml-element java-attribute="lrId" name="lr-id" required="true" type="java.lang.String" xml-key="true"> + <xml-properties> + <xml-property name="description" value="Id that identifies the label restriction"/> + </xml-properties> + </xml-element> + <xml-element java-attribute="rangeBitmap" name="range-bitmap" type="java.lang.String"> + <xml-properties> + <xml-property name="description" value="Bitmap of available labels starting from label-start to label-end."/> + </xml-properties> + </xml-element> + <xml-element java-attribute="labelStep" name="label-step" type="java.lang.Integer"> + <xml-properties> + <xml-property name="description" value="Step of labels in label range."/> + </xml-properties> + </xml-element> + <xml-element java-attribute="selflink" name="selflink" type="java.lang.String"> + <xml-properties> + <xml-property name="description" value="Store the link to get more information 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-element> + <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v19.RelationshipList"/> + </java-attributes> + <xml-properties> + <xml-property name="description" value="Instance of a otn-label-restriction attribute"/> + <xml-property name="indexedProps" value="lr-id"/> + <xml-property name="searchable" value="lr-id"/> + <xml-property name="uniqueProps" value="lr-id"/> + <xml-property name="container" value="otn-label-restrictions"/> + <xml-property name="dependentOn" value="bandwidth-attribute"/> + <xml-property name="requiredProps" value="lr-id"/> + </xml-properties> + </java-type> + <java-type name="LagInterfaces"> <xml-properties> <xml-property name="description" value="Collection of link aggregate interfaces."/> |