blob: f11d61236236dfd8a74f6089616d643b2014d816 [file] [log] [blame]
Teone7241e262016-04-18 14:39:41 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandoloe83c4252016-04-27 17:31:11 -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
49# 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
Teone7241e262016-04-18 14:39:41 -070066# Group ONOS Services
67
Matteo Scandoloe83c4252016-04-27 17:31:11 -070068List of the active onos services
69
Teone7241e262016-04-18 14:39:41 -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,
Teone7241e262016-04-18 14:39:41 -0700100 "dns_servers": "8.8.8.8",
101 "url_filter_kind": null,
102 "node_label": null
103 }
104 ]
105
106
107# Group Subscribers
108
109Resource related to the CORD Subscribers.
110
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700111## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Teone7241e262016-04-18 14:39:41 -0700112
113### List All Subscribers [GET]
114
115+ Response 200 (application/json)
116
117 [
118 {
119 "humanReadableName": "cordSubscriber-1",
120 "id": 1,
121 "features": {
122 "cdn": false,
123 "uplink_speed": 1000000000,
124 "downlink_speed": 1000000000,
125 "uverse": false,
126 "status": "enabled"
127 },
128 "identity": {
129 "account_num": "123",
130 "name": "My House"
131 },
132 "related": {
133 "instance_name": "mysite_vcpe",
134 "vsg_id": 4,
135 "compute_node_name": "node2.opencloud.us",
136 "c_tag": "432",
137 "instance_id": 1,
138 "wan_container_ip": null,
139 "volt_id": 3,
140 "s_tag": "222"
141 }
142 }
143 ]
144
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700145
146### View a Subscriber Detail [GET]
Teone7241e262016-04-18 14:39:41 -0700147
148+ Parameters
149 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
150
Teone7241e262016-04-18 14:39:41 -0700151+ Response 200 (application/json)
152
153 {
154 "humanReadableName": "cordSubscriber-1",
155 "id": 1,
156 "features": {
157 "cdn": false,
158 "uplink_speed": 1000000000,
159 "downlink_speed": 1000000000,
160 "uverse": false,
161 "status": "enabled"
162 },
163 "identity": {
164 "account_num": "123",
165 "name": "My House"
166 },
167 "related": {
168 "instance_name": "mysite_vcpe",
169 "vsg_id": 4,
170 "compute_node_name": "node2.opencloud.us",
171 "c_tag": "432",
172 "instance_id": 1,
173 "wan_container_ip": null,
174 "volt_id": 3,
175 "s_tag": "222"
176 }
177 }
178
179### Delete a Subscriber [DELETE]
180
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700181+ Parameters
182 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
183
Teone7241e262016-04-18 14:39:41 -0700184+ Response 204
185
186### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
187
188+ Parameters
189 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
190
191### View a Subscriber Features Detail [GET]
192
193+ Response 200 (application/json)
194
195 {
196 "cdn": false,
197 "uplink_speed": 1000000000,
198 "downlink_speed": 1000000000,
199 "uverse": true,
200 "status": "enabled"
201 }
202
203#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
204
205+ Parameters
206 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
207
208#### Read Subscriber uplink_speed [GET]
209
210+ Response 200 (application/json)
211
212 {
213 "uplink_speed": 1000000000
214 }
215
216#### Update Subscriber uplink_speed [PUT]
217
218+ Request 200 (application/json)
219
220 {
221 "uplink_speed": 1000000000
222 }
223
224+ Response 200 (application/json)
225
226 {
227 "uplink_speed": 1000000000
228 }
229
230#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
231
232+ Parameters
233 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
234
235#### Read Subscriber downlink_speed [GET]
236
237+ Response 200 (application/json)
238
239 {
240 "downlink_speed": 1000000000
241 }
242
243#### Update Subscriber downlink_speed [PUT]
244
245+ Request 200 (application/json)
246
247 {
248 "downlink_speed": 1000000000
249 }
250
251+ Response 200 (application/json)
252
253 {
254 "downlink_speed": 1000000000
255 }
256
257#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
258
259+ Parameters
260 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
261
262#### Read Subscriber cdn [GET]
263
264+ Response 200 (application/json)
265
266 {
267 "cdn": false
268 }
269
270#### Update Subscriber cdn [PUT]
271
272+ Request 200 (application/json)
273
274 {
275 "cdn": false
276 }
277
278+ Response 200 (application/json)
279
280 {
281 "cdn": false
282 }
283
284#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
285
286+ Parameters
287 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
288
289#### Read Subscriber uverse [GET]
290
291+ Response 200 (application/json)
292
293 {
294 "uverse": false
295 }
296
297#### Update Subscriber uverse [PUT]
298
299+ Request 200 (application/json)
300
301 {
302 "uverse": false
303 }
304
305+ Response 200 (application/json)
306
307 {
308 "uverse": false
309 }
310
311#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
312
313+ Parameters
314 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
315
316#### Read Subscriber status [GET]
317
318+ Response 200 (application/json)
319
320 {
321 "status": "enabled"
322 }
323
324#### Update Subscriber status [PUT]
325
326+ Request 200 (application/json)
327
328 {
329 "status": "enabled"
330 }
331
332+ Response 200 (application/json)
333
334 {
335 "status": "enabled"
336 }
337
338
339# Group Truckroll
340
341Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
342
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700343## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Teone7241e262016-04-18 14:39:41 -0700344
345### List all Truckroll [GET]
346
347+ Response 200 (application/json)
348
349 [
350 {
351 "humanReadableName": "vTR-tenant-9",
352 "id": 9,
353 "provider_service": 6,
354 "target_id": 2,
355 "scope": "container",
356 "test": "ping",
357 "argument": "8.8.8.8",
358 "result": "",
359 "result_code": "",
360 "is_synced": false,
361 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
362 }
363 ]
364
365### Create a Truckroll [POST]
366
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700367A virtual truckroll is complete once is_synced equal true
368
Teone7241e262016-04-18 14:39:41 -0700369+ Request (application/json)
370
371 {
372 "target_id": 2,
373 "scope": "container",
374 "test": "ping",
375 "argument": "8.8.8.8"
376 }
377
378+ Response 201 (application/json)
379
380 {
381 "humanReadableName": "vTR-tenant-1",
382 "id": 1,
383 "provider_service": 6,
384 "target_id": 2,
385 "scope": "container",
386 "test": "ping",
387 "argument": "8.8.8.8",
388 "result": null,
389 "result_code": null,
390 "is_synced": false,
391 "backend_status": "0 - Provisioning in progress"
392 }
393
Teone7241e262016-04-18 14:39:41 -0700394
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700395### View a Truckroll Detail [GET]
Teone7241e262016-04-18 14:39:41 -0700396
397+ Parameters
398 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
399
Teone7241e262016-04-18 14:39:41 -0700400+ Response 200 (application/json)
401
402 {
403 "humanReadableName": "vTR-tenant-10",
404 "id": 10,
405 "provider_service": 6,
406 "target_id": 2,
407 "scope": "container",
408 "test": "ping",
409 "argument": "8.8.8.8",
410 "result": null,
411 "result_code": null,
412 "is_synced": false,
413 "backend_status": "0 - Provisioning in progress"
414 }
415
416### Delete a Truckroll Detail [DELETE]
417
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700418+ Parameters
419 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
420
Teone7241e262016-04-18 14:39:41 -0700421+ Response 204
422
423
424
425# Group vOLT
426
427OLT devices aggregate a set of subscriber connections
428
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700429## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Teone7241e262016-04-18 14:39:41 -0700430
431### List all vOLT [GET]
432
433+ Response 200 (application/json)
434
435 [
436 {
437 "humanReadableName": "vOLT-tenant-1",
438 "id": 1,
439 "service_specific_id": "123",
440 "s_tag": "222",
441 "c_tag": "432",
442 "subscriber": 1,
443 "related": {
444 "instance_id": 1,
445 "instance_name": "mysite_vcpe",
446 "vsg_id": 4,
447 "wan_container_ip": null,
448 "compute_node_name": "node2.opencloud.us"
449 }
450 }
451 ]
452
453### Create a vOLT [POST]
454
455+ Request (application/json)
456
457 {
458 "s_tag": "222",
459 "c_tag": "432",
460 "subscriber": 1
461 }
462
463+ Response 201 (application/json)
464
465 {
466 "humanReadableName": "vOLT-tenant-1",
467 "id": 1,
468 "service_specific_id": "123",
469 "s_tag": "222",
470 "c_tag": "432",
471 "subscriber": 1,
472 "related": {
473 "instance_id": 1,
474 "instance_name": "mysite_vcpe",
475 "vsg_id": 4,
476 "wan_container_ip": null,
477 "compute_node_name": "node2.opencloud.us"
478 }
479 }
480
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700481### View a vOLT Detail [GET]
Teone7241e262016-04-18 14:39:41 -0700482
483+ Parameters
484 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
485
Teone7241e262016-04-18 14:39:41 -0700486+ Response 200 (application/json)
487
488 {
489 "humanReadableName": "vOLT-tenant-1",
490 "id": 1,
491 "service_specific_id": "123",
492 "s_tag": "222",
493 "c_tag": "432",
494 "subscriber": 1,
495 "related": {
496 "instance_id": 1,
497 "instance_name": "mysite_vcpe",
498 "vsg_id": 4,
499 "wan_container_ip": null,
500 "compute_node_name": "node2.opencloud.us"
501 }
502 }
503
504
505
506# Group ONOS Apps
507
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700508## ONOS App Collection [/api/tenant/onos/app/]
Teone7241e262016-04-18 14:39:41 -0700509
510### List all apps [GET]
511
512+ Response 200 (application/json)
513
514 [
515 {
516 "humanReadableName": "onos-tenant-7",
517 "id": 7,
518 "name": "vBNG_ONOS_app",
519 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
520 }
521 ]