Fix VNF-API yang validation issues

when validate VNF-API.yang with "pyang" has some issues

Change-Id: I908a6bee90b24614f66df61afccf617a599b58db
Issue-Id: SDNC-99
Signed-off-by: Ramu N <ramu.n@huawei.com>
diff --git a/vnfapi/model/src/main/yang/VNF-API.yang b/vnfapi/model/src/main/yang/VNF-API.yang
index 1b44413..9b621aa 100755
--- a/vnfapi/model/src/main/yang/VNF-API.yang
+++ b/vnfapi/model/src/main/yang/VNF-API.yang
@@ -22,14 +22,15 @@
         description

             "Initial draft";

     }

+

     // Last updated on 8-17-2016

-    grouping sdnc-request-header { 

-        container sdnc-request-header { 

-            leaf svc-request-id { 

-                type string; 

-            } 

-            leaf svc-action { 

-                type enumeration { 

+    grouping sdnc-request-header {

+        container sdnc-request-header {

+            leaf svc-request-id {

+                type string;

+            }

+            leaf svc-action {

+                type enumeration {

                     enum "reserve";

                     enum "assign";

                     enum "activate";  // equal to commit

@@ -37,21 +38,21 @@
                     enum "changeassign";

                     enum "changedelete";

                     enum "rollback";

-                } 

-            } 

-            leaf svc-notification-url { 

-                type string; 

-            } 

-        } 

-    } 

+                }

+            }

+            leaf svc-notification-url {

+                type string;

+            }

+        }

+    }

 

-    grouping request-information { 

-        container request-information { 

-            leaf request-id { 

-                type string; 

-            } 

-            leaf request-action { 

-                type enumeration { 

+    grouping request-information {

+        container request-information {

+            leaf request-id {

+                type string;

+            }

+            leaf request-action {

+                type enumeration {

                     enum "PreloadNetworkRequest";

                     enum "DeletePreloadNetworkRequest";

                     enum "NetworkActivateRequest";

@@ -71,210 +72,211 @@
                     enum "VfModuleActivateRequest";

                     enum "ChangeVfModuleActivateRequest";

                     enum "DisconnectVfModuleRequest";

-                } 

-            } 

-            leaf request-sub-action { 

-                type enumeration { 

+                }

+            }

+            leaf request-sub-action {

+                type enumeration {

                     enum "SUPP";

                     enum "CANCEL";

-                } 

-            } 

-            leaf source { 

-                type string; 

-            } 

-            leaf notification-url { 

-                type string; 

-            } 

-            leaf order-number { 

-                type string; 

-            } 

-            leaf order-version { 

-                type string; 

-            } 

-        } 

-    } 

+                }

+            }

+            leaf source {

+                type string;

+            }

+            leaf notification-url {

+                type string;

+            }

+            leaf order-number {

+                type string;

+            }

+            leaf order-version {

+                type string;

+            }

+        }

+    }

 

-    grouping service-information { 

-        container service-information { 

+    grouping service-information {

+        container service-information {

             // 1610 use for AnAI subscription-service-type

-            leaf service-type { 

+            leaf service-type {

                 type string;

                 description "AnAI subscription-service-type";

-            } 

-            leaf service-id { 

+            }

+            leaf service-id {

                 type string;

-            } 

-            leaf service-instance-id { 

-                type string; 

+            }

+            leaf service-instance-id {

+                type string;

                 description "A service instance that a VNF or a l3-network is associated with";

-            } 

+            }

             // 1610 use for global-customer-id

-            leaf subscriber-name { 

-                type string; 

+            leaf subscriber-name {

+                type string;

                 description "AnAI global-customer-id";

-            } 

-        } 

-    } 

+            }

+        }

+    }

 

 

