Merge remote-tracking branch 'upstream/master'
diff --git a/schema/cord-service-vsg.yang b/schema/cord-service-vsg.yang
index aeae976..16615e8 100644
--- a/schema/cord-service-vsg.yang
+++ b/schema/cord-service-vsg.yang
@@ -31,14 +31,15 @@
"This grouping represents a VSG agent/provider which manages multiple
VSG gateways. The VSG agent provides agregate abstraction of
the entire NFaaS as a single switch to the controller. Each
- port entry of the agent represents each VSG endpoint as a
- separate openflow port.";
+ port entry of the agent represents each VSG subscriber flow as
+ a separate openflow port.";
list gateway {
description
"Each entry represents a VSG instance managed by the agent.";
- leaf id { type yang:uuid; }
+ leaf id { type xos:unique-identifier; }
+
container services {
description
"Contains various services provided by the gateway.";
@@ -63,10 +64,18 @@
if-feature uverse;
}
}
+ list flow {
+ description
+ "Each flow represents a subscriber flow into the VSG instance.";
+ leaf id {
+ type yang:uuid;
+ }
+ }
}
list port {
description
- "Each entry represents a VSG endpoint connected across VSG gateways.";
+ "Each entry represents a VSG subscriber flow connected across VSG
+ gateways.";
key id;
leaf id {
description "OpenFlow Port ID";
@@ -75,7 +84,7 @@
}
leaf link {
type leafref {
- path '../../gateway/id';
+ path '../../gateway/flow/id';
}
mandatory true;
}
diff --git a/schema/xos-core.yang b/schema/xos-core.yang
index 1e7a2db..d1ad954 100644
--- a/schema/xos-core.yang
+++ b/schema/xos-core.yang
@@ -1,8 +1,12 @@
module xos-core {
- namespace "urn:onlab:xos:core";
+ namespace "urn:onlab:xtype:core";
prefix xos;
yang-version 1.1;
+ import ietf-yang-types { prefix yang; }
+ import ietf-inet-types { prefix inet; }
+ import xos-types { prefix xtype; }
+
organization
"Open Networking Lab (XOS) / Corenova Technologies";
@@ -26,10 +30,6 @@
description "Initial revision.";
}
- import ietf-yang-types { prefix yang; }
- import ietf-inet-types { prefix inet; }
- import xos-types { prefix xos; }
-
feature synchronizer {
description
"Enables configuration synchronization to the distributed store.";
@@ -39,24 +39,6 @@
identity generic { base kind; }
identity service { base kind; }
- typedef unique-identifier {
- description "defines valid formats for external reference id";
- type union {
- type uint32 { range 1..max; }
- type yang:uuid;
- type inet:uri;
- }
- }
- typedef bandwidth {
- type uint32 {
- range 1000000..max; // should be at least 1 Mbps?
- }
- units 'bps';
- }
- typedef vlan {
- type uint16 { range 0..4095; }
- }
-
grouping attribute-pair {
leaf name { type string { length 0..128; } }
leaf value { type string; }
@@ -112,7 +94,7 @@
grouping base-common {
leaf id {
- type unique-identifier;
+ type xtype:unique-identifier;
mandatory true;
}
leaf name {
@@ -128,7 +110,7 @@
description "backwards-compatible attribute association";
}
leaf service-specific-id {
- type unique-identifier;
+ type xtype:unique-identifier;
mandatory true;
status deprecated;
}
@@ -137,7 +119,6 @@
uses sync-record;
}
}
-
grouping tenant-root {
uses base-common {
refine 'name' {
@@ -153,21 +134,18 @@
// 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?
}
-
grouping provider {
uses tenant-root {
refine kind { default provider; }
}
// seems we should have interesting attributes specific to provider?
}
-
grouping service {
uses base-common {
refine 'name' {
@@ -210,17 +188,20 @@
"Each entry represents a provider of the service. Each unique service
should augment this block with service specific attributes.";
key id;
- uses xos:provider;
+ uses xtype:provider;
}
list subscriber {
description
"Each entry represents a subscriber of the service. Each unique service
should augment this block with service specific attributes.";
key id;
- uses xos:subscriber;
+ uses xtype:subscriber;
notification subscriber-added;
notification subscriber-deleted;
}
+ list slice {
+ uses xtype:slice;
+ }
// TOOD: need to better understand relationship between Service and Slice
action scale {
@@ -282,7 +263,7 @@
leaf slice-url {
description "A URL describing the purpose of this slice";
- type xos.refs.url-field;
+ type xtype:url-field;
// blank true;
}
@@ -293,7 +274,7 @@
leaf service {
description "The service that runs in this slice";
- type xos.refs.service;
+ type xtype:service;
}
leaf network {
@@ -307,55 +288,58 @@
}
leaf service-class {
- type xos.refs.service-class;
- status deprecated;
+ type xtype:service-class;
+ status deprecated;
}
leaf creator {
- type xos.refs.user;
+ type xtype:user;
}
leaf default-flavor {
- type xos.refs.flavor;
+ type xtype:flavor;
}
leaf default-image {
- type xos.refs.image;
+ type xtype:image;
}
leaf default-node {
- type xos.refs.node;
+ type xtype:node;
}
leaf mount-data-sets {
- type string;
- default "GenBank";
- length 0..256;
+ type string {
+ length 0..256;
+ }
+ default "GenBank";
}
leaf default_isolation {
- type string;
- default "vm";
- length 0..30;
+ type string {
+ length 0..30;
+ }
+ default "vm";
}
leaf-list tags {
- type leafref {
- path "/tag[id = current()/../id]/id";
- }
+ // below leafref is not valid since there is no /tag
+ type leafref {
+ path "/tag[id = current()/../id]/id";
+ }
}
}
-
-
+
+
grouping controller-images {
uses xos-base;
leaf image {
- type xos:image;
+ type xtype:image;
}
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
container synchronizer {
@@ -371,11 +355,11 @@
uses xos-base;
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
leaf site-privilege {
- type xos:site-privilege;
+ type xtype:site-privilege;
}
container synchronizer {
@@ -411,10 +395,10 @@
grouping controller-network {
uses xos-base;
leaf network {
- type xos:network;
+ type xtype:network;
}
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
container synchronizer {
@@ -440,7 +424,7 @@
uses xos-base;
leaf site-url {
- type xos:url-field;
+ type xtype:url-field;
}
leaf enabled {
type boolean;
@@ -452,7 +436,7 @@
type boolean;
}
leaf location {
- type xos:geoposition-field;
+ type xtype:geoposition-field;
}
leaf longitude {
type decimal64;
@@ -479,14 +463,15 @@
}
grouping site-deployment {
+ uses xos-base;
leaf site {
- type xos:site;
+ type xtype:site;
}
leaf deployment {
- type xos:deployment;
+ type xtype:deployment;
}
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
container synchronizer {
if-feature synchronizer {
@@ -500,8 +485,9 @@
grouping user-credential {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf key-id {
@@ -509,32 +495,35 @@
}
leaf enc-value {
- type xos:encrypted-string;
+ type xtype:encrypted-string;
}
}
grouping invoice {
+ uses xos-base;
leaf date {
- type xos:datetime;
+ type xtype:datetime;
}
leaf account {
- type xos:account;
+ type xtype:account;
}
}
grouping slice-privilege {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
leaf role {
- type xos:role;
+ type xtype:role;
}
}
grouping flavor {
+ uses xos-base;
leaf description {
type string;
@@ -551,11 +540,12 @@
}
grouping port {
+ uses xos-base;
leaf network {
- type xos:network;
+ type xtype:network;
}
leaf instance {
- type xos:instance;
+ type xtype:instance;
}
container synchronizer {
if-feature synchronizer {
@@ -576,18 +566,20 @@
}
grouping service-role {
+ uses xos-base;
leaf role {
type string;
}
}
grouping controller-site {
+ uses xos-base;
leaf site {
- type xos:site;
+ type xtype:site;
}
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
container synchronizer {
@@ -601,11 +593,12 @@
}
grouping controller-slice {
+ uses xos-base;
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
container synchronizer {
@@ -618,14 +611,16 @@
}
grouping tenant-role {
+ uses xos-base;
leaf role {
type string;
}
}
grouping network {
+ uses xos-base;
leaf template {
- type xos:template;
+ type xtype:template;
}
leaf subnet {
@@ -641,7 +636,7 @@
}
leaf owner {
- type xos:owner;
+ type xtype:owner;
}
leaf guaranteed-bandwidth {
@@ -683,16 +678,19 @@
}
grouping controller-role {
+ uses xos-base;
leaf role {
type string;
}
}
grouping diag {
+ uses xos-base;
}
grouping service-class {
+ uses xos-base;
leaf description {
type string;
@@ -712,12 +710,14 @@
}
grouping site-role {
+ uses xos-base;
leaf role {
type string;
}
}
grouping instance {
+ uses xos-base;
container synchronizer {
if-feature synchronizer {
leaf instance-id {
@@ -737,25 +737,25 @@
}
}
leaf image {
- type xos:image;
+ type xtype:image;
}
leaf creator {
- type xos:creator;
+ type xtype:creator;
}
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
leaf deployment {
- type xos:deployment;
+ type xtype:deployment;
}
leaf node {
- type xos:node;
+ type xtype:node;
}
leaf number-cores {
type uint32;
}
leaf flavor {
- type xos:flavor;
+ type xtype:flavor;
}
leaf user-data {
type string;
@@ -767,16 +767,17 @@
type string;
}
leaf parent {
- type xos:parent;
+ type xtype:parent;
}
}
grouping charge {
+ uses xos-base;
leaf account {
- type xos:account;
+ type xtype:account;
}
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
leaf kind {
type string;
@@ -785,10 +786,10 @@
type string;
}
leaf date {
- type xos:datetime;
+ type xtype:datetime;
}
leaf object {
- type xos:object;
+ type xtype:object;
}
leaf amount {
type decimal64;
@@ -797,11 +798,12 @@
type decimal64;
}
leaf invoice {
- type xos:invoice;
+ type xtype:invoice;
}
}
grouping program {
+ uses xos-base;
leaf description {
type string;
}
@@ -815,7 +817,7 @@
}
leaf owner {
- type xos:owner;
+ type xtype:owner;
}
leaf contents {
@@ -836,6 +838,7 @@
}
grouping role {
+ uses xos-base;
leaf role-type {
type string;
}
@@ -846,43 +849,44 @@
type string;
}
leaf content-type {
- type xos:content-type;
+ type xtype:content-type;
}
}
grouping usable-object {
-
+ uses xos-base;
}
grouping node-label {
-
+ uses xos-base;
}
grouping slice-credential {
+ uses xos-base;
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
leaf key-id {
type string;
}
leaf enc-value {
- type xos:encrypted-string;
+ type xtype:encrypted-string;
}
}
grouping node {
-
+ uses xos-base;
leaf site-deployment {
- type xos:site-deployment;
+ type xtype:site-deployment;
}
leaf site {
- type xos:site;
+ type xtype:site;
}
}
grouping address-pool {
-
+ uses xos-base;
leaf addresses {
type string;
}
@@ -899,12 +903,12 @@
type string;
}
leaf service {
- type xos:service;
+ type xtype:service;
}
}
grouping dashboard-view {
-
+ uses xos-base;
leaf url {
type string;
}
@@ -912,36 +916,41 @@
type boolean;
}
}
+
grouping network-parameter {
+ uses xos-base;
leaf parameter {
- type xos:parameter;
+ type xtype:parameter;
}
leaf value {
type string;
}
leaf content-type {
- type xos:content-type;
+ type xtype:content-type;
}
leaf object-id {
type uint32;
}
}
+
grouping image-deployments {
+ uses xos-base;
leaf image {
- type xos:image;
+ type xtype:image;
}
leaf deployment {
- type xos:deployment;
+ type xtype:deployment;
}
}
grouping controller-user {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
container synchronizer {
@@ -952,22 +961,25 @@
}
}
}
+
grouping reserved-resource {
+ uses xos-base;
leaf instance {
- type xos:instance;
+ type xtype:instance;
}
leaf resource {
- type xos:resource;
+ type xtype:resource;
}
leaf quantity {
type uint32;
}
leaf reservationSet {
- type xos:reservationSet;
+ type xtype:reservationSet;
}
}
+
grouping network-template {
-
+ uses xos-base;
leaf description {
type string;
}
@@ -996,12 +1008,14 @@
type string;
}
}
+
grouping controller-dashboard-view {
+ uses xos-base;
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
leaf dashboardView {
- type xos:dashboardView;
+ type xtype:dashboardView;
}
leaf enabled {
type boolean;
@@ -1010,19 +1024,22 @@
type string;
}
}
+
grouping user-dashboard-view {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf dashboardView {
- type xos:dashboardView;
+ type xtype:dashboardView;
}
leaf order {
type uint32;
}
}
+
grouping controller {
-
+ uses xos-base;
leaf backend-type {
type string;
}
@@ -1054,15 +1071,17 @@
type string;
}
leaf deployment {
- type xos:deployment;
+ type xtype:deployment;
}
}
+
grouping user {
+ uses xos-base;
leaf password {
type string;
}
leaf last-login {
- type xos:datetime;
+ type xtype:datetime;
}
leaf email {
type EmailField;
@@ -1080,10 +1099,10 @@
type string;
}
leaf user-url {
- type xos:url-field;
+ type xtype:url-field;
}
leaf site {
- type xos:site;
+ type xtype:site;
}
leaf public-key {
type string;
@@ -1110,72 +1129,83 @@
type string;
}
leaf timezone {
- type xos:time-zone-field;
+ type xtype:time-zone-field;
}
}
+
grouping deployment {
+ uses xos-base;
leaf access-control {
type string;
}
}
+
grouping reservation {
- leaf startTime {
- type xos:datetime;
+ uses xos-base;
+ leaf start-time {
+ type xtype:datetime;
}
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
leaf duration {
type uint32;
}
}
+
grouping site-privilege {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf site {
- type xos:site;
+ type xtype:site;
}
leaf role {
- type xos:role;
+ type xtype:role;
}
}
+
grouping payment {
+ uses xos-base;
leaf account {
- type xos:account;
+ type xtype:account;
}
leaf amount {
type decimal64;
}
leaf date {
- type xos:datetime;
+ type xtype:datetime;
}
}
grouping network-slice {
+ uses xos-base;
leaf network {
- type xos:network;
+ type xtype:network;
}
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
}
grouping account {
+ uses xos-base;
leaf site {
- type xos:site;
+ type xtype:site;
}
}
grouping controller-slice-privilege {
+ uses xos-base;
leaf controller {
- type xos:controller;
+ type xtype:controller;
}
leaf slice-privilege {
- type xos:slice-privilege;
+ type xtype:slice-privilege;
}
container synchronizer {
@@ -1188,8 +1218,9 @@
}
grouping site-credential {
+ uses xos-base;
leaf site {
- type xos:site;
+ type xtype:site;
}
leaf key-id {
@@ -1197,43 +1228,47 @@
}
leaf enc-value {
- type xos:encrypted-string;
+ type xtype:encrypted-string;
}
}
grouping deployment-privilege {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf deployment {
- type xos:deployment;
+ type xtype:deployment;
}
leaf role {
- type xos:role;
+ type xtype:role;
}
}
grouping network-parameter-type {
+ uses xos-base;
leaf description {
type string;
}
}
grouping deployment-role {
+ uses xos-base;
leaf role {
type string;
}
}
grouping project {
-
+ uses xos-base;
}
grouping slice-tag {
+ uses xos-base;
leaf slice {
- type xos:slice;
+ type xtype:slice;
}
leaf value {
@@ -1242,14 +1277,16 @@
}
grouping router {
+ uses xos-base;
leaf owner {
- type xos:owner;
+ type xtype:owner;
}
}
grouping service-resource {
+ uses xos-base;
leaf service-class {
- type xos:service-class;
+ type xtype:service-class;
}
leaf max-units-deployment {
@@ -1282,17 +1319,18 @@
}
grouping service-privilege {
+ uses xos-base;
leaf user {
- type xos:user;
+ type xtype:user;
}
leaf service {
- type xos:service;
+ type xtype:service;
}
leaf role {
- type xos:role;
+ type xtype:role;
}
}
-
+
/*** main configuration tree for XOS ***/
container api {
diff --git a/schema/xos-types.yang b/schema/xos-types.yang
index 0b786a4..da58981 100644
--- a/schema/xos-types.yang
+++ b/schema/xos-types.yang
@@ -1,6 +1,6 @@
module xos-types {
namespace "urn:onlab:xos:types";
- prefix xos-types;
+ prefix xtype;
yang-version 1.1;
organization
@@ -16,7 +16,10 @@
description "Initial revision.";
}
- grouping unique-identifier {
+ /*
+ * Typedefs
+ */
+ typedef unique-identifier {
description "defines valid formats for external reference id";
type union {
type uint32 { range 1..max; }
@@ -24,274 +27,214 @@
type inet:uri;
}
}
-
- container refs {
- grouping image {
- uses unique-identifier;
+ typedef bandwidth {
+ type uint32 {
+ range 1000000..max; // should be at least 1 Mbps?
}
-
- grouping controller-network {
- uses unique-identifier;
- }
-
- grouping site {
- uses unique-identifier;
- }
-
- grouping tenant-root-role {
- uses unique-identifier;
- }
-
- grouping slice-role {
- uses unique-identifier;
- }
-
- grouping site-deployment {
- uses unique-identifier;
- }
-
- grouping tenant-privilege {
- uses unique-identifier;
- }
-
- grouping tag {
- uses unique-identifier;
- }
-
- grouping user-credential {
- uses unique-identifier;
- }
-
- grouping invoice {
- uses unique-identifier;
- }
-
- grouping slice-privilege {
- uses unique-identifier;
- }
-
- grouping flavor {
- uses unique-identifier;
- }
-
- grouping port {
- uses unique-identifier;
- }
-
- grouping service-role {
- uses unique-identifier;
- }
-
- grouping controller-site {
- uses unique-identifier;
- }
-
- grouping controller-slice {
- uses unique-identifier;
- }
-
- grouping tenant-role {
- uses unique-identifier;
- }
-
- grouping slice {
- uses unique-identifier;
- }
-
- grouping network {
- uses unique-identifier;
- }
-
- grouping controller-role {
- uses unique-identifier;
- }
-
- grouping diag {
- uses unique-identifier;
- }
-
- grouping service-class {
- uses unique-identifier;
- }
-
- grouping tenant-attribute {
- uses unique-identifier;
- }
-
- grouping site-role {
- uses unique-identifier;
- }
-
- grouping subscriber {
- uses unique-identifier;
- }
-
- grouping instance {
- uses unique-identifier;
- }
-
- grouping charge {
- uses unique-identifier;
- }
-
- grouping program {
- uses unique-identifier;
- }
-
- grouping role {
- uses unique-identifier;
- }
-
- grouping usable-object {
- uses unique-identifier;
- }
-
- grouping node-label {
- uses unique-identifier;
- }
-
- grouping slice-credential {
- uses unique-identifier;
- }
-
- grouping node {
- uses unique-identifier;
- }
-
- grouping address-pool {
- uses unique-identifier;
- }
-
- grouping dashboard-view {
- uses unique-identifier;
- }
-
- grouping network-parameter {
- uses unique-identifier;
- }
-
- grouping image-deployments {
- uses unique-identifier;
- }
-
- grouping controller-user {
- uses unique-identifier;
- }
-
- grouping reserved-resource {
- uses unique-identifier;
- }
-
- grouping network-template {
- uses unique-identifier;
- }
-
- grouping controller-dashboard-view {
- uses unique-identifier;
- }
-
- grouping user-dashboard-view {
- uses unique-identifier;
- }
-
- grouping controller {
- uses unique-identifier;
- }
-
- grouping user {
- uses unique-identifier;
- }
-
- grouping deployment {
- uses unique-identifier;
- }
-
- grouping reservation {
- uses unique-identifier;
- }
-
- grouping site-privilege {
- uses unique-identifier;
- }
-
- grouping payment {
- uses unique-identifier;
- }
-
- grouping tenant {
- uses unique-identifier;
- }
-
- grouping network-slice {
- uses unique-identifier;
- }
-
- grouping account {
- uses unique-identifier;
- }
-
- grouping tenant-root {
- uses unique-identifier;
- }
-
- grouping service {
- uses unique-identifier;
- }
-
- grouping controller-slice-privilege {
- uses unique-identifier;
- }
-
- grouping site-credential {
- uses unique-identifier;
- }
-
- grouping deployment-privilege {
- uses unique-identifier;
- }
-
- grouping network-parameter-type {
- uses unique-identifier;
- }
-
- grouping provider {
- uses unique-identifier;
- }
-
- grouping tenant-with-container {
- uses unique-identifier;
- }
-
- grouping deployment-role {
- uses unique-identifier;
- }
-
- grouping project {
- uses unique-identifier;
- }
-
- grouping tenant-root-privilege {
- uses unique-identifier;
- }
-
- grouping slice-tag {
- uses unique-identifier;
- }
-
- grouping coarse-tenant {
- uses unique-identifier;
- }
-
- grouping router {
- uses unique-identifier;
- }
-
- grouping service-resource {
- uses unique-identifier;
- }
-
- grouping service-privilege {
- uses unique-identifier;
- }
+ units 'bps';
+ }
+ typedef vlan {
+ type uint16 { range 0..4095; }
+ }
+ typedef image {
+ type unique-identifier;
+ }
+ typedef controller-network {
+ type unique-identifier;
+ }
+ typedef site {
+ type unique-identifier;
+ }
+ typedef tenant-root-role {
+ type unique-identifier;
+ }
+ typedef slice-role {
+ type unique-identifier;
+ }
+ typedef site-deployment {
+ type unique-identifier;
+ }
+ typedef tenant-privilege {
+ type unique-identifier;
+ }
+ typedef tag {
+ type unique-identifier;
+ }
+ typedef user-credential {
+ type unique-identifier;
+ }
+ typedef invoice {
+ type unique-identifier;
+ }
+ typedef slice-privilege {
+ type unique-identifier;
+ }
+ typedef flavor {
+ type unique-identifier;
+ }
+ typedef port {
+ type unique-identifier;
+ }
+ typedef service-role {
+ type unique-identifier;
+ }
+ typedef controller-site {
+ type unique-identifier;
+ }
+ typedef controller-slice {
+ type unique-identifier;
+ }
+ typedef tenant-role {
+ type unique-identifier;
+ }
+ typedef slice {
+ type unique-identifier;
+ }
+ typedef network {
+ type unique-identifier;
+ }
+ typedef controller-role {
+ type unique-identifier;
+ }
+ typedef diag {
+ type unique-identifier;
+ }
+ typedef service-class {
+ type unique-identifier;
+ }
+ typedef tenant-attribute {
+ type unique-identifier;
+ }
+ typedef site-role {
+ type unique-identifier;
+ }
+ typedef subscriber {
+ type unique-identifier;
+ }
+ typedef instance {
+ type unique-identifier;
+ }
+ typedef charge {
+ type unique-identifier;
+ }
+ typedef program {
+ type unique-identifier;
+ }
+ typedef role {
+ type unique-identifier;
+ }
+ typedef usable-object {
+ type unique-identifier;
+ }
+ typedef node-label {
+ type unique-identifier;
+ }
+ typedef slice-credential {
+ type unique-identifier;
+ }
+ typedef node {
+ type unique-identifier;
+ }
+ typedef address-pool {
+ type unique-identifier;
+ }
+ typedef dashboard-view {
+ type unique-identifier;
+ }
+ typedef network-parameter {
+ type unique-identifier;
+ }
+ typedef image-deployments {
+ type unique-identifier;
+ }
+ typedef controller-user {
+ type unique-identifier;
+ }
+ typedef reserved-resource {
+ type unique-identifier;
+ }
+ typedef network-template {
+ type unique-identifier;
+ }
+ typedef controller-dashboard-view {
+ type unique-identifier;
+ }
+ typedef user-dashboard-view {
+ type unique-identifier;
+ }
+ typedef controller {
+ type unique-identifier;
+ }
+ typedef user {
+ type unique-identifier;
+ }
+ typedef deployment {
+ type unique-identifier;
+ }
+ typedef reservation {
+ type unique-identifier;
+ }
+ typedef site-privilege {
+ type unique-identifier;
+ }
+ typedef payment {
+ type unique-identifier;
+ }
+ typedef tenant {
+ type unique-identifier;
+ }
+ typedef network-slice {
+ type unique-identifier;
+ }
+ typedef account {
+ type unique-identifier;
+ }
+ typedef tenant-root {
+ type unique-identifier;
+ }
+ typedef service {
+ type unique-identifier;
+ }
+ typedef controller-slice-privilege {
+ type unique-identifier;
+ }
+ typedef site-credential {
+ type unique-identifier;
+ }
+ typedef deployment-privilege {
+ type unique-identifier;
+ }
+ typedef network-parameter-type {
+ type unique-identifier;
+ }
+ typedef provider {
+ type unique-identifier;
+ }
+ typedef tenant-with-container {
+ type unique-identifier;
+ }
+ typedef deployment-role {
+ type unique-identifier;
+ }
+ typedef project {
+ type unique-identifier;
+ }
+ typedef tenant-root-privilege {
+ type unique-identifier;
+ }
+ typedef slice-tag {
+ type unique-identifier;
+ }
+ typedef coarse-tenant {
+ type unique-identifier;
+ }
+ typedef router {
+ type unique-identifier;
+ }
+ typedef service-resource {
+ type unique-identifier;
+ }
+ typedef service-privilege {
+ type unique-identifier;
}
}