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
+      }
+    }
+  }
+  
+}