428025a58df58180085c4811f441f7f5a0e5d702
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / yang / opendaylight-binding-broker-impl.yang
1 module opendaylight-sal-binding-broker-impl {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl";
4     prefix "binding-impl";
5
6     import config { prefix config; revision-date 2013-04-05; }
7     import opendaylight-md-sal-binding {prefix sal;}
8     import opendaylight-md-sal-dom {prefix dom;}
9     import opendaylight-md-sal-common {prefix common;}
10
11     description
12         "Service definition for Binding Aware MD-SAL.";
13
14     revision "2013-10-28" {
15         description
16             "Initial revision";
17     }
18
19     identity binding-dom-mapping-service {
20         base config:service-type;
21         config:java-class "org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService";
22     }
23
24
25     identity binding-broker-impl {
26         base config:module-type;
27         config:provided-service sal:binding-broker-osgi-registry;
28         config:provided-service sal:binding-rpc-registry;
29         config:java-name-prefix BindingBrokerImpl;
30     }
31
32     identity binding-data-broker {
33         base config:module-type;
34         config:provided-service sal:binding-data-broker;
35         config:provided-service sal:binding-data-consumer-broker;
36         config:java-name-prefix DataBrokerImpl;
37     }
38
39     identity binding-data-compatible-broker {
40         base config:module-type;
41         config:provided-service sal:binding-data-broker;
42         config:provided-service sal:binding-data-consumer-broker;
43         config:java-name-prefix ForwardedCompatibleDataBrokerImpl;
44     }
45
46     identity binding-rpc-broker {
47         base config:module-type;
48         config:provided-service sal:binding-rpc-registry;
49         config:java-name-prefix RpcBrokerImpl;
50     }
51
52     identity binding-notification-broker {
53         base config:module-type;
54         config:provided-service sal:binding-notification-service;
55         config:provided-service sal:binding-notification-subscription-service;
56         config:java-name-prefix NotificationBrokerImpl;
57     }
58
59     identity runtime-generated-mapping {
60         base config:module-type;
61         config:provided-service binding-dom-mapping-service;
62         config:java-name-prefix RuntimeMapping;
63     }
64
65     augment "/config:modules/config:module/config:configuration" {
66         case binding-broker-impl {
67             when "/config:modules/config:module/config:type = 'binding-broker-impl'";
68
69             /*
70             container rpc-registry {
71                 uses config:service-ref {
72                     refine type {
73                         mandatory true;
74                         config:required-identity sal:binding-rpc-registry;
75                     }
76                 }
77             }*/
78
79             container data-broker {
80                 uses config:service-ref {
81                     refine type {
82                         mandatory true;
83                         config:required-identity sal:binding-data-broker;
84                     }
85                 }
86             }
87
88             container notification-service {
89                 uses config:service-ref {
90                     refine type {
91                         mandatory true;
92                         config:required-identity sal:binding-notification-service;
93                     }
94                 }
95             }
96         }
97     }
98
99     augment "/config:modules/config:module/config:configuration" {
100         case binding-data-broker {
101             when "/config:modules/config:module/config:type = 'binding-data-broker'";
102             container dom-broker {
103                 uses config:service-ref {
104                     refine type {
105                         mandatory true;
106                         config:required-identity dom:dom-broker-osgi-registry;
107                     }
108                 }
109             }
110
111             container mapping-service {
112                 uses config:service-ref {
113                     refine type {
114                         mandatory true;
115                         config:required-identity binding-dom-mapping-service;
116                     }
117                 }
118             }
119         }
120     }
121
122     augment "/config:modules/config:module/config:configuration" {
123         case binding-data-compatible-broker {
124             when "/config:modules/config:module/config:type = 'binding-data-compatible-broker'";
125
126             container dom-async-broker {
127                 uses config:service-ref {
128                     refine type {
129                         mandatory true;
130                         config:required-identity dom:dom-broker-osgi-registry;
131                     }
132                 }
133             }
134
135             container binding-mapping-service {
136                 uses config:service-ref {
137                     refine type {
138                         mandatory true;
139                         config:required-identity binding-dom-mapping-service;
140                     }
141                 }
142             }
143         }
144     }
145
146
147     augment "/config:modules/config:module/config:state" {
148         case runtime-generated-mapping {
149             when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
150         }
151     }
152
153     augment "/config:modules/config:module/config:state" {
154         case binding-data-broker {
155             when "/config:modules/config:module/config:type = 'binding-data-broker'";
156             container data {
157                 uses common:data-state;
158             }
159         }
160     }
161     augment "/config:modules/config:module/config:state" {
162         case binding-rpc-broker {
163             when "/config:modules/config:module/config:type = 'binding-rpc-broker'";
164             uses common:rpc-state;
165         }
166     }
167     augment "/config:modules/config:module/config:state" {
168         case binding-notification-broker {
169             when "/config:modules/config:module/config:type = 'binding-notification-broker'";
170             uses common:notification-state;
171         }
172     }
173 }

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.