blob: d1ad954be01394f00d9f5ef03cad3bc11b049567 [file] [log] [blame]
Peter K. Lee2bade4d2016-07-14 16:19:56 -07001module xos-core {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02002 namespace "urn:onlab:xtype:core";
Peter K. Lee2bade4d2016-07-14 16:19:56 -07003 prefix xos;
4 yang-version 1.1;
5
Peter K. Lee4d936892016-09-13 11:59:21 -07006 import ietf-yang-types { prefix yang; }
7 import ietf-inet-types { prefix inet; }
8 import xos-types { prefix xtype; }
9
Peter K. Lee2bade4d2016-07-14 16:19:56 -070010 organization
11 "Open Networking Lab (XOS) / Corenova Technologies";
12
13 contact
14 "Larry Peterson <llp@onlab.us>
15 Peter K. Lee <peter@corenova.com>";
16
Peter K. Leef4d38d32016-07-23 02:47:38 -070017 description
18 "This module contains a collection of core models for XOS.
19
20 Copyright (c) 2016 ON.LAB and the persons identified as authors of
21 the code. All rights reserved.
22
23 Redistribution and use in source and binary forms, with or without
24 modification, is permitted pursuant to, and subject to the license
25 terms of the Apache License, Version 2.0 which accompanies this
26 distribution, and is available at
27 (http://www.apache.org/licenses/LICENSE-2.0).";
28
29 revision 2016-07-14 {
30 description "Initial revision.";
31 }
32
Peter K. Leef4d38d32016-07-23 02:47:38 -070033 feature synchronizer {
34 description
35 "Enables configuration synchronization to the distributed store.";
Peter K. Lee2bade4d2016-07-14 16:19:56 -070036 }
37
38 identity kind;
Peter K. Lee0db45ac2016-09-13 00:30:37 -070039 identity generic { base kind; }
40 identity service { base kind; }
Peter K. Lee2bade4d2016-07-14 16:19:56 -070041
Peter K. Lee0db45ac2016-09-13 00:30:37 -070042 grouping attribute-pair {
Peter K. Leecb2eb922016-09-01 18:02:31 -070043 leaf name { type string { length 0..128; } }
44 leaf value { type string; }
45 // don't need pointer back to service
46 }
Peter K. Lee2da78632016-09-06 21:02:47 -070047
Peter K. Lee0db45ac2016-09-13 00:30:37 -070048 grouping sync-record {
Peter K. Lee2da78632016-09-06 21:02:47 -070049 description "Synchronizer-specific properties for model records";
50
51 leaf created { type yang:date-and-time; }
52 leaf updated { type yang:date-and-time; }
53 leaf enacted { type yang:date-and-time; }
54 leaf policed { type yang:date-and-time; }
55
56 leaf writable { type boolean; default true; }
57 leaf locked { type boolean; default false; }
58 leaf deleted { type boolean; default false; }
59
60 leaf dirty {
61 config false;
62 type boolean;
63 default false;
64 }
65
66 container sync {
67 anydata register {
68 description "scratchpad used by the Observer";
69 }
70 leaf progress {
71 type enumeration {
72 enum provisioning {
73 value 0;
74 description "Provisioning in progress";
75 }
76 }
77 }
78 leaf disabled { type boolean; default false; }
79 leaf enforced { type boolean; default true; }
80
81 list policy {
82 // TODO: how are policy defined/enforced?
83 }
84 }
85
86 action diff {
87 when "../dirty == true";
88 description "retrieve diff of model state if dirty";
89 }
90 action save {
91 description "trigger save into data store via synchronizer";
92 }
93 }
Peter K. Leecb2eb922016-09-01 18:02:31 -070094
Peter K. Lee0db45ac2016-09-13 00:30:37 -070095 grouping base-common {
Peter K. Lee2bade4d2016-07-14 16:19:56 -070096 leaf id {
Peter K. Lee4d936892016-09-13 11:59:21 -070097 type xtype:unique-identifier;
Peter K. Lee2bade4d2016-07-14 16:19:56 -070098 mandatory true;
99 }
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700100 leaf name {
101 type string {
102 length 0..255;
103 }
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700104 }
Peter K. Lee2da78632016-09-06 21:02:47 -0700105 list attribute {
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700106 uses attribute-pair;
Peter K. Lee2da78632016-09-06 21:02:47 -0700107 key name;
108 status deprecated;
109 reference "XOS: service-specific-attribute";
110 description "backwards-compatible attribute association";
111 }
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700112 leaf service-specific-id {
Peter K. Lee4d936892016-09-13 11:59:21 -0700113 type xtype:unique-identifier;
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700114 mandatory true;
Peter K. Lee2da78632016-09-06 21:02:47 -0700115 status deprecated;
116 }
Peter K. Lee2da78632016-09-06 21:02:47 -0700117 container record {
118 if-feature synchronizer;
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700119 uses sync-record;
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700120 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700121 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700122 grouping tenant-root {
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700123 uses base-common {
Peter K. Leecb2eb922016-09-01 18:02:31 -0700124 refine 'name' {
125 description "Specify name of the TenantRoot";
126 }
127 }
128 description
129 "A Tenant Root is one of the things that can sit at the root of a chain
130 of tenancy. This object represents a node.";
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700131
Peter K. Leeaf777da2016-08-17 04:33:00 -0700132 list subscribed-tenant {
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700133 config false;
134 // not exactly clear how this is populated
135 }
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700136 }
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700137 grouping subscriber {
138 uses tenant-root {
139 refine kind { default subscriber; }
140 }
141 // seems we should have interesting attributes specific to subscriber?
Peter K. Lee2bade4d2016-07-14 16:19:56 -0700142 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700143 grouping provider {
144 uses tenant-root {
145 refine kind { default provider; }
146 }
147 // seems we should have interesting attributes specific to provider?
148 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700149 grouping service {
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700150 uses base-common {
Peter K. Leecb2eb922016-09-01 18:02:31 -0700151 refine 'name' {
152 description "Name of the Service";
153 }
154 }
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700155 leaf kind {
156 type identityref {
157 base kind;
158 }
159 default generic;
160 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700161 leaf description {
162 type string {
163 length 0..254;
164 }
165 description "Description of the Service";
166 }
167 leaf version {
168 type string { length 0..30; }
169 description "Version of Service Definition";
170 }
171
172 leaf enabled { type boolean; default true; }
173 leaf published { type boolean; default true; }
174
Peter K. Lee2da78632016-09-06 21:02:47 -0700175 container links {
Peter K. Leecb2eb922016-09-01 18:02:31 -0700176 leaf view { type inet:uri; }
177 leaf icon { type inet:uri; }
178 }
179
180 list keypair {
181 description "collection of public/private key pair(s)";
Peter K. Lee2da78632016-09-06 21:02:47 -0700182 // should be a specific typedef for storing this content
Peter K. Leecb2eb922016-09-01 18:02:31 -0700183 leaf public { type string { length 0..1024; } }
184 leaf private { type string { length 0..1024; } }
185 }
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700186 list provider {
187 description
188 "Each entry represents a provider of the service. Each unique service
189 should augment this block with service specific attributes.";
190 key id;
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200191 uses xtype:provider;
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700192 }
193 list subscriber {
194 description
195 "Each entry represents a subscriber of the service. Each unique service
196 should augment this block with service specific attributes.";
197 key id;
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200198 uses xtype:subscriber;
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700199 notification subscriber-added;
200 notification subscriber-deleted;
201 }
Peter K. Leec3960502016-09-13 11:47:02 -0700202 list slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200203 uses xtype:slice;
Peter K. Leec3960502016-09-13 11:47:02 -0700204 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700205
206 // TOOD: need to better understand relationship between Service and Slice
207 action scale {
208 description "Adjust scale for slice(s)";
209 }
210
211 // TODO: need to better understand relationship between Service and VTN
212 }
213
214 grouping tenancy {
Peter K. Lee0db45ac2016-09-13 00:30:37 -0700215 uses base-common;
Peter K. Leecb2eb922016-09-01 18:02:31 -0700216
217 choice provider {
218 description "only one type of provider node is valid.";
219 case service { leaf provider-service { type instance-identifier; } }
220 }
221
222 choice subscriber {
223 description "only one type of subscriber node is valid.";
224 case service { leaf subscriber-service { type instance-identifier; } }
225 case tenant { leaf subscriber-tenant { type instance-identifier; } }
226 case user { leaf subscriber-user { type instance-identifier; } }
227 case root { leaf subscriber-root { type instance-identifier; } }
228 case network { leaf subscriber-network { type instance-identifier; } }
229 }
230
231 leaf connect-method {
232 //when "../kind == 'static-tenant'";
233
234 type enumeration {
235 enum public { description "Public"; }
236 enum private { description "Private"; }
237 enum private-unidirectional { description "Private Uni-directional"; }
238 enum na { description "Not Applicable"; }
239 }
240 default na;
241 }
242
243 // TODO: should be able to deal with TenantWithContainer here
244
245 }
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200246
247 grouping slice {
248 description
249 "A slice is a logically centralized container for network and compute resources"
250
251 uses base-common;
252
253 leaf enabled {
254 type boolean;
255 default true;
256 }
257
258 leaf omf-friendly {
259 type boolean;
260 default false;
261 status deprecated;
262 }
263
264 leaf slice-url {
265 description "A URL describing the purpose of this slice";
Peter K. Lee4d936892016-09-13 11:59:21 -0700266 type xtype:url-field;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200267 // blank true;
268 }
269
270 leaf max-instances {
271 description "The maximum number of VMs that this slice is allowed to allocate";
272 type uint32;
273 }
274
275 leaf service {
276 description "The service that runs in this slice";
Peter K. Lee4d936892016-09-13 11:59:21 -0700277 type xtype:service;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200278 }
279
280 leaf network {
281 description "The network that the slice uses to connect to other slices and to the Internet.";
282 type string;
283 }
284
285 leaf exposed-ports {
286 description "The ports to be exposed for other slices to connect to";
287 type string;
288 }
289
290 leaf service-class {
Peter K. Lee4d936892016-09-13 11:59:21 -0700291 type xtype:service-class;
292 status deprecated;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200293 }
294
295 leaf creator {
Peter K. Lee4d936892016-09-13 11:59:21 -0700296 type xtype:user;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200297 }
298
299 leaf default-flavor {
Peter K. Lee4d936892016-09-13 11:59:21 -0700300 type xtype:flavor;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200301 }
302
303 leaf default-image {
Peter K. Lee4d936892016-09-13 11:59:21 -0700304 type xtype:image;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200305 }
306
307 leaf default-node {
Peter K. Lee4d936892016-09-13 11:59:21 -0700308 type xtype:node;
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200309 }
310
311 leaf mount-data-sets {
Peter K. Lee4d936892016-09-13 11:59:21 -0700312 type string {
313 length 0..256;
314 }
315 default "GenBank";
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200316 }
317
318 leaf default_isolation {
Peter K. Lee4d936892016-09-13 11:59:21 -0700319 type string {
320 length 0..30;
321 }
322 default "vm";
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200323 }
324
325 leaf-list tags {
Peter K. Lee4d936892016-09-13 11:59:21 -0700326 // below leafref is not valid since there is no /tag
327 type leafref {
328 path "/tag[id = current()/../id]/id";
329 }
Sapan Bhatiad570dcb2016-09-13 19:07:06 +0200330 }
331 }
Peter K. Leecb2eb922016-09-01 18:02:31 -0700332
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200333
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200334 grouping controller-images {
335 uses xos-base;
336
337 leaf image {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200338 type xtype:image;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200339 }
340
341 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200342 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200343 }
344
345 container synchronizer {
346 if-feature synchronizer {
347 leaf glance-image-id {
348 type string;
349 }
350 }
351 }
352 }
353
354 grouping controller-site-privilege {
355 uses xos-base;
356
357 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200358 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200359 }
360
361 leaf site-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200362 type xtype:site-privilege;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200363 }
364
365 container synchronizer {
366 if-feature synchronizer {
367
368 leaf role-id {
369 type string;
370 }
371 }
372 }
373
374 grouping image {
375 uses xos-base;
376
377
378 leaf kind {
379 type string;
380 }
381 leaf disk-format {
382 type string;
383 }
384 leaf container-format {
385 type string;
386 }
387 leaf path {
388 type string;
389 }
390 leaf tag {
391 type string;
392 }
393 }
394
395 grouping controller-network {
396 uses xos-base;
397 leaf network {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200398 type xtype:network;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200399 }
400 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200401 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200402 }
403
404 container synchronizer {
405 if-feature synchronizer {
406 leaf net-id {
407 type string;
408 }
409 leaf router-id {
410 type string;
411 }
412 leaf subnet-id {
413 type string;
414 }
415 }
416
417 leaf subnet {
418 type string;
419 }
420
421 }
422
423 grouping site {
424 uses xos-base;
425
426 leaf site-url {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200427 type xtype:url-field;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200428 }
429 leaf enabled {
430 type boolean;
431 }
432 leaf hosts-nodes {
433 type boolean;
434 }
435 leaf hosts-users {
436 type boolean;
437 }
438 leaf location {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200439 type xtype:geoposition-field;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200440 }
441 leaf longitude {
442 type decimal64;
443 }
444 leaf latitude {
445 type decimal64;
446 }
447 leaf login-base {
448 type string;
449 }
450 leaf is-public {
451 type boolean;
452 }
453 leaf abbreviated-name {
454 type string;
455 }
456 }
457
458 grouping slice-role {
459 uses xos-base;
460 leaf role {
461 type string;
462 }
463 }
464
465 grouping site-deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200466 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200467 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200468 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200469 }
470 leaf deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200471 type xtype:deployment;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200472 }
473 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200474 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200475 }
476 container synchronizer {
477 if-feature synchronizer {
478
479 leaf availability-zone {
480 type string;
481 }
482 }
483 }
484 }
485
486
487 grouping user-credential {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200488 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200489 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200490 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200491 }
492
493 leaf key-id {
494 type string;
495 }
496
497 leaf enc-value {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200498 type xtype:encrypted-string;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200499 }
500 }
501
502 grouping invoice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200503 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200504 leaf date {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200505 type xtype:datetime;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200506 }
507 leaf account {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200508 type xtype:account;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200509 }
510 }
511
512 grouping slice-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200513 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200514 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200515 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200516 }
517 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200518 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200519 }
520 leaf role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200521 type xtype:role;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200522 }
523 }
524
525 grouping flavor {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200526 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200527
528 leaf description {
529 type string;
530 }
531 leaf flavor {
532 type string;
533 }
534 leaf order {
535 type uint32;
536 }
537 leaf default {
538 type boolean;
539 }
540 }
541
542 grouping port {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200543 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200544 leaf network {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200545 type xtype:network;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200546 }
547 leaf instance {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200548 type xtype:instance;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200549 }
550 container synchronizer {
551 if-feature synchronizer {
552 leaf ip {
553 type inet:ip-address;
554 }
555 leaf port-id {
556 type string;
557 }
558 leaf mac {
559 type string;
560 }
561 }
562 }
563 leaf xos-created {
564 type boolean;
565 }
566 }
567
568 grouping service-role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200569 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200570 leaf role {
571 type string;
572 }
573 }
574
575 grouping controller-site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200576 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200577 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200578 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200579 }
580
581 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200582 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200583 }
584
585 container synchronizer {
586 if-feature synchronizer {
587
588 leaf tenant-id {
589 type string;
590 }
591 }
592 }
593 }
594
595 grouping controller-slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200596 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200597 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200598 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200599 }
600 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200601 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200602 }
603
604 container synchronizer {
605 if-feature synchronizer {
606 leaf tenant-id {
607 type string;
608 }
609 }
610 }
611 }
612
613 grouping tenant-role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200614 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200615 leaf role {
616 type string;
617 }
618 }
619
620 grouping network {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200621 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200622 leaf template {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200623 type xtype:template;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200624 }
625
626 leaf subnet {
627 type string;
628 }
629
630 leaf ports {
631 type string;
632 }
633
634 leaf labels {
635 type string;
636 }
637
638 leaf owner {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200639 type xtype:owner;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200640 }
641
642 leaf guaranteed-bandwidth {
643 type uint32;
644 }
645
646 leaf permit-all-slices {
647 type boolean;
648 }
649
650 leaf topology-parameters {
651 type string;
652 }
653
654 leaf controller-url {
655 type string;
656 }
657
658 leaf controller-parameters {
659 type string;
660 }
661
662 container synchronizer {
663 if-feature synchronizer {
664 leaf network-id {
665 type string;
666 }
667 leaf router-id {
668 type string;
669 }
670 leaf subnet-id {
671 type string;
672 }
673 }
674 }
675 leaf autoconnect {
676 type boolean;
677 }
678 }
679
680 grouping controller-role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200681 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200682 leaf role {
683 type string;
684 }
685 }
686
687 grouping diag {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200688 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200689
690 }
691
692 grouping service-class {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200693 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200694
695 leaf description {
696 type string;
697 }
698 leaf commitment {
699 type uint32;
700 }
701 leaf membership-fee {
702 type uint32;
703 }
704 leaf membership-fee-months {
705 type uint32;
706 }
707 leaf upgrade-requires-approval {
708 type boolean;
709 }
710 }
711
712 grouping site-role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200713 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200714 leaf role {
715 type string;
716 }
717 }
718
719 grouping instance {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200720 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200721 container synchronizer {
722 if-feature synchronizer {
723 leaf instance-id {
724 type string;
725 }
726
727 leaf instance-uuid {
728 type string;
729 }
730
731 leaf instance-name {
732 type string;
733 }
734
735 leaf ip {
736 type inet:ip-address;
737 }
738 }
739 leaf image {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200740 type xtype:image;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200741 }
742 leaf creator {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200743 type xtype:creator;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200744 }
745 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200746 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200747 }
748 leaf deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200749 type xtype:deployment;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200750 }
751 leaf node {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200752 type xtype:node;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200753 }
754 leaf number-cores {
755 type uint32;
756 }
757 leaf flavor {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200758 type xtype:flavor;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200759 }
760 leaf user-data {
761 type string;
762 }
763 leaf isolation {
764 type string;
765 }
766 leaf volumes {
767 type string;
768 }
769 leaf parent {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200770 type xtype:parent;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200771 }
772 }
773
774 grouping charge {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200775 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200776 leaf account {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200777 type xtype:account;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200778 }
779 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200780 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200781 }
782 leaf kind {
783 type string;
784 }
785 leaf state {
786 type string;
787 }
788 leaf date {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200789 type xtype:datetime;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200790 }
791 leaf object {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200792 type xtype:object;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200793 }
794 leaf amount {
795 type decimal64;
796 }
797 leaf core-hours {
798 type decimal64;
799 }
800 leaf invoice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200801 type xtype:invoice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200802 }
803 }
804
805 grouping program {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200806 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200807 leaf description {
808 type string;
809 }
810
811 leaf kind {
812 type string;
813 }
814
815 leaf command {
816 type string;
817 }
818
819 leaf owner {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200820 type xtype:owner;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200821 }
822
823 leaf contents {
824 type string;
825 }
826
827 leaf output {
828 type string;
829 }
830
831 leaf messages {
832 type string;
833 }
834
835 leaf status {
836 type string;
837 }
838 }
839
840 grouping role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200841 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200842 leaf role-type {
843 type string;
844 }
845 leaf role {
846 type string;
847 }
848 leaf description {
849 type string;
850 }
851 leaf content-type {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200852 type xtype:content-type;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200853 }
854 }
855
856 grouping usable-object {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200857 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200858 }
859
860 grouping node-label {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200861 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200862 }
863
864 grouping slice-credential {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200865 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200866 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200867 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200868 }
869
870 leaf key-id {
871 type string;
872 }
873 leaf enc-value {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200874 type xtype:encrypted-string;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200875 }
876 }
877
878 grouping node {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200879 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200880 leaf site-deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200881 type xtype:site-deployment;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200882 }
883 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200884 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200885 }
886 }
887
888 grouping address-pool {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200889 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200890 leaf addresses {
891 type string;
892 }
893 leaf gateway-ip {
894 type string;
895 }
896 leaf gateway-mac {
897 type string;
898 }
899 leaf cidr {
900 type string;
901 }
902 leaf inuse {
903 type string;
904 }
905 leaf service {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200906 type xtype:service;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200907 }
908 }
909
910 grouping dashboard-view {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200911 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200912 leaf url {
913 type string;
914 }
915 leaf enabled {
916 type boolean;
917 }
918 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200919
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200920 grouping network-parameter {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200921 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200922 leaf parameter {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200923 type xtype:parameter;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200924 }
925 leaf value {
926 type string;
927 }
928 leaf content-type {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200929 type xtype:content-type;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200930 }
931 leaf object-id {
932 type uint32;
933 }
934 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200935
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200936 grouping image-deployments {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200937 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200938 leaf image {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200939 type xtype:image;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200940 }
941 leaf deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200942 type xtype:deployment;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200943 }
944 }
945
946 grouping controller-user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200947 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200948 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200949 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200950 }
951
952 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200953 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200954 }
955
956 container synchronizer {
957 if-feature synchronizer {
958 leaf kuser-id {
959 type string;
960 }
961 }
962 }
963 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200964
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200965 grouping reserved-resource {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200966 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200967 leaf instance {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200968 type xtype:instance;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200969 }
970 leaf resource {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200971 type xtype:resource;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200972 }
973 leaf quantity {
974 type uint32;
975 }
976 leaf reservationSet {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200977 type xtype:reservationSet;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200978 }
979 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200980
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200981 grouping network-template {
Sapan Bhatia14df56a2016-09-13 22:07:32 +0200982 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +0200983 leaf description {
984 type string;
985 }
986 leaf guaranteed-bandwidth {
987 type uint32;
988 }
989 leaf visibility {
990 type string;
991 }
992 leaf translation {
993 type string;
994 }
995 leaf access {
996 type string;
997 }
998 leaf shared-network-name {
999 type string;
1000 }
1001 leaf shared-network-id {
1002 type string;
1003 }
1004 leaf topology-kind {
1005 type string;
1006 }
1007 leaf controller-kind {
1008 type string;
1009 }
1010 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001011
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001012 grouping controller-dashboard-view {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001013 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001014 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001015 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001016 }
1017 leaf dashboardView {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001018 type xtype:dashboardView;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001019 }
1020 leaf enabled {
1021 type boolean;
1022 }
1023 leaf url {
1024 type string;
1025 }
1026 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001027
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001028 grouping user-dashboard-view {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001029 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001030 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001031 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001032 }
1033 leaf dashboardView {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001034 type xtype:dashboardView;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001035 }
1036 leaf order {
1037 type uint32;
1038 }
1039 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001040
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001041 grouping controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001042 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001043 leaf backend-type {
1044 type string;
1045 }
1046 leaf version {
1047 type string;
1048 }
1049 leaf auth-url {
1050 type string;
1051 }
1052 leaf admin-user {
1053 type string;
1054 }
1055 leaf admin-password {
1056 type string;
1057 }
1058 leaf admin-tenant {
1059 type string;
1060 }
1061 leaf domain {
1062 type string;
1063 }
1064 leaf rabbit-host {
1065 type string;
1066 }
1067 leaf rabbit-user {
1068 type string;
1069 }
1070 leaf rabbit-password {
1071 type string;
1072 }
1073 leaf deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001074 type xtype:deployment;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001075 }
1076 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001077
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001078 grouping user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001079 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001080 leaf password {
1081 type string;
1082 }
1083 leaf last-login {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001084 type xtype:datetime;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001085 }
1086 leaf email {
1087 type EmailField;
1088 }
1089 leaf username {
1090 type string;
1091 }
1092 leaf firstname {
1093 type string;
1094 }
1095 leaf lastname {
1096 type string;
1097 }
1098 leaf phone {
1099 type string;
1100 }
1101 leaf user-url {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001102 type xtype:url-field;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001103 }
1104 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001105 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001106 }
1107 leaf public-key {
1108 type string;
1109 }
1110 leaf is-active {
1111 type boolean;
1112 }
1113 leaf is-admin {
1114 type boolean;
1115 }
1116 leaf is-staff {
1117 type boolean;
1118 }
1119 leaf is-readonly {
1120 type boolean;
1121 }
1122 leaf is-registering {
1123 type boolean;
1124 }
1125 leaf is-appuser {
1126 type boolean;
1127 }
1128 leaf login-page {
1129 type string;
1130 }
1131 leaf timezone {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001132 type xtype:time-zone-field;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001133 }
1134 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001135
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001136 grouping deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001137 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001138
1139 leaf access-control {
1140 type string;
1141 }
1142 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001143
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001144 grouping reservation {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001145 uses xos-base;
1146 leaf start-time {
1147 type xtype:datetime;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001148 }
1149 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001150 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001151 }
1152 leaf duration {
1153 type uint32;
1154 }
1155 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001156
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001157 grouping site-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001158 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001159 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001160 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001161 }
1162 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001163 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001164 }
1165 leaf role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001166 type xtype:role;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001167 }
1168 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001169
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001170 grouping payment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001171 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001172 leaf account {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001173 type xtype:account;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001174 }
1175 leaf amount {
1176 type decimal64;
1177 }
1178 leaf date {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001179 type xtype:datetime;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001180 }
1181 }
1182
1183 grouping network-slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001184 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001185 leaf network {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001186 type xtype:network;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001187 }
1188
1189 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001190 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001191 }
1192 }
1193
1194 grouping account {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001195 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001196 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001197 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001198 }
1199 }
1200
1201 grouping controller-slice-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001202 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001203 leaf controller {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001204 type xtype:controller;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001205 }
1206
1207 leaf slice-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001208 type xtype:slice-privilege;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001209 }
1210
1211 container synchronizer {
1212 if-feature synchronizer {
1213 leaf role-id {
1214 type string;
1215 }
1216 }
1217 }
1218 }
1219
1220 grouping site-credential {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001221 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001222 leaf site {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001223 type xtype:site;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001224 }
1225
1226 leaf key-id {
1227 type string;
1228 }
1229
1230 leaf enc-value {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001231 type xtype:encrypted-string;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001232 }
1233 }
1234
1235 grouping deployment-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001236 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001237 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001238 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001239 }
1240
1241 leaf deployment {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001242 type xtype:deployment;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001243 }
1244
1245 leaf role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001246 type xtype:role;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001247 }
1248 }
1249
1250 grouping network-parameter-type {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001251 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001252 leaf description {
1253 type string;
1254 }
1255 }
1256
1257 grouping deployment-role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001258 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001259 leaf role {
1260 type string;
1261 }
1262 }
1263
1264 grouping project {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001265 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001266 }
1267
1268 grouping slice-tag {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001269 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001270 leaf slice {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001271 type xtype:slice;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001272 }
1273
1274 leaf value {
1275 type string;
1276 }
1277 }
1278
1279 grouping router {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001280 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001281 leaf owner {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001282 type xtype:owner;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001283 }
1284 }
1285
1286 grouping service-resource {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001287 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001288 leaf service-class {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001289 type xtype:service-class;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001290 }
1291
1292 leaf max-units-deployment {
1293 type uint32;
1294 }
1295
1296 leaf max-units-node {
1297 type uint32;
1298 }
1299
1300 leaf max-duration {
1301 type uint32;
1302 }
1303
1304 leaf bucket-in-rate {
1305 type uint32;
1306 }
1307
1308 leaf bucket-max-size {
1309 type uint32;
1310 }
1311
1312 leaf cost {
1313 type uint32;
1314 }
1315
1316 leaf calendar-reservable {
1317 type boolean;
1318 }
1319 }
1320
1321 grouping service-privilege {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001322 uses xos-base;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001323 leaf user {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001324 type xtype:user;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001325 }
1326 leaf service {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001327 type xtype:service;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001328 }
1329 leaf role {
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001330 type xtype:role;
Sapan Bhatiaffd73a92016-09-13 21:47:27 +02001331 }
1332 }
Sapan Bhatia14df56a2016-09-13 22:07:32 +02001333
Peter K. Leef4d38d32016-07-23 02:47:38 -07001334 /*** main configuration tree for XOS ***/
Peter K. Lee2bade4d2016-07-14 16:19:56 -07001335
1336 container api {
Peter K. Leef4d38d32016-07-23 02:47:38 -07001337 description
1338 "The primary configuration interaction endpoint";
1339
Peter K. Lee2bade4d2016-07-14 16:19:56 -07001340 container service {
Peter K. Leef4d38d32016-07-23 02:47:38 -07001341 description
1342 "placeholder endpoint for services to augment";
Peter K. Lee2bade4d2016-07-14 16:19:56 -07001343 }
1344 container tenant {
Peter K. Leef4d38d32016-07-23 02:47:38 -07001345 description
1346 "placeholder endpoint for tenants to augment";
Peter K. Lee2bade4d2016-07-14 16:19:56 -07001347 }
1348 }
1349
1350}