summaryrefslogtreecommitdiffstats
path: root/infra/data-impl/src/main/yang/data-impl.yang
blob: ee485538b4bbc00b3ad6a8ff97e8bd356b00da11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
module data-impl {
    yang-version 1;
    namespace "urn:honeycomb:params:xml:ns:yang:data:impl";
    prefix "tutils";

    import config { prefix config; revision-date 2013-04-05; }
    import opendaylight-md-sal-binding { prefix md-sal-binding; revision-date 2013-10-28;}
    import opendaylight-md-sal-dom { prefix dom; revision-date 2013-10-28;}
    import data-api { prefix dapi; revision-date 2016-04-11; }
    import translate-api { prefix tapi; revision-date 2016-04-06; }

    description
        "This module contains YANG module definitions
        for honeycomd data layer";

    revision "2016-04-11" {
        description
            "Initial revision.";
    }

    identity inmemory-data-tree {
        base config:module-type;
        config:provided-service dapi:data-tree;
        config:java-name-prefix InMemoryDataTree;
    }

    augment "/config:modules/config:module/config:configuration" {
        case inmemory-data-tree {
            when "/config:modules/config:module/config:type = 'inmemory-data-tree'";

            container schema-service {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity dom:schema-service;
                    }
                }
            }

            leaf type {
                type dapi:datatree-type;
                mandatory true;
            }
        }
    }

    identity persisting-data-tree-adapter {
        base config:module-type;
        config:provided-service dapi:data-tree;
        config:java-name-prefix PersistingDataTreeAdapter;
    }

    augment "/config:modules/config:module/config:configuration" {
        case persisting-data-tree-adapter {
            when "/config:modules/config:module/config:type = 'persisting-data-tree-adapter'";

            container delegate {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity dapi:data-tree;
                    }
                }
            }

            container schema-service {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity dom:schema-service;
                    }
                }
            }

            leaf persist-file-path {
                type string;
                mandatory true;
                description "Path to a file to be used as data storage";
            }
        }
    }

    identity honeycomb-config-data-tree {
        base config:module-type;
        config:provided-service dapi:honeycomb-modifiable-data-tree;
        config:java-name-prefix ConfigDataTree;
    }

    augment "/config:modules/config:module/config:configuration" {
        case honeycomb-config-data-tree {
            when "/config:modules/config:module/config:type = 'honeycomb-config-data-tree'";

            container data-tree {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity dapi:data-tree;
                    }
                }
            }

            container serializer {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity md-sal-binding:binding-normalized-node-serializer;
                    }
                }
            }

            container writer-registry-builder {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity tapi:honeycomb-writer-registry-builder;
                    }
                }
            }

            container context-binding-broker {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity md-sal-binding:binding-async-data-broker;
                    }
                }
            }
        }
    }

    identity honeycomb-operational-data-tree {
        base config:module-type;
        config:provided-service dapi:honeycomb-readable-data-tree;
        config:java-name-prefix OperationalDataTree;
    }

    augment "/config:modules/config:module/config:configuration" {
        case honeycomb-operational-data-tree {
            when "/config:modules/config:module/config:type = 'honeycomb-operational-data-tree'";

            container schema-service {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity dom:schema-service;
                    }
                }
            }

            container serializer {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity md-sal-binding:binding-normalized-node-serializer;
                    }
                }
            }

            container reader-registry-builder {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity tapi:honeycomb-reader-registry-builder;
                    }
                }
            }

            container context-binding-broker {
                uses config:service-ref {
                    refine type {
                        mandatory true;
                        config:required-identity md-sal-binding:binding-async-data-broker;
                    }
                }
            }

        }
    }
}