blob: b4a5bc7341029c35adaefa6a23b372a0484141ff [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
16 Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
17 License: This module is distributed under the Apache License 2.0";
hirokid8fd7862018-10-09 15:24:24 +090018 revision 2018-10-16 {
19 description "ONF Transport API version 2.1.0.
20 - The TAPI YANG models included in this TAPI release (v2.1.0) are a *normative* part of the TAPI SDK.
21 - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]
22 <https://github.com/OpenNetworkingFoundation/EagleUmlYang>
23 and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]
24 <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>
25 - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.
26 As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.
27 - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.
28 The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.
29 YANG models included in this release are not backward compatible with previous TAPI releases.
30 - Changes included in this TAPI release (v2.1.0) are listed in
31 <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.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 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070035 revision 2018-03-07 {
hirokid8fd7862018-10-09 15:24:24 +090036 description "ONF Transport API version 2.0.2
37 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 -070038 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
hirokid8fd7862018-10-09 15:24:24 +090039 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 -070040 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
41 }
42 revision 2018-02-16 {
hirokid8fd7862018-10-09 15:24:24 +090043 description "ONF Transport API version 2.0.1
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.1.md>";
hirokid8fd7862018-10-09 15:24:24 +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.1/UML>";
48 }
49 revision 2018-01-02 {
hirokid8fd7862018-10-09 15:24:24 +090050 description "ONF Transport API version 2.0.0
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.0.md>";
hirokid8fd7862018-10-09 15:24:24 +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.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070055 }
56 augment "/tapi-common:context" {
hirokid8fd7862018-10-09 15:24:24 +090057 container notification-context {
58 uses notification-context;
59 description "Augments the base TAPI Context with NotificationService information";
60 }
Toru Furusawa28988892017-10-30 17:28:40 -070061 description "Augments the base TAPI Context with NotificationService information";
62 }
63 /***********************
64 * package object-classes
65 **********************/
66 grouping notification-subscription-service {
67 list notification {
68 key 'uuid';
69 config false;
70 uses notification;
71 description "none";
72 }
73 container notification-channel {
74 uses notification-channel;
75 description "none";
76 }
77 container subscription-filter {
78 uses subscription-filter;
79 description "none";
80 }
81 leaf subscription-state {
82 type subscription-state;
83 description "none";
84 }
85 leaf-list supported-notification-types {
86 type notification-type;
87 config false;
88 min-elements 1;
89 description "none";
90 }
91 leaf-list supported-object-types {
92 type object-type;
93 config false;
94 min-elements 1;
95 description "none";
96 }
97 uses tapi-common:service-spec;
98 description "none";
99 }
100 grouping subscription-filter {
101 leaf-list requested-notification-types {
102 type notification-type;
103 config false;
104 description "none";
105 }
106 leaf-list requested-object-types {
107 type object-type;
108 config false;
109 description "none";
110 }
111 leaf-list requested-layer-protocols {
112 type tapi-common:layer-protocol-name;
113 config false;
114 description "none";
115 }
116 leaf-list requested-object-identifier {
117 type tapi-common:uuid;
118 config false;
119 description "none";
120 }
121 leaf include-content {
122 type boolean;
123 config false;
124 description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";
125 }
126 uses tapi-common:local-class;
127 description "none";
128 }
129 notification notification {
130 uses notification;
131 description "none";
132 }
133 grouping notification {
134 leaf notification-type {
135 type notification-type;
136 description "none";
137 }
138 leaf target-object-type {
139 type object-type;
140 description "none";
141 }
142 leaf target-object-identifier {
143 type tapi-common:uuid;
144 description "none";
145 }
146 list target-object-name {
147 key 'value-name';
148 min-elements 1;
149 uses tapi-common:name-and-value;
150 description "none";
151 }
152 leaf event-time-stamp {
153 type tapi-common:date-and-time;
154 description "none";
155 }
156 leaf sequence-number {
157 type uint64;
158 config false;
159 description "A monotonous increasing sequence number associated with the notification.
160 The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";
161 }
162 leaf source-indicator {
163 type source-indicator;
164 description "none";
165 }
166 leaf layer-protocol-name {
167 type tapi-common:layer-protocol-name;
168 description "none";
169 }
170 list changed-attributes {
171 key 'value-name';
172 uses name-and-value-change;
173 description "none";
174 }
175 list additional-info {
176 key 'value-name';
177 uses tapi-common:name-and-value;
178 description "none";
179 }
180 leaf additional-text {
181 type string;
182 description "none";
183 }
184 container tca-info {
185 uses tca-info;
186 description "none";
187 }
188 container alarm-info {
189 uses alarm-info;
190 description "none";
191 }
192 uses tapi-common:resource-spec;
193 description "none";
194 }
195 grouping notification-channel {
196 leaf stream-address {
197 type string;
198 config false;
199 description "The address/location/URI of the channel/stream to which the subscribed notifications are published.
200 This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";
201 }
202 leaf next-sequence-no {
203 type uint64;
204 config false;
205 description "The sequence number of the next notification that will be published on the channel";
206 }
207 uses tapi-common:local-class;
208 description "none";
209 }
210 grouping notification-context {
211 list notif-subscription {
212 key 'uuid';
213 uses notification-subscription-service;
214 description "none";
215 }
216 list notification {
217 key 'uuid';
218 config false;
219 uses notification;
220 description "none";
221 }
222 description "none";
223 }
224 grouping alarm-info {
225 leaf is-transient {
226 type boolean;
227 config false;
228 description "none";
229 }
hirokid8fd7862018-10-09 15:24:24 +0900230 leaf perceived-severity {
231 type perceived-severity-type;
Toru Furusawa28988892017-10-30 17:28:40 -0700232 config false;
233 description "none";
234 }
235 leaf probable-cause {
236 type string;
237 config false;
238 description "none";
239 }
240 leaf service-affecting {
241 type service-affecting;
242 description "none";
243 }
244 description "none";
245 }
246 grouping tca-info {
247 leaf is-transient {
248 type boolean;
249 config false;
250 description "none";
251 }
252 leaf threshold-crossing {
253 type threshold-crossing-type;
254 description "none";
255 }
256 leaf threshold-parameter {
257 type string;
258 config false;
259 description "none";
260 }
261 leaf threshold-value {
262 type uint64;
263 config false;
264 description "none";
265 }
hirokid8fd7862018-10-09 15:24:24 +0900266 leaf perceived-severity {
267 type perceived-tca-severity;
268 description "none";
269 }
270 leaf measurement-interval {
271 type tapi-common:date-and-time;
272 description "none";
273 }
274 leaf suspect-interval-flag {
275 type boolean;
276 description "none";
277 }
Toru Furusawa28988892017-10-30 17:28:40 -0700278 description "none";
279 }
280
281 /***********************
282 * package type-definitions
283 **********************/
284 grouping name-and-value-change {
285 leaf value-name {
286 type string;
287 description "The name of the value. The value need not have a name.";
288 }
289 leaf old-value {
290 type string;
291 description "The value";
292 }
293 leaf new-value {
294 type string;
295 description "The value";
296 }
297 description "A scoped name-value triple, including old value and new value";
298 }
299 typedef notification-type {
300 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500301 enum OBJECT_CREATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700302 description "Not a normal state. The system is unable to determine the correct value.";
303 }
wu6a418d22018-02-02 01:49:21 -0500304 enum OBJECT_DELETION {
Toru Furusawa28988892017-10-30 17:28:40 -0700305 description "none";
306 }
wu6a418d22018-02-02 01:49:21 -0500307 enum ATTRIBUTE_VALUE_CHANGE {
Toru Furusawa28988892017-10-30 17:28:40 -0700308 description "none";
309 }
wu6a418d22018-02-02 01:49:21 -0500310 enum ALARM_EVENT {
Toru Furusawa28988892017-10-30 17:28:40 -0700311 description "none";
312 }
wu6a418d22018-02-02 01:49:21 -0500313 enum THRESHOLD_CROSSING_ALERT {
Toru Furusawa28988892017-10-30 17:28:40 -0700314 description "none";
315 }
316 }
wu6a418d22018-02-02 01:49:21 -0500317 description "List of supported Notifications types.";
Toru Furusawa28988892017-10-30 17:28:40 -0700318 }
319 typedef object-type {
320 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500321 enum TOPOLOGY {
Toru Furusawa28988892017-10-30 17:28:40 -0700322 description "none";
323 }
wu6a418d22018-02-02 01:49:21 -0500324 enum NODE {
Toru Furusawa28988892017-10-30 17:28:40 -0700325 description "none";
326 }
wu6a418d22018-02-02 01:49:21 -0500327 enum LINK {
Toru Furusawa28988892017-10-30 17:28:40 -0700328 description "none";
329 }
wu6a418d22018-02-02 01:49:21 -0500330 enum CONNECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700331 description "none";
332 }
wu6a418d22018-02-02 01:49:21 -0500333 enum PATH {
Toru Furusawa28988892017-10-30 17:28:40 -0700334 description "none";
335 }
wu6a418d22018-02-02 01:49:21 -0500336 enum CONNECTIVITY_SERVICE {
Toru Furusawa28988892017-10-30 17:28:40 -0700337 description "none";
338 }
wu6a418d22018-02-02 01:49:21 -0500339 enum VIRTUAL_NETWORK_SERVICE {
Toru Furusawa28988892017-10-30 17:28:40 -0700340 description "none";
341 }
wu6a418d22018-02-02 01:49:21 -0500342 enum PATH_COMPUTATION_SERVICE {
Toru Furusawa28988892017-10-30 17:28:40 -0700343 description "none";
344 }
wu6a418d22018-02-02 01:49:21 -0500345 enum NODE_EDGE_POINT {
Toru Furusawa28988892017-10-30 17:28:40 -0700346 description "none";
347 }
wu6a418d22018-02-02 01:49:21 -0500348 enum SERVICE_INTERFACE_POINT {
Toru Furusawa28988892017-10-30 17:28:40 -0700349 description "none";
350 }
wu6a418d22018-02-02 01:49:21 -0500351 enum CONNECTION_END_POINT {
Toru Furusawa28988892017-10-30 17:28:40 -0700352 description "none";
353 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800354 enum MAINTENANCE_ENTITY_GROUP {
355 description "none";
356 }
357 enum MAINTENANCE_ENTITY {
358 description "none";
359 }
360 enum MEG_END_POINT {
361 description "none";
362 }
363 enum MEG_INTERMEDIATE_POINT {
364 description "none";
365 }
366 enum SWITCH_CONTROL {
367 description "none";
368 }
369 enum SWITCH {
370 description "none";
371 }
372 enum ROUTE {
373 description "none";
374 }
375 enum NODE_RULE_GROUP {
376 description "none";
377 }
378 enum INTER_RULE_GROUP {
379 description "none";
380 }
381 enum RULE {
382 description "none";
383 }
hirokid8fd7862018-10-09 15:24:24 +0900384 enum OAM_JOB {
385 description "none";
386 }
Toru Furusawa28988892017-10-30 17:28:40 -0700387 }
wu6a418d22018-02-02 01:49:21 -0500388 description "The list of TAPI Global Object Class types on which Notifications can be raised.";
Toru Furusawa28988892017-10-30 17:28:40 -0700389 }
390 typedef source-indicator {
391 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500392 enum RESOURCE_OPERATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700393 description "none";
394 }
wu6a418d22018-02-02 01:49:21 -0500395 enum MANAGEMENT_OPERATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700396 description "none";
397 }
wu6a418d22018-02-02 01:49:21 -0500398 enum UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700399 description "none";
400 }
401 }
402 description "none";
403 }
404 typedef subscription-state {
405 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500406 enum SUSPENDED {
Toru Furusawa28988892017-10-30 17:28:40 -0700407 description "none";
408 }
wu6a418d22018-02-02 01:49:21 -0500409 enum ACTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700410 description "none";
411 }
412 }
413 description "none";
414 }
hirokid8fd7862018-10-09 15:24:24 +0900415 typedef perceived-severity-type {
Toru Furusawa28988892017-10-30 17:28:40 -0700416 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500417 enum CRITICAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700418 description "none";
419 }
wu6a418d22018-02-02 01:49:21 -0500420 enum MAJOR {
Toru Furusawa28988892017-10-30 17:28:40 -0700421 description "none";
422 }
wu6a418d22018-02-02 01:49:21 -0500423 enum MINOR {
Toru Furusawa28988892017-10-30 17:28:40 -0700424 description "none";
425 }
wu6a418d22018-02-02 01:49:21 -0500426 enum WARNING {
Toru Furusawa28988892017-10-30 17:28:40 -0700427 description "none";
428 }
wu6a418d22018-02-02 01:49:21 -0500429 enum CLEARED {
Toru Furusawa28988892017-10-30 17:28:40 -0700430 description "none";
431 }
432 }
433 description "none";
434 }
435 typedef threshold-crossing-type {
436 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500437 enum THRESHOLD_ABOVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700438 description "none";
439 }
wu6a418d22018-02-02 01:49:21 -0500440 enum THRESHOLD_BELOW {
Toru Furusawa28988892017-10-30 17:28:40 -0700441 description "none";
442 }
wu6a418d22018-02-02 01:49:21 -0500443 enum CLEARED {
Toru Furusawa28988892017-10-30 17:28:40 -0700444 description "none";
445 }
446 }
447 description "none";
448 }
449 typedef service-affecting {
450 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500451 enum SERVICE_AFFECTING {
Toru Furusawa28988892017-10-30 17:28:40 -0700452 description "none";
453 }
wu6a418d22018-02-02 01:49:21 -0500454 enum NOT_SERVICE_AFFECTING {
Toru Furusawa28988892017-10-30 17:28:40 -0700455 description "none";
456 }
wu6a418d22018-02-02 01:49:21 -0500457 enum UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700458 description "none";
459 }
460 }
461 description "none";
462 }
hirokid8fd7862018-10-09 15:24:24 +0900463 typedef perceived-tca-severity {
464 type enumeration {
465 enum WARNING {
466 description "none";
467 }
468 enum CLEAR {
469 description "none";
470 }
471 }
472 description "none";
473 }
Toru Furusawa28988892017-10-30 17:28:40 -0700474
475 /***********************
476 * package interfaces
477 **********************/
478 rpc get-supported-notification-types {
479 description "none";
480 output {
481 leaf-list supported-notification-types {
482 type notification-type;
483 min-elements 1;
484 description "none";
485 }
486 leaf-list supported-object-types {
487 type object-type;
488 min-elements 1;
489 description "none";
490 }
491 }
492 }
493 rpc create-notification-subscription-service {
494 description "none";
495 input {
496 container subscription-filter {
497 uses subscription-filter;
498 description "none";
499 }
500 leaf subscription-state {
501 type subscription-state;
502 description "none";
503 }
504 }
505 output {
506 container subscription-service {
507 uses notification-subscription-service;
508 description "none";
509 }
510 }
511 }
512 rpc update-notification-subscription-service {
513 description "none";
514 input {
515 leaf subscription-id-or-name {
516 type string;
517 description "none";
518 }
519 container subscription-filter {
520 uses subscription-filter;
521 description "none";
522 }
523 leaf subscription-state {
524 type subscription-state;
525 description "none";
526 }
527 }
528 output {
529 container subscription-service {
530 uses notification-subscription-service;
531 description "none";
532 }
533 }
534 }
535 rpc delete-notification-subscription-service {
536 description "none";
537 input {
538 leaf subscription-id-or-name {
539 type string;
540 description "none";
541 }
542 }
543 output {
544 container subscription-service {
545 uses notification-subscription-service;
546 description "none";
547 }
548 }
549 }
550 rpc get-notification-subscription-service-details {
551 description "none";
552 input {
553 leaf subscription-id-or-name {
554 type string;
555 description "none";
556 }
557 }
558 output {
559 container subscription-service {
560 uses notification-subscription-service;
561 description "none";
562 }
563 }
564 }
565 rpc get-notification-subscription-service-list {
566 description "none";
567 output {
568 list subscription-service {
569 uses notification-subscription-service;
570 description "none";
571 }
572 }
573 }
574 rpc get-notification-list {
575 description "none";
576 input {
577 leaf subscription-id-or-name {
578 type string;
579 description "none";
580 }
581 leaf time-period {
582 type string;
583 description "none";
584 }
585 }
586 output {
587 list notification {
588 uses notification;
589 description "none";
590 }
591 }
592 }
593
594}