RIFT OSM R1 Initial Submission
[osm/SO.git] / common / plugins / yang / rw-config-agent.yang
diff --git a/common/plugins/yang/rw-config-agent.yang b/common/plugins/yang/rw-config-agent.yang
new file mode 100644 (file)
index 0000000..1740af3
--- /dev/null
@@ -0,0 +1,116 @@
+
+/*
+ * 
+ *   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-config-agent
+{
+  namespace "http://riftio.com/ns/riftware-1.0/rw-config-agent";
+  prefix "rw-config-agent";
+
+  import rw-pb-ext {
+    prefix "rwpb";
+  }
+
+  import ietf-inet-types {
+    prefix "inet";
+  }
+
+  import rwcal {
+    prefix "rwcal";
+  }
+
+  revision 2016-02-04 {
+    description
+      "Initial revision.";
+  }
+
+  typedef config-agent-account-type {
+    description "config agent account type";
+    type enumeration {
+      enum juju;
+      enum riftca;
+    }
+  }
+
+  container config-agent {
+    rwpb:msg-new ConfigAgent;
+
+    list account {
+      rwpb:msg-new ConfigAgentAccount;
+      key "name";
+
+      description "List of configuration agent accounts";
+
+      leaf name {
+        description "Name of this config agent account";
+        type string;
+      }
+
+      leaf account-type {
+        description
+            "Default account type is Rift Configuration Agent (RiftCA)";
+        type config-agent-account-type;
+        default "riftca";
+      }
+
+      choice config-agent-account-type {
+        case juju {
+          description
+            "Configure the VNF through Juju.";
+          container juju {
+            leaf ip-address {
+                description "Juju host IP address.";
+                type inet:ip-address;
+            }
+            leaf port {
+                description 
+                    "Juju host port number. Default 17070.";
+                type inet:port-number;
+                default 17070;
+            }
+            leaf user {
+                description 
+                    "User name to connect to Juju host. Default user-admin.";
+                type string;
+                default "user-admin" ;
+            }
+            leaf secret {
+                description 
+                    "Admin secret or password for Juju host.";
+                type string;
+            }
+          }
+        }
+      }
+      uses rwcal:connection-status;
+    }
+  }
+
+  rpc update-cfg-agent-status {
+    description "Begin config agent account connection status";
+    input {
+      leaf cfg-agent-account {
+        mandatory true;
+        description
+          "The config agent account name to update connection status for";
+        type string;
+      }
+    }
+  }
+}