blob: 9cebf1b383393d30fa44bad718da11595038d8ee [file] [log] [blame]
Khen Nursimuluf8abbc92016-11-04 19:56:45 -04001module xos-unreconciled-models {
2 namespace "urn:ietf:params:xml:ns:yang:xos-incomplete";
3 prefix xacc;
4 yang-version 1.1;
5
6 import ietf-yang-types { prefix yang; }
7 import ietf-inet-types { prefix inet; }
8 import xos-types { prefix xtype; }
9
10 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
17 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-09-13 {
30 description "Initial revision.";
31 }
32
33 /* Future Consideration
34 typedef image {
35 type unique-identifier;
36 }
37 typedef controller-network {
38 type unique-identifier;
39 }
40 typedef site {
41 type unique-identifier;
42 }
43 typedef tenant-root-role {
44 type unique-identifier;
45 }
46 typedef slice-role {
47 type unique-identifier;
48 }
49 typedef site-deployment {
50 type unique-identifier;
51 }
52 typedef tenant-privilege {
53 type unique-identifier;
54 }
55 typedef tag {
56 type unique-identifier;
57 }
58 typedef user-credential {
59 type unique-identifier;
60 }
61 typedef invoice {
62 type unique-identifier;
63 }
64 typedef slice-privilege {
65 type unique-identifier;
66 }
67 typedef flavor {
68 type unique-identifier;
69 }
70 typedef port {
71 type unique-identifier;
72 }
73 typedef service-role {
74 type unique-identifier;
75 }
76 typedef controller-site {
77 type unique-identifier;
78 }
79 typedef controller-slice {
80 type unique-identifier;
81 }
82 typedef tenant-role {
83 type unique-identifier;
84 }
85 typedef slice {
86 type unique-identifier;
87 }
88 typedef network {
89 type unique-identifier;
90 }
91 typedef controller-role {
92 type unique-identifier;
93 }
94 typedef diag {
95 type unique-identifier;
96 }
97 typedef service-class {
98 type unique-identifier;
99 }
100 typedef tenant-attribute {
101 type unique-identifier;
102 }
103 typedef site-role {
104 type unique-identifier;
105 }
106 typedef subscriber {
107 type unique-identifier;
108 }
109 typedef instance {
110 type unique-identifier;
111 }
112 typedef charge {
113 type unique-identifier;
114 }
115 typedef program {
116 type unique-identifier;
117 }
118 typedef role {
119 type unique-identifier;
120 }
121 typedef usable-object {
122 type unique-identifier;
123 }
124 typedef node-label {
125 type unique-identifier;
126 }
127 typedef slice-credential {
128 type unique-identifier;
129 }
130 typedef node {
131 type unique-identifier;
132 }
133 typedef address-pool {
134 type unique-identifier;
135 }
136 typedef dashboard-view {
137 type unique-identifier;
138 }
139 typedef network-parameter {
140 type unique-identifier;
141 }
142 typedef image-deployments {
143 type unique-identifier;
144 }
145 typedef controller-user {
146 type unique-identifier;
147 }
148 typedef reserved-resource {
149 type unique-identifier;
150 }
151 typedef network-template {
152 type unique-identifier;
153 }
154 typedef controller-dashboard-view {
155 type unique-identifier;
156 }
157 typedef user-dashboard-view {
158 type unique-identifier;
159 }
160 typedef controller {
161 type unique-identifier;
162 }
163 typedef user {
164 type unique-identifier;
165 }
166 typedef deployment {
167 type unique-identifier;
168 }
169 typedef reservation {
170 type unique-identifier;
171 }
172 typedef site-privilege {
173 type unique-identifier;
174 }
175 typedef payment {
176 type unique-identifier;
177 }
178 typedef tenant {
179 type unique-identifier;
180 }
181 typedef network-slice {
182 type unique-identifier;
183 }
184 typedef account {
185 type unique-identifier;
186 }
187 typedef tenant-root {
188 type unique-identifier;
189 }
190 typedef service {
191 type unique-identifier;
192 }
193 typedef controller-slice-privilege {
194 type unique-identifier;
195 }
196 typedef site-credential {
197 type unique-identifier;
198 }
199 typedef deployment-privilege {
200 type unique-identifier;
201 }
202 typedef network-parameter-type {
203 type unique-identifier;
204 }
205 typedef provider {
206 type unique-identifier;
207 }
208 typedef tenant-with-container {
209 type unique-identifier;
210 }
211 typedef deployment-role {
212 type unique-identifier;
213 }
214 typedef project {
215 type unique-identifier;
216 }
217 typedef tenant-root-privilege {
218 type unique-identifier;
219 }
220 typedef slice-tag {
221 type unique-identifier;
222 }
223 typedef coarse-tenant {
224 type unique-identifier;
225 }
226 typedef router {
227 type unique-identifier;
228 }
229 typedef service-resource {
230 type unique-identifier;
231 }
232 typedef service-privilege {
233 type unique-identifier;
234 }
235 */
236 grouping service-class {
237 uses xos-base;
238
239 leaf description {
240 type string;
241 }
242 leaf commitment {
243 type uint32;
244 }
245 leaf membership-fee {
246 type uint32;
247 }
248 leaf membership-fee-months {
249 type uint32;
250 }
251 leaf upgrade-requires-approval {
252 type boolean;
253 }
254 }
255 grouping invoice {
256 uses xos-base;
257 leaf date {
258 type xtype:datetime;
259 }
260 leaf account {
261 type xtype:account;
262 }
263 }
264
265 grouping charge {
266 uses xos-base;
267 leaf account {
268 type xtype:account;
269 }
270 leaf slice {
271 type xtype:slice;
272 }
273 leaf kind {
274 type string;
275 }
276 leaf state {
277 type string;
278 }
279 leaf date {
280 type xtype:datetime;
281 }
282 leaf object {
283 type xtype:object;
284 }
285 leaf amount {
286 type decimal64;
287 }
288 leaf core-hours {
289 type decimal64;
290 }
291 leaf invoice {
292 type xtype:invoice;
293 }
294 }
295
296 grouping role {
297 uses xos-base;
298 leaf role-type {
299 type string;
300 }
301 leaf role {
302 type string;
303 }
304 leaf description {
305 type string;
306 }
307 leaf content-type {
308 type xtype:content-type;
309 }
310 }
311
312 grouping dashboard-view {
313 uses xos-base;
314 leaf url {
315 type string;
316 }
317 leaf enabled {
318 type boolean;
319 }
320 }
321
322 grouping controller-dashboard-view {
323 uses xos-base;
324 leaf controller {
325 type xtype:controller;
326 }
327 leaf dashboardView {
328 type xtype:dashboardView;
329 }
330 leaf enabled {
331 type boolean;
332 }
333 leaf url {
334 type string;
335 }
336 }
337
338 grouping user-dashboard-view {
339 uses xos-base;
340 leaf user {
341 type xtype:user;
342 }
343 leaf dashboardView {
344 type xtype:dashboardView;
345 }
346 leaf order {
347 type uint32;
348 }
349 }
350 grouping service-privilege {
351 uses xos-base;
352 leaf user {
353 type xtype:user;
354 }
355 leaf service {
356 type xtype:service;
357 }
358 leaf role {
359 type xtype:role;
360 }
361 }
362
363 grouping payment {
364 uses xos-base;
365 leaf account {
366 type xtype:account;
367 }
368 leaf amount {
369 type decimal64;
370 }
371 leaf date {
372 type xtype:datetime;
373 }
374 }
375
376 grouping account {
377 uses xos-base;
378 leaf site {
379 type xtype:site;
380 }
381 }
382
383 grouping service-resource {
384 uses xos-base;
385 leaf service-class {
386 type xtype:service-class;
387 }
388
389 leaf max-units-deployment {
390 type uint32;
391 }
392
393 leaf max-units-node {
394 type uint32;
395 }
396
397 leaf max-duration {
398 type uint32;
399 }
400
401 leaf bucket-in-rate {
402 type uint32;
403 }
404
405 leaf bucket-max-size {
406 type uint32;
407 }
408
409 leaf cost {
410 type uint32;
411 }
412
413 leaf calendar-reservable {
414 type boolean;
415 }
416 }
417
418 grouping diag {
419 uses xos-base;
420
421 }
422
423 grouping program {
424 uses xos-base;
425 leaf description {
426 type string;
427 }
428
429 leaf kind {
430 type string;
431 }
432
433 leaf command {
434 type string;
435 }
436
437 leaf owner {
438 type xtype:owner;
439 }
440
441 leaf contents {
442 type string;
443 }
444
445 leaf output {
446 type string;
447 }
448
449 leaf messages {
450 type string;
451 }
452
453 leaf status {
454 type string;
455 }
456 }
457
458 grouping usable-object {
459 uses xos-base;
460 }
461
462}