-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;
- }
-
- 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 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 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 tapi-notification:notification;
- }
-}