RIFT OSM R1 Initial Submission
[osm/SO.git] / common / plugins / yang / rw-cloud.yang
diff --git a/common/plugins/yang/rw-cloud.yang b/common/plugins/yang/rw-cloud.yang
new file mode 100644 (file)
index 0000000..f580e93
--- /dev/null
@@ -0,0 +1,106 @@
+
+/*
+ * 
+ *   Copyright 2016 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.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ *
+ */
+
+module rw-cloud
+{
+  namespace "http://riftio.com/ns/riftware-1.0/rw-cloud";
+  prefix "rw-cloud";
+
+
+  import rw-pb-ext {
+    prefix "rwpb";
+  }
+
+  import rw-cli-ext {
+    prefix "rwcli";
+  }
+
+  import rw-yang-types {
+    prefix "rwt";
+  }
+
+  import rwcal {
+    prefix "rwcal";
+  }
+
+  import rw-sdn {
+    prefix "rw-sdn";
+  }
+
+  revision 2015-09-14 {
+    description
+      "Initial revision.";
+  }
+
+  container cloud {
+    rwpb:msg-new CloudConfig;
+    list account {
+      rwpb:msg-new CloudAccount;
+      description "Configure Cloud Accounts";
+
+      max-elements 16;
+      key "name";
+
+      leaf name {
+        mandatory true;
+        type string {
+            length "1..255";
+        }
+      }
+
+      leaf sdn-account {
+        description "Configured SDN account associated with this cloud account";
+        type leafref {
+          path "/rw-sdn:sdn-account/rw-sdn:name";
+        }
+      }
+
+      uses rwcal:provider-auth;
+      uses rwcal:connection-status;
+    }
+  }
+
+  rpc update-cloud-status {
+    description "Begin cloud account connection status";
+    input {
+      leaf cloud-account {
+        mandatory true;
+        description
+          "The cloud account name to update connection status for";
+        type string;
+      }
+    }
+  }
+
+  notification cloud-notif {
+    description "Notification for cloud account credentials";
+    leaf name {
+      description "Cloud account name";
+      type string;
+    }
+
+    leaf message {
+      description "Notification message";
+      type string;
+    }
+  }
+
+}
+