Merge "Feature 1417: support of PDUs in a VNF"
[osm/IM.git] / models / yang / vnfr.yang
index ebccf12..aff7af4 100644 (file)
@@ -74,6 +74,7 @@ module vnfr
       enum vm-init-phase;
       enum vm-alloc-pending;
       enum running;
+      enum upgrading;
       enum terminate;
       enum vl-terminate-phase;
       enum terminated;
@@ -88,6 +89,7 @@ module vnfr
       enum vl-init-phase;
       enum vm-init-phase;
       enum running;
+      enum upgrading;   // Experimental
       enum terminate;
       enum vm-terminate-phase;
       enum vl-terminate-phase;
@@ -195,6 +197,12 @@ module vnfr
 
   augment "/rw-project:project" {
     container vnfr-catalog {
+      leaf schema-version {
+        description "Schema version for the VNFR. If unspecified, it assumes v3.0";
+        type string;
+        default "v3.0";
+      }
+
       config false;
       list vnfr {
         description
@@ -281,9 +289,9 @@ module vnfr
         }
 
         // Use parameters provided here to configure this VNF
-      container vnf-configuration {
-        uses manotypes:vca-configuration;
-      }
+        container vnf-configuration {
+          uses manotypes:vca-configuration;
+        }
 
         // Mainly used by Mon-params & dashboard url
         container mgmt-interface {
@@ -435,9 +443,9 @@ module vnfr
 
           uses manotypes:supplemental-boot-data;
 
-        container vdu-configuration {
-          uses manotypes:vca-configuration;
-        }
+          container vdu-configuration {
+            uses manotypes:vca-configuration;
+          }
 
           list volumes {
             key "name";
@@ -487,69 +495,70 @@ module vnfr
             uses associated-virtual-cps;
           }
 
-        list interface {
-          description
-              "List of interfaces (internal and external) for the VNF";
-          key name;
-
-          leaf name {
+          list interface {
             description
-                "Name of the interface. Note that this
-                name has only local significance to the VDU.";
-            type string;
-          }
+                "List of interfaces (internal and external) for the VNF";
+            key name;
 
-          leaf position {
-            description
-                "Explicit Position of the interface within the list";
-            type uint32;
-          }
+            leaf name {
+              description
+                  "Name of the interface. Note that this
+                  name has only local significance to the VDU.";
+              type string;
+            }
 
-          leaf type {
-            description
-                "Type of the Interface";
+            leaf position {
+              description
+                  "Explicit Position of the interface within the list";
+              type uint32;
+            }
 
-            type vnfd-base:interface-type;
+            leaf type {
+              description
+                  "Type of the Interface";
 
-            default "EXTERNAL";
-          }
-          choice connection-point-type {
-            case internal {
-              leaf internal-connection-point-ref {
-                description
-                    "Leaf Ref to the particular internal connection point";
-                type leafref {
-                  path "../../internal-connection-point/id";
+              type vnfd-base:interface-type;
+
+              default "EXTERNAL";
+            }
+            choice connection-point-type {
+              case internal {
+                leaf internal-connection-point-ref {
+                  description
+                      "Leaf Ref to the particular internal connection point";
+                  type leafref {
+                    path "../../internal-connection-point/id";
+                  }
                 }
               }
-            }
-            case external {
-              leaf external-connection-point-ref {
-                description
-                    "Leaf Ref to the particular external connection point";
-                type leafref {
-                  path "../../../connection-point/name";
+              case external {
+                leaf external-connection-point-ref {
+                  description
+                      "Leaf Ref to the particular external connection point";
+                  type leafref {
+                    path "../../../connection-point/name";
+                  }
                 }
               }
             }
+            uses virtual-interface;
           }
-          uses virtual-interface;
-        }
 
-         leaf operational-status {
+          leaf operational-status {
             description
               "The operational status of the VDU
                 init                : The VDU has just started.
                 vm-init-phase       : The VDUs in the VNF is being created in VIM.
                 vm-alloc-pending    : The  VM alloc is pending in VIM
                 running             : The VDU is active in VM
+                upgrading           : The VDU is being upgraded (EXPERIMENTAL)
                 terminate           : The VDU is being terminated
                 vm-terminate-phase  : The VDU in the VNF is being terminated in VIM.
                 terminated          : The VDU is in the terminated state.
                 failed              : The VDU  instantiation failed.
               ";
             type vdu-operational-status;
-         }
+          }
 
           uses placement-group-info;
         }