blob: 82d1a7e6416a61eb7c7eb9e409b57d1fae1f5ab4 [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>";
description
"This module contains a collection of core models for XOS.
Copyright (c) 2016 ON.LAB and the persons identified as authors of
the code. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, is permitted pursuant to, and subject to the license
terms of the Apache License, Version 2.0 which accompanies this
distribution, and is available at
(http://www.apache.org/licenses/LICENSE-2.0).";
revision 2016-07-14 {
description "Initial revision.";
}
import ietf-yang-types { prefix yang; }
import ietf-inet-types { prefix inet; }
feature synchronizer {
description
"Enables configuration synchronization to the distributed store.";
}
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;
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 {
description
"The primary configuration interaction endpoint";
container service {
description
"placeholder endpoint for services to augment";
}
container tenant {
description
"placeholder endpoint for tenants to augment";
}
}
}