Revert "Full Juju Charm support"
[osm/SO.git] / rwlaunchpad / plugins / yang / rw-pkg-mgmt.yang
index de56e55..8f9fd71 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *   Copyright 2016 RIFT.IO Inc
+ *   Copyright 2016-2017 RIFT.IO Inc
  *
  *   Licensed under the Apache License, Version 2.0 (the "License");
  *   you may not use this file except in compliance with the License.
@@ -33,10 +33,6 @@ module rw-pkg-mgmt
     prefix "yang";
   }
 
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
   import rw-cli-ext {
     prefix "rwcli";
   }
@@ -56,10 +52,32 @@ module rw-pkg-mgmt
   import rw-vnfd {
     prefix "rwvnfd";
   }
+
   import rw-nsd {
     prefix "rwnsd";
   }
 
+  import rw-project-vnfd {
+    prefix "rw-project-vnfd";
+  }
+
+  import rw-project-nsd {
+    prefix "rw-project-nsd";
+  }
+
+  import rw-project {
+    prefix "rw-project";
+  }
+
+  import rw-project-mano {
+    prefix "rw-project-mano";
+  }
+
+  revision 2017-02-08 {
+    description
+      "Update model to support projects.";
+  }
+
   revision 2016-06-01 {
     description
       "Initial revision.";
@@ -76,6 +94,39 @@ module rw-pkg-mgmt
     }
   }
 
+  typedef package-file-type {
+    type enumeration {
+      enum ICONS;
+      enum CHARMS;
+      enum SCRIPTS;
+      enum IMAGES;
+      enum CLOUD_INIT;
+      enum README;
+    }
+  }
+
+  typedef vnfd-file-type {
+    type enumeration {
+      enum ICONS;
+      enum CHARMS;
+      enum SCRIPTS;
+      enum IMAGES;
+      enum CLOUD_INIT;
+      enum README;
+      enum DOC;
+      enum TEST;
+    }
+  }
+
+  typedef nsd-file-type {
+    type enumeration {
+      enum VNF_CONFIG;
+      enum NS_CONFIG;
+      enum ICONS;
+      enum SCRIPTS;
+    }
+  }
+
   typedef export-schema {
     type enumeration {
       enum RIFT;
@@ -182,35 +233,93 @@ module rw-pkg-mgmt
     }
   }
 
