blob: 0f9632d851016254e2cd836bdcf172566e4a13b5 [file] [log] [blame]
Teone7241e262016-04-18 14:39:41 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandolod7d70472016-04-29 09:56:48 -07006# Group Deployments
7
8List of the XOS deployments
9
10## Deployments [/api/core/deployments/{id}/]
11
12### List all deployments [GET]
13
14+ Response 200 (application/json)
15
Matteo Scandolob82a85d2016-05-02 15:29:37 -070016 [
17 {
18 "humanReadableName": "MyDeployment",
19 "id": 1,
20 "created": "2016-04-29T16:19:03.549901Z",
21 "updated": "2016-04-29T16:19:05.624151Z",
22 "enacted": null,
23 "policed": null,
24 "backend_register": "{}",
25 "backend_status": "0 - Provisioning in progress",
26 "deleted": false,
27 "write_protect": false,
28 "lazy_blocked": false,
29 "no_sync": true,
30 "name": "MyDeployment",
31 "accessControl": "allow all",
32 "images": [
33 "1"
34 ],
35 "sites": [
36 "1"
37 ],
38 "flavors": [
39 "1",
40 "2",
41 "3"
42 ],
43 "dashboardviews": [
44 "1"
45 ]
46 }
47 ]
48
Matteo Scandolo28c5cb82016-05-02 15:51:34 -070049### Create a deployment [POST]
50
Matteo Scandoloc41467a2016-05-02 18:15:57 -070051+ Request (application/json)
52
53 {
54 "humanReadableName": "MyDeployment",
55 }
56
Matteo Scandolo28c5cb82016-05-02 15:51:34 -070057+ Response 200 (application/json)
58
59 {
60 "humanReadableName": "MyDeployment",
61 "id": 1,
62 "created": "2016-04-29T16:19:03.549901Z",
63 "updated": "2016-04-29T16:19:05.624151Z",
64 "enacted": null,
65 "policed": null,
66 "backend_register": "{}",
67 "backend_status": "0 - Provisioning in progress",
68 "deleted": false,
69 "write_protect": false,
70 "lazy_blocked": false,
71 "no_sync": true,
72 "name": "MyDeployment",
73 "accessControl": "allow all",
74 "images": [
75 "1"
76 ],
77 "sites": [
78 "1"
79 ],
80 "flavors": [
81 "1",
82 "2",
83 "3"
84 ],
85 "dashboardviews": [
86 "1"
87 ]
88 }
89
Matteo Scandolob82a85d2016-05-02 15:29:37 -070090### View a Deployment Detail [GET]
91
92+ Parameters
93 + id: 1 (number) - ID of the Deployment in the form of an integer
94
95+ Response 200 (application/json)
96
Matteo Scandolod7d70472016-04-29 09:56:48 -070097 {
98 "humanReadableName": "MyDeployment",
99 "id": 1,
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700100 "created": "2016-04-27T21:46:57.354544Z",
101 "updated": "2016-04-27T21:47:05.221720Z",
Matteo Scandolod7d70472016-04-29 09:56:48 -0700102 "enacted": null,
103 "policed": null,
104 "backend_register": "{}",
105 "backend_status": "0 - Provisioning in progress",
106 "deleted": false,
107 "write_protect": false,
108 "lazy_blocked": false,
109 "no_sync": true,
110 "name": "MyDeployment",
111 "accessControl": "allow all",
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700112 "images": [],
Matteo Scandolod7d70472016-04-29 09:56:48 -0700113 "sites": [
114 "1"
115 ],
116 "flavors": [
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700117 "3",
Matteo Scandolod7d70472016-04-29 09:56:48 -0700118 "2",
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700119 "1"
Matteo Scandolod7d70472016-04-29 09:56:48 -0700120 ],
121 "dashboardviews": [
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700122 "3"
Matteo Scandolod7d70472016-04-29 09:56:48 -0700123 ]
124 }
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700125
Matteo Scandolo28c5cb82016-05-02 15:51:34 -0700126### Delete a Deployment [DELETE]
127
128+ Parameters
129 + id: 1 (number) - ID of the Deployment in the form of an integer
130
131+ Response 204
Matteo Scandolod7d70472016-04-29 09:56:48 -0700132
133
134# Group Flavors
135
136List of the XOS flavors
137
138## Flavors [/api/core/flavors/{id}/]
139
140### List all flavors [GET]
141
142+ Response 200 (application/json)
143
144 [
145 {
146 "humanReadableName": "m1.large",
147 "id": 1,
148 "created": "2016-04-29T16:19:01.979548Z",
149 "updated": "2016-04-29T16:19:03.568238Z",
150 "enacted": null,
151 "policed": null,
152 "backend_register": "{}",
153 "backend_status": "0 - Provisioning in progress",
154 "deleted": false,
155 "write_protect": false,
156 "lazy_blocked": false,
157 "no_sync": true,
158 "name": "m1.large",
159 "description": null,
160 "flavor": "m1.large",
161 "order": 0,
162 "default": false,
163 "deployments": [
164 "1"
165 ]
166 }
167 ]
168
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700169### Create a Flavor [POST]
170
171+ Request (application/json)
172
173 {
174 "humanReadableName": "mq.test",
175 }
176
177+ Response 200 (application/json)
178
179 {
180 "humanReadableName": "m1.large",
181 "id": 1,
182 "created": "2016-04-29T16:19:01.979548Z",
183 "updated": "2016-04-29T16:19:03.568238Z",
184 "enacted": null,
185 "policed": null,
186 "backend_register": "{}",
187 "backend_status": "0 - Provisioning in progress",
188 "deleted": false,
189 "write_protect": false,
190 "lazy_blocked": false,
191 "no_sync": true,
192 "name": "m1.large",
193 "description": null,
194 "flavor": "m1.large",
195 "order": 0,
196 "default": false,
197 "deployments": [
198 "1"
199 ]
200 }
201
Matteo Scandolod7d70472016-04-29 09:56:48 -0700202### View a Flavors Detail [GET]
203
204+ Parameters
205 + id: 1 (number) - ID of the Flavors in the form of an integer
206
207+ Response 200 (application/json)
208
209 {
210 "humanReadableName": "m1.large",
211 "id": 1,
212 "created": "2016-04-29T16:19:01.979548Z",
213 "updated": "2016-04-29T16:19:03.568238Z",
214 "enacted": null,
215 "policed": null,
216 "backend_register": "{}",
217 "backend_status": "0 - Provisioning in progress",
218 "deleted": false,
219 "write_protect": false,
220 "lazy_blocked": false,
221 "no_sync": true,
222 "name": "m1.large",
223 "description": null,
224 "flavor": "m1.large",
225 "order": 0,
226 "default": false,
227 "deployments": [
228 "1"
229 ]
230 }
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700231
232### Delete a Flavors Detail [DELETE]
233
234+ Parameters
235 + id: 1 (number) - ID of the Flavors in the form of an integer
236
237+ Response 204
Matteo Scandolod7d70472016-04-29 09:56:48 -0700238
239
240# Group Instances
241
242List of the XOS instances
243
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700244## Instances Collection [/api/core/instances/{?no_hyperlinks}]
245
246 + no_hyperlinks (number, optional) - Wheter to return relation with links or ids
247 + Default: `0`
Matteo Scandolod7d70472016-04-29 09:56:48 -0700248
249### List all Instances [GET]
250
251+ Response 200 (application/json)
252
253 [
254 {
255 "id": 1,
256 "humanReadableName": "uninstantiated-1",
257 "created": "2016-04-26T00:36:22.465259Z",
258 "updated": "2016-04-26T00:36:22.465288Z",
259 "enacted": null,
260 "policed": null,
261 "backend_register": "{}",
262 "backend_status": "0 - Provisioning in progress",
263 "deleted": false,
264 "write_protect": false,
265 "lazy_blocked": false,
266 "no_sync": false,
267 "instance_id": null,
268 "instance_uuid": null,
269 "name": "mysite_vcpe",
270 "instance_name": null,
271 "ip": null,
272 "image": "1",
273 "creator": "1",
274 "slice": "1",
275 "deployment": "1",
276 "node": "1",
277 "numberCores": 0,
278 "flavor": "1",
279 "userData": null,
280 "isolation": "vm",
281 "volumes": "/etc/dnsmasq.d,/etc/ufw",
282 "parent": null,
283 "networks": [
284 "1"
285 ]
286 }
287 ]
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700288
289### Create an Instance [POST]
290
291+ Parameters
292 + no_hyperlinks: 1
293
294+ Request (application/json)
295
296 {
297 "name": "test-instance",
298 "image": 1,
299 "slice": 1,
300 "deployment": 1,
301 "node": 1
302 }
303
304+ Response 200 (application/json)
305
306 {
307 "id": 1,
308 "humanReadableName": "uninstantiated-1",
309 "created": "2016-04-26T00:36:22.465259Z",
310 "updated": "2016-04-26T00:36:22.465288Z",
311 "enacted": null,
312 "policed": null,
313 "backend_register": "{}",
314 "backend_status": "0 - Provisioning in progress",
315 "deleted": false,
316 "write_protect": false,
317 "lazy_blocked": false,
318 "no_sync": false,
319 "instance_id": null,
320 "instance_uuid": null,
321 "name": "test-instance",
322 "instance_name": null,
323 "ip": null,
324 "image": "1",
325 "creator": "1",
326 "slice": "1",
327 "deployment": "1",
328 "node": "1",
329 "numberCores": 0,
330 "flavor": "1",
331 "userData": null,
332 "isolation": "vm",
333 "volumes": "/etc/dnsmasq.d,/etc/ufw",
334 "parent": null,
335 "networks": [
336 "1"
337 ]
338 }
339
340## Instances Detail [/api/core/instances/{id}/]
341
342### Get instance details [GET]
343
344+ Parameters
345 + id: 1 (number) - ID of the Instance in the form of an integer
346
347+ Response 200 (application/json)
348
349 {
350 "id": 1,
351 "humanReadableName": "uninstantiated-1",
352 "created": "2016-04-26T00:36:22.465259Z",
353 "updated": "2016-04-26T00:36:22.465288Z",
354 "enacted": null,
355 "policed": null,
356 "backend_register": "{}",
357 "backend_status": "0 - Provisioning in progress",
358 "deleted": false,
359 "write_protect": false,
360 "lazy_blocked": false,
361 "no_sync": false,
362 "instance_id": null,
363 "instance_uuid": null,
364 "name": "mysite_vcpe",
365 "instance_name": null,
366 "ip": null,
367 "image": "1",
368 "creator": "1",
369 "slice": "1",
370 "deployment": "1",
371 "node": "1",
372 "numberCores": 0,
373 "flavor": "1",
374 "userData": null,
375 "isolation": "vm",
376 "volumes": "/etc/dnsmasq.d,/etc/ufw",
377 "parent": null,
378 "networks": [
379 "1"
380 ]
381 }
382
383### Delete instance [DELETE]
384
385+ Parameters
386 + id: 1 (number) - ID of the Instance in the form of an integer
387
388+ Response 204
Matteo Scandolod7d70472016-04-29 09:56:48 -0700389
390
391# Group Nodes
392
393List of the XOS nodes
394
395## Nodes [/api/core/nodes/{id}/]
396
397### List all nodes [GET]
398
399+ Response 200 (application/json)
400
401 [
402 {
403 "humanReadableName": "node2.opencloud.us",
404 "id": 1,
405 "created": "2016-04-29T16:19:05.661567Z",
406 "updated": "2016-04-29T16:19:05.661454Z",
407 "enacted": null,
408 "policed": null,
409 "backend_register": "{}",
410 "backend_status": "0 - Provisioning in progress",
411 "deleted": false,
412 "write_protect": false,
413 "lazy_blocked": false,
414 "no_sync": true,
415 "name": "node2.opencloud.us",
416 "site_deployment": "1",
417 "site": "1",
418 "nodelabels": []
419 }
420 ]
421
422
423
Matteo Scandolo896bb7b2016-05-06 14:10:11 -0700424# Group Services
425
426List of the XOS Services
427
428## Services [/api/core/services/{id}/]
429
430### List all Services [GET]
431
432+ Response 200 (application/json)
433
434 [
435 {
436 "humanReadableName": "MyService",
437 "id": 1,
438 "created": "2016-05-05T23:06:33.835277Z",
439 "updated": "2016-05-05T23:06:33.835302Z",
440 "enacted": null,
441 "policed": null,
442 "backend_register": "{}",
443 "backend_status": "0 - Provisioning in progress",
444 "deleted": false,
445 "write_protect": false,
446 "lazy_blocked": false,
447 "no_sync": false,
448 "no_policy": false,
449 "description": null,
450 "enabled": true,
451 "kind": "vROUTER",
452 "name": "MyService",
453 "versionNumber": null,
454 "published": true,
455 "view_url": "/admin/vrouter/vrouterservice/$id$/",
456 "icon_url": null,
457 "public_key": null,
458 "private_key_fn": null,
459 "service_specific_id": null,
460 "service_specific_attribute": null
461 }
462 ]
463
464### Create a Service [POST]
465
466+ Request (application/json)
467
468 {
469 "name": "MyService",
470 "kind": "vROUTER"
471 }
472
473+ Response 200 (application/json)
474
475 {
476 "humanReadableName": "MyService",
477 "id": 1,
478 "created": "2016-05-05T23:06:33.835277Z",
479 "updated": "2016-05-05T23:06:33.835302Z",
480 "enacted": null,
481 "policed": null,
482 "backend_register": "{}",
483 "backend_status": "0 - Provisioning in progress",
484 "deleted": false,
485 "write_protect": false,
486 "lazy_blocked": false,
487 "no_sync": false,
488 "no_policy": false,
489 "description": null,
490 "enabled": true,
491 "kind": "vROUTER",
492 "name": "MyService",
493 "versionNumber": null,
494 "published": true,
495 "view_url": "/admin/vrouter/vrouterservice/$id$/",
496 "icon_url": null,
497 "public_key": null,
498 "private_key_fn": null,
499 "service_specific_id": null,
500 "service_specific_attribute": null
501 }
502
503### View a Service Detail [GET]
504
505+ Parameters
506 + id: 1 (number) - ID of the Service in the form of an integer
507
508+ Response 200 (application/json)
509
510 {
511 "humanReadableName": "MyService",
512 "id": 1,
513 "created": "2016-05-05T23:06:33.835277Z",
514 "updated": "2016-05-05T23:06:33.835302Z",
515 "enacted": null,
516 "policed": null,
517 "backend_register": "{}",
518 "backend_status": "0 - Provisioning in progress",
519 "deleted": false,
520 "write_protect": false,
521 "lazy_blocked": false,
522 "no_sync": false,
523 "no_policy": false,
524 "description": null,
525 "enabled": true,
526 "kind": "vROUTER",
527 "name": "MyService",
528 "versionNumber": null,
529 "published": true,
530 "view_url": "/admin/vrouter/vrouterservice/$id$/",
531 "icon_url": null,
532 "public_key": null,
533 "private_key_fn": null,
534 "service_specific_id": null,
535 "service_specific_attribute": null
536 }
537
538### Delete a Service [DELETE]
539
540+ Parameters
541 + id: 1 (number) - ID of the Service in the form of an integer
542
543+ Response 204
544
545
546
Matteo Scandolod7d70472016-04-29 09:56:48 -0700547# Group Sites
548
549List of the XOS sites
550
551## Sites [/api/core/sites/{id}/]
552
553### List all sites [GET]
554
555+ Response 200 (application/json)
556
557 {
558 "humanReadableName": "MySite",
559 "id": 1,
560 "created": "2016-04-29T16:19:03.587770Z",
561 "updated": "2016-04-29T16:19:05.651933Z",
562 "enacted": null,
563 "policed": null,
564 "backend_register": "{}",
565 "backend_status": "0 - Provisioning in progress",
566 "deleted": false,
567 "write_protect": false,
568 "lazy_blocked": false,
569 "no_sync": false,
570 "name": "MySite",
571 "site_url": "http://opencord.us/",
572 "enabled": true,
573 "hosts_nodes": true,
574 "hosts_users": true,
575 "location": null,
576 "longitude": null,
577 "latitude": null,
578 "login_base": "mysite",
579 "is_public": true,
580 "abbreviated_name": "",
581 "deployments": [
582 "1"
583 ]
584 }
585
586
587# Group Slices
588
589List of the XOS slices
590
591## Slices [/api/core/slices/{id}/]
592
593### List all slices [GET]
594
595+ Response 200 (application/json)
596
597 [
598 {
599 "humanReadableName": "mysite_slice",
600 "id": 1,
601 "created": "2016-04-29T16:23:22.505072Z",
602 "updated": "2016-04-29T16:23:22.504691Z",
603 "enacted": null,
604 "policed": "2016-04-29T16:23:22.781298Z",
605 "backend_register": "{}",
606 "backend_status": "0 - Provisioning in progress",
607 "deleted": false,
608 "write_protect": false,
609 "lazy_blocked": false,
610 "no_sync": false,
611 "name": "mysite_slice",
612 "enabled": true,
613 "omf_friendly": false,
614 "description": "",
615 "slice_url": "",
616 "site": "http://apt118.apt.emulab.net/api/core/sites/1/",
617 "max_instances": 10,
618 "service": null,
619 "network": null,
620 "exposed_ports": null,
621 "serviceClass": "http://apt118.apt.emulab.net/api/core/serviceclasses/1/",
622 "creator": "http://apt118.apt.emulab.net/api/core/users/1/",
623 "default_flavor": null,
624 "default_image": null,
625 "mount_data_sets": "GenBank",
626 "default_isolation": "vm",
627 "networks": [
628 "http://apt118.apt.emulab.net/api/core/networks/1/"
629 ]
630 }
631 ]
632
633
634
635# Group Users
636
637List of the XOS users
638
639## Users [/api/core/users/{id}/]
640
641### List all Users [GET]
642
643+ Response 200 (application/json)
644
645 [
646 {
647 "id": 2,
648 "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
649 "last_login": "2016-04-12T18:50:45.880823Z",
650 "email": "johndoe@myhouse.com",
651 "username": "johndoe@myhouse.com",
652 "firstname": "john",
653 "lastname": "doe",
654 "phone": null,
655 "user_url": null,
656 "site": "http://xos.dev:9999/api/core/sites/1/",
657 "public_key": null,
658 "is_active": true,
659 "is_admin": false,
660 "is_staff": true,
661 "is_readonly": false,
662 "is_registering": false,
663 "is_appuser": false,
664 "login_page": null,
665 "created": "2016-04-12T18:50:45.912602Z",
666 "updated": "2016-04-12T18:50:45.912671Z",
667 "enacted": null,
668 "policed": null,
669 "backend_status": "Provisioning in progress",
670 "deleted": false,
671 "write_protect": false,
672 "timezone": "America/New_York"
673 }
674 ]
675
676
677
Matteo Scandolo94e17a42016-04-29 15:34:17 -0700678# Group Example
679
680## Example Services Collection [/api/service/exampleservice/]
681
682### List all Example Services [GET]
683
684+ Response 200 (application/json)
685
686 [
687 {
688 "humanReadableName": "MyExample",
689 "id": 1,
690 "service_message": "This is the test message"
691 }
692 ]
693
694
695# Group ONOS Services
696
697List of the active onos services
698
699## ONOS Services Collection [/api/service/onos/]
700
701### List all ONOS Services [GET]
702
703+ Response 200 (application/json)
704
705 [
706 {
707 "humanReadableName": "service_ONOS_vBNG",
708 "id": 5,
709 "rest_hostname": "",
710 "rest_port": "8181",
711 "no_container": false,
712 "node_key": ""
713 }
714 ]
715
716
717# Group vSG
718
719## vSG Collection [/api/service/vsg/]
720
721### List all vSGs [GET]
722
723+ Response 200 (application/json)
724
725 [
726 {
727 "humanReadableName": "service_vsg",
728 "id": 2,
729 "dns_servers": "8.8.8.8",
730 "url_filter_kind": null,
731 "node_label": null
732 }
733 ]
734
735
Matteo Scandolob82a85d2016-05-02 15:29:37 -0700736# Group Utility
737
738List of the XOS Utility API
739
740## Login [/api/utility/login/]
741
742### Log a user in the system [POST]
743
744+ Request (application/json)
745
746 {
747 "username": "padmin@vicci.org",
748 "password": "letmein"
749 }
750
751+ Response 200 (application/json)
752
753 {
754 "xoscsrftoken":"xuvsRC1jkXAsnrdRlgJvcXpmtthTAqqf",
755 "xossessionid":"7ds5a3wzjlgbjqo4odkd25qsm0j2s6zg",
756 "user": "{\"policed\": null, \"site\": 3, \"is_appuser\": false, \"is_staff\": true, \"backend_status\": \"Provisioning in progress\", \"id\": 3, \"is_registering\": false, \"last_login\": \"2016-04-30T22:51:04.788675+00:00\", \"email\": \"padmin@vicci.org\", \"no_sync\": false, \"username\": \"padmin@vicci.org\", \"dashboards\": [11], \"login_page\": null, \"firstname\": \"XOS\", \"user_url\": null, \"deleted\": false, \"lastname\": \"admin\", \"is_active\": true, \"lazy_blocked\": false, \"phone\": null, \"is_admin\": true, \"enacted\": null, \"public_key\": null, \"is_readonly\": false, \"no_policy\": false, \"write_protect\": false}"
757 }
758
759## Logout [/api/utility/logout/]
760
761### Log a user out of the system [POST]
762
763+ Request (application/json)
764 {xossessionid: "sessionId"}
765
766+ Response 200 (application/json)
767
768
769
Teone7241e262016-04-18 14:39:41 -0700770# Group Subscribers
771
772Resource related to the CORD Subscribers.
773
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700774## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Teone7241e262016-04-18 14:39:41 -0700775
776### List All Subscribers [GET]
777
778+ Response 200 (application/json)
779
780 [
781 {
782 "humanReadableName": "cordSubscriber-1",
783 "id": 1,
784 "features": {
785 "cdn": false,
786 "uplink_speed": 1000000000,
787 "downlink_speed": 1000000000,
788 "uverse": false,
789 "status": "enabled"
790 },
791 "identity": {
792 "account_num": "123",
793 "name": "My House"
794 },
795 "related": {
796 "instance_name": "mysite_vcpe",
797 "vsg_id": 4,
798 "compute_node_name": "node2.opencloud.us",
799 "c_tag": "432",
800 "instance_id": 1,
801 "wan_container_ip": null,
802 "volt_id": 3,
803 "s_tag": "222"
804 }
805 }
806 ]
807
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700808
809### View a Subscriber Detail [GET]
Teone7241e262016-04-18 14:39:41 -0700810
811+ Parameters
812 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
813
Teone7241e262016-04-18 14:39:41 -0700814+ Response 200 (application/json)
815
816 {
817 "humanReadableName": "cordSubscriber-1",
818 "id": 1,
819 "features": {
820 "cdn": false,
821 "uplink_speed": 1000000000,
822 "downlink_speed": 1000000000,
823 "uverse": false,
824 "status": "enabled"
825 },
826 "identity": {
827 "account_num": "123",
828 "name": "My House"
829 },
830 "related": {
831 "instance_name": "mysite_vcpe",
832 "vsg_id": 4,
833 "compute_node_name": "node2.opencloud.us",
834 "c_tag": "432",
835 "instance_id": 1,
836 "wan_container_ip": null,
837 "volt_id": 3,
838 "s_tag": "222"
839 }
840 }
841
842### Delete a Subscriber [DELETE]
843
Matteo Scandoloe83c4252016-04-27 17:31:11 -0700844+ Parameters
845 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
846
Teone7241e262016-04-18 14:39:41 -0700847+ Response 204
848
849### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
850
851+ Parameters
852 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
853
854### View a Subscriber Features Detail [GET]
855
856+ Response 200 (application/json)
857
858 {
859 "cdn": false,
860 "uplink_speed": 1000000000,
861 "downlink_speed": 1000000000,
862 "uverse": true,
863 "status": "enabled"
864 }
865
866#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
867
868+ Parameters
869 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
870
871#### Read Subscriber uplink_speed [GET]
872
873+ Response 200 (application/json)
874
875 {
876 "uplink_speed": 1000000000
877 }
878
879#### Update Subscriber uplink_speed [PUT]
880
881+ Request 200 (application/json)
882
883 {
884 "uplink_speed": 1000000000
885 }
886
887+ Response 200 (application/json)
888
889 {
890 "uplink_speed": 1000000000
891 }
892
893#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
894
895+ Parameters
896 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
897
898#### Read Subscriber downlink_speed [GET]
899
900+ Response 200 (application/json)
901
902 {
903 "downlink_speed": 1000000000
904 }
905
906#### Update Subscriber downlink_speed [PUT]
907
908+ Request 200 (application/json)
909
910 {
911 "downlink_speed": 1000000000
912 }
913
914+ Response 200 (application/json)
915
916 {
917 "downlink_speed": 1000000000
918 }
919
920#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
921
922+ Parameters
923 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
924
925#### Read Subscriber cdn [GET]
926
927+ Response 200 (application/json)
928
929 {
930 "cdn": false
931 }
932
933#### Update Subscriber cdn [PUT]
934
935+ Request 200 (application/json)
936
937 {
938 "cdn": false
939 }
940
941+ Response 200 (application/json)
942
943 {
944 "cdn": false
945 }
946
947#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
948
949+ Parameters
950 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
951
952#### Read Subscriber uverse [GET]
953
954+ Response 200 (application/json)
955
956 {
957 "uverse": false
958 }
959
960#### Update Subscriber uverse [PUT]
961
962+ Request 200 (application/json)
963
964 {
965 "uverse": false
966 }
967
968+ Response 200 (application/json)
969
970 {
971 "uverse": false
972 }
973
974#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
975
976+ Parameters
977 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
978
979#### Read Subscriber status [GET]
980
981+ Response 200 (application/json)
982
983 {
984 "status": "enabled"
985 }
986
987#### Update Subscriber status [PUT]
988
989+ Request 200 (application/json)
990
991 {
992 "status": "enabled"
993 }
994
995+ Response 200 (application/json)
996
997 {
998 "status": "enabled"
999 }
1000
1001
1002# Group Truckroll
1003
1004Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
1005
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001006## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Teone7241e262016-04-18 14:39:41 -07001007
1008### List all Truckroll [GET]
1009
1010+ Response 200 (application/json)
1011
1012 [
1013 {
1014 "humanReadableName": "vTR-tenant-9",
1015 "id": 9,
1016 "provider_service": 6,
1017 "target_id": 2,
1018 "scope": "container",
1019 "test": "ping",
1020 "argument": "8.8.8.8",
1021 "result": "",
1022 "result_code": "",
1023 "is_synced": false,
1024 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
1025 }
1026 ]
1027
1028### Create a Truckroll [POST]
1029
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001030A virtual truckroll is complete once is_synced equal true
1031
Teone7241e262016-04-18 14:39:41 -07001032+ Request (application/json)
1033
1034 {
1035 "target_id": 2,
1036 "scope": "container",
1037 "test": "ping",
1038 "argument": "8.8.8.8"
1039 }
1040
1041+ Response 201 (application/json)
1042
1043 {
1044 "humanReadableName": "vTR-tenant-1",
1045 "id": 1,
1046 "provider_service": 6,
1047 "target_id": 2,
1048 "scope": "container",
1049 "test": "ping",
1050 "argument": "8.8.8.8",
1051 "result": null,
1052 "result_code": null,
1053 "is_synced": false,
1054 "backend_status": "0 - Provisioning in progress"
1055 }
1056
Teone7241e262016-04-18 14:39:41 -07001057
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001058### View a Truckroll Detail [GET]
Teone7241e262016-04-18 14:39:41 -07001059
1060+ Parameters
1061 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
1062
Teone7241e262016-04-18 14:39:41 -07001063+ Response 200 (application/json)
1064
1065 {
1066 "humanReadableName": "vTR-tenant-10",
1067 "id": 10,
1068 "provider_service": 6,
1069 "target_id": 2,
1070 "scope": "container",
1071 "test": "ping",
1072 "argument": "8.8.8.8",
1073 "result": null,
1074 "result_code": null,
1075 "is_synced": false,
1076 "backend_status": "0 - Provisioning in progress"
1077 }
1078
1079### Delete a Truckroll Detail [DELETE]
1080
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001081+ Parameters
1082 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
1083
Teone7241e262016-04-18 14:39:41 -07001084+ Response 204
1085
1086
1087
1088# Group vOLT
1089
1090OLT devices aggregate a set of subscriber connections
1091
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001092## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Teone7241e262016-04-18 14:39:41 -07001093
1094### List all vOLT [GET]
1095
1096+ Response 200 (application/json)
1097
1098 [
1099 {
1100 "humanReadableName": "vOLT-tenant-1",
1101 "id": 1,
1102 "service_specific_id": "123",
1103 "s_tag": "222",
1104 "c_tag": "432",
1105 "subscriber": 1,
1106 "related": {
1107 "instance_id": 1,
1108 "instance_name": "mysite_vcpe",
1109 "vsg_id": 4,
1110 "wan_container_ip": null,
1111 "compute_node_name": "node2.opencloud.us"
1112 }
1113 }
1114 ]
1115
1116### Create a vOLT [POST]
1117
1118+ Request (application/json)
1119
1120 {
1121 "s_tag": "222",
1122 "c_tag": "432",
1123 "subscriber": 1
1124 }
1125
1126+ Response 201 (application/json)
1127
1128 {
1129 "humanReadableName": "vOLT-tenant-1",
1130 "id": 1,
1131 "service_specific_id": "123",
1132 "s_tag": "222",
1133 "c_tag": "432",
1134 "subscriber": 1,
1135 "related": {
1136 "instance_id": 1,
1137 "instance_name": "mysite_vcpe",
1138 "vsg_id": 4,
1139 "wan_container_ip": null,
1140 "compute_node_name": "node2.opencloud.us"
1141 }
1142 }
1143
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001144### View a vOLT Detail [GET]
Teone7241e262016-04-18 14:39:41 -07001145
1146+ Parameters
1147 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
1148
Teone7241e262016-04-18 14:39:41 -07001149+ Response 200 (application/json)
1150
1151 {
1152 "humanReadableName": "vOLT-tenant-1",
1153 "id": 1,
1154 "service_specific_id": "123",
1155 "s_tag": "222",
1156 "c_tag": "432",
1157 "subscriber": 1,
1158 "related": {
1159 "instance_id": 1,
1160 "instance_name": "mysite_vcpe",
1161 "vsg_id": 4,
1162 "wan_container_ip": null,
1163 "compute_node_name": "node2.opencloud.us"
1164 }
1165 }
1166
1167
1168
1169# Group ONOS Apps
1170
Matteo Scandoloe83c4252016-04-27 17:31:11 -07001171## ONOS App Collection [/api/tenant/onos/app/]
Teone7241e262016-04-18 14:39:41 -07001172
1173### List all apps [GET]
1174
1175+ Response 200 (application/json)
1176
1177 [
1178 {
1179 "humanReadableName": "onos-tenant-7",
1180 "id": 7,
1181 "name": "vBNG_ONOS_app",
1182 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
1183 }
1184 ]