Merge "Bug 2697: Improvement wrong response handling, missing message"
[controller.git] / opendaylight / md-sal / messagebus-api / src / main / yang / event-source.yang
1 module event-source {
2     yang-version 1;
3     namespace "urn:cisco:params:xml:ns:yang:messagebus:eventsource";
4     prefix "eventsource";
5
6     import event-aggregator { prefix aggr; }
7     import network-topology { prefix nt; revision-date "2013-10-21"; }
8     import opendaylight-inventory {prefix inv; revision-date "2013-08-19"; }
9     import yang-ext {prefix ext; revision-date "2013-07-09"; }
10
11     organization "Cisco Systems, Inc.";
12     contact "Robert Gallas";
13
14     description
15         "Base model for a topology where individual nodes can produce events.
16
17         Module implementing event source topology and encapped notification.
18
19         Copyright (c)2014 Cisco Systems, Inc. All rights reserved.
20
21         This program and the accompanying materials are made available
22         under the terms of the Eclipse Public License v1.0 which
23         accompanies this distribution, and is available at
24         http://www.eclipse.org/legal/epl-v10.html";
25
26     revision "2014-12-02" {
27         description "first revision";
28     }
29
30     // FIXME: expand this
31     typedef join-topic-status {
32         type enumeration {
33             enum up;
34             enum down;
35         }
36         description "Object status";
37     }
38
39     // FIXME: migrate to topology
40     typedef node-ref {
41         type leafref {
42             path "/inv:nodes/inv:node/inv:id";
43         }
44     }
45
46     grouping topology-event-source-type {
47         container topology-event-source {
48             presence "indicates an event source-aware topology";
49         }
50     }
51
52     rpc join-topic {
53         input {
54             leaf node {
55                ext:context-reference "inv:node-context";
56                type "instance-identifier";
57             }
58             leaf topic-id {
59                 type aggr:topic-id;
60                 description "in current implementation notification-pattern is defined by topic-id.
61                              By persisting topic definition we could omit notification-pattern";
62             }
63             leaf notification-pattern {
64                 type aggr:notification-pattern;
65             }
66         }
67
68         output {
69             leaf status {
70                 type join-topic-status;
71             }
72         }
73     }
74
75     augment "/nt:network-topology/nt:topology/nt:topology-types" {
76         uses topology-event-source-type;
77     }
78
79     augment "/nt:network-topology/nt:topology/nt:node" {
80         when "../../nt:topology-types/topology-event-source";
81         leaf event-source-node {
82             type node-ref;
83         }
84     }
85 }