1 module event-aggregator {
2 // FIXME: this module needs to be split up to concepts and API
3 // as the concepts are shared with the other model in this
6 namespace "urn:cisco:params:xml:ns:yang:messagebus:eventaggregator";
7 prefix "eventaggregator";
9 organization "Cisco Systems, Inc.";
10 contact "Robert Gallas";
13 "Module implementing message but RPC.
15 Copyright (c)2014 Cisco Systems, Inc. All rights reserved.
17 This program and the accompanying materials are made available
18 under the terms of the Eclipse Public License v1.0 which
19 accompanies this distribution, and is available at
20 http://www.eclipse.org/legal/epl-v10.html";
22 revision "2014-12-02" {
23 description "Initial revision";
31 // FIXME: make this a regular expression
32 description "A match pattern. Specifically this is a wildcard pattern.";
35 typedef notification-pattern {
38 "Pattern for matching candidate notification types. This pattern is to be
39 applied against the concatenation of the namespace of the module which
40 defines that particular notification, followed by a single colon, and
41 then followed by notification identifier, as supplied in the argument to
42 the notification statement.";
50 "A topic identifier. It uniquely defines a topic as seen by the the user
51 of this model's RPCs";
54 // FIXME: we would really like to share instances here, but that requires some sort
55 // of sane reference counting. The reason for sharing is the data path part
56 // of notification delivery -- multiple creators of topics can still share
57 // a single data path.
60 "Create a new topic. A topic is an aggregation of several notification
61 types from a set of nodes. Each successful invocation results in a unique
62 topic being created. The caller is responsible for removing the topic
63 once it is no longer needed.";
66 leaf notification-pattern {
67 type notification-pattern;
70 "Pattern matching notification which should be forwarded into this
74 leaf node-id-pattern {
78 "Pattern for matching candidate event source nodes when looking
79 for contributors to the topic. The pattern will be applied against
80 /network-topology/topology/node/node-id";
94 "Destroy a topic. No further messages will be delivered to it.";
104 notification topic-notification {
106 "Notification of an event occuring on a particular node. This notification
107 acts as an encapsulation for the event being delivered.";
113 "Topic to which this event is being delivered.";
117 // FIXME: should be topology node ID
121 "Node ID of the node which generated the event.";
127 "Encapsulated notification. The format is the XML representation of
128 a notification according to RFC6020 section 7.14.2.";