initial checkin of xos-core, cord-device, and cord-subscriber YANG models
diff --git a/xos-core.yang b/xos-core.yang
new file mode 100644
index 0000000..842a537
--- /dev/null
+++ b/xos-core.yang
@@ -0,0 +1,93 @@
+module xos-core {
+ namespace "urn:xos:core:service";
+ prefix xos;
+ yang-version 1.1;
+
+ organization
+ "Open Networking Lab (XOS) / Corenova Technologies";
+
+ contact
+ "Larry Peterson <llp@onlab.us>
+ Peter K. Lee <peter@corenova.com>";
+
+ import ietf-yang-types { prefix yang; }
+
+ revision 2016-07-14 {
+ description "Initial revision.";
+ }
+
+ identity kind;
+ identity generic { base kind; }
+ identity subscriber { base kind; }
+
+ typedef unique-identifier {
+ description "defines valid formats for external reference id";
+ type union {
+ type yang:uuid;
+ type inet:uri;
+ type uint32 { range 1..max; }
+ }
+ }
+
+ grouping tenant-root {
+
+ description
+ "A Tenant Root is one of the things that can sit at the root of a chain
+ of tenancy. This object represents a node.";
+
+ leaf id {
+ type unique-identifier;
+ config false;
+ mandatory true;
+ }
+ leaf kind {
+ type identityref {
+ base kind;
+ }
+ default generic;
+ }
+ leaf name {
+ type string {
+ length 0..255;
+ }
+ description "Specify name of the TenantRoot";
+ }
+
+ leaf service-specific-attribute { type string; }
+ leaf service-specific-id {
+ type unique-identifier;
+ mandatory true;
+ }
+
+ list subscribed-tenants {
+ config false;
+ // not exactly clear how this is populated
+ }
+
+ }
+
+ grouping subscriber {
+ uses tenant-root {
+ refine kind { default subscriber; }
+ }
+ // seems we should have interesting attributes specific to subscriber?
+
+ }
+
+ // main configuration tree for XOS
+
+ container api {
+ container service {
+ // placeholder endpoint for services
+ }
+ container tenant {
+ container cord {
+ // placeholder endpoint for augment
+ }
+ container onos {
+ // placeholder endpoint for augment
+ }
+ }
+ }
+
+}