module notification-impl { yang-version 1; namespace "urn:honeycomb:params:xml:ns:yang:notification:impl"; prefix "hc-notif-i"; import config { prefix config; revision-date 2013-04-05; } import netconf-northbound-notification { prefix notify-api; revision-date 2015-08-06; } import notification-api { prefix hc-notif-a; revision-date 2016-06-01; } import opendaylight-md-sal-dom { prefix dom; revision-date 2013-10-28;} import opendaylight-sal-binding-broker-impl { prefix binding-impl; revision-date 2013-10-28;} description "Module definition for honeycomb notification implementations"; revision "2016-06-01" { description "Initial revision"; } identity honeycomb-notification-manager { base config:module-type; config:java-name-prefix HoneycombNotificationManager; config:provided-service hc-notif-a:honeycomb-notification-collector; } augment "/config:modules/config:module/config:configuration" { case honeycomb-notification-manager { when "/config:modules/config:module/config:type = 'honeycomb-notification-manager'"; container runtime-mapping-codec { uses config:service-ref { refine type { mandatory true; config:required-identity binding-impl:binding-dom-mapping-service; } } } container dom-notification-service { uses config:service-ref { refine type { mandatory true; config:required-identity hc-notif-a:dom-notification-service; } } } list notification-producers { uses config:service-ref { refine type { mandatory true; config:required-identity hc-notif-a:honeycomb-notification-producer; } } } } } identity honeycomb-dom-notification-service { base config:module-type; config:provided-service hc-notif-a:dom-notification-service; } augment "/config:modules/config:module/config:configuration" { case honeycomb-dom-notification-service { when "/config:modules/config:module/config:type = 'honeycomb-dom-notification-service'"; leaf queue-depth { type uint16; description "Size of the queue for outgoing notifications"; } } } identity honeycomb-notification-to-netconf-translator { base config:module-type; config:java-name-prefix HoneycombNotificationToNetconfTranslator; } augment "/config:modules/config:module/config:configuration" { case honeycomb-notification-to-netconf-translator { when "/config:modules/config:module/config:type = 'honeycomb-notification-to-netconf-translator'"; container netconf-notification-collector { uses config:service-ref { refine type { mandatory true; config:required-identity notify-api:netconf-notification-collector; } } } container honeycomb-notification-collector { uses config:service-ref { refine type { mandatory true; config:required-identity hc-notif-a:honeycomb-notification-collector; } } } container netconf-notification-registry { uses config:service-ref { refine type { mandatory true; config:required-identity notify-api:netconf-notification-registry; } } } container schema-service { uses config:service-ref { refine type { mandatory true; config:required-identity dom:schema-service; } } } container dom-notification-service { uses config:service-ref { refine type { mandatory true; config:required-identity hc-notif-a:dom-notification-service; } } } leaf netconf-stream-name { type string; mandatory true; description "Name of the stream under which all the registered notifications should be emitted"; } leaf netconf-stream-description { type string; mandatory true; description "Description for the stream under which all the registered notifications should be emitted"; } } } }