remove consumer from features
[packetcable.git] / packetcable-model / src / main / yang / packetcable-service.yang
1 module packetcable-service{
2     namespace "urn:opendaylight:packetcable:service";
3     prefix pcmm;
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 ietf-inet-types {prefix inet;revision-date 2010-09-24;}
8     import packetcable-cmts {prefix cmts; }
9     import packetcable-traffic-profile {prefix tp; }
10     import flow-capable-transaction {prefix tr;}
11
12
13     revision "2014-01-20" {
14         description "Initial revision of packetcable service";
15     }        
16     
17     grouping node-cmts {
18         uses "inv:node-context-ref";        
19         uses cmts:cmts-instance;
20     }
21
22     /** Base configuration structure **/
23     grouping update-cmts {
24         uses "inv:node-context-ref";
25         
26         container original-cmts {
27             uses cmts:cmts-instance;
28         }
29         container updated-cmts {
30             uses cmts:cmts-instance;
31         }
32     }
33
34     rpc cmts-add {
35         input {
36             uses tr:transaction-metadata;
37             leaf cmts-ref {
38                 type cmts:cmts-reference;
39             }
40             uses node-cmts;            
41         }
42         output {
43             uses tr:transaction-aware;
44         }
45     }
46
47     rpc cmts-remove {
48         input {
49             uses tr:transaction-metadata;
50             leaf cmts-ref {
51                 type cmts:cmts-reference;
52             }
53             uses node-cmts;            
54         }
55         output {
56             uses tr:transaction-aware;
57         }
58     }
59
60     rpc cmts-update {
61         input {
62             uses tr:transaction-metadata;
63             leaf cmts-ref {
64                 type cmts:cmts-reference;
65             }
66             uses update-cmts;            
67         }
68         output {
69             uses tr:transaction-aware;
70         }
71     } 
72
73     notification cmts-added {
74         uses tr:transaction-metadata;
75         leaf cmts-ref {
76             type cmts:cmts-reference;
77         }
78         uses node-cmts;
79         uses tr:transaction-aware;
80     }
81
82     notification cmts-updated {
83         uses tr:transaction-metadata;
84         leaf cmts-ref {
85             type cmts:cmts-reference;
86         }
87         uses node-cmts;
88         uses tr:transaction-aware;
89     }
90
91     notification cmts-removed {
92         uses tr:transaction-metadata;
93         leaf cmts-ref {
94             type cmts:cmts-reference;
95         }
96         uses node-cmts;
97         uses tr:transaction-aware;
98     }    
99
100     grouping update-tp-defaults-flowspec {
101         // uses "tp:tp-context-ref";
102         
103         container original-tp {
104             uses tp:flowspec-envelope;
105         }
106         container update-tp {
107             uses tp:flowspec-envelope;
108         }
109     }
110
111     rpc traffic-profile-get-defaults-flowspec {
112         input {
113             uses tr:transaction-metadata;
114             leaf tp-ref {
115                 type tp:tp-reference;
116             }
117         }
118         output {
119             uses update-tp-defaults-flowspec;            
120             uses tr:transaction-aware;
121         }
122     } 
123
124     rpc traffic-profile-update-defaults-flowspec {
125         input {
126             uses tr:transaction-metadata;
127             leaf tp-ref {
128                 type tp:tp-reference;
129             }
130             uses update-tp-defaults-flowspec;            
131         }
132         output {
133             uses tr:transaction-aware;
134         }
135     } 
136
137     grouping update-tp-defaults-docsis-service-class-name {
138        //  uses "tp:tp-context-ref";
139         
140         container original-tp {
141             uses tp:flowspec-envelope;
142         }
143         container update-tp {
144             uses tp:flowspec-envelope;
145         }
146     }
147
148     grouping update-tp-defaults-best-effort {
149         // uses "tp:tp-context-ref";
150         
151         container original-tp {
152             uses tp:default-envelope;
153         }
154         container update-tp {
155             uses tp:default-envelope;
156         }
157     }
158
159     rpc traffic-profile-get-defaults-best-effort {
160         input {
161             uses tr:transaction-metadata;
162             leaf tp-ref {
163                 type tp:tp-reference;
164             }
165         }
166         output {
167             uses update-tp-defaults-best-effort;            
168             uses tr:transaction-aware;
169         }
170     } 
171
172     rpc traffic-profile-update-defaults-best-effort {
173         input {
174             uses tr:transaction-metadata;
175             leaf tp-ref {
176                 type tp:tp-reference;
177             }
178             uses update-tp-defaults-best-effort;            
179         }
180         output {
181             uses tr:transaction-aware;
182         }
183     } 
184
185     
186     grouping update-tp-defaults-non-real-time-polling-service {
187         // uses "tp:tp-context-ref";
188         
189         container original-tp {
190             uses tp:default-envelope;
191         }
192         container update-tp {
193             uses tp:default-envelope;
194         }
195     }
196
197     rpc traffic-profile-get-defaults-non-real-time-polling-service {
198
199         input {
200             uses tr:transaction-metadata;
201             leaf tp-ref {
202                 type tp:tp-reference;
203             }
204         }
205         output {
206             uses update-tp-defaults-non-real-time-polling-service;
207             uses tr:transaction-aware;
208         }
209     } 
210
211     rpc traffic-profile-update-defaults-non-real-time-polling-service {
212
213         input {
214             uses tr:transaction-metadata;
215             leaf tp-ref {
216                 type tp:tp-reference;
217             }
218             uses update-tp-defaults-non-real-time-polling-service;
219         }
220         output {
221             uses tr:transaction-aware;
222         }
223     } 
224
225
226     grouping update-tp-defaults-real-time-polling-service {
227         // uses "tp:tp-context-ref";
228         
229         container original-tp {
230             uses tp:default-envelope;
231         }
232         container update-tp {
233             uses tp:default-envelope;
234         }
235     }
236
237     rpc traffic-profile-get-defaults-real-time-polling-service {
238
239         input {
240             uses tr:transaction-metadata;
241             leaf tp-ref {
242                 type tp:tp-reference;
243             }
244         }
245         output {
246             uses update-tp-defaults-real-time-polling-service;
247             uses tr:transaction-aware;
248         }
249     } 
250
251     rpc traffic-profile-update-defaults-real-time-polling-service {
252
253         input {
254             uses tr:transaction-metadata;
255             leaf tp-ref {
256                 type tp:tp-reference;
257             }
258             uses update-tp-defaults-real-time-polling-service;
259         }
260         output {
261             uses tr:transaction-aware;
262         }
263     } 
264
265     grouping update-tp-defaults-unsolicited-grant-service {
266         // uses "tp:tp-context-ref";
267         
268         container original-tp {
269             uses tp:ugs-envelope;
270         }
271         container update-tp {
272             uses tp:ugs-envelope;
273         }
274     }
275
276     rpc traffic-profile-get-defaults-unsolicited-grant-service {
277         input {
278             uses tr:transaction-metadata;
279             leaf tp-ref {
280                 type tp:tp-reference;
281             }
282         }
283         output {
284             uses update-tp-defaults-unsolicited-grant-service;
285             uses tr:transaction-aware;
286         }
287     } 
288
289     rpc traffic-profile-update-defaults-unsolicited-grant-service {
290         input {
291             uses tr:transaction-metadata;
292             leaf tp-ref {
293                 type tp:tp-reference;
294             }
295             uses update-tp-defaults-unsolicited-grant-service;
296         }
297         output {
298             uses tr:transaction-aware;
299         }
300     } 
301
302     grouping update-tp-defaults-unsolicited-grant-service-with-activity-detection {
303         // uses "tp:tp-context-ref";
304         
305         container original-tp {
306             uses tp:ugs-envelope;
307         }
308         container update-tp {
309             uses tp:ugs-envelope;
310         }
311     }
312
313     rpc traffic-profile-get-defaults-unsolicited-grant-service-with-activity-detection {
314
315         input {
316             uses tr:transaction-metadata;
317             leaf tp-ref {
318                 type tp:tp-reference;
319             }
320         }
321         output {
322             uses update-tp-defaults-unsolicited-grant-service-with-activity-detection;
323             uses tr:transaction-aware;
324         }
325     } 
326
327     rpc traffic-profile-update-defaults-unsolicited-grant-service-with-activity-detection {
328         input {
329             uses tr:transaction-metadata;
330             leaf tp-ref {
331                 type tp:tp-reference;
332             }
333             uses update-tp-defaults-unsolicited-grant-service-with-activity-detection;
334         }
335         output {
336             uses tr:transaction-aware;
337         }
338     } 
339
340     
341     grouping update-tp-defaults-downstream-service {
342         // uses "tp:tp-context-ref";
343         
344         container original-tp {
345             uses tp:us-envelope;
346         }
347
348         container update-tp {
349             uses tp:us-envelope;
350         }
351     }
352
353     rpc traffic-profile-get-defaults-downstream-service {
354         input {
355             uses tr:transaction-metadata;
356             leaf tp-ref {
357                 type tp:tp-reference;
358             }
359         }
360         output {
361             uses update-tp-defaults-downstream-service;
362             uses tr:transaction-aware;
363         }
364     } 
365
366     rpc traffic-profile-update-defaults-downstream-service {
367         input {
368             uses tr:transaction-metadata;
369             leaf tp-ref {
370                 type tp:tp-reference;
371             }
372             uses update-tp-defaults-downstream-service;
373         }
374         output {
375             uses tr:transaction-aware;
376         }
377     } 
378
379     
380 }