MD-SAL Statistics Manager - Added sending request and caching response
[controller.git] / opendaylight / md-sal / model / model-flow-statistics / src / main / yang / group-statistics.yang
1 module opendaylight-group-statistics {
2     namespace "urn:opendaylight:group:statistics";
3     prefix groupstat;
4
5     import yang-ext {prefix ext; revision-date "2013-07-09";}
6     import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
7     import opendaylight-group-types {prefix group-types;revision-date "2013-10-18";}
8     import flow-capable-transaction {prefix tr;}
9     
10     revision "2013-11-11" {
11         description "Initial revision of group statistics service";
12     }
13     
14     typedef group-stats-ref {
15         type instance-identifier;
16     }
17     
18     grouping group-stats-response {
19         uses "inv:node-context-ref";
20
21         list group-statistics{
22                 uses group-types:group-statistics;
23         }
24     }
25
26     typedef group-features-ref {
27         type instance-identifier;
28     }
29     
30     grouping group-features-response {
31         uses "inv:node-context-ref";
32
33         uses group-types:group-features;
34     }
35
36     typedef group-desc-ref {
37         type instance-identifier;
38     }
39     
40     grouping group-desc-response {
41         uses "inv:node-context-ref";
42
43         list group-desc-stats {
44                 uses group-types:group-desc-stats;
45         }
46     }
47     
48     container group-all-statistics {
49         container group-stats {
50                 uses group-stats-response;
51         }
52         
53         container group-features {
54                         uses group-features-response;
55                 }
56                 
57                 container group-desc {
58                         uses group-desc-response;
59                 }
60     }
61
62         // RPC calls
63         rpc get-all-group-statistics {
64                 input {
65             uses inv:node-context-ref;
66         }
67         output {
68                 uses group-stats-response;
69             uses tr:transaction-aware;
70         }
71         
72         }
73         
74         rpc get-group-statistics {
75                 input {
76             uses inv:node-context-ref;
77             leaf group-id{
78                 type group-types:group-id;
79             }
80         }
81         output {
82             uses group-stats-response;
83             uses tr:transaction-aware;
84         }
85         
86         }
87         
88         rpc get-group-description {
89                 input {
90             uses inv:node-context-ref;
91         }
92         output {
93             uses group-desc-response;
94             uses tr:transaction-aware;
95         }
96         }
97         
98         rpc get-group-features {
99                 input {
100             uses inv:node-context-ref;
101         }
102         output {
103             uses group-features-response;
104             uses tr:transaction-aware;
105         }
106         }
107         
108
109         //Notification calls
110         
111         notification group-statistics-updated {
112             leaf group-stats-id {
113             type group-stats-ref;
114         }
115                 
116                 uses group-stats-response;
117         uses tr:transaction-aware;
118         }
119         
120         notification group-desc-stats-updated {
121                 leaf group-desc-id {
122             type group-desc-ref;
123         }
124         
125                 uses group-desc-response;
126         uses tr:transaction-aware;
127         }
128
129         notification group-features-updated {
130                 leaf group-features-id {
131             type group-features-ref;
132         }
133         
134                 uses group-features-response;
135         uses tr:transaction-aware;
136         }
137 }