blob: 3f79fe0edd621ee936a78a241e729b48b2ba4693 [file] [log] [blame]
Khen Nursimuluf8abbc92016-11-04 19:56:45 -04001module xos-controller {
2 namespace "urn:ietf:params:xml:ns:yang:xos-controller";
3 prefix xcontrol;
4 yang-version 1.1;
5
6 import ietf-yang-types { prefix yang; }
7 import ietf-inet-types { prefix inet; }
8 import xos-core { prefix xos; }
9 import xos-types { prefix xtype; }
10
11 organization
12 "Open Networking Lab (XOS) / Corenova Technologies";
13
14 contact
15 "Larry Peterson <llp@onlab.us>
16 Peter K. Lee <peter@corenova.com>";
17
18 description
19 "This module contains a collection of Controller models for XOS.
20
21 Copyright (c) 2016 ON.LAB and the persons identified as authors of
22 the code. All rights reserved.
23
24 Redistribution and use in source and binary forms, with or without
25 modification, is permitted pursuant to, and subject to the license
26 terms of the Apache License, Version 2.0 which accompanies this
27 distribution, and is available at
28 (http://www.apache.org/licenses/LICENSE-2.0).";
29
30 revision 2016-09-23 {
31 description "Initial revision.";
32 }
33
34 grouping controller {
35 uses xos:provider;
36 leaf backend-type {
37 type string;
38 }
39 leaf version {
40 type string;
41 }
42 leaf auth-url {
43 type string;
44 }
45 leaf admin-user {
46 type string;
47 }
48 leaf admin-password {
49 type string;
50 }
51 leaf admin-tenant {
52 type string;
53 }
54 leaf domain {
55 type string;
56 }
57 container message-queue {
58 leaf rabbit-host {
59 type string;
60 }
61 leaf rabbit-user {
62 type string;
63 }
64 leaf rabbit-password {
65 type string;
66 }
67 }
68 leaf deployment {
69 type xtype:deployment;
70 }
71 }
72 grouping controller-site-privilege {
73 uses xos:tenant;
74
75 leaf controller {
76 type xtype:controller;
77 }
78
79 leaf site-privilege {
80 type xtype:site-privilege;
81 }
82
83 container synchronizer {
84 if-feature xos:synchronizer;
85 leaf role-id {
86 type string;
87 }
88 }
89 }
90 grouping controller-network {
91 uses xos:tenant;
92 leaf network {
93 type xtype:network;
94 }
95 leaf controller {
96 type xtype:controller;
97 }
98 leaf subnet {
99 type string;
100 }
101 container synchronizer {
102 if-feature synchronizer;
103 leaf net-id {
104 type string;
105 }
106 leaf router-id {
107 type string;
108 }
109 leaf subnet-id {
110 type string;
111 }
112 }
113 }
114 grouping controller-site {
115 uses xos:tenant;
116 leaf site {
117 type xtype:site;
118 }
119
120 leaf controller {
121 type xtype:controller;
122 }
123
124 container synchronizer {
125 if-feature synchronizer;
126 leaf tenant-id {
127 type string;
128 }
129 }
130 }
131 grouping controller-slice {
132 uses xos:tenant;
133 leaf controller {
134 type xtype:controller;
135 }
136 leaf slice {
137 type xtype:slice;
138 }
139
140 container synchronizer {
141 if-feature synchronizer;
142 leaf tenant-id {
143 type string;
144 }
145 }
146 }
147 grouping controller-role {
148 uses xos:tenant;
149 leaf role {
150 type string;
151 }
152 }
153 grouping controller-user {
154 uses xos:tenant;
155 leaf user {
156 type xtype:user;
157 }
158
159 leaf controller {
160 type xtype:controller;
161 }
162
163 container synchronizer {
164 if-feature synchronizer {
165 leaf kuser-id {
166 type string;
167 }
168 }
169 }
170 }
171 grouping controller-slice-privilege {
172 uses xos:tenant;
173 leaf controller {
174 type xtype:controller;
175 }
176
177 leaf slice-privilege {
178 type xtype:slice-privilege;
179 }
180
181 container synchronizer {
182 if-feature synchronizer {
183 leaf role-id {
184 type string;
185 }
186 }
187 }
188 }
189
190}