Merge branch 'v1.0'
[osm/SO.git] / models / plugins / yang / mano-types.yang
index 0a3b044..ec3d583 100644 (file)
@@ -40,6 +40,13 @@ module mano-types
       "Derived from earlier versions of base YANG files";
   }
 
+  typedef meta-data-type {
+    type enumeration {
+      enum STRING;
+      enum JSON;
+    }
+  }
+
   typedef parameter-data-type {
     type enumeration {
       enum STRING;
@@ -112,6 +119,28 @@ module mano-types
   }
   
 
+  grouping image-properties {
+    leaf image {
+      description
+            "Image name for the software image.
+             If the image name is found within the VNF packaage it will
+             be uploaded to all cloud accounts during onboarding process.
+             Otherwise, the image must be added to the cloud account with
+             the same name as entered here.
+            ";
+      type string;
+    }
+
+    leaf image-checksum {
+      description
+            "Image md5sum for the software image.
+            The md5sum, if provided, along with the image name uniquely
+            identifies an image uploaded to the CAL.
+            ";
+      type string;
+    } 
+  }
+
   grouping vnf-configuration {
     container vnf-configuration {
       rwpb:msg-new VnfConfiguration;
@@ -2002,5 +2031,135 @@ module mano-types
       uses ip-profile-info;
     }
   }
-  
+
+  grouping custom-config-files {
+    description "Grouping for files needed to be mounted into an additional drive";
+    list custom-config-files {
+      description
+          "List of configuration files to be written on an additional drive";
+      key "source";
+      leaf source {
+        description "Name of the configuration file";
+        type string;
+      }
+      leaf dest {
+        description "Full path of the destination in the guest";
+        type string;
+      }
+    }
+  }
+
+  grouping custom-meta-data {
+    description "Grouping for instance-specific meta data";
+    list custom-meta-data {
+      description
+          "List of meta-data to be associated with the instance";
+      key "name";
+      leaf name {
+        description "Name of the meta-data parameter";
+        type string;
+      }
+
+      leaf data-type {
+        description "Data-type the meta-data parameter";
+        type manotypes:meta-data-type;
+        default "STRING";
+      }
+
+      leaf value {
+        description "Value of the meta-data parameter";
+        type string;
+      }
+    }
+  }
+
+  grouping custom-boot-data {
+    description "Grouping for custom vim data";
+    container custom-boot-data {
+      uses manotypes:custom-config-files;
+      uses manotypes:custom-meta-data;
+      leaf custom-drive {
+        description "Some VIMs implement custom drives to host custom-files or meta-data";
+        type boolean;
+        default false;
+      } 
+    }
+  }
+
+  grouping volume-info {
+    description "Grouping for Volume-info";
+
+    leaf description {
+      description "Description for Volume";
+      type string;
+    }
+
+    leaf size {
+      description "Size of disk in GB";
+      type uint64;
+    }
+
+    choice volume-source {
+      description
+            "Defines the source of the volume. Possible options are
+             1. Ephemeral -- Empty disk
+             2. Image     -- Refer to image to be used for volume
+             3. Volume    -- Reference of pre-existing volume to be used
+            ";
+
+      case ephemeral {
+        leaf ephemeral {
+          type empty;
+        }
+      }
+
+      case image {
+        uses image-properties;
+      }
+
+      case volume {
+        leaf volume-ref {
+          description "Reference for pre-existing volume in VIM";
+          type string;
+        }
+      }
+    }
+
+    container boot-params {
+      leaf boot-volume {
+        description "This flag indicates if this is boot volume or not";
+        type boolean;
+      }
+      leaf boot-priority {
+        description "Boot priority associated with volume";
+        type int32;
+      }
+    }
+
+    container guest-params {
+      description "Guest virtualization parameter associated with volume";
+
+      leaf device_bus {
+        description "Type of disk-bus on which this disk is exposed to guest";
+        type enumeration {
+          enum ide;
+          enum usb;
+          enum virtio;
+          enum scsi;
+        }
+      }
+
+      leaf device_type {
+        description "The type of device as exposed to guest";
+        type enumeration {
+          enum disk;
+          enum cdrom;
+          enum floppy;
+          enum lun;
+        }
+      }
+
+      uses custom-meta-data;
+    }
+  }
 }