-  container download-jobs {
-    rwpb:msg-new DownloadJobs;
-    description "Download jobs";
-    config false;
+  grouping copy-task-status {
+    leaf status {
+      description "The status of the copy task";
+      type task-status;
+      default QUEUED;
+    }
+  }
 
-    list job {
-      rwpb:msg-new DownloadJob;
-      key "download-id";
+  augment "/rw-project:project" {
+    container download-jobs {
+      description "Download jobs";
+      config false;
 
-      leaf download-id {
-        description "Unique UUID";
-        type string;
+      list job {
+        key "download-id";
+
+        leaf download-id {
+          description "Unique UUID";
+          type string;
+        }
+
+        leaf url {
+          description "URL of the download";
+          type string;
+        }
+
+        uses package-file-identifer;
+        uses download-task-status;
       }
+    }
 
-      leaf url {
-        description "URL of the download";
-        type string;
+    container copy-jobs {
+      description "Copy jobs";
+      config false;
+
+      list job {
+        key "transaction-id";
+
+        leaf transaction-id {
+          description "Unique UUID";
+          type string;
+        }
+
+        uses copy-task-status;
       }
+    }
 
-      uses package-file-identifer;
-      uses download-task-status;
+    container create-jobs {
+      description "Create jobs";
+      config false;
+
+      list job {
+        key "transaction-id";
+
+        leaf transaction-id {
+          description "Unique UUID";
+          type string;
+        }
+
+        uses copy-task-status;
+      }
+    }
+
+    container update-jobs {
+      description "Update jobs";
+      config false;
+
+      list job {
+        key "transaction-id";
+
+        leaf transaction-id {
+          description "Unique UUID";
+          type string;
+        }
+
+        uses copy-task-status;
+      }
     }
   }
 
+
   rpc get-package-endpoint {
     description "Retrieves the endpoint for the descriptor";
 
     input {
       uses package-identifer;
+      uses manotypes:rpc-project-name;
     }
 
     output {
@@ -221,6 +330,30 @@ module rw-pkg-mgmt
     }
   }
 
+  rpc package-copy {
+    description "Copies the package specified in input and returns the copied package id";
+
+    input {
+      uses package-identifer;
+
+      leaf package-name {
+        description "Name of destination package";
+        type string;
+      }
+
+      uses manotypes:rpc-project-name;
+    }
+
+    output {
+     leaf transaction-id {
+        description "Valid ID to track the status of the task";
+        type string;
+      }
+
+     uses package-identifer;
+    }
+  }
+
   rpc get-package-schema {
     description "Retrieves the schema for the package type";
 
@@ -229,6 +362,8 @@ module rw-pkg-mgmt
         description "Type of the package";
         type manotypes:package-type;
       }
+
+      uses manotypes:rpc-project-name;
     }
 
     output {
@@ -245,6 +380,7 @@ module rw-pkg-mgmt
     input {
       uses package-identifer;
       uses external-url-data;
+      uses manotypes:rpc-project-name;
     }
 
     output {
@@ -252,6 +388,7 @@ module rw-pkg-mgmt
         description "Valid ID to track the status of the task";
         type string;
       }
+      uses manotypes:rpc-project-name;
     }
   }
 
@@ -261,6 +398,7 @@ module rw-pkg-mgmt
     input {
       uses package-identifer;
       uses external-url-data;
+      uses manotypes:rpc-project-name;
     }
 
     output {
@@ -268,6 +406,7 @@ module rw-pkg-mgmt
         description "Valid ID to track the status of the task";
         type string;
       }
+      uses manotypes:rpc-project-name;
     }
   }
 
@@ -276,6 +415,7 @@ module rw-pkg-mgmt
 
     input {
       uses package-identifer;
+      uses manotypes:rpc-project-name;
 
       leaf export-schema {
         description "Schema to export";
@@ -294,7 +434,6 @@ module rw-pkg-mgmt
         type export-format;
         default YAML;
       }
-
     }
 
     output {
@@ -307,6 +446,8 @@ module rw-pkg-mgmt
         description "Valid ID to track the status of the task";
         type string;
       }
+
+      uses manotypes:rpc-project-name;
     }
   }
 
@@ -316,6 +457,23 @@ module rw-pkg-mgmt
     input {
       uses package-file-identifer;
       uses external-url-data;
+      uses manotypes:rpc-project-name;
+
+      choice catalog-type {
+          mandatory true;
+          case VNFD {
+            leaf vnfd-file-type { 
+                description "Type of vnfd file being added to the package"; 
+                type vnfd-file-type; 
+            }
+          }
+          case NSD {
+            leaf nsd-file-type { 
+                description "Type of nsd file being added to the package"; 
+                type nsd-file-type; 
+            }
+          }
+      }
     }
 
     output {
@@ -323,6 +481,7 @@ module rw-pkg-mgmt
         description "Valid ID to track the status of the task";
         type string;
       }
+      uses manotypes:rpc-project-name;
     }
   }
 
@@ -331,6 +490,22 @@ module rw-pkg-mgmt
 
     input {
       uses package-file-identifer;
+      uses manotypes:rpc-project-name;
+
+      choice catalog-type {
+          case VNFD {
+            leaf vnfd-file-type { 
+                description "Type of file being removed from the vnfd package"; 
+                type vnfd-file-type; 
+            }
+          }
+          case NSD {
+            leaf nsd-file-type { 
+                description "Type of file being removed from the nsd package"; 
+                type nsd-file-type; 
+            }
+          }
+      }
     }
 
     output {
@@ -344,6 +519,7 @@ module rw-pkg-mgmt
         type string;
       }
 
+      uses manotypes:rpc-project-name;
     }
   }