blob: 2885abc434ee9c0e945b4c29c85404994ec9c0b5 [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>";
Ai Hamano06163902018-12-06 09:18:20 +090032 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 +090033 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";
34 }
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070035 revision 2018-03-07 {
Ai Hamano06163902018-12-06 09:18:20 +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>";
Ai Hamano06163902018-12-06 09:18:20 +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 {
Ai Hamano06163902018-12-06 09:18:20 +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>";
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.1/UML>";
48 }
49 revision 2018-01-02 {
Ai Hamano06163902018-12-06 09:18:20 +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>";
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.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 }
Ai Hamano06163902018-12-06 09:18:20 +090063
64 /**************************
Toru Furusawa28988892017-10-30 17:28:40 -070065 * package object-classes
Ai Hamano06163902018-12-06 09:18:20 +090066 **************************/
67 grouping notification-subscription-service {
68 list notification {
69 key 'uuid';
70 config false;
71 uses notification;
72 description "none";
73 }
74 container notification-channel {
75 uses notification-channel;
76 description "none";
77 }
78 container subscription-filter {
79 uses subscription-filter;
80 description "none";
81 }
82 leaf subscription-state {
83 type subscription-state;
84 description "none";
85 }
86 leaf-list supported-notification-types {
87 type notification-type;
88 config false;
89 min-elements 1;
90 description "none";
91 }
92 leaf-list supported-object-types {
93 type object-type;
94 config false;
95 min-elements 1;
96 description "none";
97 }
98 uses tapi-common:service-spec;
99 description "none";
100 }
101 grouping subscription-filter {
102 leaf-list requested-notification-types {
103 type notification-type;
104 config false;
105 description "none";
106 }
107 leaf-list requested-object-types {
108 type object-type;
109 config false;
110 description "none";
111 }
112 leaf-list requested-layer-protocols {
113 type tapi-common:layer-protocol-name;
114 config false;
115 description "none";
116 }
117 leaf-list requested-object-identifier {
118 type tapi-common:uuid;
119 config false;
120 description "none";
121 }
122 leaf include-content {
123 type boolean;
124 config false;
125 description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";
126 }
127 uses tapi-common:local-class;
128 description "none";
129 }
130 notification notification {
131 uses notification;
132 description "none";
133 }
134 grouping notification {
135 leaf notification-type {
136 type notification-type;
137 description "none";
138 }
139 leaf target-object-type {
140 type object-type;
141 description "none";
142 }
143 leaf target-object-identifier {
144 type tapi-common:uuid;
145 description "none";
146 }
147 list target-object-name {
148 key 'value-name';
149 min-elements 1;
150 uses tapi-common:name-and-value;
151 description "none";
152 }
153 leaf event-time-stamp {
154 type tapi-common:date-and-time;
155 description "none";
156 }
157 leaf sequence-number {
158 type uint64;
159 config false;
160 description "A monotonous increasing sequence number associated with the notification.
161 The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";
162 }
163 leaf source-indicator {
164 type source-indicator;
165 description "none";
166 }
167 leaf layer-protocol-name {
168 type tapi-common:layer-protocol-name;
169 description "none";
170 }
171 list changed-attributes {
172 key 'value-name';
173 uses name-and-value-change;
174 description "none";
175 }
176 list additional-info {
177 key 'value-name';
178 uses tapi-common:name-and-value;
179 description "none";
180 }
181 leaf additional-text {
182 type string;
183 description "none";
184 }
185 container tca-info {
186 uses tca-info;
187 description "none";
188 }
189 container alarm-info {
190 uses alarm-info;
191 description "none";
192 }
193 uses tapi-common:resource-spec;
194 description "none";
195 }
196 grouping notification-channel {
197 leaf stream-address {
198 type string;
199 config false;
200 description "The address/location/URI of the channel/stream to which the subscribed notifications are published.
201 This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";
202 }
203 leaf next-sequence-no {
204 type uint64;
205 config false;
206 description "The sequence number of the next notification that will be published on the channel";
207 }
208 uses tapi-common:local-class;
209 description "none";
210 }
211 grouping notification-context {
212 list notif-subscription {
213 key 'uuid';
214 uses notification-subscription-service;
215 description "none";
216 }
217 list notification {
218 key 'uuid';
219 config false;
220 uses notification;
221 description "none";
222 }
223 description "none";
224 }
225 grouping alarm-info {
226 leaf is-transient {
227 type boolean;
228 config false;
229 description "none";
230 }
231 leaf perceived-severity {
232 type perceived-severity-type;
233 config false;
234 description "none";
235 }
236 leaf probable-cause {
237 type string;
238 config false;
239 description "none";
240 }
241 leaf service-affecting {
242 type service-affecting;
243 description "none";
244 }
245 description "none";
246 }
247 grouping tca-info {
248 leaf is-transient {
249 type boolean;
250 config false;
251 description "none";
252 }
253 leaf threshold-crossing {
254 type threshold-crossing-type;
255 description "none";
256 }
257 leaf threshold-parameter {
258 type string;
259 config false;
260 description "none";
261 }
262 leaf threshold-value {
263 type uint64;
264 config false;
265 description "none";
266 }
267 leaf perceived-severity {
268 type perceived-tca-severity;
269 description "none";
270 }
271 leaf measurement-interval {
272 type tapi-common:date-and-time;
273 description "none";
274 }
275 leaf suspect-interval-flag {
276 type boolean;
277 description "none";
278 }
279 description "none";
280 }
281
282 /**************************
283 * package type-definitions
284 **************************/
285 grouping name-and-value-change {
286 leaf value-name {
287 type string;
288 description "The name of the value. The value need not have a name.";
289 }
290 leaf old-value {
291 type string;
292 description "The value";
293 }
294 leaf new-value {
295 type string;
296 description "The value";
297 }
298 description "A scoped name-value triple, including old value and new value";
299 }
300 typedef notification-type {
301 type enumeration {
302 enum OBJECT_CREATION {
303 description "Not a normal state. The system is unable to determine the correct value.";
304 }
305 enum OBJECT_DELETION {
Toru Furusawa28988892017-10-30 17:28:40 -0700306 description "none";
307 }
Ai Hamano06163902018-12-06 09:18:20 +0900308 enum ATTRIBUTE_VALUE_CHANGE {
309 description "none";
310 }
311 enum ALARM_EVENT {
312 description "none";
313 }
314 enum THRESHOLD_CROSSING_ALERT {
315 description "none";
316 }
317 }
318 description "List of supported Notifications types.";
319 }
320 typedef object-type {
321 type enumeration {
322 enum TOPOLOGY {
323 description "none";
324 }
325 enum NODE {
326 description "none";
327 }
328 enum LINK {
329 description "none";
330 }
331 enum CONNECTION {
332 description "none";
333 }
334 enum PATH {
335 description "none";
336 }
337 enum CONNECTIVITY_SERVICE {
338 description "none";
339 }
340 enum VIRTUAL_NETWORK_SERVICE {
341 description "none";
342 }
343 enum PATH_COMPUTATION_SERVICE {
344 description "none";
345 }
346 enum NODE_EDGE_POINT {
347 description "none";
348 }
349 enum SERVICE_INTERFACE_POINT {
350 description "none";
351 }
352 enum CONNECTION_END_POINT {
353 description "none";
354 }
355 enum MAINTENANCE_ENTITY_GROUP {
356 description "none";
357 }
358 enum MAINTENANCE_ENTITY {
359 description "none";
360 }
361 enum MEG_END_POINT {
362 description "none";
363 }
364 enum MEG_INTERMEDIATE_POINT {
365 description "none";
366 }
367 enum SWITCH_CONTROL {
368 description "none";
369 }
370 enum SWITCH {
371 description "none";
372 }
373 enum ROUTE {
374 description "none";
375 }
376 enum NODE_RULE_GROUP {
377 description "none";
378 }
379 enum INTER_RULE_GROUP {
380 description "none";
381 }
382 enum RULE {
383 description "none";
384 }
385 enum OAM_JOB {
386 description "none";
387 }
388 }
389 description "The list of TAPI Global Object Class types on which Notifications can be raised.";
390 }
391 typedef source-indicator {
392 type enumeration {
393 enum RESOURCE_OPERATION {
394 description "none";
395 }
396 enum MANAGEMENT_OPERATION {
397 description "none";
398 }
399 enum UNKNOWN {
400 description "none";
401 }
402 }
403 description "none";
404 }
405 typedef subscription-state {
406 type enumeration {
407 enum SUSPENDED {
408 description "none";
409 }
410 enum ACTIVE {
411 description "none";
412 }
413 }
414 description "none";
415 }
416 typedef perceived-severity-type {
417 type enumeration {
418 enum CRITICAL {
419 description "none";
420 }
421 enum MAJOR {
422 description "none";
423 }
424 enum MINOR {
425 description "none";
426 }
427 enum WARNING {
428 description "none";
429 }
430 enum CLEARED {
431 description "none";
432 }
433 }
434 description "none";
435 }
436 typedef threshold-crossing-type {
437 type enumeration {
438 enum THRESHOLD_ABOVE {
439 description "none";
440 }
441 enum THRESHOLD_BELOW {
442 description "none";
443 }
444 enum CLEARED {
445 description "none";
446 }
447 }
448 description "none";
449 }
450 typedef service-affecting {
451 type enumeration {
452 enum SERVICE_AFFECTING {
453 description "none";
454 }
455 enum NOT_SERVICE_AFFECTING {
456 description "none";
457 }
458 enum UNKNOWN {
459 description "none";
460 }
461 }
462 description "none";
463 }
464 typedef perceived-tca-severity {
465 type enumeration {
466 enum WARNING {
467 description "none";
468 }
469 enum CLEAR {
470 description "none";
471 }
472 }
473 description "none";
474 }
475
476 /**************************
477 * package interfaces
478 **************************/
479 rpc get-supported-notification-types {
480 description "none";
481 output {
482 leaf-list supported-notification-types {
483 type notification-type;
484 min-elements 1;
485 description "none";
486 }
487 leaf-list supported-object-types {
488 type object-type;
489 min-elements 1;
490 description "none";
491 }
492 }
493 }
494 rpc create-notification-subscription-service {
495 description "none";
496 input {
497 container subscription-filter {
498 uses subscription-filter;
499 description "none";
500 }
501 leaf subscription-state {
502 type subscription-state;
503 description "none";
504 }
505 }
506 output {
507 container subscription-service {
508 uses notification-subscription-service;
509 description "none";
510 }
511 }
512 }
513 rpc update-notification-subscription-service {
514 description "none";
515 input {
516 leaf subscription-id-or-name {
517 type string;
Toru Furusawa28988892017-10-30 17:28:40 -0700518 description "none";
519 }
520 container subscription-filter {
521 uses subscription-filter;
522 description "none";
523 }
524 leaf subscription-state {
525 type subscription-state;
526 description "none";
527 }
Toru Furusawa28988892017-10-30 17:28:40 -0700528 }
Ai Hamano06163902018-12-06 09:18:20 +0900529 output {
530 container subscription-service {
531 uses notification-subscription-service;
Toru Furusawa28988892017-10-30 17:28:40 -0700532 description "none";
533 }
Toru Furusawa28988892017-10-30 17:28:40 -0700534 }
Ai Hamano06163902018-12-06 09:18:20 +0900535 }
536 rpc delete-notification-subscription-service {
537 description "none";
538 input {
539 leaf subscription-id-or-name {
Toru Furusawa28988892017-10-30 17:28:40 -0700540 type string;
541 description "none";
542 }
Toru Furusawa28988892017-10-30 17:28:40 -0700543 }
Ai Hamano06163902018-12-06 09:18:20 +0900544 output {
545 container subscription-service {
546 uses notification-subscription-service;
547 description "none";
548 }
549 }
550 }
551 rpc get-notification-subscription-service-details {
552 description "none";
553 input {
554 leaf subscription-id-or-name {
Toru Furusawa28988892017-10-30 17:28:40 -0700555 type string;
Ai Hamano06163902018-12-06 09:18:20 +0900556 description "none";
Toru Furusawa28988892017-10-30 17:28:40 -0700557 }
Toru Furusawa28988892017-10-30 17:28:40 -0700558 }
Ai Hamano06163902018-12-06 09:18:20 +0900559 output {
560 container subscription-service {
561 uses notification-subscription-service;
562 description "none";
563 }
564 }
565 }
566 rpc get-notification-subscription-service-list {
567 description "none";
568 output {
569 list subscription-service {
Toru Furusawa28988892017-10-30 17:28:40 -0700570 key 'uuid';
571 uses notification-subscription-service;
572 description "none";
573 }
Ai Hamano06163902018-12-06 09:18:20 +0900574 }
575 }
576 rpc get-notification-list {
577 description "none";
578 input {
579 leaf subscription-id-or-name {
580 type string;
581 description "none";
582 }
583 leaf time-period {
584 type string;
585 description "none";
586 }
587 }
588 output {
Toru Furusawa28988892017-10-30 17:28:40 -0700589 list notification {
590 key 'uuid';
Toru Furusawa28988892017-10-30 17:28:40 -0700591 uses notification;
592 description "none";
593 }
Toru Furusawa28988892017-10-30 17:28:40 -0700594 }
Ai Hamano06163902018-12-06 09:18:20 +0900595 }
Toru Furusawa28988892017-10-30 17:28:40 -0700596}