Add TAPI Topology simulated network function type.
[sim/o1-interface.git] / ntsimulator / deploy / smo-nts-ng-topology-server / yang / tapi-notification@2020-06-16.yang
1 module tapi-notification {\r
2     namespace "urn:onf:otcc:yang:tapi-notification";\r
3     prefix tapi-notification;\r
4     import tapi-common {\r
5         prefix tapi-common;\r
6     }\r
7     organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
8     contact "\r
9          Project Web: <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OTCC/TAPI__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G39KDEbL$ >\r
10          Project List: <mailto:transport-api@opennetworking.org>\r
11          Editor: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>\r
12          Andrea Mazzini <mailto:andrea.mazzini@nokia.com>\r
13          Arturo Mayoral <mailto:arturo.mayoral@telefonica.com>\r
14          Nigel Davis <mailto:ndavis@ciena.com>";\r
15     description "\r
16         This module contains TAPI Notification Model definitions.\r
17         Source: TapiNotification.uml\r
18         - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.\r
19         - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r
20           <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/EagleUmlYang__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G4QHf0bG$ >\r
21           and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r
22           <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OIMT/UML*-*YANG*Guidelines__;Kysr!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G8IIivez$ >\r
23         - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.\r
24           As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r
25         - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.\r
26           The YANG model backward compatibility criteria are outlined in section 11 of <https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7950__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G3bKxRf2$ >.\r
27           YANG models included in this release may not be backward compatible with previous TAPI releases.\r
28         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
29         License: This module is distributed under the Apache License 2.0";\r
30     revision 2020-06-16 {\r
31         description "ONF Transport API version 2.1.3.\r
32                    - Added DEVICE to ObjectType.\r
33                    Changes included in this TAPI release (v2.1.3) are listed in\r
34                    <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.3.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7tqhxFK$ >";\r
35         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
36                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
37     }\r
38     revision 2019-07-16 {\r
39         description "ONF Transport API version 2.1.2.\r
40                    Changes included in this TAPI release (v2.1.2) are listed in\r
41                    <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.2.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7eDS6-t$ >";\r
42         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
43                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
44     }\r
45     revision 2018-12-10 {\r
46         description "ONF Transport API version 2.1.1.\r
47                    Changes included in this TAPI release (v2.1.1) are listed in\r
48                    <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1ftwU5J$ >";\r
49         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
50                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
51     }\r
52     revision 2018-10-16 {\r
53         description "ONF Transport API version 2.1.0.\r
54                    Changes included in this TAPI release (v2.1.0) are listed in\r
55                    <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G-5JStw4$ >";\r
56         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
57                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
58     }\r
59     revision 2018-03-07 {\r
60         description "ONF Transport API version 2.0.2\r
61         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
62         Changes in this revision: <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1Yf4AAN$ >";\r
63         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
64                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G27-pJK_$ >";\r
65     }\r
66     revision 2018-02-16 {\r
67         description "ONF Transport API version 2.0.1\r
68         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
69         Changes in this revision: <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G8RnGvXg$ >";\r
70         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
71                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6Gy6YoeAv$ >";\r
72     }\r
73     revision 2018-01-02 {\r
74         description "ONF Transport API version 2.0.0\r
75         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
76         Changes in this revision: <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6GyqYDgG_$ >";\r
77         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
78                   <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1V9Thk9$ >";\r
79     }\r
80     augment "/tapi-common:context" {\r
81         container notification-context {\r
82             uses notification-context;\r
83             description "Augments the base TAPI Context with NotificationService information";\r
84         }\r
85         description "Augments the base TAPI Context with NotificationService information";\r
86     }\r
87     /**************************\r
88     * package object-classes\r
89     **************************/ \r
90     grouping notification-subscription-service {\r
91         list notification {\r
92             key 'uuid';\r
93             config false;\r
94             uses notification;\r
95             description "none";\r
96         }\r
97         container notification-channel {\r
98             config false;\r
99             uses notification-channel;\r
100             description "none";\r
101         }\r
102         container subscription-filter {\r
103             uses subscription-filter;\r
104             description "none";\r
105         }\r
106         leaf subscription-state {\r
107             type subscription-state;\r
108             description "none";\r
109         }\r
110         leaf-list supported-notification-types {\r
111             type notification-type;\r
112             config false;\r
113             min-elements 1;\r
114             description "none";\r
115         }\r
116         leaf-list supported-object-types {\r
117             type object-type;\r
118             config false;\r
119             min-elements 1;\r
120             description "none";\r
121         }\r
122         uses tapi-common:service-spec;\r
123         description "none";\r
124     }\r
125     grouping subscription-filter {\r
126         leaf-list requested-notification-types {\r
127             type notification-type;\r
128             description "none";\r
129         }\r
130         leaf-list requested-object-types {\r
131             type object-type;\r
132             description "none";\r
133         }\r
134         leaf-list requested-layer-protocols {\r
135             type tapi-common:layer-protocol-name;\r
136             description "none";\r
137         }\r
138         leaf-list requested-object-identifier {\r
139             type tapi-common:uuid;\r
140             description "none";\r
141         }\r
142         leaf include-content {\r
143             type boolean;\r
144             description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";\r
145         }\r
146         uses tapi-common:local-class;\r
147         description "none";\r
148     }\r
149     notification notification {\r
150         uses notification;\r
151         description "none";\r
152     }\r
153     grouping notification {\r
154         leaf notification-type {\r
155             type notification-type;\r
156             description "none";\r
157         }\r
158         leaf target-object-type {\r
159             type object-type;\r
160             description "none";\r
161         }\r
162         leaf target-object-identifier {\r
163             type tapi-common:uuid;\r
164             description "none";\r
165         }\r
166         list target-object-name {\r
167             key 'value-name';\r
168             min-elements 1;\r
169             uses tapi-common:name-and-value;\r
170             description "none";\r
171         }\r
172         leaf event-time-stamp {\r
173             type tapi-common:date-and-time;\r
174             description "none";\r
175         }\r
176         leaf sequence-number {\r
177             type uint64;\r
178             config false;\r
179             description "A monotonous increasing sequence number associated with the notification.\r
180                 The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";\r
181         }\r
182         leaf source-indicator {\r
183             type source-indicator;\r
184             description "none";\r
185         }\r
186         leaf layer-protocol-name {\r
187             type tapi-common:layer-protocol-name;\r
188             description "none";\r
189         }\r
190         list changed-attributes {\r
191             key 'value-name';\r
192             uses name-and-value-change;\r
193             description "none";\r
194         }\r
195         list additional-info {\r
196             key 'value-name';\r
197             uses tapi-common:name-and-value;\r
198             description "none";\r
199         }\r
200         leaf additional-text {\r
201             type string;\r
202             description "none";\r
203         }\r
204         container tca-info {\r
205             uses tca-info;\r
206             description "none";\r
207         }\r
208         container alarm-info {\r
209             uses alarm-info;\r
210             description "none";\r
211         }\r
212         uses tapi-common:resource-spec;\r
213         description "none";\r
214     }\r
215     grouping notification-channel {\r
216         leaf stream-address {\r
217             type string;\r
218             config false;\r
219             description "The address/location/URI of the channel/stream to which the subscribed notifications are published.\r
220                 This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";\r
221         }\r
222         leaf next-sequence-no {\r
223             type uint64;\r
224             config false;\r
225             description "The sequence number of the next notification that will be published on the channel";\r
226         }\r
227         uses tapi-common:local-class;\r
228         description "none";\r
229     }\r
230     grouping notification-context {\r
231         list notif-subscription {\r
232             key 'uuid';\r
233             uses notification-subscription-service;\r
234             description "none";\r
235         }\r
236         list notification {\r
237             key 'uuid';\r
238             config false;\r
239             uses notification;\r
240             description "none";\r
241         }\r
242         description "none";\r
243     }\r
244     grouping alarm-info {\r
245         leaf is-transient {\r
246             type boolean;\r
247             config false;\r
248             description "none";\r
249         }\r
250         leaf perceived-severity {\r
251             type perceived-severity-type;\r
252             config false;\r
253             description "none";\r
254         }\r
255         leaf probable-cause {\r
256             type string;\r
257             config false;\r
258             description "none";\r
259         }\r
260         leaf service-affecting {\r
261             type service-affecting;\r
262             description "none";\r
263         }\r
264         description "none";\r
265     }\r
266     grouping tca-info {\r
267         leaf is-transient {\r
268             type boolean;\r
269             config false;\r
270             description "none";\r
271         }\r
272         leaf threshold-crossing {\r
273             type threshold-crossing-type;\r
274             description "none";\r
275         }\r
276         leaf threshold-parameter {\r
277             type string;\r
278             config false;\r
279             description "none";\r
280         }\r
281         leaf threshold-value {\r
282             type uint64;\r
283             config false;\r
284             description "none";\r
285         }\r
286         leaf perceived-severity {\r
287             type perceived-tca-severity;\r
288             description "none";\r
289         }\r
290         leaf measurement-interval {\r
291             type tapi-common:date-and-time;\r
292             description "none";\r
293         }\r
294         leaf suspect-interval-flag {\r
295             type boolean;\r
296             description "none";\r
297         }\r
298         description "none";\r
299     }\r
300 \r
301     /**************************\r
302     * package type-definitions\r
303     **************************/ \r
304     grouping name-and-value-change {\r
305         leaf value-name {\r
306             type string;\r
307             description "The name of the value. The value need not have a name.";\r
308         }\r
309         leaf old-value {\r
310             type string;\r
311             description "The value";\r
312         }\r
313         leaf new-value {\r
314             type string;\r
315             description "The value";\r
316         }\r
317         description "A scoped name-value triple, including old value and new value";\r
318     }\r
319     typedef notification-type {\r
320         type enumeration {\r
321             enum OBJECT_CREATION {\r
322                 description "Not a normal state. The system is unable to determine the correct value.";\r
323             }\r
324             enum OBJECT_DELETION {\r
325                 description "none";\r
326             }\r
327             enum ATTRIBUTE_VALUE_CHANGE {\r
328                 description "none";\r
329             }\r
330             enum ALARM_EVENT {\r
331                 description "none";\r
332             }\r
333             enum THRESHOLD_CROSSING_ALERT {\r
334                 description "none";\r
335             }\r
336         }\r
337         description "List of supported Notifications types.";\r
338     }\r
339     typedef object-type {\r
340         type enumeration {\r
341             enum TOPOLOGY {\r
342                 description "none";\r
343             }\r
344             enum NODE {\r
345                 description "none";\r
346             }\r
347             enum LINK {\r
348                 description "none";\r
349             }\r
350             enum CONNECTION {\r
351                 description "none";\r
352             }\r
353             enum PATH {\r
354                 description "none";\r
355             }\r
356             enum CONNECTIVITY_SERVICE {\r
357                 description "none";\r
358             }\r
359             enum VIRTUAL_NETWORK_SERVICE {\r
360                 description "none";\r
361             }\r
362             enum PATH_COMPUTATION_SERVICE {\r
363                 description "none";\r
364             }\r
365             enum NODE_EDGE_POINT {\r
366                 description "none";\r
367             }\r
368             enum SERVICE_INTERFACE_POINT {\r
369                 description "none";\r
370             }\r
371             enum CONNECTION_END_POINT {\r
372                 description "none";\r
373             }\r
374             enum MAINTENANCE_ENTITY_GROUP {\r
375                 description "none";\r
376             }\r
377             enum MAINTENANCE_ENTITY {\r
378                 description "none";\r
379             }\r
380             enum MEG_END_POINT {\r
381                 description "none";\r
382             }\r
383             enum MEG_INTERMEDIATE_POINT {\r
384                 description "none";\r
385             }\r
386             enum SWITCH_CONTROL {\r
387                 description "none";\r
388             }\r
389             enum SWITCH {\r
390                 description "none";\r
391             }\r
392             enum ROUTE {\r
393                 description "none";\r
394             }\r
395             enum NODE_RULE_GROUP {\r
396                 description "none";\r
397             }\r
398             enum INTER_RULE_GROUP {\r
399                 description "none";\r
400             }\r
401             enum RULE {\r
402                 description "none";\r
403             }\r
404             enum OAM_JOB {\r
405                 description "none";\r
406             }\r
407             enum ACCESS_PORT {\r
408                 description "none";\r
409             }\r
410             enum EQUIPMENT {\r
411                 description "none";\r
412             }\r
413             enum HOLDER {\r
414                 description "none";\r
415             }\r
416             enum PHYSICAL_SPAN {\r
417                 description "none";\r
418             }\r
419             enum ABSTRACT_STRAND {\r
420                 description "none";\r
421             }\r
422             enum DEVICE {\r
423                 description "none";\r
424             }\r
425         }\r
426         description "The list of TAPI Global Object Class types on which Notifications can be raised.";\r
427     }\r
428     typedef source-indicator {\r
429         type enumeration {\r
430             enum RESOURCE_OPERATION {\r
431                 description "none";\r
432             }\r
433             enum MANAGEMENT_OPERATION {\r
434                 description "none";\r
435             }\r
436             enum UNKNOWN {\r
437                 description "none";\r
438             }\r
439         }\r
440         description "none";\r
441     }\r
442     typedef subscription-state {\r
443         type enumeration {\r
444             enum SUSPENDED {\r
445                 description "none";\r
446             }\r
447             enum ACTIVE {\r
448                 description "none";\r
449             }\r
450         }\r
451         description "none";\r
452     }\r
453     typedef perceived-severity-type {\r
454         type enumeration {\r
455             enum CRITICAL {\r
456                 description "none";\r
457             }\r
458             enum MAJOR {\r
459                 description "none";\r
460             }\r
461             enum MINOR {\r
462                 description "none";\r
463             }\r
464             enum WARNING {\r
465                 description "none";\r
466             }\r
467             enum CLEARED {\r
468                 description "none";\r
469             }\r
470         }\r
471         description "none";\r
472     }\r
473     typedef threshold-crossing-type {\r
474         type enumeration {\r
475             enum THRESHOLD_ABOVE {\r
476                 description "none";\r
477             }\r
478             enum THRESHOLD_BELOW {\r
479                 description "none";\r
480             }\r
481             enum CLEARED {\r
482                 description "none";\r
483             }\r
484         }\r
485         description "none";\r
486     }\r
487     typedef service-affecting {\r
488         type enumeration {\r
489             enum SERVICE_AFFECTING {\r
490                 description "none";\r
491             }\r
492             enum NOT_SERVICE_AFFECTING {\r
493                 description "none";\r
494             }\r
495             enum UNKNOWN {\r
496                 description "none";\r
497             }\r
498         }\r
499         description "none";\r
500     }\r
501     typedef perceived-tca-severity {\r
502         type enumeration {\r
503             enum WARNING {\r
504                 description "none";\r
505             }\r
506             enum CLEAR {\r
507                 description "none";\r
508             }\r
509         }\r
510         description "none";\r
511     }\r
512 \r
513     /**************************\r
514     * package interfaces\r
515     **************************/ \r
516     rpc get-supported-notification-types {\r
517         description "none";\r
518         output {\r
519             leaf-list supported-notification-types {\r
520                 type notification-type;\r
521                 min-elements 1;\r
522                 description "none";\r
523             }\r
524             leaf-list supported-object-types {\r
525                 type object-type;\r
526                 min-elements 1;\r
527                 description "none";\r
528             }\r
529         }\r
530     }\r
531     rpc create-notification-subscription-service {\r
532         description "none";\r
533         input {\r
534             container subscription-filter {\r
535                 uses subscription-filter;\r
536                 description "none";\r
537             }\r
538             leaf subscription-state {\r
539                 type subscription-state;\r
540                 description "none";\r
541             }\r
542         }\r
543         output {\r
544             container subscription-service {\r
545                 uses notification-subscription-service;\r
546                 description "none";\r
547             }\r
548         }\r
549     }\r
550     rpc update-notification-subscription-service {\r
551         description "none";\r
552         input {\r
553             leaf subscription-id-or-name {\r
554                 type string;\r
555                 description "none";\r
556             }\r
557             container subscription-filter {\r
558                 uses subscription-filter;\r
559                 description "none";\r
560             }\r
561             leaf subscription-state {\r
562                 type subscription-state;\r
563                 description "none";\r
564             }\r
565         }\r
566         output {\r
567             container subscription-service {\r
568                 uses notification-subscription-service;\r
569                 description "none";\r
570             }\r
571         }\r
572     }\r
573     rpc delete-notification-subscription-service {\r
574         description "none";\r
575         input {\r
576             leaf subscription-id-or-name {\r
577                 type string;\r
578                 description "none";\r
579             }\r
580         }\r
581         output {\r
582             container subscription-service {\r
583                 uses notification-subscription-service;\r
584                 description "none";\r
585             }\r
586         }\r
587     }\r
588     rpc get-notification-subscription-service-details {\r
589         description "none";\r
590         input {\r
591             leaf subscription-id-or-name {\r
592                 type string;\r
593                 description "none";\r
594             }\r
595         }\r
596         output {\r
597             container subscription-service {\r
598                 uses notification-subscription-service;\r
599                 description "none";\r
600             }\r
601         }\r
602     }\r
603     rpc get-notification-subscription-service-list {\r
604         description "none";\r
605         output {\r
606             list subscription-service {\r
607                 key 'uuid';\r
608                 uses notification-subscription-service;\r
609                 description "none";\r
610             }\r
611         }\r
612     }\r
613     rpc get-notification-list {\r
614         description "none";\r
615         input {\r
616             leaf subscription-id-or-name {\r
617                 type string;\r
618                 description "none";\r
619             }\r
620             leaf time-period {\r
621                 type string;\r
622                 description "none";\r
623             }\r
624         }\r
625         output {\r
626             list notification {\r
627                 key 'uuid';\r
628                 uses notification;\r
629                 description "none";\r
630             }\r
631         }\r
632     }\r
633 \r
634 }\r