--- /dev/null
+module tapi-notification {\r
+ namespace "urn:onf:otcc:yang:tapi-notification";\r
+ prefix tapi-notification;\r
+ import tapi-common {\r
+ prefix tapi-common;\r
+ }\r
+ organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
+ contact "\r
+ Project Web: <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OTCC/TAPI__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G39KDEbL$ >\r
+ Project List: <mailto:transport-api@opennetworking.org>\r
+ Editor: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>\r
+ Andrea Mazzini <mailto:andrea.mazzini@nokia.com>\r
+ Arturo Mayoral <mailto:arturo.mayoral@telefonica.com>\r
+ Nigel Davis <mailto:ndavis@ciena.com>";\r
+ description "\r
+ This module contains TAPI Notification Model definitions.\r
+ Source: TapiNotification.uml\r
+ - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.\r
+ - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/EagleUmlYang__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G4QHf0bG$ >\r
+ and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r
+ <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OIMT/UML*-*YANG*Guidelines__;Kysr!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G8IIivez$ >\r
+ - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.\r
+ As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r
+ - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.\r
+ 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
+ YANG models included in this release may not be backward compatible with previous TAPI releases.\r
+ Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
+ License: This module is distributed under the Apache License 2.0";\r
+ revision 2020-06-16 {\r
+ description "ONF Transport API version 2.1.3.\r
+ - Added DEVICE to ObjectType.\r
+ Changes included in this TAPI release (v2.1.3) are listed in\r
+ <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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+ }\r
+ revision 2019-07-16 {\r
+ description "ONF Transport API version 2.1.2.\r
+ Changes included in this TAPI release (v2.1.2) are listed in\r
+ <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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+ }\r
+ revision 2018-12-10 {\r
+ description "ONF Transport API version 2.1.1.\r
+ Changes included in this TAPI release (v2.1.1) are listed in\r
+ <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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+ }\r
+ revision 2018-10-16 {\r
+ description "ONF Transport API version 2.1.0.\r
+ Changes included in this TAPI release (v2.1.0) are listed in\r
+ <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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G7KeAhLL$ >";\r
+ }\r
+ revision 2018-03-07 {\r
+ description "ONF Transport API version 2.0.2\r
+ This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+ 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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G27-pJK_$ >";\r
+ }\r
+ revision 2018-02-16 {\r
+ description "ONF Transport API version 2.0.1\r
+ This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+ 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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6Gy6YoeAv$ >";\r
+ }\r
+ revision 2018-01-02 {\r
+ description "ONF Transport API version 2.0.0\r
+ This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+ 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
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+ <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G1V9Thk9$ >";\r
+ }\r
+ augment "/tapi-common:context" {\r
+ container notification-context {\r
+ uses notification-context;\r
+ description "Augments the base TAPI Context with NotificationService information";\r
+ }\r
+ description "Augments the base TAPI Context with NotificationService information";\r
+ }\r
+ /**************************\r
+ * package object-classes\r
+ **************************/ \r
+ grouping notification-subscription-service {\r
+ list notification {\r
+ key 'uuid';\r
+ config false;\r
+ uses notification;\r
+ description "none";\r
+ }\r
+ container notification-channel {\r
+ config false;\r
+ uses notification-channel;\r
+ description "none";\r
+ }\r
+ container subscription-filter {\r
+ uses subscription-filter;\r
+ description "none";\r
+ }\r
+ leaf subscription-state {\r
+ type subscription-state;\r
+ description "none";\r
+ }\r
+ leaf-list supported-notification-types {\r
+ type notification-type;\r
+ config false;\r
+ min-elements 1;\r
+ description "none";\r
+ }\r
+ leaf-list supported-object-types {\r
+ type object-type;\r
+ config false;\r
+ min-elements 1;\r
+ description "none";\r
+ }\r
+ uses tapi-common:service-spec;\r
+ description "none";\r
+ }\r
+ grouping subscription-filter {\r
+ leaf-list requested-notification-types {\r
+ type notification-type;\r
+ description "none";\r
+ }\r
+ leaf-list requested-object-types {\r
+ type object-type;\r
+ description "none";\r
+ }\r
+ leaf-list requested-layer-protocols {\r
+ type tapi-common:layer-protocol-name;\r
+ description "none";\r
+ }\r
+ leaf-list requested-object-identifier {\r
+ type tapi-common:uuid;\r
+ description "none";\r
+ }\r
+ leaf include-content {\r
+ type boolean;\r
+ description "Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage)";\r
+ }\r
+ uses tapi-common:local-class;\r
+ description "none";\r
+ }\r
+ notification notification {\r
+ uses notification;\r
+ description "none";\r
+ }\r
+ grouping notification {\r
+ leaf notification-type {\r
+ type notification-type;\r
+ description "none";\r
+ }\r
+ leaf target-object-type {\r
+ type object-type;\r
+ description "none";\r
+ }\r
+ leaf target-object-identifier {\r
+ type tapi-common:uuid;\r
+ description "none";\r
+ }\r
+ list target-object-name {\r
+ key 'value-name';\r
+ min-elements 1;\r
+ uses tapi-common:name-and-value;\r
+ description "none";\r
+ }\r
+ leaf event-time-stamp {\r
+ type tapi-common:date-and-time;\r
+ description "none";\r
+ }\r
+ leaf sequence-number {\r
+ type uint64;\r
+ config false;\r
+ description "A monotonous increasing sequence number associated with the notification.\r
+ The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";\r
+ }\r
+ leaf source-indicator {\r
+ type source-indicator;\r
+ description "none";\r
+ }\r
+ leaf layer-protocol-name {\r
+ type tapi-common:layer-protocol-name;\r
+ description "none";\r
+ }\r
+ list changed-attributes {\r
+ key 'value-name';\r
+ uses name-and-value-change;\r
+ description "none";\r
+ }\r
+ list additional-info {\r
+ key 'value-name';\r
+ uses tapi-common:name-and-value;\r
+ description "none";\r
+ }\r
+ leaf additional-text {\r
+ type string;\r
+ description "none";\r
+ }\r
+ container tca-info {\r
+ uses tca-info;\r
+ description "none";\r
+ }\r
+ container alarm-info {\r
+ uses alarm-info;\r
+ description "none";\r
+ }\r
+ uses tapi-common:resource-spec;\r
+ description "none";\r
+ }\r
+ grouping notification-channel {\r
+ leaf stream-address {\r
+ type string;\r
+ config false;\r
+ description "The address/location/URI of the channel/stream to which the subscribed notifications are published.\r
+ This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string.";\r
+ }\r
+ leaf next-sequence-no {\r
+ type uint64;\r
+ config false;\r
+ description "The sequence number of the next notification that will be published on the channel";\r
+ }\r
+ uses tapi-common:local-class;\r
+ description "none";\r
+ }\r
+ grouping notification-context {\r
+ list notif-subscription {\r
+ key 'uuid';\r
+ uses notification-subscription-service;\r
+ description "none";\r
+ }\r
+ list notification {\r
+ key 'uuid';\r
+ config false;\r
+ uses notification;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping alarm-info {\r
+ leaf is-transient {\r
+ type boolean;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf perceived-severity {\r
+ type perceived-severity-type;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf probable-cause {\r
+ type string;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf service-affecting {\r
+ type service-affecting;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping tca-info {\r
+ leaf is-transient {\r
+ type boolean;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf threshold-crossing {\r
+ type threshold-crossing-type;\r
+ description "none";\r
+ }\r
+ leaf threshold-parameter {\r
+ type string;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf threshold-value {\r
+ type uint64;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf perceived-severity {\r
+ type perceived-tca-severity;\r
+ description "none";\r
+ }\r
+ leaf measurement-interval {\r
+ type tapi-common:date-and-time;\r
+ description "none";\r
+ }\r
+ leaf suspect-interval-flag {\r
+ type boolean;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+\r
+ /**************************\r
+ * package type-definitions\r
+ **************************/ \r
+ grouping name-and-value-change {\r
+ leaf value-name {\r
+ type string;\r
+ description "The name of the value. The value need not have a name.";\r
+ }\r
+ leaf old-value {\r
+ type string;\r
+ description "The value";\r
+ }\r
+ leaf new-value {\r
+ type string;\r
+ description "The value";\r
+ }\r
+ description "A scoped name-value triple, including old value and new value";\r
+ }\r
+ typedef notification-type {\r
+ type enumeration {\r
+ enum OBJECT_CREATION {\r
+ description "Not a normal state. The system is unable to determine the correct value.";\r
+ }\r
+ enum OBJECT_DELETION {\r
+ description "none";\r
+ }\r
+ enum ATTRIBUTE_VALUE_CHANGE {\r
+ description "none";\r
+ }\r
+ enum ALARM_EVENT {\r
+ description "none";\r
+ }\r
+ enum THRESHOLD_CROSSING_ALERT {\r
+ description "none";\r
+ }\r
+ }\r
+ description "List of supported Notifications types.";\r
+ }\r
+ typedef object-type {\r
+ type enumeration {\r
+ enum TOPOLOGY {\r
+ description "none";\r
+ }\r
+ enum NODE {\r
+ description "none";\r
+ }\r
+ enum LINK {\r
+ description "none";\r
+ }\r
+ enum CONNECTION {\r
+ description "none";\r
+ }\r
+ enum PATH {\r
+ description "none";\r
+ }\r
+ enum CONNECTIVITY_SERVICE {\r
+ description "none";\r
+ }\r
+ enum VIRTUAL_NETWORK_SERVICE {\r
+ description "none";\r
+ }\r
+ enum PATH_COMPUTATION_SERVICE {\r
+ description "none";\r
+ }\r
+ enum NODE_EDGE_POINT {\r
+ description "none";\r
+ }\r
+ enum SERVICE_INTERFACE_POINT {\r
+ description "none";\r
+ }\r
+ enum CONNECTION_END_POINT {\r
+ description "none";\r
+ }\r
+ enum MAINTENANCE_ENTITY_GROUP {\r
+ description "none";\r
+ }\r
+ enum MAINTENANCE_ENTITY {\r
+ description "none";\r
+ }\r
+ enum MEG_END_POINT {\r
+ description "none";\r
+ }\r
+ enum MEG_INTERMEDIATE_POINT {\r
+ description "none";\r
+ }\r
+ enum SWITCH_CONTROL {\r
+ description "none";\r
+ }\r
+ enum SWITCH {\r
+ description "none";\r
+ }\r
+ enum ROUTE {\r
+ description "none";\r
+ }\r
+ enum NODE_RULE_GROUP {\r
+ description "none";\r
+ }\r
+ enum INTER_RULE_GROUP {\r
+ description "none";\r
+ }\r
+ enum RULE {\r
+ description "none";\r
+ }\r
+ enum OAM_JOB {\r
+ description "none";\r
+ }\r
+ enum ACCESS_PORT {\r
+ description "none";\r
+ }\r
+ enum EQUIPMENT {\r
+ description "none";\r
+ }\r
+ enum HOLDER {\r
+ description "none";\r
+ }\r
+ enum PHYSICAL_SPAN {\r
+ description "none";\r
+ }\r
+ enum ABSTRACT_STRAND {\r
+ description "none";\r
+ }\r
+ enum DEVICE {\r
+ description "none";\r
+ }\r
+ }\r
+ description "The list of TAPI Global Object Class types on which Notifications can be raised.";\r
+ }\r
+ typedef source-indicator {\r
+ type enumeration {\r
+ enum RESOURCE_OPERATION {\r
+ description "none";\r
+ }\r
+ enum MANAGEMENT_OPERATION {\r
+ description "none";\r
+ }\r
+ enum UNKNOWN {\r
+ description "none";\r
+ }\r
+ }\r
+ description "none";\r
+ }\r
+ typedef subscription-state {\r
+ type enumeration {\r
+ enum SUSPENDED {\r
+ description "none";\r
+ }\r
+ enum ACTIVE {\r
+ description "none";\r
+ }\r
+ }\r
+ description "none";\r
+ }\r
+ typedef perceived-severity-type {\r
+ type enumeration {\r
+ enum CRITICAL {\r
+ description "none";\r
+ }\r
+ enum MAJOR {\r
+ description "none";\r
+ }\r
+ enum MINOR {\r
+ description "none";\r
+ }\r
+ enum WARNING {\r
+ description "none";\r
+ }\r
+ enum CLEARED {\r
+ description "none";\r
+ }\r
+ }\r
+ description "none";\r
+ }\r
+ typedef threshold-crossing-type {\r
+ type enumeration {\r
+ enum THRESHOLD_ABOVE {\r
+ description "none";\r
+ }\r
+ enum THRESHOLD_BELOW {\r
+ description "none";\r
+ }\r
+ enum CLEARED {\r
+ description "none";\r
+ }\r
+ }\r
+ description "none";\r
+ }\r
+ typedef service-affecting {\r
+ type enumeration {\r
+ enum SERVICE_AFFECTING {\r
+ description "none";\r
+ }\r
+ enum NOT_SERVICE_AFFECTING {\r
+ description "none";\r
+ }\r
+ enum UNKNOWN {\r
+ description "none";\r
+ }\r
+ }\r
+ description "none";\r
+ }\r
+ typedef perceived-tca-severity {\r
+ type enumeration {\r
+ enum WARNING {\r
+ description "none";\r
+ }\r
+ enum CLEAR {\r
+ description "none";\r
+ }\r
+ }\r
+ description "none";\r
+ }\r
+\r
+ /**************************\r
+ * package interfaces\r
+ **************************/ \r
+ rpc get-supported-notification-types {\r
+ description "none";\r
+ output {\r
+ leaf-list supported-notification-types {\r
+ type notification-type;\r
+ min-elements 1;\r
+ description "none";\r
+ }\r
+ leaf-list supported-object-types {\r
+ type object-type;\r
+ min-elements 1;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc create-notification-subscription-service {\r
+ description "none";\r
+ input {\r
+ container subscription-filter {\r
+ uses subscription-filter;\r
+ description "none";\r
+ }\r
+ leaf subscription-state {\r
+ type subscription-state;\r
+ description "none";\r
+ }\r
+ }\r
+ output {\r
+ container subscription-service {\r
+ uses notification-subscription-service;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc update-notification-subscription-service {\r
+ description "none";\r
+ input {\r
+ leaf subscription-id-or-name {\r
+ type string;\r
+ description "none";\r
+ }\r
+ container subscription-filter {\r
+ uses subscription-filter;\r
+ description "none";\r
+ }\r
+ leaf subscription-state {\r
+ type subscription-state;\r
+ description "none";\r
+ }\r
+ }\r
+ output {\r
+ container subscription-service {\r
+ uses notification-subscription-service;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc delete-notification-subscription-service {\r
+ description "none";\r
+ input {\r
+ leaf subscription-id-or-name {\r
+ type string;\r
+ description "none";\r
+ }\r
+ }\r
+ output {\r
+ container subscription-service {\r
+ uses notification-subscription-service;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc get-notification-subscription-service-details {\r
+ description "none";\r
+ input {\r
+ leaf subscription-id-or-name {\r
+ type string;\r
+ description "none";\r
+ }\r
+ }\r
+ output {\r
+ container subscription-service {\r
+ uses notification-subscription-service;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc get-notification-subscription-service-list {\r
+ description "none";\r
+ output {\r
+ list subscription-service {\r
+ key 'uuid';\r
+ uses notification-subscription-service;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc get-notification-list {\r
+ description "none";\r
+ input {\r
+ leaf subscription-id-or-name {\r
+ type string;\r
+ description "none";\r
+ }\r
+ leaf time-period {\r
+ type string;\r
+ description "none";\r
+ }\r
+ }\r
+ output {\r
+ list notification {\r
+ key 'uuid';\r
+ uses notification;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+\r
+}\r