blob: c94fe2d4b060bcde4f09f3ef2c6fa87fc614a772 [file] [log] [blame]
Teone620bafd2016-04-18 14:39:41 -07001FORMAT: 1A
2
3# XOS
4
5
Matteo Scandolodc249eb2016-04-26 11:44:36 -07006# Group Instances
7
8List of the XOS instances
9
Matteo Scandolo71378f92016-04-28 14:16:45 -070010## Instances [/api/core/instances/{instance_id}/]
Matteo Scandolodc249eb2016-04-26 11:44:36 -070011
12### List all Instances [GET]
13
14+ Response 200 (application/json)
15
16 [
17 {
18 "id": 1,
19 "humanReadableName": "uninstantiated-1",
20 "created": "2016-04-26T00:36:22.465259Z",
21 "updated": "2016-04-26T00:36:22.465288Z",
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": false,
30 "instance_id": null,
31 "instance_uuid": null,
32 "name": "mysite_vcpe",
33 "instance_name": null,
34 "ip": null,
35 "image": "http://xos.dev:9999/api/core/images/1/",
36 "creator": "http://xos.dev:9999/api/core/users/1/",
37 "slice": "http://xos.dev:9999/api/core/slices/1/",
38 "deployment": "http://xos.dev:9999/api/core/deployments/1/",
39 "node": "http://xos.dev:9999/api/core/nodes/1/",
40 "numberCores": 0,
41 "flavor": "http://xos.dev:9999/api/core/flavors/1/",
42 "userData": null,
43 "isolation": "vm",
44 "volumes": "/etc/dnsmasq.d,/etc/ufw",
45 "parent": null,
46 "networks": [
47 "http://xos.dev:9999/api/core/networks/2/"
48 ]
49 }
50 ]
51
52
53
Matteo Scandoloe25820a2016-04-27 17:31:11 -070054# Group Users
55
56List of the XOS users
57
Matteo Scandolo71378f92016-04-28 14:16:45 -070058## Users [/api/core/users/{user_id}/]
Matteo Scandoloe25820a2016-04-27 17:31:11 -070059
60### List all Users [GET]
61
62+ Response 200 (application/json)
63
64 [
65 {
66 "id": 2,
67 "password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
68 "last_login": "2016-04-12T18:50:45.880823Z",
69 "email": "johndoe@myhouse.com",
70 "username": "johndoe@myhouse.com",
71 "firstname": "john",
72 "lastname": "doe",
73 "phone": null,
74 "user_url": null,
75 "site": "http://xos.dev:9999/api/core/sites/1/",
76 "public_key": null,
77 "is_active": true,
78 "is_admin": false,
79 "is_staff": true,
80 "is_readonly": false,
81 "is_registering": false,
82 "is_appuser": false,
83 "login_page": null,
84 "created": "2016-04-12T18:50:45.912602Z",
85 "updated": "2016-04-12T18:50:45.912671Z",
86 "enacted": null,
87 "policed": null,
88 "backend_status": "Provisioning in progress",
89 "deleted": false,
90 "write_protect": false,
91 "timezone": "America/New_York"
92 }
93 ]
94
95
96
97# Group Example
98
99## Example Services Collection [/api/service/exampleservice/]
100
101### List all Example Services [GET]
102
103+ Response 200 (application/json)
104
105 [
106 {
107 "humanReadableName": "MyExample",
108 "id": 1,
109 "service_message": "This is the test message"
110 }
111 ]
112
113
Teone620bafd2016-04-18 14:39:41 -0700114# Group ONOS Services
115
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700116List of the active onos services
117
Teone620bafd2016-04-18 14:39:41 -0700118## ONOS Services Collection [/api/service/onos/]
119
120### List all ONOS Services [GET]
121
122+ Response 200 (application/json)
123
124 [
125 {
126 "humanReadableName": "service_ONOS_vBNG",
127 "id": 5,
128 "rest_hostname": "",
129 "rest_port": "8181",
130 "no_container": false,
131 "node_key": ""
132 }
133 ]
134
135
136# Group vSG
137
138## vSG Collection [/api/service/vsg/]
139
140### List all vSGs [GET]
141
142+ Response 200 (application/json)
143
144 [
145 {
146 "humanReadableName": "service_vsg",
147 "id": 2,
Teone620bafd2016-04-18 14:39:41 -0700148 "dns_servers": "8.8.8.8",
149 "url_filter_kind": null,
150 "node_label": null
151 }
152 ]
153
154
155# Group Subscribers
156
157Resource related to the CORD Subscribers.
158
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700159## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
Teone620bafd2016-04-18 14:39:41 -0700160
161### List All Subscribers [GET]
162
163+ Response 200 (application/json)
164
165 [
166 {
167 "humanReadableName": "cordSubscriber-1",
168 "id": 1,
169 "features": {
170 "cdn": false,
171 "uplink_speed": 1000000000,
172 "downlink_speed": 1000000000,
173 "uverse": false,
174 "status": "enabled"
175 },
176 "identity": {
177 "account_num": "123",
178 "name": "My House"
179 },
180 "related": {
181 "instance_name": "mysite_vcpe",
182 "vsg_id": 4,
183 "compute_node_name": "node2.opencloud.us",
184 "c_tag": "432",
185 "instance_id": 1,
186 "wan_container_ip": null,
187 "volt_id": 3,
188 "s_tag": "222"
189 }
190 }
191 ]
192
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700193
194### View a Subscriber Detail [GET]
Teone620bafd2016-04-18 14:39:41 -0700195
196+ Parameters
197 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
198
Teone620bafd2016-04-18 14:39:41 -0700199+ Response 200 (application/json)
200
201 {
202 "humanReadableName": "cordSubscriber-1",
203 "id": 1,
204 "features": {
205 "cdn": false,
206 "uplink_speed": 1000000000,
207 "downlink_speed": 1000000000,
208 "uverse": false,
209 "status": "enabled"
210 },
211 "identity": {
212 "account_num": "123",
213 "name": "My House"
214 },
215 "related": {
216 "instance_name": "mysite_vcpe",
217 "vsg_id": 4,
218 "compute_node_name": "node2.opencloud.us",
219 "c_tag": "432",
220 "instance_id": 1,
221 "wan_container_ip": null,
222 "volt_id": 3,
223 "s_tag": "222"
224 }
225 }
226
227### Delete a Subscriber [DELETE]
228
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700229+ Parameters
230 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
231
Teone620bafd2016-04-18 14:39:41 -0700232+ Response 204
233
234### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
235
236+ Parameters
237 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
238
239### View a Subscriber Features Detail [GET]
240
241+ Response 200 (application/json)
242
243 {
244 "cdn": false,
245 "uplink_speed": 1000000000,
246 "downlink_speed": 1000000000,
247 "uverse": true,
248 "status": "enabled"
249 }
250
251#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
252
253+ Parameters
254 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
255
256#### Read Subscriber uplink_speed [GET]
257
258+ Response 200 (application/json)
259
260 {
261 "uplink_speed": 1000000000
262 }
263
264#### Update Subscriber uplink_speed [PUT]
265
266+ Request 200 (application/json)
267
268 {
269 "uplink_speed": 1000000000
270 }
271
272+ Response 200 (application/json)
273
274 {
275 "uplink_speed": 1000000000
276 }
277
278#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
279
280+ Parameters
281 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
282
283#### Read Subscriber downlink_speed [GET]
284
285+ Response 200 (application/json)
286
287 {
288 "downlink_speed": 1000000000
289 }
290
291#### Update Subscriber downlink_speed [PUT]
292
293+ Request 200 (application/json)
294
295 {
296 "downlink_speed": 1000000000
297 }
298
299+ Response 200 (application/json)
300
301 {
302 "downlink_speed": 1000000000
303 }
304
305#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
306
307+ Parameters
308 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
309
310#### Read Subscriber cdn [GET]
311
312+ Response 200 (application/json)
313
314 {
315 "cdn": false
316 }
317
318#### Update Subscriber cdn [PUT]
319
320+ Request 200 (application/json)
321
322 {
323 "cdn": false
324 }
325
326+ Response 200 (application/json)
327
328 {
329 "cdn": false
330 }
331
332#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
333
334+ Parameters
335 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
336
337#### Read Subscriber uverse [GET]
338
339+ Response 200 (application/json)
340
341 {
342 "uverse": false
343 }
344
345#### Update Subscriber uverse [PUT]
346
347+ Request 200 (application/json)
348
349 {
350 "uverse": false
351 }
352
353+ Response 200 (application/json)
354
355 {
356 "uverse": false
357 }
358
359#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
360
361+ Parameters
362 + subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
363
364#### Read Subscriber status [GET]
365
366+ Response 200 (application/json)
367
368 {
369 "status": "enabled"
370 }
371
372#### Update Subscriber status [PUT]
373
374+ Request 200 (application/json)
375
376 {
377 "status": "enabled"
378 }
379
380+ Response 200 (application/json)
381
382 {
383 "status": "enabled"
384 }
385
386
387# Group Truckroll
388
389Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
390
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700391## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
Teone620bafd2016-04-18 14:39:41 -0700392
393### List all Truckroll [GET]
394
395+ Response 200 (application/json)
396
397 [
398 {
399 "humanReadableName": "vTR-tenant-9",
400 "id": 9,
401 "provider_service": 6,
402 "target_id": 2,
403 "scope": "container",
404 "test": "ping",
405 "argument": "8.8.8.8",
406 "result": "",
407 "result_code": "",
408 "is_synced": false,
409 "backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
410 }
411 ]
412
413### Create a Truckroll [POST]
414
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700415A virtual truckroll is complete once is_synced equal true
416
Teone620bafd2016-04-18 14:39:41 -0700417+ Request (application/json)
418
419 {
420 "target_id": 2,
421 "scope": "container",
422 "test": "ping",
423 "argument": "8.8.8.8"
424 }
425
426+ Response 201 (application/json)
427
428 {
429 "humanReadableName": "vTR-tenant-1",
430 "id": 1,
431 "provider_service": 6,
432 "target_id": 2,
433 "scope": "container",
434 "test": "ping",
435 "argument": "8.8.8.8",
436 "result": null,
437 "result_code": null,
438 "is_synced": false,
439 "backend_status": "0 - Provisioning in progress"
440 }
441
Teone620bafd2016-04-18 14:39:41 -0700442
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700443### View a Truckroll Detail [GET]
Teone620bafd2016-04-18 14:39:41 -0700444
445+ Parameters
446 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
447
Teone620bafd2016-04-18 14:39:41 -0700448+ Response 200 (application/json)
449
450 {
451 "humanReadableName": "vTR-tenant-10",
452 "id": 10,
453 "provider_service": 6,
454 "target_id": 2,
455 "scope": "container",
456 "test": "ping",
457 "argument": "8.8.8.8",
458 "result": null,
459 "result_code": null,
460 "is_synced": false,
461 "backend_status": "0 - Provisioning in progress"
462 }
463
464### Delete a Truckroll Detail [DELETE]
465
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700466+ Parameters
467 + truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
468
Teone620bafd2016-04-18 14:39:41 -0700469+ Response 204
470
471
472
473# Group vOLT
474
475OLT devices aggregate a set of subscriber connections
476
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700477## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
Teone620bafd2016-04-18 14:39:41 -0700478
479### List all vOLT [GET]
480
481+ Response 200 (application/json)
482
483 [
484 {
485 "humanReadableName": "vOLT-tenant-1",
486 "id": 1,
487 "service_specific_id": "123",
488 "s_tag": "222",
489 "c_tag": "432",
490 "subscriber": 1,
491 "related": {
492 "instance_id": 1,
493 "instance_name": "mysite_vcpe",
494 "vsg_id": 4,
495 "wan_container_ip": null,
496 "compute_node_name": "node2.opencloud.us"
497 }
498 }
499 ]
500
501### Create a vOLT [POST]
502
503+ Request (application/json)
504
505 {
506 "s_tag": "222",
507 "c_tag": "432",
508 "subscriber": 1
509 }
510
511+ Response 201 (application/json)
512
513 {
514 "humanReadableName": "vOLT-tenant-1",
515 "id": 1,
516 "service_specific_id": "123",
517 "s_tag": "222",
518 "c_tag": "432",
519 "subscriber": 1,
520 "related": {
521 "instance_id": 1,
522 "instance_name": "mysite_vcpe",
523 "vsg_id": 4,
524 "wan_container_ip": null,
525 "compute_node_name": "node2.opencloud.us"
526 }
527 }
528
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700529### View a vOLT Detail [GET]
Teone620bafd2016-04-18 14:39:41 -0700530
531+ Parameters
532 + volt_id: 1 (number) - ID of the vOLT in the form of an integer
533
Teone620bafd2016-04-18 14:39:41 -0700534+ Response 200 (application/json)
535
536 {
537 "humanReadableName": "vOLT-tenant-1",
538 "id": 1,
539 "service_specific_id": "123",
540 "s_tag": "222",
541 "c_tag": "432",
542 "subscriber": 1,
543 "related": {
544 "instance_id": 1,
545 "instance_name": "mysite_vcpe",
546 "vsg_id": 4,
547 "wan_container_ip": null,
548 "compute_node_name": "node2.opencloud.us"
549 }
550 }
551
552
553
554# Group ONOS Apps
555
Matteo Scandoloe25820a2016-04-27 17:31:11 -0700556## ONOS App Collection [/api/tenant/onos/app/]
Teone620bafd2016-04-18 14:39:41 -0700557
558### List all apps [GET]
559
560+ Response 200 (application/json)
561
562 [
563 {
564 "humanReadableName": "onos-tenant-7",
565 "id": 7,
566 "name": "vBNG_ONOS_app",
567 "dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
568 }
569 ]