blob: 9e096055e7fe76b683301ede2f1439ad093e1336 [file] [log] [blame]
Matteo Scandoloa6658422016-04-06 14:44:56 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandolobd2e5cd2016-04-12 11:59:29 -07006# Group Users
7
8List of the XOS users
9
10## Users [/api/core/users/]
11
12### List all Users [GET]
13
14+ Response 200 (application/json)
15
16 [
17 {
18 "id": 2,
19 "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
20 "last_login": "2016-04-12T18:50:45.880823Z",
21 "email": "johndoe@myhouse.com",
22 "username": "johndoe@myhouse.com",
23 "firstname": "john",
24 "lastname": "doe",
25 "phone": null,
26 "user_url": null,
27 "site": "http://xos.dev:9999/api/core/sites/1/",
28 "public_key": null,
29 "is_active": true,
30 "is_admin": false,
31 "is_staff": true,
32 "is_readonly": false,
33 "is_registering": false,
34 "is_appuser": false,
35 "login_page": null,
36 "created": "2016-04-12T18:50:45.912602Z",
37 "updated": "2016-04-12T18:50:45.912671Z",
38 "enacted": null,
39 "policed": null,
40 "backend_status": "Provisioning in progress",
41 "deleted": false,
42 "write_protect": false,
43 "timezone": "America/New_York"
44 }
45 ]
46
47
48
Matteo Scandoloc98cdd92016-04-18 14:51:44 -070049# Group Example
50
51## Example Services Collection [/api/service/exampleservice/]
52
53### List all Example Services [GET]
54
55+ Response 200 (application/json)
56
57 [
58 {
59 "humanReadableName": "MyExample",
60 "id": 1,
61 "service_message": "This is the test message"
62 }
63 ]
64
65
Matteo Scandolo336dda12016-04-07 16:36:23 -070066# Group ONOS Services
67
Matteo Scandoloc7987cd2016-04-12 11:38:40 -070068List of the active onos services
69
Matteo Scandolo336dda12016-04-07 16:36:23 -070070## ONOS Services Collection [/api/service/onos/]
71
72### List all ONOS Services [GET]
73
74+ Response 200 (application/json)
75
76 [
77 {
78 "humanReadableName": "service_ONOS_vBNG",
79 "id": 5,
80 "rest_hostname": "",
81 "rest_port": "8181",
82 "no_container": false,
83 "node_key": ""
84 }
85 ]
86
87
88# Group vSG
89
90## vSG Collection [/api/service/vsg/]
91
92### List all vSGs [GET]
93
94+ Response 200 (application/json)
95
96 [
97 {
98 "humanReadableName": "service_vsg",
99 "id": 2,
100 "wan_container_gateway_ip": "",
101 "wan_container_gateway_mac": "",
102 "dns_servers": "8.8.8.8",
103 "url_filter_kind": null,
104 "node_label": null
105 }
106 ]
107
108
Matteo Scandoloa6658422016-04-06 14:44:56 -0700109# Group Subscribers
110
111Resource related to the CORD Subscribers.
112
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700113## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Matteo Scandoloa6658422016-04-06 14:44:56 -0700114
115### List All Subscribers [GET]
116
117+ Response 200 (application/json)
118
119 [
120 {
121 "humanReadableName": "cordSubscriber-1",
122 "id": 1,
123 "features": {
124 "cdn": false,
125 "uplink_speed": 1000000000,
126 "downlink_speed": 1000000000,
127 "uverse": false,
128 "status": "enabled"
129 },
130 "identity": {
131 "account_num": "123",
132 "name": "My House"
133 },
134 "related": {
135 "instance_name": "mysite_vcpe",
136 "vsg_id": 4,
137 "compute_node_name": "node2.opencloud.us",
138 "c_tag": "432",
139 "instance_id": 1,
140 "wan_container_ip": null,
141 "volt_id": 3,
142 "s_tag": "222"
143 }
144 }
145 ]
146
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700147
148### View a Subscriber Detail [GET]
Matteo Scandoloa6658422016-04-06 14:44:56 -0700149
150+ Parameters
151 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
152
Matteo Scandoloa6658422016-04-06 14:44:56 -0700153+ Response 200 (application/json)
154
155 {
156 "humanReadableName": "cordSubscriber-1",
157 "id": 1,
158 "features": {
159 "cdn": false,
160 "uplink_speed": 1000000000,
161 "downlink_speed": 1000000000,
162 "uverse": false,
163 "status": "enabled"
164 },
165 "identity": {
166 "account_num": "123",
167 "name": "My House"
168 },
169 "related": {
170 "instance_name": "mysite_vcpe",
171 "vsg_id": 4,
172 "compute_node_name": "node2.opencloud.us",
173 "c_tag": "432",
174 "instance_id": 1,
175 "wan_container_ip": null,
176 "volt_id": 3,
177 "s_tag": "222"
178 }
179 }
180
181### Delete a Subscriber [DELETE]
182
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700183+ Parameters
184 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
185
Matteo Scandoloa6658422016-04-06 14:44:56 -0700186+ Response 204
187
188### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
189
190+ Parameters
191 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
192
193### View a Subscriber Features Detail [GET]
194
195+ Response 200 (application/json)
196
197 {
198 "cdn": false,
199 "uplink_speed": 1000000000,
200 "downlink_speed": 1000000000,
201 "uverse": true,
202 "status": "enabled"
203 }
204
205#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
206
207+ Parameters
208 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
209
210#### Read Subscriber uplink_speed [GET]
211
212+ Response 200 (application/json)
213
214 {
215 "uplink_speed": 1000000000
216 }
217
218#### Update Subscriber uplink_speed [PUT]
219
220+ Request 200 (application/json)
221
222 {
223 "uplink_speed": 1000000000
224 }
225
226+ Response 200 (application/json)
227
228 {
229 "uplink_speed": 1000000000
230 }
231
232#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
233
234+ Parameters
235 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
236
237#### Read Subscriber downlink_speed [GET]
238
239+ Response 200 (application/json)
240
241 {
242 "downlink_speed": 1000000000
243 }
244
245#### Update Subscriber downlink_speed [PUT]
246
247+ Request 200 (application/json)
248
249 {
250 "downlink_speed": 1000000000
251 }
252
253+ Response 200 (application/json)
254
255 {
256 "downlink_speed": 1000000000
257 }
258
259#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
260
261+ Parameters
262 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
263
264#### Read Subscriber cdn [GET]
265
266+ Response 200 (application/json)
267
268 {
269 "cdn": false
270 }
271
272#### Update Subscriber cdn [PUT]
273
274+ Request 200 (application/json)
275
276 {
277 "cdn": false
278 }
279
280+ Response 200 (application/json)
281
282 {
283 "cdn": false
284 }
285
286#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
287
288+ Parameters
289 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
290
291#### Read Subscriber uverse [GET]
292
293+ Response 200 (application/json)
294
295 {
296 "uverse": false
297 }
298
299#### Update Subscriber uverse [PUT]
300
301+ Request 200 (application/json)
302
303 {
304 "uverse": false
305 }
306
307+ Response 200 (application/json)
308
309 {
310 "uverse": false
311 }
312
313#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
314
315+ Parameters
316 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
317
318#### Read Subscriber status [GET]
319
320+ Response 200 (application/json)
321
322 {
323 "status": "enabled"
324 }
325
326#### Update Subscriber status [PUT]
327
328+ Request 200 (application/json)
329
330 {
331 "status": "enabled"
332 }
333
334+ Response 200 (application/json)
335
336 {
337 "status": "enabled"
338 }
339
340
341# Group Truckroll
342
343Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
344
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700345## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Matteo Scandoloa6658422016-04-06 14:44:56 -0700346
347### List all Truckroll [GET]
348
349+ Response 200 (application/json)
350
351 [
352 {
353 "humanReadableName": "vTR-tenant-9",
354 "id": 9,
355 "provider_service": 6,
356 "target_id": 2,
357 "scope": "container",
358 "test": "ping",
359 "argument": "8.8.8.8",
360 "result": "",
361 "result_code": "",
362 "is_synced": false,
363 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
364 }
365 ]
366
367### Create a Truckroll [POST]
368
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700369A virtual truckroll is complete once is_synced equal true
370
Matteo Scandolo336dda12016-04-07 16:36:23 -0700371+ Request (application/json)
Matteo Scandoloa6658422016-04-06 14:44:56 -0700372
373 {
374 "target_id": 2,
375 "scope": "container",
376 "test": "ping",
377 "argument": "8.8.8.8"
378 }
379
Matteo Scandolo336dda12016-04-07 16:36:23 -0700380+ Response 201 (application/json)
Matteo Scandoloa6658422016-04-06 14:44:56 -0700381
382 {
Matteo Scandolo336dda12016-04-07 16:36:23 -0700383 "humanReadableName": "vTR-tenant-1",
384 "id": 1,
Matteo Scandoloa6658422016-04-06 14:44:56 -0700385 "provider_service": 6,
386 "target_id": 2,
387 "scope": "container",
388 "test": "ping",
389 "argument": "8.8.8.8",
390 "result": null,
391 "result_code": null,
392 "is_synced": false,
393 "backend_status": "0 - Provisioning in progress"
394 }
395
Matteo Scandoloa6658422016-04-06 14:44:56 -0700396
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700397### View a Truckroll Detail [GET]
Matteo Scandoloa6658422016-04-06 14:44:56 -0700398
399+ Parameters
400 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
401
Matteo Scandoloa6658422016-04-06 14:44:56 -0700402+ Response 200 (application/json)
403
404 {
405 "humanReadableName": "vTR-tenant-10",
406 "id": 10,
407 "provider_service": 6,
408 "target_id": 2,
409 "scope": "container",
410 "test": "ping",
411 "argument": "8.8.8.8",
412 "result": null,
413 "result_code": null,
414 "is_synced": false,
415 "backend_status": "0 - Provisioning in progress"
416 }
417
418### Delete a Truckroll Detail [DELETE]
419
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700420+ Parameters
421 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
422
Matteo Scandoloa6658422016-04-06 14:44:56 -0700423+ Response 204
424
425
426
427# Group vOLT
428
429OLT devices aggregate a set of subscriber connections
430
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700431## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Matteo Scandoloa6658422016-04-06 14:44:56 -0700432
433### List all vOLT [GET]
434
435+ Response 200 (application/json)
436
437 [
438 {
Matteo Scandoloc916b5e2016-04-07 14:38:54 -0700439 "humanReadableName": "vOLT-tenant-1",
440 "id": 1,
Matteo Scandoloa6658422016-04-06 14:44:56 -0700441 "service_specific_id": "123",
442 "s_tag": "222",
443 "c_tag": "432",
444 "subscriber": 1,
445 "related": {
446 "instance_id": 1,
447 "instance_name": "mysite_vcpe",
448 "vsg_id": 4,
449 "wan_container_ip": null,
450 "compute_node_name": "node2.opencloud.us"
451 }
452 }
453 ]
454
455### Create a vOLT [POST]
456
Matteo Scandoloaf4c2382016-04-08 14:22:39 -0700457+ Request (application/json)
Matteo Scandoloa6658422016-04-06 14:44:56 -0700458
459 {
460 "s_tag": "222",
461 "c_tag": "432",
Matteo Scandolo336dda12016-04-07 16:36:23 -0700462 "subscriber": 1
Matteo Scandoloa6658422016-04-06 14:44:56 -0700463 }
464
Matteo Scandoloaf4c2382016-04-08 14:22:39 -0700465+ Response 201 (application/json)
Matteo Scandoloa6658422016-04-06 14:44:56 -0700466
467 {
Matteo Scandoloc916b5e2016-04-07 14:38:54 -0700468 "humanReadableName": "vOLT-tenant-1",
Matteo Scandoloa6658422016-04-06 14:44:56 -0700469 "id": 1,
470 "service_specific_id": "123",
471 "s_tag": "222",
472 "c_tag": "432",
473 "subscriber": 1,
474 "related": {
475 "instance_id": 1,
476 "instance_name": "mysite_vcpe",
477 "vsg_id": 4,
478 "wan_container_ip": null,
479 "compute_node_name": "node2.opencloud.us"
480 }
481 }
482
Matteo Scandoloc7987cd2016-04-12 11:38:40 -0700483### View a vOLT Detail [GET]
Matteo Scandoloa6658422016-04-06 14:44:56 -0700484
485+ Parameters
Matteo Scandoloc916b5e2016-04-07 14:38:54 -0700486 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
Matteo Scandoloa6658422016-04-06 14:44:56 -0700487
Matteo Scandoloa6658422016-04-06 14:44:56 -0700488+ Response 200 (application/json)
489
490 {
Matteo Scandoloc916b5e2016-04-07 14:38:54 -0700491 "humanReadableName": "vOLT-tenant-1",
492 "id": 1,
Matteo Scandoloa6658422016-04-06 14:44:56 -0700493 "service_specific_id": "123",
494 "s_tag": "222",
495 "c_tag": "432",
496 "subscriber": 1,
497 "related": {
498 "instance_id": 1,
499 "instance_name": "mysite_vcpe",
500 "vsg_id": 4,
501 "wan_container_ip": null,
502 "compute_node_name": "node2.opencloud.us"
503 }
504 }
Matteo Scandolo336dda12016-04-07 16:36:23 -0700505
506
507
508# Group ONOS Apps
509
Matteo Scandolo00d0d9e2016-04-18 15:09:21 -0700510## ONOS App Collection [/api/tenant/onos/app/]
Matteo Scandolo336dda12016-04-07 16:36:23 -0700511
512### List all apps [GET]
513
514+ Response 200 (application/json)
515
516 [
517 {
518 "humanReadableName": "onos-tenant-7",
519 "id": 7,
520 "name": "vBNG_ONOS_app",
521 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
522 }
523 ]