blob: ef0cce7849809b1504e4254b4524656399dab282 [file] [log] [blame]
Sapan Bhatia170ae272017-05-30 19:01:09 +02001message XOSBase {
2 option skip = True;
3 required string created = 1 [content_type = "date", auto_now_add = True];
4 required string updated = 2 [default = "now()", content_type = "date"];
5 optional string enacted = 3 [null = True, content_type = "date", blank = True, default = None];
6 optional string policed = 4 [null = True, content_type = "date", blank = True, default = None];
7 optional string backend_register = 5 [default = "{}", max_length = 1024, null = True];
8 required bool backend_need_delete = 6 [default = False];
9 required bool backend_need_reap = 7 [default = False];
10 required string backend_status = 8 [default = "0 - Provisioning in progress", max_length = 1024];
11 required bool deleted = 9 [default = False];
12 required bool write_protect = 10 [default = False];
13 required bool lazy_blocked = 11 [default = False];
14 required bool no_sync = 12 [default = False];
15 required bool no_policy = 13 [default = False];
16}
17
18message AddressPool (XOSBase) {
19 required string name = 1 [db_index = False, max_length = 32, null = False, blank = False];
20 optional string addresses = 2 [db_index = False, null = True, blank = True];
21 optional string gateway_ip = 3 [db_index = False, max_length = 32, null = True, blank = False];
22 optional string gateway_mac = 4 [db_index = False, max_length = 32, null = True, blank = False];
23 optional string cidr = 5 [db_index = False, max_length = 32, null = True, blank = False];
24 optional string inuse = 6 [db_index = False, null = True, blank = True];
25 optional manytoone service->Service:addresspools = 7 [db_index = True, null = True, blank = True];
26}
27
28
29message Controller (XOSBase) {
30 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the Controller", null = False, db_index = False];
31 required string backend_type = 2 [max_length = 200, content_type = "stripped", blank = False, help_text = "Type of compute controller, e.g. EC2, OpenStack, or OpenStack version", null = False, db_index = False];
32 required string version = 3 [max_length = 200, content_type = "stripped", blank = False, help_text = "Controller version", null = False, db_index = False];
33 optional string auth_url = 4 [max_length = 200, content_type = "stripped", blank = True, help_text = "Auth url for the compute controller", null = True, db_index = False];
34 optional string admin_user = 5 [max_length = 200, content_type = "stripped", blank = True, help_text = "Username of an admin user at this controller", null = True, db_index = False];
35 optional string admin_password = 6 [max_length = 200, content_type = "stripped", blank = True, help_text = "Password of theadmin user at this controller", null = True, db_index = False];
36 optional string admin_tenant = 7 [max_length = 200, content_type = "stripped", blank = True, help_text = "Name of the tenant the admin user belongs to", null = True, db_index = False];
37 optional string domain = 8 [max_length = 200, content_type = "stripped", blank = True, help_text = "Name of the domain this controller belongs to", null = True, db_index = False];
38 optional string rabbit_host = 9 [max_length = 200, content_type = "stripped", blank = True, help_text = "IP address of rabbitmq server at this controller", null = True, db_index = False];
39 optional string rabbit_user = 10 [max_length = 200, content_type = "stripped", blank = True, help_text = "Username of rabbitmq server at this controller", null = True, db_index = False];
40 optional string rabbit_password = 11 [max_length = 200, content_type = "stripped", blank = True, help_text = "Password of rabbitmq server at this controller", null = True, db_index = False];
41 required manytoone deployment->Deployment:controllerdeployments = 12 [db_index = True, null = False, blank = False];
42}
43
44
45message ControllerDashboardView (XOSBase) {
46 required manytoone controller->Controller:controllerdashboardviews = 1 [db_index = True, null = False, blank = False];
47 required manytoone dashboardView->DashboardView:controllerdashboardviews = 2 [db_index = True, null = False, blank = False];
48 required bool enabled = 3 [default = True, null = False, db_index = False, blank = True];
49 required string url = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "URL of Dashboard", null = False, db_index = False];
50}
51
52
53message ControllerImages (XOSBase) {
54 required manytoone image->Image:controllerimages = 1 [db_index = True, null = False, blank = False];
55 required manytoone controller->Controller:controllerimages = 2 [db_index = True, null = False, blank = False];
56 optional string glance_image_id = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Glance image id", null = True, db_index = False];
57}
58
59
60message ControllerNetwork (XOSBase) {
61 required manytoone network->Network:controllernetworks = 1 [db_index = True, null = False, blank = False];
62 required manytoone controller->Controller:controllernetworks = 2 [db_index = True, null = False, blank = False];
63 required string subnet = 3 [db_index = False, max_length = 32, null = False, blank = True];
64 required string start_ip = 4 [db_index = False, max_length = 32, null = False, blank = True];
65 required string stop_ip = 5 [db_index = False, max_length = 32, null = False, blank = True];
66 optional string net_id = 6 [help_text = "Neutron network", max_length = 256, null = True, db_index = False, blank = True];
67 optional string router_id = 7 [help_text = "Neutron router id", max_length = 256, null = True, db_index = False, blank = True];
68 optional string subnet_id = 8 [help_text = "Neutron subnet id", max_length = 256, null = True, db_index = False, blank = True];
69 optional string gateway = 9 [db_index = False, max_length = 32, null = True, blank = True];
70 optional string segmentation_id = 10 [db_index = False, max_length = 32, null = True, blank = True];
71}
72
73
74message ControllerRole (XOSBase) {
75 required string role = 1 [choices = "(('admin', 'Admin'),)", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
76}
77
78
79message ControllerSite (XOSBase) {
80 required manytoone site->Site:controllersite = 1 [db_index = True, null = False, blank = False];
81 optional manytoone controller->Controller:controllersite = 2 [db_index = True, null = True, blank = True];
82 optional string tenant_id = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Keystone tenant id", null = True, db_index = True];
83}
84
85
86message ControllerSitePrivilege (XOSBase) {
87 required manytoone controller->Controller:controllersiteprivileges = 1 [db_index = True, null = False, blank = False];
88 required manytoone site_privilege->SitePrivilege:controllersiteprivileges = 2 [db_index = True, null = False, blank = False];
89 optional string role_id = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Keystone id", null = True, db_index = True];
90}
91
92
93message ControllerSlice (XOSBase) {
94 required manytoone controller->Controller:controllerslices = 1 [db_index = True, null = False, blank = False];
95 required manytoone slice->Slice:controllerslices = 2 [db_index = True, null = False, blank = False];
96 optional string tenant_id = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Keystone tenant id", null = True, db_index = False];
97}
98
99
100message ControllerSlicePrivilege (XOSBase) {
101 required manytoone controller->Controller:controllersliceprivileges = 1 [db_index = True, null = False, blank = False];
102 required manytoone slice_privilege->SlicePrivilege:controllersliceprivileges = 2 [db_index = True, null = False, blank = False];
103 optional string role_id = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Keystone id", null = True, db_index = True];
104}
105
106
107message ControllerUser (XOSBase) {
108 required manytoone user->User:controllerusers = 1 [db_index = True, null = False, blank = False];
109 required manytoone controller->Controller:controllersusers = 2 [db_index = True, null = False, blank = False];
110 optional string kuser_id = 3 [max_length = 200, content_type = "stripped", blank = True, help_text = "Keystone user id", null = True, db_index = False];
111}
112
113
114message DashboardView (XOSBase) {
115 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the View", null = False, db_index = False];
116 required string url = 2 [max_length = 1024, content_type = "stripped", blank = False, help_text = "URL of Dashboard", null = False, db_index = False];
117 required bool enabled = 3 [default = True, null = False, db_index = False, blank = True];
118 required string icon = 4 [default = "default-icon.png", max_length = 200, blank = False, help_text = "Icon for Dashboard", null = False, db_index = False];
119 required string icon_active = 5 [default = "default-icon-active.png", max_length = 200, blank = False, help_text = "Icon for active Dashboard", null = False, db_index = False];
120 required manytomany controllers->Controller/ControllerDashboardView:dashboardviews = 6 [db_index = False, null = False, blank = True];
121 required manytomany deployments->Deployment/DashboardView_deployments:dashboardviews = 7 [help_text = "Deployments that should be included in this view", null = False, db_index = False, blank = True];
122}
123
124
125message Deployment (XOSBase) {
126 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the Deployment", null = False, db_index = False];
127 required string accessControl = 2 [default = "allow all", max_length = 200, blank = False, help_text = "Access control list that specifies which sites/users may use nodes in this deployment", null = False, db_index = False];
128}
129
130
131message DeploymentPrivilege (XOSBase) {
132 required manytoone user->User:deploymentprivileges = 1 [db_index = True, null = False, blank = False];
133 required manytoone deployment->Deployment:deploymentprivileges = 2 [db_index = True, null = False, blank = False];
134 required manytoone role->DeploymentRole:deploymentprivileges = 3 [db_index = True, null = False, blank = False];
135}
136
137
138message DeploymentRole (XOSBase) {
139 required string role = 1 [choices = "(('admin', 'Admin'),)", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
140}
141
142
143message Diag (XOSBase) {
144 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the synchronizer", null = False, db_index = False];
145}
146
147
148message Flavor (XOSBase) {
149 required string name = 1 [max_length = 32, content_type = "stripped", blank = False, help_text = "name of this flavor, as displayed to users", null = False, db_index = False];
150 optional string description = 2 [db_index = False, max_length = 1024, null = True, content_type = "stripped", blank = True];
151 required string flavor = 3 [max_length = 32, content_type = "stripped", blank = False, help_text = "flavor string used to configure deployments", null = False, db_index = False];
152 required manytomany deployments->Deployment/DashboardView_deployments:flavors = 6 [db_index = False, null = False, blank = True];
153}
154
155
156message Image (XOSBase) {
157 required string name = 1 [db_index = False, max_length = 256, null = False, content_type = "stripped", blank = False];
158 required string kind = 2 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'))", max_length = 30, blank = False, null = False, db_index = False];
159 required string disk_format = 3 [db_index = False, max_length = 256, null = False, content_type = "stripped", blank = False];
160 required string container_format = 4 [db_index = False, max_length = 256, null = False, content_type = "stripped", blank = False];
161 optional string path = 5 [max_length = 256, content_type = "stripped", blank = True, help_text = "Path to image on local disk", null = True, db_index = False];
162 optional string tag = 6 [max_length = 256, content_type = "stripped", blank = True, help_text = "For Docker Images, tag of image", null = True, db_index = False];
163 required manytomany deployments->Deployment/ImageDeployments:images = 7 [help_text = "Select which images should be instantiated on this deployment", null = False, db_index = False, blank = True];
164}
165
166
167message ImageDeployments (XOSBase) {
168 required manytoone image->Image:imagedeployments = 1 [db_index = True, null = False, blank = False];
169 required manytoone deployment->Deployment:imagedeployments = 2 [db_index = True, null = False, blank = False];
170}
171
172
173message Instance (XOSBase) {
174 optional string instance_id = 1 [max_length = 200, content_type = "stripped", blank = True, help_text = "Nova instance id", null = True, db_index = False];
175 optional string instance_uuid = 2 [max_length = 200, content_type = "stripped", blank = True, help_text = "Nova instance uuid", null = True, db_index = False];
176 required string name = 3 [max_length = 200, content_type = "stripped", blank = False, help_text = "Instance name", null = False, db_index = False];
177 optional string instance_name = 4 [max_length = 200, content_type = "stripped", blank = True, help_text = "OpenStack generated name", null = True, db_index = False];
178 optional string ip = 5 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", null = True, db_index = False];
179 required manytoone image->Image:instances = 6 [db_index = True, null = False, blank = False];
180 optional manytoone creator->User:instances = 7 [db_index = True, null = True, blank = True];
181 required manytoone slice->Slice:instances = 8 [db_index = True, null = False, blank = False];
182 required manytoone deployment->Deployment:instance_deployment = 9 [db_index = True, null = False, blank = False];
183 required manytoone node->Node:instances = 10 [db_index = True, null = False, blank = False];
184 required int32 numberCores = 11 [help_text = "Number of cores for instance", default = 0, null = False, db_index = False, blank = False];
185 required manytoone flavor->Flavor:instance = 12 [help_text = "Flavor of this instance", null = False, db_index = True, blank = False];
186 optional string userData = 13 [help_text = "user_data passed to instance during creation", null = True, db_index = False, blank = True];
187 required string isolation = 14 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'), ('container_vm', 'Container In VM'))", max_length = 30, blank = False, null = False, db_index = False];
188 optional string volumes = 15 [help_text = "Comma-separated list of directories to expose to parent context", null = True, db_index = False, blank = True];
189 optional manytoone parent->Instance:instance = 16 [help_text = "Parent Instance for containers nested inside of VMs", null = True, db_index = True, blank = True];
190}
191message Network (XOSBase) {
192 required string name = 1 [db_index = False, max_length = 32, null = False, blank = False];
193 required manytoone template->NetworkTemplate:network = 2 [db_index = True, null = False, blank = False];
194 required string subnet = 3 [db_index = False, max_length = 32, null = False, blank = True];
195 required string start_ip = 4 [db_index = False, max_length = 32, null = False, blank = True];
196 required string end_ip = 5 [db_index = False, max_length = 32, null = False, blank = True];
197 optional string ports = 6 [db_index = False, max_length = 1024, null = True, blank = True];
198 optional string labels = 7 [db_index = False, max_length = 1024, null = True, blank = True];
199 required manytoone owner->Slice:ownedNetworks = 8 [help_text = "Slice that owns control of this Network", null = False, db_index = True, blank = False];
200 required bool permit_all_slices = 10 [default = False, null = False, db_index = False, blank = True];
201 required bool autoconnect = 17 [help_text = "This network can be autoconnected to the slice that owns it", default = True, null = False, db_index = False, blank = True];
202 required manytomany permitted_slices->Slice/Network_permitted_slices:availableNetworks = 18 [db_index = False, null = False, blank = True];
203 required manytomany slices->Slice/NetworkSlice:networks = 19 [db_index = False, null = False, blank = True];
204 required manytomany instances->Instance/Port:networks = 20 [db_index = False, null = False, blank = True];
205}
206
207
208message NetworkParameter (XOSBase) {
209 required manytoone parameter->NetworkParameterType:networkparameters = 1 [help_text = "The type of the parameter", null = False, db_index = True, blank = False];
210 required string value = 2 [help_text = "The value of this parameter", max_length = 1024, null = False, db_index = False, blank = False];
211 required string content_type = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "Content type id linked to this network parameter", null = False, db_index = False];
212 required uint32 object_id = 4 [db_index = False, null = False, blank = False, help_text = "Object linked to this NetworkParameter"];
213}
214
215
216message NetworkParameterType (XOSBase) {
217 required string name = 1 [help_text = "The name of this parameter", max_length = 128, null = False, db_index = True, blank = False];
218 required string description = 2 [db_index = False, max_length = 1024, null = False, blank = False];
219}
220
221
222message NetworkSlice (XOSBase) {
223 required manytoone network->Network:networkslices = 1 [db_index = True, null = False, blank = False];
224 required manytoone slice->Slice:networkslices = 2 [db_index = True, null = False, blank = False];
225}
226message NetworkTemplate (XOSBase) {
227 required string name = 1 [db_index = False, max_length = 32, null = False, blank = False];
228 optional string description = 2 [db_index = False, max_length = 1024, null = True, blank = True];
229 required string visibility = 4 [default = "private", choices = "(('public', 'public'), ('private', 'private'))", max_length = 30, blank = False, null = False, db_index = False];
230 required string translation = 5 [default = "none", choices = "(('none', 'none'), ('NAT', 'NAT'))", max_length = 30, blank = False, null = False, db_index = False];
231 optional string access = 6 [choices = "((None, 'None'), ('indirect', 'Indirect'), ('direct', 'Direct'))", max_length = 30, blank = True, help_text = "Advertise this network as a means for other slices to contact this slice", null = True, db_index = False];
232 optional string shared_network_name = 7 [db_index = False, max_length = 30, null = True, blank = True];
233 optional string shared_network_id = 8 [help_text = "Quantum network", max_length = 256, null = True, db_index = False, blank = True];
234 required string topology_kind = 9 [default = "bigswitch", choices = "(('bigswitch', 'BigSwitch'), ('physical', 'Physical'), ('custom', 'Custom'))", max_length = 30, blank = False, null = False, db_index = False];
235 optional string controller_kind = 10 [blank = True, max_length = 30, null = True, db_index = False, choices = "((None, 'None'), ('onos', 'ONOS'), ('custom', 'Custom'))"];
236 optional string vtn_kind = 11 [default = "PRIVATE", choices = "(('PRIVATE', 'Private'), ('PUBLIC', 'Public'), ('MANAGEMENT_LOCAL', 'Management Local'), ('MANAGEMENT_HOST', 'Management Host'), ('VSG', 'VSG'), ('ACCESS_AGENT', 'Access Agent'))", max_length = 30, blank = True, null = True, db_index = False];
237}
238message Node (XOSBase) {
239 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the Node", null = False, db_index = False];
240 required manytoone site_deployment->SiteDeployment:nodes = 2 [db_index = True, null = False, blank = False];
241}
242message NodeLabel (XOSBase) {
243 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "label name", null = False, db_index = False];
244 required manytomany node->Node/NodeLabel_node:nodelabels = 2 [db_index = False, null = False, blank = True];
245}
246message Port (XOSBase) {
247 required manytoone network->Network:links = 1 [db_index = True, null = False, blank = False];
248 optional manytoone instance->Instance:ports = 2 [db_index = True, null = True, blank = True];
249 optional string ip = 3 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", null = True, db_index = False];
250 optional string port_id = 4 [help_text = "Neutron port id", max_length = 256, null = True, db_index = False, blank = True];
251 optional string mac = 5 [help_text = "MAC address associated with this port", max_length = 256, null = True, db_index = False, blank = True];
252 required bool xos_created = 6 [default = False, null = False, db_index = False, blank = True];
253}
254
255
256message Role (XOSBase) {
257 required string role_type = 1 [db_index = False, max_length = 80, null = False, content_type = "stripped", blank = False];
258 optional string role = 2 [db_index = False, max_length = 80, null = True, content_type = "stripped", blank = True];
259 required string description = 3 [db_index = False, max_length = 120, null = False, content_type = "stripped", blank = False];
260}
261
262
263message Service (XOSBase,AttributeMixin) {
264 optional string description = 1 [help_text = "Description of Service", max_length = 254, null = True, db_index = False, blank = True];
265 required bool enabled = 2 [default = True, null = False, db_index = False, blank = True];
266 required string kind = 3 [default = "generic", max_length = 30, content_type = "stripped", blank = False, help_text = "Kind of service", null = False, db_index = False];
267 required string name = 4 [max_length = 30, content_type = "stripped", blank = False, help_text = "Service Name", null = False, db_index = False];
268 optional string versionNumber = 5 [max_length = 30, content_type = "stripped", blank = True, help_text = "Version of Service Definition", null = True, db_index = False];
269 required bool published = 6 [default = True, null = False, db_index = False, blank = True];
270 optional string view_url = 7 [db_index = False, max_length = 1024, null = True, content_type = "stripped", blank = True];
271 optional string icon_url = 8 [db_index = False, max_length = 1024, null = True, content_type = "stripped", blank = True];
272 optional string public_key = 9 [help_text = "Public key string", max_length = 1024, null = True, db_index = False, blank = True];
273 optional string private_key_fn = 10 [db_index = False, max_length = 1024, null = True, content_type = "stripped", blank = True];
274 optional string service_specific_id = 11 [db_index = False, max_length = 30, null = True, content_type = "stripped", blank = True];
275 optional string service_specific_attribute = 12 [db_index = False, null = True, blank = True];
276}
277
278
279message ServiceAttribute (XOSBase) {
280 required string name = 1 [help_text = "Attribute Name", max_length = 128, null = False, db_index = False, blank = False];
281 required string value = 2 [help_text = "Attribute Value", null = False, db_index = False, blank = False];
282 required manytoone service->Service:serviceattributes = 3 [help_text = "The Service this attribute is associated with", null = False, db_index = True, blank = False];
283}
284
285
286message ServiceDependency (Tenant) {
287}
288
289
290message ServiceMonitoringAgentInfo (XOSBase) {
291 required string name = 1 [help_text = "Monitoring Agent Name", max_length = 128, null = False, db_index = False, blank = False];
292 optional manytoone service->Service:servicemonitoringagents = 2 [help_text = "The Service this attribute is associated with", null = True, db_index = True, blank = True];
293 required string target_uri = 3 [help_text = "Monitoring collector URI to be used by agents to publish the data", null = False, db_index = False, blank = False];
294}
295
296
297message ServicePrivilege (XOSBase) {
298 required manytoone user->User:serviceprivileges = 1 [db_index = True, null = False, blank = False];
299 required manytoone service->Service:serviceprivileges = 2 [db_index = True, null = False, blank = False];
300 required manytoone role->ServiceRole:serviceprivileges = 3 [db_index = True, null = False, blank = False];
301}
302
303
304message ServiceRole (XOSBase) {
305 required string role = 1 [choices = "(('admin', 'Admin'),)", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
306}
307
308
309message Site (XOSBase) {
310 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name for this Site", null = False, db_index = False];
311 optional string site_url = 2 [max_length = 512, content_type = "url", blank = True, help_text = "Site's Home URL Page", null = True, db_index = False];
312 required bool enabled = 3 [help_text = "Status for this Site", default = True, null = False, db_index = False, blank = True];
313 required bool hosts_nodes = 4 [help_text = "Indicates whether or not the site host nodes", default = True, null = False, db_index = False, blank = True];
314 required bool hosts_users = 5 [help_text = "Indicates whether or not the site manages user accounts", default = True, null = False, db_index = False, blank = True];
315 optional float longitude = 6 [db_index = False, null = True, blank = True];
316 optional float latitude = 7 [db_index = False, null = True, blank = True];
317 required string login_base = 8 [max_length = 50, content_type = "stripped", blank = False, help_text = "Prefix for Slices associated with this Site", null = False, db_index = False];
318 required bool is_public = 9 [help_text = "Indicates the visibility of this site to other members", default = True, null = False, db_index = False, blank = True];
319 required string abbreviated_name = 10 [db_index = False, max_length = 80, null = False, content_type = "stripped", blank = False];
320 required manytomany deployments->Deployment/SiteDeployment:sites = 11 [help_text = "Select which sites are allowed to host nodes in this deployment", null = False, db_index = False, blank = True];
321}
322
323
324message SiteDeployment (XOSBase) {
325 required manytoone site->Site:sitedeployments = 1 [db_index = True, null = False, blank = False];
326 required manytoone deployment->Deployment:sitedeployments = 2 [db_index = True, null = False, blank = False];
327 optional manytoone controller->Controller:sitedeployments = 3 [db_index = True, null = True, blank = True];
328 optional string availability_zone = 4 [max_length = 200, content_type = "stripped", blank = True, help_text = "OpenStack availability zone", null = True, db_index = False];
329}
330
331
332message SitePrivilege (XOSBase) {
333 required manytoone user->User:siteprivileges = 1 [db_index = True, null = False, blank = False];
334 required manytoone site->Site:siteprivileges = 2 [db_index = True, null = False, blank = False];
335 required manytoone role->SiteRole:siteprivileges = 3 [db_index = True, null = False, blank = False];
336}
337
338
339message SiteRole (XOSBase) {
340 required string role = 1 [choices = "(('admin', 'Admin'), ('pi', 'PI'), ('tech', 'Tech'), ('billing', 'Billing'))", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
341}
342message Slice (XOSBase) {
343 required string name = 1 [max_length = 80, content_type = "stripped", blank = False, help_text = "The Name of the Slice", null = False, db_index = False];
344 required bool enabled = 2 [help_text = "Status for this Slice", default = True, null = False, db_index = False, blank = True];
345 required string description = 4 [help_text = "High level description of the slice and expected activities", max_length = 1024, null = False, db_index = False, blank = True];
346 required string slice_url = 5 [db_index = False, max_length = 512, null = False, content_type = "url", blank = True];
347 required manytoone site->Site:slices = 6 [help_text = "The Site this Slice belongs to", null = False, db_index = True, blank = False];
348 required int32 max_instances = 7 [default = 10, null = False, db_index = False, blank = False];
349 optional manytoone service->Service:slices = 8 [db_index = True, null = True, blank = True];
350 optional string network = 9 [blank = True, max_length = 256, null = True, db_index = False, choices = "((None, 'Default'), ('host', 'Host'), ('bridged', 'Bridged'), ('noauto', 'No Automatic Networks'))"];
351 optional string exposed_ports = 10 [db_index = False, max_length = 256, null = True, blank = True];
352 optional manytoone creator->User:slices = 12 [db_index = True, null = True, blank = True];
353 optional manytoone default_flavor->Flavor:slices = 13 [db_index = True, null = True, blank = True];
354 optional manytoone default_image->Image:slices = 14 [db_index = True, null = True, blank = True];
355 optional manytoone default_node->Node:slices = 15 [db_index = True, null = True, blank = True];
356 optional string mount_data_sets = 16 [default = "GenBank", max_length = 256, content_type = "stripped", blank = True, null = True, db_index = False];
357 required string default_isolation = 17 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'), ('container_vm', 'Container In VM'))", max_length = 30, blank = False, null = False, db_index = False];
358}
359
360
361message SlicePrivilege (XOSBase) {
362 required manytoone user->User:sliceprivileges = 1 [db_index = True, null = False, blank = False];
363 required manytoone slice->Slice:sliceprivileges = 2 [db_index = True, null = False, blank = False];
364 required manytoone role->SliceRole:sliceprivileges = 3 [db_index = True, null = False, blank = False];
365}
366
367
368message SliceRole (XOSBase) {
369 required string role = 1 [choices = "(('admin', 'Admin'), ('default', 'Default'))", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
370}
371
372
373message Tag (XOSBase) {
374 required manytoone service->Service:tags = 1 [help_text = "The Service this Tag is associated with", null = False, db_index = True, blank = False];
375 required string name = 2 [help_text = "The name of this tag", max_length = 128, null = False, db_index = True, blank = False];
376 required string value = 3 [max_length = 1024, content_type = "stripped", blank = False, help_text = "The value of this tag", null = False, db_index = False];
377 required string content_type = 4 [max_length = 1024, content_type = "stripped", blank = False, help_text = "Content type id linked to this tag", null = False, db_index = False];
378 required uint32 object_id = 5 [db_index = False, null = False, blank = False, help_text = "Object linked to this tag"];
379}
380
381
382message Tenant (XOSBase,AttributeMixin) {
383 optional string name = 1 [db_index = False, max_length = 200, null = True, content_type = "stripped", blank = True];
384 required string kind = 2 [default = "generic", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
385 required manytoone provider_service->Service:provided_tenants = 3 [db_index = True, null = False, blank = False];
386 optional manytoone subscriber_service->Service:subscribed_tenants = 4 [db_index = True, null = True, blank = True];
387 optional manytoone subscriber_tenant->Tenant:subscribed_tenants = 5 [db_index = True, null = True, blank = True];
388 optional manytoone subscriber_user->User:subscribed_tenants = 6 [db_index = True, null = True, blank = True];
389 optional manytoone subscriber_root->TenantRoot:subscribed_tenants = 7 [db_index = True, null = True, blank = True];
390 optional manytoone subscriber_network->Network:subscribed_tenants = 8 [db_index = True, null = True, blank = True];
391 optional string service_specific_id = 9 [db_index = False, max_length = 30, null = True, content_type = "stripped", blank = True];
392 optional string service_specific_attribute = 10 [db_index = False, null = True, blank = True];
393 required string connect_method = 11 [default = "na", choices = "(('public', 'Public'), ('private', 'Private'), ('private-unidirectional', 'Private Unidirectional'), ('na', 'Not Applicable'))", max_length = 30, blank = False, null = False, db_index = False];
394}
395
396
397message TenantAttribute (XOSBase) {
398 required string name = 1 [help_text = "Attribute Name", max_length = 128, null = False, db_index = False, blank = False];
399 required string value = 2 [help_text = "Attribute Value", null = False, db_index = False, blank = False];
400 required manytoone tenant->Tenant:tenantattributes = 3 [help_text = "The Tenant this attribute is associated with", null = False, db_index = True, blank = False];
401}
402
403
404message TenantPrivilege (XOSBase) {
405 required manytoone user->User:tenantprivileges = 1 [db_index = True, null = False, blank = False];
406 required manytoone tenant->Tenant:tenantprivileges = 2 [db_index = True, null = False, blank = False];
407 required manytoone role->TenantRole:tenantprivileges = 3 [db_index = True, null = False, blank = False];
408}
409
410
411message TenantRole (XOSBase) {
412 required string role = 1 [choices = "(('admin', 'Admin'), ('access', 'Access'))", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
413}
414
415
416message TenantRoot (XOSBase,AttributeMixin) {
417 required string kind = 1 [default = "generic", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
418 optional string name = 2 [max_length = 255, content_type = "stripped", blank = True, help_text = "name", null = True, db_index = False];
419 optional string service_specific_attribute = 3 [db_index = False, null = True, blank = True];
420 optional string service_specific_id = 4 [db_index = False, max_length = 30, null = True, content_type = "stripped", blank = True];
421}
422
423
424message TenantRootPrivilege (XOSBase) {
425 required manytoone user->User:tenant_root_privileges = 1 [db_index = True, null = False, blank = False];
426 required manytoone tenant_root->TenantRoot:tenant_root_privileges = 2 [db_index = True, null = False, blank = False];
427 required manytoone role->TenantRootRole:tenant_root_privileges = 3 [db_index = True, null = False, blank = False];
428}
429
430
431message TenantRootRole (XOSBase) {
432 required string role = 1 [choices = "(('admin', 'Admin'), ('access', 'Access'))", max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
433}
434
435
436message TenantWithContainer (Tenant) {
437 optional manytoone instance->Instance:+ = 1 [help_text = "Instance used by this Tenant", null = True, db_index = True, blank = True];
438 optional manytoone creator->User:+ = 2 [help_text = "Creator of this Tenant", null = True, db_index = True, blank = True];
439 optional string external_hostname = 3 [max_length = 30, content_type = "stripped", blank = True, help_text = "External host name", null = True, db_index = False];
440 optional string external_container = 4 [max_length = 30, content_type = "stripped", blank = True, help_text = "External host name", null = True, db_index = False];
441}
442
443
444message XOS (XOSBase) {
445 required string name = 1 [default = "XOS", max_length = 200, content_type = "stripped", blank = False, help_text = "Name of XOS", null = False, db_index = False];
446}
447
448message XOSGuiExtension (XOSBase) {
449 required string name = 1 [max_length = 200, content_type = "stripped", blank = False, help_text = "Name of the GUI Extensions", null = False, db_index = False];
450 required string files = 2 [max_length = 1024, content_type = "stripped", blank = False, help_text = "List of comma separated file composing the view", null = False, db_index = False];
451}