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"; | |
} | |
} | |
} |