module nbi-notifications { yang-version 1.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 2022-11-21; } import tapi-notification { prefix tapi-notification; revision-date 2022-11-21; } import tapi-fm { prefix tapi-fm; revision-date 2022-11-21; } 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 "2023-07-28" { description "Migration towards TAPI 2.4"; } revision 2023-07-26 { description "Adding service-rpc-result data details to the publish-notification-process-service"; } 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 alarm-tca-info { container alarm-info { uses tapi-fm:alarm-info; description "none"; } container tca-info { uses tapi-fm:tca-info; description "none"; } } grouping notification-tapi-service { leaf notification-type { type tapi-notification:notification-type; description "none"; } leaf target-object-type { type tapi-common: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"; } leaf layer-protocol-qualifier { type tapi-common:layer-protocol-qualifier; config false; 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"; } uses alarm-tca-info; uses tapi-common:global-class; 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 alarm-tca-info; uses tapi-notification:notification; } }