--- /dev/null
+module nbi-notifications {
+ yang-version 1;
+ namespace "nbi-notifications";
+ prefix nbinotifications;
+
+ import org-openroadm-service {
+ prefix oor-service;
+ }
+ import org-openroadm-common-service-types {
+ prefix org-openroadm-common-service-types;
+ }
+ import org-openroadm-common-state-types {
+ prefix org-openroadm-common-state-types;
+ }
+ import org-openroadm-resource {
+ prefix org-openroadm-resource;
+ }
+ import tapi-common {
+ prefix tapi-common;
+ revision-date 2018-12-10;
+ }
+ import tapi-notification {
+ prefix tapi-notification;
+ revision-date 2018-12-10;
+ }
+
+ organization
+ "transportPCE";
+ contact
+ "transportPCE committers - ODL";
+ description
+ "YANG definitions for using REST API in NBI notifications module. Copyright
+ (c) 2020 ORANGE and others. All rights reserved.";
+
+ revision 2021-10-13 {
+ description
+ "Implement new models, RPC for TAPI service notification";
+ }
+
+ revision 2023-07-26 {
+ description
+ "Adding service-rpc-result data details to the publish-notification-process-service";
+ }
+
+ revision 2021-08-13 {
+ description
+ "Rename the groupings, containers and RPCs";
+ }
+
+ revision 2021-06-28 {
+ description
+ "Implement new models, RPC for service alarms";
+ }
+
+ revision 2020-11-30 {
+ description
+ "Initial revision of NBI notifications";
+ }
+
+ grouping notification-process-service {
+ leaf message {
+ type string;
+ mandatory true;
+ description
+ "Message for the specified service";
+ }
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be created in the ROADM network, e.g., CLFI, CLCI, etc.
+ This is reported against the service, but may not get reflected in the service in the network.";
+ }
+ leaf common-id {
+ type string;
+ description
+ "To be used by the ROADM controller to identify the routing constraints
+ received from planning application (PED).";
+ }
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ }
+ container service-a-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ container service-z-end {
+ uses org-openroadm-common-service-types:service-endpoint;
+ }
+ leaf response-failed {
+ type string;
+ description
+ "Response of the error if the service request encountered an anomaly";
+ }
+ leaf operational-state {
+ type org-openroadm-common-state-types:state;
+ config false;
+ description
+ "Operational State: Actual state of service";
+ }
+ leaf is-temp-service {
+ type boolean;
+ default "false";
+ description
+ "Used to indicate if the it is a temp-service or not";
+ }
+ container aToZ {
+ when "../is-temp-service = 'true'" {
+ description
+ "a-to-z is only used for temp-service-cerate";
+ }
+ uses org-openroadm-resource:common-och-otsi-attributes;
+ uses org-openroadm-resource:path-computation-outputs;
+ }
+ container zToA {
+ when "../is-temp-service = 'true'" {
+ description
+ "a-to-z is only used for temp-service-cerate";
+ }
+ uses org-openroadm-resource:common-och-otsi-attributes;
+ uses org-openroadm-resource:path-computation-outputs;
+ }
+ }
+ grouping notification-alarm-service {
+ leaf message {
+ type string;
+ mandatory true;
+ description
+ "Message for the specified service";
+ }
+ leaf service-name {
+ type string;
+ mandatory true;
+ description
+ "Identifier for the service to be created in the ROADM network, e.g., CLFI, CLCI, etc.
+ This is reported against the service, but may not get reflected in the service in the network.";
+ }
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ }
+ leaf operational-state {
+ type org-openroadm-common-state-types:state;
+ config false;
+ description
+ "Operational State: Actual state of service";
+ }
+ }
+
+ grouping notification-tapi-service {
+ leaf notification-type {
+ type tapi-notification:notification-type;
+ description "none";
+ }
+ leaf target-object-type {
+ type tapi-notification:object-type;
+ description "none";
+ }
+ leaf target-object-identifier {
+ type tapi-common:uuid;
+ description "none";
+ }
+ list target-object-name {
+ key 'value-name';
+ min-elements 1;
+ uses tapi-common:name-and-value;
+ description "none";
+ }
+ leaf event-time-stamp {
+ type tapi-common:date-and-time;
+ description "none";
+ }
+ leaf sequence-number {
+ type uint64;
+ config false;
+ description "A monotonous increasing sequence number associated with the notification.
+ The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined.";
+ }
+ leaf source-indicator {
+ type tapi-notification:source-indicator;
+ description "none";
+ }
+ leaf layer-protocol-name {
+ type tapi-common:layer-protocol-name;
+ description "none";
+ }
+ list changed-attributes {
+ key 'value-name';
+ uses tapi-notification:name-and-value-change;
+ description "none";
+ }
+ list additional-info {
+ key 'value-name';
+ uses tapi-common:name-and-value;
+ description "none";
+ }
+ leaf additional-text {
+ type string;
+ description "none";
+ }
+ container tca-info {
+ uses tapi-notification:tca-info;
+ description "none";
+ }
+ container alarm-info {
+ uses tapi-notification:alarm-info;
+ description "none";
+ }
+ uses tapi-common:resource-spec;
+ description "none";
+ }
+
+ container notification-process-service {
+ description
+ "Model used to send a notification from a service request";
+ uses notification-process-service;
+ }
+
+ container notification-alarm-service {
+ description
+ "Model used to send a notification from the service listener";
+ uses notification-alarm-service;
+ }
+
+ container notification-tapi-service {
+ description
+ "Model used to send a tapi notification";
+ uses notification-tapi-service;
+ }
+
+ rpc get-notifications-process-service {
+ description "Get the notifications service sent by ServiceHandler through filtering connection type";
+ input {
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ description
+ "Type connection of the service ";
+ }
+ leaf id-consumer {
+ type string;
+ mandatory true;
+ description
+ "Unique ID for the consumer";
+ }
+ leaf group-id {
+ type string;
+ mandatory true;
+ description
+ "ID Group for the consumer";
+ }
+ }
+ output {
+ list notifications-process-service {
+ uses notification-process-service;
+ }
+ }
+ }
+
+ rpc get-notifications-alarm-service {
+ description "Get the notifications alarm service sent by ServiceListener through filtering connection type";
+ input {
+ leaf connection-type {
+ type org-openroadm-common-service-types:connection-type;
+ mandatory true;
+ description
+ "Type connection of the service";
+ }
+ leaf id-consumer {
+ type string;
+ mandatory true;
+ description
+ "Unique ID for the consumer";
+ }
+ leaf group-id {
+ type string;
+ mandatory true;
+ description
+ "ID Group for the consumer";
+ }
+ }
+ output {
+ list notifications-alarm-service {
+ uses notification-alarm-service;
+ }
+ }
+ }
+
+ notification publish-notification-process-service {
+ description "Publish the notifications service through a publisher";
+ leaf publisher-name {
+ type string;
+ mandatory true;
+ description
+ "Name of the publisher";
+ }
+ uses notification-process-service;
+ }
+
+ notification publish-notification-alarm-service {
+ description "Publish the notifications service alarm through a publisher";
+ leaf publisher-name {
+ type string;
+ mandatory true;
+ description
+ "Name of the publisher";
+ }
+ uses notification-alarm-service;
+ }
+
+ notification publish-tapi-notification-service {
+ description "Publish the TAPI notifications service for topic";
+ leaf topic {
+ type string;
+ mandatory true;
+ description
+ "Topic where to send the notification service";
+ }
+ uses tapi-notification:notification;
+ }
+}