blob: 28071af09b473015f447e298a24422aa755a27d1 [file] [log] [blame]
Toru Furusawa28988892017-10-30 17:28:40 -07001module tapi-notification {
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08002 namespace "urn:onf:otcc:yang:tapi-notification";
Toru Furusawa28988892017-10-30 17:28:40 -07003 prefix tapi-notification;
4 import tapi-common {
5 prefix tapi-common;
6 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -08007 organization "ONF OTCC (Open Transport Configuration & Control) Project";
hirokid8fd7862018-10-09 15:24:24 +09008 contact "
9 Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
10 Project List: <mailto:transport-api@opennetworking.org>
11 Editor: Karthik Sethuraman
12 <mailto:karthik.sethuraman@necam.com>";
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080013 description "
14 This module contains TAPI Notification Model definitions.
15 Source: TapiNotification.uml
hiroki96ab3c22018-12-11 14:10:52 -080016 - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.
17 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
18 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
19 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
20 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
21 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
22 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
23 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
24 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
25 YANG models included in this release may not be backward compatible with previous TAPI releases.
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -080026 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
27 License: This module is distributed under the Apache License 2.0";
hiroki96ab3c22018-12-11 14:10:52 -080028 revision 2018-12-10 {
29 description "ONF Transport API version 2.1.1.
30 Changes included in this TAPI release (v2.1.1) are listed in
31 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";
32 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
33 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
34 }
hirokid8fd7862018-10-09 15:24:24 +090035 revision 2018-10-16 {
36 description "ONF Transport API version 2.1.0.
hiroki96ab3c22018-12-11 14:10:52 -080037 Changes included in this TAPI release (v2.1.0) are listed in
38 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090039 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model
hirokid8fd7862018-10-09 15:24:24 +090040 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
41 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070042 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +090043 description "ONF Transport API version 2.0.2
44 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070045 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
Ai Hamano06163902018-12-06 09:18:20 +090046 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070047 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
48 }
49 revision 2018-02-16 {
Ai Hamano06163902018-12-06 09:18:20 +090050 description "ONF Transport API version 2.0.1
51 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070052 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
Ai Hamano06163902018-12-06 09:18:20 +090053 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070054 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
55 }
56 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +090057 description "ONF Transport API version 2.0.0
58 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070059 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
Ai Hamano06163902018-12-06 09:18:20 +090060 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070061 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070062 }
63 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090064 container notification-context {
65 uses notification-context;
66 description "Augments the base TAPI Context with NotificationService information";
67 }
Toru Furusawa28988892017-10-30 17:28:40 -070068 description "Augments the base TAPI Context with NotificationService information";
69 }
Ai Hamano06163902018-12-06 09:18:20 +090070
71 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -070072 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +090073 **************************/
74 grouping notification-subscription-service {
75 list notification {
76 key 'uuid';
77 config false;
78 uses notification;
79 description "none";
80 }
81 container notification-channel {
82 uses notification-channel;
83 description "none";
84 }
85 container subscription-filter {
86 uses subscription-filter;
87 description "none";
88 }
89 leaf subscription-state {
90 type subscription-state;
91 description "none";
92 }
93 leaf-list supported-notification-types {
94 type notification-type;
95 config false;
96 min-elements 1;
97 description "none";
98 }
99 leaf-list supported-object-types {
100 type object-type;
101 config false;
102 min-elements 1;
103 description "none";
104 }
105 uses tapi-common:service-spec;
106 description "none";
107 }
108 grouping subscription-filter {
109 leaf-list requested-notification-types {
110 type notification-type;
111 config false;
112 description "none";
113 }
114 leaf-list requested-object-types {
115 type object-type;
116 config false;
117 description "none";
118 }
119 leaf-list requested-layer-protocols {
120 type tapi-common:layer-protocol-name;
121 config false;
122 description "none";
123 }
124 leaf-list requested-object-identifier {
125 type tapi-common:uuid;
126 config false;
127 description "none";
128 }
129 leaf include-content {
130 type boolean;
131 config false;
132 description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";
133 }
134 uses tapi-common:local-class;
135 description "none";
136 }
137 notification notification {
138 uses notification;
139 description "none";
140 }
141 grouping notification {
142 leaf notification-type {
143 type notification-type;
144 description "none";
145 }
146 leaf target-object-type {
147 type object-type;
148 description "none";
149 }
150 leaf target-object-identifier {
151 type tapi-common:uuid;
152 description "none";
153 }
154 list target-object-name {
155 key 'value-name';
156 min-elements 1;
157 uses tapi-common:name-and-value;
158 description "none";
159 }
160 leaf event-time-stamp {
161 type tapi-common:date-and-time;
162 description "none";
163 }
164 leaf sequence-number {
165 type uint64;
166 config false;
167 description "A monotonous increasing sequence number associated with the notification.
168 The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";
169 }
170 leaf source-indicator {
171 type source-indicator;
172 description "none";
173 }
174 leaf layer-protocol-name {
175 type tapi-common:layer-protocol-name;
176 description "none";
177 }
178 list changed-attributes {
179 key 'value-name';
180 uses name-and-value-change;
181 description "none";
182 }
183 list additional-info {
184 key 'value-name';
185 uses tapi-common:name-and-value;
186 description "none";
187 }
188 leaf additional-text {
189 type string;
190 description "none";
191 }
192 container tca-info {
193 uses tca-info;
194 description "none";
195 }
196 container alarm-info {
197 uses alarm-info;
198 description "none";
199 }
200 uses tapi-common:resource-spec;
201 description "none";
202 }
203 grouping notification-channel {
204 leaf stream-address {
205 type string;
206 config false;
207 description "The address/location/URI of the channel/stream to which the subscribed notifications are published.
208 This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";
209 }
210 leaf next-sequence-no {
211 type uint64;
212 config false;
213 description "The sequence number of the next notification that will be published on the channel";
214 }
215 uses tapi-common:local-class;
216 description "none";
217 }
218 grouping notification-context {
219 list notif-subscription {
220 key 'uuid';
221 uses notification-subscription-service;
222 description "none";
223 }
224 list notification {
225 key 'uuid';
226 config false;
227 uses notification;
228 description "none";
229 }
230 description "none";
231 }
232 grouping alarm-info {
233 leaf is-transient {
234 type boolean;
235 config false;
236 description "none";
237 }
238 leaf perceived-severity {
239 type perceived-severity-type;
240 config false;
241 description "none";
242 }
243 leaf probable-cause {
244 type string;
245 config false;
246 description "none";
247 }
248 leaf service-affecting {
249 type service-affecting;
250 description "none";
251 }
252 description "none";
253 }
254 grouping tca-info {
255 leaf is-transient {
256 type boolean;
257 config false;
258 description "none";
259 }
260 leaf threshold-crossing {
261 type threshold-crossing-type;
262 description "none";
263 }
264 leaf threshold-parameter {
265 type string;
266 config false;
267 description "none";
268 }
269 leaf threshold-value {
270 type uint64;
271 config false;
272 description "none";
273 }
274 leaf perceived-severity {
275 type perceived-tca-severity;
276 description "none";
277 }
278 leaf measurement-interval {
279 type tapi-common:date-and-time;
280 description "none";
281 }
282 leaf suspect-interval-flag {
283 type boolean;
284 description "none";
285 }
286 description "none";
287 }
288
289 /**************************
290 * package type-definitions
291 **************************/
292 grouping name-and-value-change {
293 leaf value-name {
294 type string;
295 description "The name of the value. The value need not have a name.";
296 }
297 leaf old-value {
298 type string;
299 description "The value";
300 }
301 leaf new-value {
302 type string;
303 description "The value";
304 }
305 description "A scoped name-value triple, including old value and new value";
306 }
307 typedef notification-type {
308 type enumeration {
309 enum OBJECT_CREATION {
310 description "Not a normal state. The system is unable to determine the correct value.";
311 }
312 enum OBJECT_DELETION {
Toru Furusawa28988892017-10-30 17:28:40 -0700313 description "none";
314 }
Ai Hamano06163902018-12-06 09:18:20 +0900315 enum ATTRIBUTE_VALUE_CHANGE {
316 description "none";
317 }
318 enum ALARM_EVENT {
319 description "none";
320 }
321 enum THRESHOLD_CROSSING_ALERT {
322 description "none";
323 }
324 }
325 description "List of supported Notifications types.";
326 }
327 typedef object-type {
328 type enumeration {
329 enum TOPOLOGY {
330 description "none";
331 }
332 enum NODE {
333 description "none";
334 }
335 enum LINK {
336 description "none";
337 }
338 enum CONNECTION {
339 description "none";
340 }
341 enum PATH {
342 description "none";
343 }
344 enum CONNECTIVITY_SERVICE {
345 description "none";
346 }
347 enum VIRTUAL_NETWORK_SERVICE {
348 description "none";
349 }
350 enum PATH_COMPUTATION_SERVICE {
351 description "none";
352 }
353 enum NODE_EDGE_POINT {
354 description "none";
355 }
356 enum SERVICE_INTERFACE_POINT {
357 description "none";
358 }
359 enum CONNECTION_END_POINT {
360 description "none";
361 }
362 enum MAINTENANCE_ENTITY_GROUP {
363 description "none";
364 }
365 enum MAINTENANCE_ENTITY {
366 description "none";
367 }
368 enum MEG_END_POINT {
369 description "none";
370 }
371 enum MEG_INTERMEDIATE_POINT {
372 description "none";
373 }
374 enum SWITCH_CONTROL {
375 description "none";
376 }
377 enum SWITCH {
378 description "none";
379 }
380 enum ROUTE {
381 description "none";
382 }
383 enum NODE_RULE_GROUP {
384 description "none";
385 }
386 enum INTER_RULE_GROUP {
387 description "none";
388 }
389 enum RULE {
390 description "none";
391 }
392 enum OAM_JOB {
393 description "none";
394 }
395 }
396 description "The list of TAPI Global Object Class types on which Notifications can be raised.";
397 }
398 typedef source-indicator {
399 type enumeration {
400 enum RESOURCE_OPERATION {
401 description "none";
402 }
403 enum MANAGEMENT_OPERATION {
404 description "none";
405 }
406 enum UNKNOWN {
407 description "none";
408 }
409 }
410 description "none";
411 }
412 typedef subscription-state {
413 type enumeration {
414 enum SUSPENDED {
415 description "none";
416 }
417 enum ACTIVE {
418 description "none";
419 }
420 }
421 description "none";
422 }
423 typedef perceived-severity-type {
424 type enumeration {
425 enum CRITICAL {
426 description "none";
427 }
428 enum MAJOR {
429 description "none";
430 }
431 enum MINOR {
432 description "none";
433 }
434 enum WARNING {
435 description "none";
436 }
437 enum CLEARED {
438 description "none";
439 }
440 }
441 description "none";
442 }
443 typedef threshold-crossing-type {
444 type enumeration {
445 enum THRESHOLD_ABOVE {
446 description "none";
447 }
448 enum THRESHOLD_BELOW {
449 description "none";
450 }
451 enum CLEARED {
452 description "none";
453 }
454 }
455 description "none";
456 }
457 typedef service-affecting {
458 type enumeration {
459 enum SERVICE_AFFECTING {
460 description "none";
461 }
462 enum NOT_SERVICE_AFFECTING {
463 description "none";
464 }
465 enum UNKNOWN {
466 description "none";
467 }
468 }
469 description "none";
470 }
471 typedef perceived-tca-severity {
472 type enumeration {
473 enum WARNING {
474 description "none";
475 }
476 enum CLEAR {
477 description "none";
478 }
479 }
480 description "none";
481 }
482
483 /**************************
484 * package interfaces
485 **************************/
486 rpc get-supported-notification-types {
487 description "none";
488 output {
489 leaf-list supported-notification-types {
490 type notification-type;
491 min-elements 1;
492 description "none";
493 }
494 leaf-list supported-object-types {
495 type object-type;
496 min-elements 1;
497 description "none";
498 }
499 }
500 }
501 rpc create-notification-subscription-service {
502 description "none";
503 input {
504 container subscription-filter {
505 uses subscription-filter;
506 description "none";
507 }
508 leaf subscription-state {
509 type subscription-state;
510 description "none";
511 }
512 }
513 output {
514 container subscription-service {
515 uses notification-subscription-service;
516 description "none";
517 }
518 }
519 }
520 rpc update-notification-subscription-service {
521 description "none";
522 input {
523 leaf subscription-id-or-name {
524 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700525 description "none";
526 }
527 container subscription-filter {
528 uses subscription-filter;
529 description "none";
530 }
531 leaf subscription-state {
532 type subscription-state;
533 description "none";
534 }
Toru Furusawa28988892017-10-30 17:28:40 -0700535 }
Ai Hamano06163902018-12-06 09:18:20 +0900536 output {
537 container subscription-service {
538 uses notification-subscription-service;
Toru Furusawa28988892017-10-30 17:28:40 -0700539 description "none";
540 }
Toru Furusawa28988892017-10-30 17:28:40 -0700541 }
Ai Hamano06163902018-12-06 09:18:20 +0900542 }
543 rpc delete-notification-subscription-service {
544 description "none";
545 input {
546 leaf subscription-id-or-name {
Toru Furusawa28988892017-10-30 17:28:40 -0700547 type string;
548 description "none";
549 }
Toru Furusawa28988892017-10-30 17:28:40 -0700550 }
Ai Hamano06163902018-12-06 09:18:20 +0900551 output {
552 container subscription-service {
553 uses notification-subscription-service;
554 description "none";
555 }
556 }
557 }
558 rpc get-notification-subscription-service-details {
559 description "none";
560 input {
561 leaf subscription-id-or-name {
Toru Furusawa28988892017-10-30 17:28:40 -0700562 type string;
Ai Hamano06163902018-12-06 09:18:20 +0900563 description "none";
Toru Furusawa28988892017-10-30 17:28:40 -0700564 }
Toru Furusawa28988892017-10-30 17:28:40 -0700565 }
Ai Hamano06163902018-12-06 09:18:20 +0900566 output {
567 container subscription-service {
568 uses notification-subscription-service;
569 description "none";
570 }
571 }
572 }
573 rpc get-notification-subscription-service-list {
574 description "none";
575 output {
576 list subscription-service {
Toru Furusawa28988892017-10-30 17:28:40 -0700577 key 'uuid';
578 uses notification-subscription-service;
579 description "none";
580 }
Ai Hamano06163902018-12-06 09:18:20 +0900581 }
582 }
583 rpc get-notification-list {
584 description "none";
585 input {
586 leaf subscription-id-or-name {
587 type string;
588 description "none";
589 }
590 leaf time-period {
591 type string;
592 description "none";
593 }
594 }
595 output {
Toru Furusawa28988892017-10-30 17:28:40 -0700596 list notification {
597 key 'uuid';
Toru Furusawa28988892017-10-30 17:28:40 -0700598 uses notification;
599 description "none";
600 }
Toru Furusawa28988892017-10-30 17:28:40 -0700601 }
Ai Hamano06163902018-12-06 09:18:20 +0900602 }
Toru Furusawa28988892017-10-30 17:28:40 -0700603}