Merge "Leafref and identityref types to Json"
[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.controller.sal.binding.impl.connect.dom.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-rpc-broker {
40         base config:module-type;
41         config:provided-service sal:binding-rpc-registry;
42         config:java-name-prefix RpcBrokerImpl;
43     }
44     
45     identity binding-notification-broker {
46         base config:module-type;
47         config:provided-service sal:binding-notification-service;
48         config:provided-service sal:binding-notification-subscription-service;
49         config:java-name-prefix NotificationBrokerImpl;
50     }
51
52     identity runtime-generated-mapping {
53         base config:module-type;
54         config:provided-service binding-dom-mapping-service;
55         config:java-name-prefix RuntimeMapping;
56     }
57
58     augment "/config:modules/config:module/config:configuration" {
59         case binding-broker-impl {
60             when "/config:modules/config:module/config:type = 'binding-broker-impl'";
61             
62             /*
63             container rpc-registry {
64                 uses config:service-ref {
65                     refine type {
66                         mandatory true;
67                         config:required-identity sal:binding-rpc-registry;
68                     }
69                 }
70             }*/
71             
72             container data-broker {
73                 uses config:service-ref {
74                     refine type {
75                         mandatory true;
76                         config:required-identity sal:binding-data-broker;
77                     }
78                 }
79             }
80             
81             container notification-service {
82                 uses config:service-ref {
83                     refine type {
84                         mandatory true;
85                         config:required-identity sal:binding-notification-service;
86                     }
87                 }
88             } 
89         }
90     }
91     
92     augment "/config:modules/config:module/config:configuration" {
93         case binding-data-broker {
94             when "/config:modules/config:module/config:type = 'binding-data-broker'";
95             container dom-broker {
96                 uses config:service-ref {
97                     refine type {
98                         mandatory true;
99                         config:required-identity dom:dom-broker-osgi-registry;
100                     }
101                 }
102             }
103             container mapping-service {
104                 uses config:service-ref {
105                     refine type {
106                         mandatory true;
107                         config:required-identity binding-dom-mapping-service;
108                     }
109                 }
110             } 
111         }
112     }
113     
114
115     augment "/config:modules/config:module/config:state" {
116         case runtime-generated-mapping {
117             when "/config:modules/config:module/config:type = 'runtime-generated-mapping'";
118         }
119     }
120
121     augment "/config:modules/config:module/config:state" {
122         case binding-data-broker {
123             when "/config:modules/config:module/config:type = 'binding-data-broker'";
124             uses common:data-state;
125         }
126     }
127     augment "/config:modules/config:module/config:state" {
128         case binding-rpc-broker {
129             when "/config:modules/config:module/config:type = 'binding-rpc-broker'";
130             uses common:rpc-state;
131         }
132     }
133     augment "/config:modules/config:module/config:state" {
134         case binding-notification-broker {
135             when "/config:modules/config:module/config:type = 'binding-notification-broker'";
136             uses common:notification-state;
137         }
138     }
139 }