blob: 4447e2916ca764a654858324b719144e9132e515 [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";
8 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>";
13 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";
Yuta HIGUCHI7f165b12018-03-25 19:05:29 -070018 revision 2018-03-07 {
Yuta HIGUCHIe1ca23f2018-04-06 10:05:45 -070019 description "ONF Transport API version 2.0.2
20 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
21 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";
22 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
23 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";
24 }
25 revision 2018-02-16 {
26 description "ONF Transport API version 2.0.1
27 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
28 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";
29 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
30 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";
31 }
32 revision 2018-01-02 {
33 description "ONF Transport API version 2.0.0
34 This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.
35 Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";
36 reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
37 <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";
Toru Furusawa28988892017-10-30 17:28:40 -070038 }
39 augment "/tapi-common:context" {
40 uses notification-context;
41 description "Augments the base TAPI Context with NotificationService information";
42 }
43 /***********************
44 * package object-classes
45 **********************/
46 grouping notification-subscription-service {
47 list notification {
48 key 'uuid';
49 config false;
50 uses notification;
51 description "none";
52 }
53 container notification-channel {
54 uses notification-channel;
55 description "none";
56 }
57 container subscription-filter {
58 uses subscription-filter;
59 description "none";
60 }
61 leaf subscription-state {
62 type subscription-state;
63 description "none";
64 }
65 leaf-list supported-notification-types {
66 type notification-type;
67 config false;
68 min-elements 1;
69 description "none";
70 }
71 leaf-list supported-object-types {
72 type object-type;
73 config false;
74 min-elements 1;
75 description "none";
76 }
77 uses tapi-common:service-spec;
78 description "none";
79 }
80 grouping subscription-filter {
81 leaf-list requested-notification-types {
82 type notification-type;
83 config false;
84 description "none";
85 }
86 leaf-list requested-object-types {
87 type object-type;
88 config false;
89 description "none";
90 }
91 leaf-list requested-layer-protocols {
92 type tapi-common:layer-protocol-name;
93 config false;
94 description "none";
95 }
96 leaf-list requested-object-identifier {
97 type tapi-common:uuid;
98 config false;
99 description "none";
100 }
101 leaf include-content {
102 type boolean;
103 config false;
104 description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";
105 }
106 uses tapi-common:local-class;
107 description "none";
108 }
109 notification notification {
110 uses notification;
111 description "none";
112 }
113 grouping notification {
114 leaf notification-type {
115 type notification-type;
116 description "none";
117 }
118 leaf target-object-type {
119 type object-type;
120 description "none";
121 }
122 leaf target-object-identifier {
123 type tapi-common:uuid;
124 description "none";
125 }
126 list target-object-name {
127 key 'value-name';
128 min-elements 1;
129 uses tapi-common:name-and-value;
130 description "none";
131 }
132 leaf event-time-stamp {
133 type tapi-common:date-and-time;
134 description "none";
135 }
136 leaf sequence-number {
137 type uint64;
138 config false;
139 description "A monotonous increasing sequence number associated with the notification.
140 The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";
141 }
142 leaf source-indicator {
143 type source-indicator;
144 description "none";
145 }
146 leaf layer-protocol-name {
147 type tapi-common:layer-protocol-name;
148 description "none";
149 }
150 list changed-attributes {
151 key 'value-name';
152 uses name-and-value-change;
153 description "none";
154 }
155 list additional-info {
156 key 'value-name';
157 uses tapi-common:name-and-value;
158 description "none";
159 }
160 leaf additional-text {
161 type string;
162 description "none";
163 }
164 container tca-info {
165 uses tca-info;
166 description "none";
167 }
168 container alarm-info {
169 uses alarm-info;
170 description "none";
171 }
172 uses tapi-common:resource-spec;
173 description "none";
174 }
175 grouping notification-channel {
176 leaf stream-address {
177 type string;
178 config false;
179 description "The address/location/URI of the channel/stream to which the subscribed notifications are published.
180 This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";
181 }
182 leaf next-sequence-no {
183 type uint64;
184 config false;
185 description "The sequence number of the next notification that will be published on the channel";
186 }
187 uses tapi-common:local-class;
188 description "none";
189 }
190 grouping notification-context {
191 list notif-subscription {
192 key 'uuid';
193 uses notification-subscription-service;
194 description "none";
195 }
196 list notification {
197 key 'uuid';
198 config false;
199 uses notification;
200 description "none";
201 }
202 description "none";
203 }
204 grouping alarm-info {
205 leaf is-transient {
206 type boolean;
207 config false;
208 description "none";
209 }
210 leaf pervceived-severity {
211 type perceived-serverity-type;
212 config false;
213 description "none";
214 }
215 leaf probable-cause {
216 type string;
217 config false;
218 description "none";
219 }
220 leaf service-affecting {
221 type service-affecting;
222 description "none";
223 }
224 description "none";
225 }
226 grouping tca-info {
227 leaf is-transient {
228 type boolean;
229 config false;
230 description "none";
231 }
232 leaf threshold-crossing {
233 type threshold-crossing-type;
234 description "none";
235 }
236 leaf threshold-parameter {
237 type string;
238 config false;
239 description "none";
240 }
241 leaf threshold-value {
242 type uint64;
243 config false;
244 description "none";
245 }
246 description "none";
247 }
248
249 /***********************
250 * package type-definitions
251 **********************/
252 grouping name-and-value-change {
253 leaf value-name {
254 type string;
255 description "The name of the value. The value need not have a name.";
256 }
257 leaf old-value {
258 type string;
259 description "The value";
260 }
261 leaf new-value {
262 type string;
263 description "The value";
264 }
265 description "A scoped name-value triple, including old value and new value";
266 }
267 typedef notification-type {
268 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500269 enum OBJECT_CREATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700270 description "Not a normal state. The system is unable to determine the correct value.";
271 }
wu6a418d22018-02-02 01:49:21 -0500272 enum OBJECT_DELETION {
Toru Furusawa28988892017-10-30 17:28:40 -0700273 description "none";
274 }
wu6a418d22018-02-02 01:49:21 -0500275 enum ATTRIBUTE_VALUE_CHANGE {
Toru Furusawa28988892017-10-30 17:28:40 -0700276 description "none";
277 }
wu6a418d22018-02-02 01:49:21 -0500278 enum ALARM_EVENT {
Toru Furusawa28988892017-10-30 17:28:40 -0700279 description "none";
280 }
wu6a418d22018-02-02 01:49:21 -0500281 enum THRESHOLD_CROSSING_ALERT {
Toru Furusawa28988892017-10-30 17:28:40 -0700282 description "none";
283 }
284 }
wu6a418d22018-02-02 01:49:21 -0500285 description "List of supported Notifications types.";
Toru Furusawa28988892017-10-30 17:28:40 -0700286 }
287 typedef object-type {
288 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500289 enum TOPOLOGY {
Toru Furusawa28988892017-10-30 17:28:40 -0700290 description "none";
291 }
wu6a418d22018-02-02 01:49:21 -0500292 enum NODE {
Toru Furusawa28988892017-10-30 17:28:40 -0700293 description "none";
294 }
wu6a418d22018-02-02 01:49:21 -0500295 enum LINK {
Toru Furusawa28988892017-10-30 17:28:40 -0700296 description "none";
297 }
wu6a418d22018-02-02 01:49:21 -0500298 enum CONNECTION {
Toru Furusawa28988892017-10-30 17:28:40 -0700299 description "none";
300 }
wu6a418d22018-02-02 01:49:21 -0500301 enum PATH {
Toru Furusawa28988892017-10-30 17:28:40 -0700302 description "none";
303 }
wu6a418d22018-02-02 01:49:21 -0500304 enum CONNECTIVITY_SERVICE {
Toru Furusawa28988892017-10-30 17:28:40 -0700305 description "none";
306 }
wu6a418d22018-02-02 01:49:21 -0500307 enum VIRTUAL_NETWORK_SERVICE {
Toru Furusawa28988892017-10-30 17:28:40 -0700308 description "none";
309 }
wu6a418d22018-02-02 01:49:21 -0500310 enum PATH_COMPUTATION_SERVICE {
Toru Furusawa28988892017-10-30 17:28:40 -0700311 description "none";
312 }
wu6a418d22018-02-02 01:49:21 -0500313 enum NODE_EDGE_POINT {
Toru Furusawa28988892017-10-30 17:28:40 -0700314 description "none";
315 }
wu6a418d22018-02-02 01:49:21 -0500316 enum SERVICE_INTERFACE_POINT {
Toru Furusawa28988892017-10-30 17:28:40 -0700317 description "none";
318 }
wu6a418d22018-02-02 01:49:21 -0500319 enum CONNECTION_END_POINT {
Toru Furusawa28988892017-10-30 17:28:40 -0700320 description "none";
321 }
Yuta HIGUCHI80d0bbd2018-02-28 11:13:11 -0800322 enum MAINTENANCE_ENTITY_GROUP {
323 description "none";
324 }
325 enum MAINTENANCE_ENTITY {
326 description "none";
327 }
328 enum MEG_END_POINT {
329 description "none";
330 }
331 enum MEG_INTERMEDIATE_POINT {
332 description "none";
333 }
334 enum SWITCH_CONTROL {
335 description "none";
336 }
337 enum SWITCH {
338 description "none";
339 }
340 enum ROUTE {
341 description "none";
342 }
343 enum NODE_RULE_GROUP {
344 description "none";
345 }
346 enum INTER_RULE_GROUP {
347 description "none";
348 }
349 enum RULE {
350 description "none";
351 }
Toru Furusawa28988892017-10-30 17:28:40 -0700352 }
wu6a418d22018-02-02 01:49:21 -0500353 description "The list of TAPI Global Object Class types on which Notifications can be raised.";
Toru Furusawa28988892017-10-30 17:28:40 -0700354 }
355 typedef source-indicator {
356 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500357 enum RESOURCE_OPERATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700358 description "none";
359 }
wu6a418d22018-02-02 01:49:21 -0500360 enum MANAGEMENT_OPERATION {
Toru Furusawa28988892017-10-30 17:28:40 -0700361 description "none";
362 }
wu6a418d22018-02-02 01:49:21 -0500363 enum UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700364 description "none";
365 }
366 }
367 description "none";
368 }
369 typedef subscription-state {
370 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500371 enum SUSPENDED {
Toru Furusawa28988892017-10-30 17:28:40 -0700372 description "none";
373 }
wu6a418d22018-02-02 01:49:21 -0500374 enum ACTIVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700375 description "none";
376 }
377 }
378 description "none";
379 }
380 typedef perceived-serverity-type {
381 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500382 enum CRITICAL {
Toru Furusawa28988892017-10-30 17:28:40 -0700383 description "none";
384 }
wu6a418d22018-02-02 01:49:21 -0500385 enum MAJOR {
Toru Furusawa28988892017-10-30 17:28:40 -0700386 description "none";
387 }
wu6a418d22018-02-02 01:49:21 -0500388 enum MINOR {
Toru Furusawa28988892017-10-30 17:28:40 -0700389 description "none";
390 }
wu6a418d22018-02-02 01:49:21 -0500391 enum WARNING {
Toru Furusawa28988892017-10-30 17:28:40 -0700392 description "none";
393 }
wu6a418d22018-02-02 01:49:21 -0500394 enum CLEARED {
Toru Furusawa28988892017-10-30 17:28:40 -0700395 description "none";
396 }
397 }
398 description "none";
399 }
400 typedef threshold-crossing-type {
401 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500402 enum THRESHOLD_ABOVE {
Toru Furusawa28988892017-10-30 17:28:40 -0700403 description "none";
404 }
wu6a418d22018-02-02 01:49:21 -0500405 enum THRESHOLD_BELOW {
Toru Furusawa28988892017-10-30 17:28:40 -0700406 description "none";
407 }
wu6a418d22018-02-02 01:49:21 -0500408 enum CLEARED {
Toru Furusawa28988892017-10-30 17:28:40 -0700409 description "none";
410 }
411 }
412 description "none";
413 }
414 typedef service-affecting {
415 type enumeration {
wu6a418d22018-02-02 01:49:21 -0500416 enum SERVICE_AFFECTING {
Toru Furusawa28988892017-10-30 17:28:40 -0700417 description "none";
418 }
wu6a418d22018-02-02 01:49:21 -0500419 enum NOT_SERVICE_AFFECTING {
Toru Furusawa28988892017-10-30 17:28:40 -0700420 description "none";
421 }
wu6a418d22018-02-02 01:49:21 -0500422 enum UNKNOWN {
Toru Furusawa28988892017-10-30 17:28:40 -0700423 description "none";
424 }
425 }
426 description "none";
427 }
428
429 /***********************
430 * package interfaces
431 **********************/
432 rpc get-supported-notification-types {
433 description "none";
434 output {
435 leaf-list supported-notification-types {
436 type notification-type;
437 min-elements 1;
438 description "none";
439 }
440 leaf-list supported-object-types {
441 type object-type;
442 min-elements 1;
443 description "none";
444 }
445 }
446 }
447 rpc create-notification-subscription-service {
448 description "none";
449 input {
450 container subscription-filter {
451 uses subscription-filter;
452 description "none";
453 }
454 leaf subscription-state {
455 type subscription-state;
456 description "none";
457 }
458 }
459 output {
460 container subscription-service {
461 uses notification-subscription-service;
462 description "none";
463 }
464 }
465 }
466 rpc update-notification-subscription-service {
467 description "none";
468 input {
469 leaf subscription-id-or-name {
470 type string;
471 description "none";
472 }
473 container subscription-filter {
474 uses subscription-filter;
475 description "none";
476 }
477 leaf subscription-state {
478 type subscription-state;
479 description "none";
480 }
481 }
482 output {
483 container subscription-service {
484 uses notification-subscription-service;
485 description "none";
486 }
487 }
488 }
489 rpc delete-notification-subscription-service {
490 description "none";
491 input {
492 leaf subscription-id-or-name {
493 type string;
494 description "none";
495 }
496 }
497 output {
498 container subscription-service {
499 uses notification-subscription-service;
500 description "none";
501 }
502 }
503 }
504 rpc get-notification-subscription-service-details {
505 description "none";
506 input {
507 leaf subscription-id-or-name {
508 type string;
509 description "none";
510 }
511 }
512 output {
513 container subscription-service {
514 uses notification-subscription-service;
515 description "none";
516 }
517 }
518 }
519 rpc get-notification-subscription-service-list {
520 description "none";
521 output {
522 list subscription-service {
523 uses notification-subscription-service;
524 description "none";
525 }
526 }
527 }
528 rpc get-notification-list {
529 description "none";
530 input {
531 leaf subscription-id-or-name {
532 type string;
533 description "none";
534 }
535 leaf time-period {
536 type string;
537 description "none";
538 }
539 }
540 output {
541 list notification {
542 uses notification;
543 description "none";
544 }
545 }
546 }
547
548}