blob: 6d4244c6af92635452ebc201ec5287559beef24d [file] [log] [blame]
module xos-core {
namespace "urn:onlab:xos:core";
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; }
import ietf-inet-types { prefix inet; }
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
}
}
}
}