blob: 6cbfac9db6e4f726d352a2d7ecdffde4f2eebd6e [file] [log] [blame]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandolo2ef0cd72016-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 Scandolo7ec36232016-04-07 16:36:23 -070049# Group ONOS Services
50
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -070051List of the active onos services
52
Matteo Scandolo7ec36232016-04-07 16:36:23 -070053## ONOS Services Collection [/api/service/onos/]
54
55### List all ONOS Services [GET]
56
57+ Response 200 (application/json)
58
59 [
60 {
61 "humanReadableName": "service_ONOS_vBNG",
62 "id": 5,
63 "rest_hostname": "",
64 "rest_port": "8181",
65 "no_container": false,
66 "node_key": ""
67 }
68 ]
69
70
71# Group vSG
72
73## vSG Collection [/api/service/vsg/]
74
75### List all vSGs [GET]
76
77+ Response 200 (application/json)
78
79 [
80 {
81 "humanReadableName": "service_vsg",
82 "id": 2,
83 "wan_container_gateway_ip": "",
84 "wan_container_gateway_mac": "",
85 "dns_servers": "8.8.8.8",
86 "url_filter_kind": null,
87 "node_label": null
88 }
89 ]
90
91
Matteo Scandolo2ef0cd72016-04-12 11:59:29 -070092# Group ONOS Apps
93
94## ONOS App Collection [/api/tenant/onos/app/]
95
96### List all apps [GET]
97
98+ Response 200 (application/json)
99
100 [
101 {
102 "humanReadableName": "onos-tenant-7",
103 "id": 7,
104 "name": "vBNG_ONOS_app",
105 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
106 }
107 ]
108
109
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700110# Group Subscribers
111
112Resource related to the CORD Subscribers.
113
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700114## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700115
116### List All Subscribers [GET]
117
118+ Response 200 (application/json)
119
120 [
121 {
122 "humanReadableName": "cordSubscriber-1",
123 "id": 1,
124 "features": {
125 "cdn": false,
126 "uplink_speed": 1000000000,
127 "downlink_speed": 1000000000,
128 "uverse": false,
129 "status": "enabled"
130 },
131 "identity": {
132 "account_num": "123",
133 "name": "My House"
134 },
135 "related": {
136 "instance_name": "mysite_vcpe",
137 "vsg_id": 4,
138 "compute_node_name": "node2.opencloud.us",
139 "c_tag": "432",
140 "instance_id": 1,
141 "wan_container_ip": null,
142 "volt_id": 3,
143 "s_tag": "222"
144 }
145 }
146 ]
147
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700148
149### View a Subscriber Detail [GET]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700150
151+ Parameters
152 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
153
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700154+ Response 200 (application/json)
155
156 {
157 "humanReadableName": "cordSubscriber-1",
158 "id": 1,
159 "features": {
160 "cdn": false,
161 "uplink_speed": 1000000000,
162 "downlink_speed": 1000000000,
163 "uverse": false,
164 "status": "enabled"
165 },
166 "identity": {
167 "account_num": "123",
168 "name": "My House"
169 },
170 "related": {
171 "instance_name": "mysite_vcpe",
172 "vsg_id": 4,
173 "compute_node_name": "node2.opencloud.us",
174 "c_tag": "432",
175 "instance_id": 1,
176 "wan_container_ip": null,
177 "volt_id": 3,
178 "s_tag": "222"
179 }
180 }
181
182### Delete a Subscriber [DELETE]
183
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700184+ Parameters
185 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
186
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700187+ Response 204
188
189### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
190
191+ Parameters
192 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
193
194### View a Subscriber Features Detail [GET]
195
196+ Response 200 (application/json)
197
198 {
199 "cdn": false,
200 "uplink_speed": 1000000000,
201 "downlink_speed": 1000000000,
202 "uverse": true,
203 "status": "enabled"
204 }
205
206#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
207
208+ Parameters
209 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
210
211#### Read Subscriber uplink_speed [GET]
212
213+ Response 200 (application/json)
214
215 {
216 "uplink_speed": 1000000000
217 }
218
219#### Update Subscriber uplink_speed [PUT]
220
221+ Request 200 (application/json)
222
223 {
224 "uplink_speed": 1000000000
225 }
226
227+ Response 200 (application/json)
228
229 {
230 "uplink_speed": 1000000000
231 }
232
233#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
234
235+ Parameters
236 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
237
238#### Read Subscriber downlink_speed [GET]
239
240+ Response 200 (application/json)
241
242 {
243 "downlink_speed": 1000000000
244 }
245
246#### Update Subscriber downlink_speed [PUT]
247
248+ Request 200 (application/json)
249
250 {
251 "downlink_speed": 1000000000
252 }
253
254+ Response 200 (application/json)
255
256 {
257 "downlink_speed": 1000000000
258 }
259
260#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
261
262+ Parameters
263 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
264
265#### Read Subscriber cdn [GET]
266
267+ Response 200 (application/json)
268
269 {
270 "cdn": false
271 }
272
273#### Update Subscriber cdn [PUT]
274
275+ Request 200 (application/json)
276
277 {
278 "cdn": false
279 }
280
281+ Response 200 (application/json)
282
283 {
284 "cdn": false
285 }
286
287#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
288
289+ Parameters
290 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
291
292#### Read Subscriber uverse [GET]
293
294+ Response 200 (application/json)
295
296 {
297 "uverse": false
298 }
299
300#### Update Subscriber uverse [PUT]
301
302+ Request 200 (application/json)
303
304 {
305 "uverse": false
306 }
307
308+ Response 200 (application/json)
309
310 {
311 "uverse": false
312 }
313
314#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
315
316+ Parameters
317 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
318
319#### Read Subscriber status [GET]
320
321+ Response 200 (application/json)
322
323 {
324 "status": "enabled"
325 }
326
327#### Update Subscriber status [PUT]
328
329+ Request 200 (application/json)
330
331 {
332 "status": "enabled"
333 }
334
335+ Response 200 (application/json)
336
337 {
338 "status": "enabled"
339 }
340
341
342# Group Truckroll
343
344Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
345
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700346## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700347
348### List all Truckroll [GET]
349
350+ Response 200 (application/json)
351
352 [
353 {
354 "humanReadableName": "vTR-tenant-9",
355 "id": 9,
356 "provider_service": 6,
357 "target_id": 2,
358 "scope": "container",
359 "test": "ping",
360 "argument": "8.8.8.8",
361 "result": "",
362 "result_code": "",
363 "is_synced": false,
364 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
365 }
366 ]
367
368### Create a Truckroll [POST]
369
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700370A virtual truckroll is complete once is_synced equal true
371
Matteo Scandolo7ec36232016-04-07 16:36:23 -0700372+ Request (application/json)
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700373
374 {
375 "target_id": 2,
376 "scope": "container",
377 "test": "ping",
378 "argument": "8.8.8.8"
379 }
380
Matteo Scandolo7ec36232016-04-07 16:36:23 -0700381+ Response 201 (application/json)
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700382
383 {
Matteo Scandolo7ec36232016-04-07 16:36:23 -0700384 "humanReadableName": "vTR-tenant-1",
385 "id": 1,
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700386 "provider_service": 6,
387 "target_id": 2,
388 "scope": "container",
389 "test": "ping",
390 "argument": "8.8.8.8",
391 "result": null,
392 "result_code": null,
393 "is_synced": false,
394 "backend_status": "0 - Provisioning in progress"
395 }
396
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700397
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700398### View a Truckroll Detail [GET]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700399
400+ Parameters
401 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
402
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700403+ Response 200 (application/json)
404
405 {
406 "humanReadableName": "vTR-tenant-10",
407 "id": 10,
408 "provider_service": 6,
409 "target_id": 2,
410 "scope": "container",
411 "test": "ping",
412 "argument": "8.8.8.8",
413 "result": null,
414 "result_code": null,
415 "is_synced": false,
416 "backend_status": "0 - Provisioning in progress"
417 }
418
419### Delete a Truckroll Detail [DELETE]
420
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700421+ Parameters
422 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
423
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700424+ Response 204
425
426
427
428# Group vOLT
429
430OLT devices aggregate a set of subscriber connections
431
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700432## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700433
434### List all vOLT [GET]
435
436+ Response 200 (application/json)
437
438 [
439 {
Matteo Scandoloc6103aa2016-04-07 14:38:54 -0700440 "humanReadableName": "vOLT-tenant-1",
441 "id": 1,
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700442 "service_specific_id": "123",
443 "s_tag": "222",
444 "c_tag": "432",
445 "subscriber": 1,
446 "related": {
447 "instance_id": 1,
448 "instance_name": "mysite_vcpe",
449 "vsg_id": 4,
450 "wan_container_ip": null,
451 "compute_node_name": "node2.opencloud.us"
452 }
453 }
454 ]
455
456### Create a vOLT [POST]
457
Matteo Scandolo7ef1bee2016-04-08 14:22:39 -0700458+ Request (application/json)
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700459
460 {
461 "s_tag": "222",
462 "c_tag": "432",
Matteo Scandolo7ec36232016-04-07 16:36:23 -0700463 "subscriber": 1
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700464 }
465
Matteo Scandolo7ef1bee2016-04-08 14:22:39 -0700466+ Response 201 (application/json)
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700467
468 {
Matteo Scandoloc6103aa2016-04-07 14:38:54 -0700469 "humanReadableName": "vOLT-tenant-1",
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700470 "id": 1,
471 "service_specific_id": "123",
472 "s_tag": "222",
473 "c_tag": "432",
474 "subscriber": 1,
475 "related": {
476 "instance_id": 1,
477 "instance_name": "mysite_vcpe",
478 "vsg_id": 4,
479 "wan_container_ip": null,
480 "compute_node_name": "node2.opencloud.us"
481 }
482 }
483
Matteo Scandolo4b3bf7f2016-04-12 11:38:40 -0700484### View a vOLT Detail [GET]
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700485
486+ Parameters
Matteo Scandoloc6103aa2016-04-07 14:38:54 -0700487 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700488
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700489+ Response 200 (application/json)
490
491 {
Matteo Scandoloc6103aa2016-04-07 14:38:54 -0700492 "humanReadableName": "vOLT-tenant-1",
493 "id": 1,
Matteo Scandolo3ba6aff2016-04-06 14:44:56 -0700494 "service_specific_id": "123",
495 "s_tag": "222",
496 "c_tag": "432",
497 "subscriber": 1,
498 "related": {
499 "instance_id": 1,
500 "instance_name": "mysite_vcpe",
501 "vsg_id": 4,
502 "wan_container_ip": null,
503 "compute_node_name": "node2.opencloud.us"
504 }
505 }