-    grouping vnf-request-information { 

-        container vnf-request-information { 

+    grouping vnf-request-information {

+        container vnf-request-information {

             leaf vnf-request-version {

-                type string; 

+                type string;

             }

             leaf model-customization-uuid {

-                type string; 

+                type string;

                 description "customized resource, i.e. vf-module, for use within a given service";

             }

             leaf use-preload {

-                type enumeration { 

+                type enumeration {

                     enum "Y";

                     enum "N";

                 }

                 description "orchestrate vf-module with full preload data or TOSCA lookup plus EIPAM automation";

             }

             leaf vnf-id {

-                type string; 

+                type string;

                 description "vf-module-id";

             }

-            leaf vnf-type { 

-                type string; 

+            leaf vnf-type {

+                type string;

                 description "vf-module-type";

-            } 

-            leaf vnf-name { 

-                type string; 

+            }

+            leaf vnf-name {

+                type string;

                 description "vf-module-name";

-            } 

+            }

             leaf generic-vnf-id {

-                type string; 

+                type string;

                 description "generic vnf-id";

             }

-            leaf generic-vnf-type { 

-                type string; 

+            leaf generic-vnf-type {

+                type string;

                 description "generic vnf type";

-            } 

-            leaf generic-vnf-name { 

-                type string; 

+            }

+            leaf generic-vnf-name {

+                type string;

                 description "generic vnf name";

-            } 

-            leaf tenant { 

-                type string; 

-            } 

-            leaf aic-clli { 

-                type string; 

-            } 

-            leaf aic-cloud-region { 

-                type string; 

+            }

+            leaf tenant {

+                type string;

+            }

+            leaf aic-clli {

+                type string;

+            }

+            leaf aic-cloud-region {

+                type string;

                 description "The AIC cloud region which maps to contrail versions";

-            } 

+            }

             list vnf-networks {

                 key network-role;

                 uses vnf-network;

                 description "Network List";

             }

         }

-    } 

+    }

 

-    grouping network-request-information { 

-        container network-request-information { 

+    grouping network-request-information {

+        container network-request-information {

             leaf network-id {

-                type string; 

+                type string;

             }

-            leaf network-type { 

-                type string; 

-            } 

-            leaf network-name { 

-                type string; 

-            } 

-            leaf tenant { 

-                type string; 

-            } 

-            leaf aic-clli { 

-                type string; 

-            } 

-            leaf aic-cloud-region { 

-                type string; 

+            leaf network-type {

+                type string;

+            }

+            leaf network-name {

+                type string;

+            }

+            leaf tenant {

+                type string;

+            }

+            leaf aic-clli {

+                type string;

+            }

+            leaf aic-cloud-region {

+                type string;

                 description "The AIC cloud region which maps to contrail versions";

-            } 

+            }

         }

-    } 

+    }

 

     /***********************************************************/

     /*               PRELOAD DATA                                 */

     /***********************************************************/

 

     container preload-vnfs {

-        uses preload-model-information; 

-    } 

-    grouping preload-model-information { 

-        list vnf-preload-list { 

-            key "vnf-name vnf-type"; 

-            leaf vnf-name { 

-                type string; 

+        uses preload-model-information;

+    }

+    grouping preload-model-information {

+        list vnf-preload-list {

+            key "vnf-name vnf-type";

+            leaf vnf-name {

+                type string;

                 description "vf-module-name";

-            } 

-            leaf vnf-type { 

-                type string; 

+            }

+            leaf vnf-type {

+                type string;

                 description "vf-module-type";

-            } 

-            uses preload-data; 

-        } 

-    } 

+            }

+            uses preload-data;

+        }

+    }

 

     // For preload networks it will have network-topology-information

     // For preload vnfs, it will have vnf-topology-information

-    grouping preload-data { 

-        container preload-data { 

-            uses vnf-topology-information; 

-            uses network-topology-information; 

-            uses oper-status; 

+    grouping preload-data {

+        container preload-data {

+            uses vnf-topology-information;

+            uses network-topology-information;

+            uses oper-status;

         }

-    } 

+    }

 

 

-    grouping vnf-topology-information { 

-        container vnf-topology-information { 

+    grouping vnf-topology-information {

+        container vnf-topology-information {

             uses vnf-topology-identifier;

-            uses vnf-assignments; 

-            uses vnf-parameters; 

+            uses vnf-assignments;

+            uses vnf-parameters;

         }

-    } 

+    }

 

-    grouping vnf-topology-identifier { 

-        container vnf-topology-identifier { 

-            leaf service-type { 

+    grouping vnf-topology-identifier {

+        container vnf-topology-identifier {

+            leaf service-type {

                 type string;

-            } 

-            leaf service-id { 

+            }

+            leaf service-id {

                 type string;

-            } 

-            leaf vnf-name { 

-                type string; 

+            }

+            leaf vnf-name {

+                type string;

                 description "vf-module-name";

-            } 

-            leaf vnf-type { 

-                type string; 

+            }

+            leaf vnf-type {

+                type string;

                 description "vf-module-type";

-            } 

-            leaf generic-vnf-name { 

-                type string; 

-            } 

-            leaf generic-vnf-type { 

-                type string; 

-            } 

-            leaf generic-vnf-id { 

-                type string; 

-            } 

-        } 

-    } 

+            }

+            leaf generic-vnf-name {

+                type string;

+            }

+            leaf generic-vnf-type {

+                type string;

+            }

+            leaf generic-vnf-id {

+                type string;

+            }

+        }

+    }

 

     grouping vnf-assignments {

-        container vnf-assignments { 

+        container vnf-assignments {

             leaf vnf-status {

                 type string;

                 description "Orchestration Status from AAI - to be set by SDNC";

             }

             list availability-zones {

+                key "availability-zone";

                 ordered-by  user;

                 leaf availability-zone {

                     type string;

@@ -290,25 +292,26 @@
             }

             uses vm-topology;

         }

-    } 

+    }

 

     grouping vm-topology {

         list vnf-vms {

             key vm-type;

-            leaf vm-type { 

-                type string; 

-            } 

-            leaf vm-count { 

-                type uint8; 

-            } 

+            leaf vm-type {

+                type string;

+            }

+            leaf vm-count {

+                type uint8;

+            }

             list vm-names {

+                key "vm-name";

                 ordered-by user;

-                leaf vm-name{ 

-                    type string; 

-                } 

+                leaf vm-name {

+                    type string;

+                }

             }

             //leaf-list vm-names {

-            //    type string; 

+            //    type string;

             //    ordered-by user;

             //}

             list vm-networks {

@@ -320,24 +323,24 @@
     }

 

     grouping vnf-network {

-        leaf network-role { 

-            type string; 

+        leaf network-role {

+            type string;

             description "A Network Role to which a VNF must connect";

-        } 

-        leaf network-name { 

-            type string; 

+        }

+        leaf network-name {

+            type string;

             description "Unique Neutron UUID of an instance of the network role ";

-        } 

-        leaf neutron-id { 

-            type string; 

+        }

+        leaf neutron-id {

+            type string;

             description "Unique Neutron UUID of an instance of the network role ";

-        } 

-        leaf network-id { 

-            type string; 

+        }

+        leaf network-id {

+            type string;

             description "Unique Neutron UUID of an instance of the network role ";

-        } 

-        leaf subnet-id { 

-            type string; 

+        }

+        leaf subnet-id {

+            type string;

             description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";

         }

         leaf contrail-network-fqdn {

@@ -345,16 +348,16 @@
             description "contrail network policy object";

         }

         // 1610

-        leaf ipv6-subnet-id { 

-            type string; 

+        leaf ipv6-subnet-id {

+            type string;

             description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";

         }

-        leaf ipv6-subnet-name { 

-            type string; 

+        leaf ipv6-subnet-name {

+            type string;

             description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";

         }

-        leaf subnet-name { 

-            type string; 

+        leaf subnet-name {

+            type string;

             description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";

         }

     }

@@ -362,6 +365,7 @@
     // 1610

     grouping sriov-vlan-filter-list {

         list sriov-vlan-filter-list {

+            key "sriov-vlan-filter";

             leaf sriov-vlan-filter {

                 type string;

             }

@@ -372,13 +376,13 @@
         leaf network-role {

             type string;

             description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";

-    

+

         }

         leaf use-dhcp {

-            type enumeration { 

+            type enumeration {

                   enum "Y";

                   enum "N";

-            } 

+            }

             description "Indicator to use DHCP on this network for this VM";

         }

         leaf ip-count {

@@ -386,6 +390,7 @@
             description "The number of ip addresses to be assigned per vm for this network role";

         }

         list network-ips {

+            key "ip-address";

             ordered-by user;

             leaf ip-address {

                 //type string;

@@ -394,6 +399,7 @@
             }

         }

         list network-ips-v6 {

+            key "ip-address-ipv6";

             ordered-by user;

             leaf ip-address-ipv6 {

                 //type string;

@@ -402,6 +408,7 @@
             }

         }

         list network-macs {

+            key "mac-address";

             ordered-by user;

             leaf mac-address {

                 type string;

@@ -419,6 +426,7 @@
             description "Floating ipv6 for VMs of a given type on this network";

         }

         list interface-route-prefixes {

+            key "interface-route-prefix-cidr";

             ordered-by user;

             leaf interface-route-prefix {

                 type ietf:ip-address;

@@ -434,47 +442,47 @@
     grouping vnf-parameters {

         list vnf-parameters {

             key vnf-parameter-name;

-            leaf vnf-parameter-name { 

-                type string; 

+            leaf vnf-parameter-name {

+                type string;

                 description "The name of an arbitrary instance-specific vnf-parameters";

-            } 

-            leaf vnf-parameter-value { 

-                type string; 

+            }

+            leaf vnf-parameter-value {

+                type string;

                 description "The value of an arbitrary instance-specific vnf-parameters ";

-            } 

+            }

         }

     }

 

-    grouping network-topology-information { 

-        container network-topology-information { 

+    grouping network-topology-information {

+        container network-topology-information {

             uses network-topology-identifier;

-            uses subnets; 

-            uses vpn-bindings; 

+            uses subnets;

+            uses vpn-bindings;

             uses network-policy;

             uses route-table-reference;

             uses provider-network-information;

         }

-    } 

+    }

 

-    grouping network-topology-identifier { 

-        container network-topology-identifier { 

-            leaf service-type { 

+    grouping network-topology-identifier {

+        container network-topology-identifier {

+            leaf service-type {

                 type string;

-            } 

-            leaf network-name { 

-                type string; 

-            } 

-            leaf network-role { 

-                type string; 

-            } 

-            leaf network-type { 

-                type string; 

-            } 

-            leaf network-technology{ 

-                type string; 

-            } 

-        } 

-    } 

+            }

+            leaf network-name {

+                type string;

+            }

+            leaf network-role {

+                type string;

+            }

+            leaf network-type {

+                type string;

+            }

+            leaf network-technology{

+                type string;

+            }

+        }

+    }

     grouping subnets {

         list subnets {

             key start-address;

@@ -508,9 +516,9 @@
             leaf subnet-name {

                 type string;

             }

-            

+

         }

-    } 

+    }

 

     grouping vpn-bindings {

         list vpn-bindings {

@@ -522,7 +530,7 @@
                 type string;

             }

         }

-    } 

+    }

 

     grouping network-policy {

         list network-policy {

@@ -534,11 +542,12 @@
                 type string;

             }

         }

-    } 

+    }

 

     //1610

     grouping route-table-reference {

         list route-table-reference {

+            key "route-table-reference-id";

             leaf route-table-reference-id {

                 type string;

             }

@@ -570,46 +579,46 @@
     /*               SERVICE_DATA                                */

     /***********************************************************/

     container vnfs {

-        uses vnf-model-infrastructure; 

-    } 

-    grouping vnf-model-infrastructure { 

-        list vnf-list { 

-            key vnf-id; 

-            leaf vnf-id { 

-                type string; 

-                mandatory true; 

+        uses vnf-model-infrastructure;

+    }

+    grouping vnf-model-infrastructure {

+        list vnf-list {

+            key vnf-id;

+            leaf vnf-id {

+                type string;

+                mandatory true;

                 description "vf-module-id";

-            } 

-            uses service-data; 

-            uses service-status; 

-        } 

-    } 

-    grouping service-data { 

-        container service-data { 

-            uses vnf-configuration-information; 

-            uses oper-status; 

-        } 

-    } 

-    grouping service-status { 

-        container service-status { 

-            leaf response-code { 

-                type string; 

-            } 

-            leaf response-message { 

-                type string; 

-            } 

-            leaf final-indicator { 

-                type string; 

-            } 

-            leaf request-status { 

-                type enumeration { 

+            }

+            uses service-data;

+            uses service-status;

+        }

+    }

+    grouping service-data {

+        container service-data {

+            uses vnf-configuration-information;

+            uses oper-status;

+        }

+    }

+    grouping service-status {

+        container service-status {

+            leaf response-code {

+                type string;

+            }

+            leaf response-message {

+                type string;

+            }

+            leaf final-indicator {

+                type string;

+            }

+            leaf request-status {

+                type enumeration {

                     enum "synccomplete";

                     enum "asynccomplete";

                     enum "notifycomplete";

-                } 

-            } 

-            leaf vnfsdn-action { 

-                type enumeration { 

+                }

+            }

+            leaf vnfsdn-action {

+                type enumeration {

                     enum "PreloadNetworkRequest";

                     enum "DeletePreloadNetworkRequest";

                     enum "NetworkActivateRequest";

@@ -629,26 +638,26 @@
                     enum "VfModuleActivateRequest";

                     enum "ChangeVfModuleActivateRequest";

                     enum "DisconnectVfModuleRequest";

-                } 

-            } 

-            leaf vnfsdn-subaction { 

-                type enumeration { 

+                }

+            }

+            leaf vnfsdn-subaction {

+                type enumeration {

                     enum "SUPP";

                     enum "CANCEL";

-                } 

+                }

             }

-            leaf rpc-name { 

-                type enumeration { 

+            leaf rpc-name {

+                type enumeration {

                     enum "vnf-topology-operation";

                     enum "preload-vnf-topology-operation";

                     enum "vnf-instance-topology-operation";

                     enum "preload-vnf-instance-topology-operation";

                     enum "vf-module-topology-operation";

                     enum "preload-vf-module-topology-operation";

-                } 

-            } 

-            leaf rpc-action { 

-                type enumeration { 

+                }

+            }

+            leaf rpc-action {

+                type enumeration {

                     enum "reserve";

                     enum "assign";

                     enum "activate";  // equal to commit

@@ -656,75 +665,75 @@
                     enum "changeassign";

                     enum "changedelete";

                     enum "rollback";

-                } 

-            } 

-            leaf response-timestamp { 

-                type string; 

-            } 

-        } 

-    } 

-    grouping vnf-configuration-information { 

-        uses sdnc-request-header; 

-        uses request-information; 

+                }

+            }

+            leaf response-timestamp {

+                type string;

+            }

+        }

+    }

+    grouping vnf-configuration-information {

+        uses sdnc-request-header;

+        uses request-information;

         uses service-information;

         uses vnf-request-information;

-        uses vnf-topology; 

-    } 

-    grouping vnf-topology-response-body { 

-        leaf svc-request-id { 

-            type string; 

-        } 

-        leaf response-code { 

-            type string; 

-        } 

-        leaf response-message { 

-            type string; 

-        } 

-        leaf ack-final-indicator { 

-            type string; 

-        } 

-    } 

+        uses vnf-topology;

+    }

+    grouping vnf-topology-response-body {

+        leaf svc-request-id {

+            type string;

+        }

+        leaf response-code {

+            type string;

+        }

+        leaf response-message {

+            type string;

+        }

+        leaf ack-final-indicator {

+            type string;

+        }

+    }

 

-    grouping vnf-information { 

-        container vnf-information { 

-            leaf vnf-service-type { 

+    grouping vnf-information {

+        container vnf-information {

+            leaf vnf-service-type {

                 type string;

-            } 

-            leaf vnf-id { 

-                type string; 

+            }

+            leaf vnf-id {

+                type string;

                 description "vf-module-id";

-            } 

-        } 

-    } 

+            }

+        }

+    }

 

-    grouping network-information { 

-        container network-information { 

-            leaf network-service-type { 

+    grouping network-information {

+        container network-information {

+            leaf network-service-type {

                 type string;

-            } 

-            leaf network-id { 

-                type string; 

-            } 

-        } 

-    } 

+            }

+            leaf network-id {

+                type string;

+            }

+        }

+    }

 

 

     // Carried over from l3sdn and potentially not needed

-    grouping oper-status { 

-        container oper-status { 

-            leaf order-status { 

-                type enumeration { 

+    grouping oper-status {

+        container oper-status {

+            leaf order-status {

+                type enumeration {

                     enum "Active";

                     enum "PendingAssignment";

                     enum "PendingCreate";

                     enum "PendingUpdate";

                     enum "PendingDelete";

                     enum "Deleted";

-                    

-                } 

+

+                }

             }

-            leaf last-action { 

-                type enumeration { 

+            leaf last-action {

+                type enumeration {

                     enum "VNFActivateRequest";

                     enum "ChangeVNFActivateRequest";

                     enum "VnfInstanceActivateRequest";

@@ -740,91 +749,91 @@
                     enum "DeletePreloadVnfInstanceRequest";

                     enum "PreloadVfModuleRequest";

                     enum "DeletePreloadVfModuleRequest";

-                } 

-            } 

-            leaf last-svc-request-id { 

-                type string; 

-            } 

-            leaf last-order-status { 

-                type enumeration { 

+                }

+            }

+            leaf last-svc-request-id {

+                type string;

+            }

+            leaf last-order-status {

+                type enumeration {

                     enum "Active";

                     enum "PendingAssignment";

                     enum "PendingCreate";

                     enum "PendingUpdate";

                     enum "PendingDelete";

                     enum "Deleted";

-                } 

-            } 

-            leaf create-timestamp { 

-                type string; 

-            } 

-            leaf modify-timestamp { 

-                type string; 

-            } 

-            leaf maintenance-indicator { 

-                type enumeration { 

+                }

+            }

+            leaf create-timestamp {

+                type string;

+            }

+            leaf modify-timestamp {

+                type string;

+            }

+            leaf maintenance-indicator {

+                type enumeration {

                     enum "Y";

                     enum "N";

-                } 

-            } 

-        } 

-    } 

-    grouping vnf-topology { 

+                }

+            }

+        }

+    }

+    grouping vnf-topology {

         leaf vnf-id {

-            type string; 

+            type string;

             description "vf-module-id";

         }

-        uses vnf-topology-information; 

-    } 

-    

-    

+        uses vnf-topology-information;

+    }

+

+

     rpc vnf-topology-operation {

-        input { 

-            uses sdnc-request-header; 

-            uses request-information; 

+        input {

+            uses sdnc-request-header;

+            uses request-information;

             uses service-information;

-            uses vnf-request-information; 

-        } 

-        output { 

-            uses vnf-topology-response-body; 

+            uses vnf-request-information;

+        }

+        output {

+            uses vnf-topology-response-body;

             uses vnf-information;

             uses service-information;

-        } 

-    } 

+        }

+    }

 

     rpc network-topology-operation {

-        input { 

-            uses sdnc-request-header; 

-            uses request-information; 

+        input {

+            uses sdnc-request-header;

+            uses request-information;

             uses service-information;

-            uses network-request-information; 

-        } 

-        output { 

-            uses vnf-topology-response-body; 

+            uses network-request-information;

+        }

+        output {

+            uses vnf-topology-response-body;

             uses network-information;

             uses service-information;

-        } 

-    } 

+        }

+    }

 

     rpc preload-vnf-topology-operation {

-        input { 

-            uses sdnc-request-header; 

-            uses request-information; 

+        input {

+            uses sdnc-request-header;

+            uses request-information;

             uses vnf-topology-information;

-        } 

-        output { 

-            uses vnf-topology-response-body; 

-        } 

+        }

+        output {

+            uses vnf-topology-response-body;

+        }

     }

 

     rpc preload-network-topology-operation {

-        input { 

-            uses sdnc-request-header; 

-            uses request-information; 

+        input {

+            uses sdnc-request-header;

+            uses request-information;

             uses network-topology-information;

-        } 

-        output { 

-            uses vnf-topology-response-body; 

-        } 

+        }

+        output {

+            uses vnf-topology-response-body;

+        }

     }

 }

diff --git a/vnfapi/model/src/main/yang/vnfsubmodule.yang b/vnfapi/model/src/main/yang/vnfsubmodule.yang
index 1c573d2..7899d52 100755
--- a/vnfapi/model/src/main/yang/vnfsubmodule.yang
+++ b/vnfapi/model/src/main/yang/vnfsubmodule.yang
@@ -6,8 +6,8 @@
     /********************************************/

     /*             vnf-instance                 */

     /********************************************/

-	grouping vnf-instance-request-information { 

-		container vnf-instance-request-information { 

+	grouping vnf-instance-request-information {

+		container vnf-instance-request-information {

             leaf request-version {

                 type string;

             }

@@ -19,7 +19,7 @@
 				description "List of vnf networks to override preload";

 			}

 		}

-	} 

+	}

 

     grouping region-identifier {

         leaf tenant {

@@ -37,51 +37,51 @@
     /***********************************************************/

 

 	container preload-vnf-instances {

-		uses preload-vnf-instance-model-information; 

-	} 

-	grouping preload-vnf-instance-model-information { 

-		list vnf-instance-preload-list { 

-			key "vnf-instance-name vnf-model-id"; 

-			leaf vnf-instance-name { 

-				type string; 

+		uses preload-vnf-instance-model-information;

+	}

+	grouping preload-vnf-instance-model-information {

+		list vnf-instance-preload-list {

+			key "vnf-instance-name vnf-model-id";

+			leaf vnf-instance-name {

+				type string;

 				description "vnf-instance-name, aka generic-vnf-name";

-			} 

-			leaf vnf-model-id { 

-				type string; 

+			}

+			leaf vnf-model-id {

+				type string;

 				description "vnf-model-id, aka generic-vnf-type";

-			} 

-			uses vnf-instance-preload-data; 

-		} 

-	} 

-

-	grouping vnf-instance-preload-data { 

-		container vnf-instance-preload-data { 

-			uses vnf-instance-topology-information; 

-			uses vnfapi:oper-status; 

+			}

+			uses vnf-instance-preload-data;

 		}

-	} 

+	}

 

-	grouping vnf-instance-topology-information { 

-		container vnf-instance-topology-information { 

+	grouping vnf-instance-preload-data {

+		container vnf-instance-preload-data {

+			uses vnf-instance-topology-information;

+			uses vnfapi:oper-status;

+		}

+	}

+

+	grouping vnf-instance-topology-information {

+		container vnf-instance-topology-information {

 			uses vnf-instance-identifiers;

-			uses vnfapi:service-information; 

-			uses vnfapi:vnf-assignments; 

-			uses vnfapi:vnf-parameters; 

+			uses vnfapi:service-information;

+			uses vnfapi:vnf-assignments;

+			uses vnfapi:vnf-parameters;

 		}

-	} 

+	}

 

     // This is used by MSO request for assign,rollback,activate,delete, etc

-	grouping vnf-instance-topology-identifier { 

-		leaf vnf-instance-name { 

-			type string; 

-		} 

-		leaf vnf-model-id { 

-			type string; 

-		} 

-		leaf vnf-instance-id { 

-			type string; 

-		} 

-	} 

+	grouping vnf-instance-topology-identifier {

+		leaf vnf-instance-name {

+			type string;

+		}

+		leaf vnf-model-id {

+			type string;

+		}

+		leaf vnf-instance-id {

+			type string;

+		}

+	}

 

     // container used in preload identifiers

     grouping vnf-instance-identifiers {

@@ -94,20 +94,20 @@
     /*               SERVICE_DATA  - vnf-instance              */

 	/***********************************************************/

 	container vnf-instances {

-		uses vnf-instance-model-infrastructure; 

-	} 

-	grouping vnf-instance-model-infrastructure { 

-		list vnf-instance-list { 

-			key vnf-instance-id; 

-			leaf vnf-instance-id { 

-				type string; 

-				mandatory true; 

+		uses vnf-instance-model-infrastructure;

+	}

+	grouping vnf-instance-model-infrastructure {

+		list vnf-instance-list {

+			key vnf-instance-id;

+			leaf vnf-instance-id {

+				type string;

+				mandatory true;

 				description "generic-vnf-id";

-			} 

+			}

 			uses vnf-instance-service-data;

-			uses vnfapi:service-status; 

-		} 

-	} 

+			uses vnfapi:service-status;

+		}

+	}

 

     grouping vnf-instance-service-data {

         container vnf-instance-service-data {

@@ -117,16 +117,17 @@
         }

     }

 

-	grouping vnf-instance-configuration-information { 

-		uses vnfapi:sdnc-request-header; 

-		uses vnfapi:request-information; 

+	grouping vnf-instance-configuration-information {

+		uses vnfapi:sdnc-request-header;

+		uses vnfapi:request-information;

 		uses vnfapi:service-information;

 		uses vnf-instance-request-information;

-		uses vnf-instance-topology; 

-	} 

+		uses vnf-instance-topology;

+	}

 

     grouping vf-module-relationship-list {

         list vf-module-relationship-list {

+            key "vf-module-id";

             leaf vf-module-id {

                 type string;

                 description "vf-module-id";

@@ -134,74 +135,74 @@
         }

     }

 

-	grouping vnf-instance-topology-response-body { 

-		leaf svc-request-id { 

-			type string; 

-		} 

-		leaf response-code { 

-			type string; 

-		} 

-		leaf response-message { 

-			type string; 

-		} 

-		leaf ack-final-indicator { 

-			type string; 

-		} 

-	} 

+	grouping vnf-instance-topology-response-body {

+		leaf svc-request-id {

+			type string;

+		}

+		leaf response-code {

+			type string;

+		}

+		leaf response-message {

+			type string;

+		}

+		leaf ack-final-indicator {

+			type string;

+		}

+	}

 

-	grouping vnf-instance-information { 

-		container vnf-instance-information { 

-			leaf vnf-instance-id { 

-				type string; 

+	grouping vnf-instance-information {

+		container vnf-instance-information {

+			leaf vnf-instance-id {

+				type string;

 				description "vnf-instance-id";

-			} 

-		} 

-	} 

+			}

+		}

+	}

 

-	grouping vnf-instance-topology { 

+	grouping vnf-instance-topology {

 		leaf vnf-instance-id {

-			type string; 

+			type string;

 			description "vnf-instance-id";

 		}

-		uses vnf-instance-topology-information; 

-	} 

-	

-	

+		uses vnf-instance-topology-information;

+	}

+

+

 	rpc vnf-instance-topology-operation {

-		input { 

-			uses sdnc-request-header; 

-			uses request-information; 

+		input {

+			uses sdnc-request-header;

+			uses request-information;

 			uses service-information;

-			uses vnf-instance-request-information; 

-		} 

-		output { 

-			uses vnf-instance-topology-response-body; 

+			uses vnf-instance-request-information;

+		}

+		output {

+			uses vnf-instance-topology-response-body;

 			uses vnf-instance-information;

 			uses service-information;

-		} 

-	} 

+		}

+	}

 

 	rpc preload-vnf-instance-topology-operation {

-		input { 

-			uses sdnc-request-header; 

-			uses request-information; 

+		input {

+			uses sdnc-request-header;

+			uses request-information;

 			uses vnf-instance-topology-information;

-		} 

-		output { 

-			uses vnf-instance-topology-response-body; 

-		} 

+		}

+		output {

+			uses vnf-instance-topology-response-body;

+		}

 	}

 

     /********************************************/

     /*             vf-module                    */

     /********************************************/

-	grouping vf-module-request-information { 

-		container vf-module-request-information { 

+	grouping vf-module-request-information {

+		container vf-module-request-information {

             uses vnf-instance-topology-identifier;

             uses region-identifier;

             uses vf-module-topology-identifier;

 		}

-	} 

+	}

 

     grouping vf-module-identifiers {

         container vf-module-identifiers {

@@ -211,146 +212,146 @@
 

     grouping vf-module-topology-identifier {

         leaf vf-module-id {

-            type string; 

+            type string;

             description "vf-module id";

         }

-        leaf vf-module-name { 

-            type string; 

+        leaf vf-module-name {

+            type string;

             description "vf-module-name";

-        } 

-        leaf vf-module-model-id { 

-            type string; 

+        }

+        leaf vf-module-model-id {

+            type string;

             description "vf-module-type";

         }

-    } 

+    }

 

     /***********************************************************/

     /*             PRELOAD DATA  - vfmodule                    */

     /***********************************************************/

 	container preload-vf-modules {

-		uses preload-vf-module-model-information; 

-	} 

+		uses preload-vf-module-model-information;

+	}

 

-	grouping preload-vf-module-model-information { 

-		list vf-module-preload-list { 

-			key "vf-module-name vf-module-model-id"; 

-			leaf vf-module-name { 

-				type string; 

+	grouping preload-vf-module-model-information {

+		list vf-module-preload-list {

+			key "vf-module-name vf-module-model-id";

+			leaf vf-module-name {

+				type string;

 				description "vf-module-name";

-			} 

-			leaf vf-module-model-id { 

-				type string; 

+			}

+			leaf vf-module-model-id {

+				type string;

 				description "vf-module-type";

-			} 

-			uses vf-module-preload-data; 

-		} 

-	} 

-

-	grouping vf-module-preload-data { 

-		container vf-module-preload-data { 

-			uses vf-module-topology-information; 

-			uses vnfapi:oper-status; 

+			}

+			uses vf-module-preload-data;

 		}

-	} 

+	}

 

-	grouping vf-module-topology-information { 

-		container vf-module-topology-information { 

+	grouping vf-module-preload-data {

+		container vf-module-preload-data {

+			uses vf-module-topology-information;

+			uses vnfapi:oper-status;

+		}

+	}

+

+	grouping vf-module-topology-information {

+		container vf-module-topology-information {

 			uses vf-module-identifiers;

-			uses vnfapi:vnf-assignments; 

-			uses vnfapi:vnf-parameters; 

+			uses vnfapi:vnf-assignments;

+			uses vnfapi:vnf-parameters;

 		}

-	} 

+	}

 

 

     /***********************************************************/

     /*               SERVICE_DATA - vfmodule                   */

     /***********************************************************/

 	container vf-modules {

-		uses vf-module-model-infrastructure; 

-	} 

-	grouping vf-module-model-infrastructure { 

-		list vf-module-list { 

-			key vf-module-id; 

-			leaf vf-module-id { 

-				type string; 

-				mandatory true; 

+		uses vf-module-model-infrastructure;

+	}

+	grouping vf-module-model-infrastructure {

+		list vf-module-list {

+			key vf-module-id;

+			leaf vf-module-id {

+				type string;

+				mandatory true;

 				description "vf-module-id";

-			} 

+			}

 			uses vf-module-service-data;

-			uses vnfapi:service-status; 

-		} 

-	} 

+			uses vnfapi:service-status;

+		}

+	}

 

    grouping vf-module-service-data {

      container vf-module-service-data {

        uses vf-module-configuration-information;

        uses vnfapi:oper-status;

      }

-    } 

+    }

 

-	grouping vf-module-configuration-information { 

-		uses vnfapi:sdnc-request-header; 

-		uses vnfapi:request-information; 

+	grouping vf-module-configuration-information {

+		uses vnfapi:sdnc-request-header;

+		uses vnfapi:request-information;

 		uses vnfapi:service-information;

 		uses vf-module-request-information;

-		uses vf-module-topology; 

-	} 

+		uses vf-module-topology;

+	}

 

-	grouping vf-module-topology-response-body { 

-		leaf svc-request-id { 

-			type string; 

-		} 

-		leaf response-code { 

-			type string; 

-		} 

-		leaf response-message { 

-			type string; 

-		} 

-		leaf ack-final-indicator { 

-			type string; 

-		} 

-	} 

+	grouping vf-module-topology-response-body {

+		leaf svc-request-id {

+			type string;

+		}

+		leaf response-code {

+			type string;

+		}

+		leaf response-message {

+			type string;

+		}

+		leaf ack-final-indicator {

+			type string;

+		}

+	}

 

-	grouping vf-module-information { 

-		container vf-module-information { 

-			leaf vf-module-id { 

-				type string; 

+	grouping vf-module-information {

+		container vf-module-information {

+			leaf vf-module-id {

+				type string;

 				description "vf-module-id";

-			} 

-		} 

-	} 

+			}

+		}

+	}

 

-	grouping vf-module-topology { 

+	grouping vf-module-topology {

 		leaf vf-module-id {

-			type string; 

+			type string;

 			description "vf-module-id";

 		}

-		uses vf-module-topology-information; 

-	} 

-	

-	

+		uses vf-module-topology-information;

+	}

+

+

 	rpc vf-module-topology-operation {

-		input { 

-			uses sdnc-request-header; 

-			uses request-information; 

+		input {

+			uses sdnc-request-header;

+			uses request-information;

 			uses service-information;

-			uses vf-module-request-information; 

-		} 

-		output { 

-			uses vf-module-topology-response-body; 

+			uses vf-module-request-information;

+		}

+		output {

+			uses vf-module-topology-response-body;

 			uses vf-module-information;

 			uses service-information;

-		} 

-	} 

+		}

+	}

 

 	rpc preload-vf-module-topology-operation {

-		input { 

-			uses sdnc-request-header; 

-			uses request-information; 

+		input {

+			uses sdnc-request-header;

+			uses request-information;

 			uses vf-module-topology-information;

-		} 

-		output { 

-			uses vf-module-topology-response-body; 

-		} 

+		}

+		output {

+			uses vf-module-topology-response-body;

+		}

 	}

 }