blob: 7a4a9165e293f255e8be5532e6ed7b74075dbed5 [file] [log] [blame]
FORMAT: 1A
# XOS
# Group Instances
List of the XOS instances
## Instances [/api/core/instances/{id}/]
### List all Instances [GET]
+ Response 200 (application/json)
[
{
"id": 1,
"humanReadableName": "uninstantiated-1",
"created": "2016-04-26T00:36:22.465259Z",
"updated": "2016-04-26T00:36:22.465288Z",
"enacted": null,
"policed": null,
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": false,
"instance_id": null,
"instance_uuid": null,
"name": "mysite_vcpe",
"instance_name": null,
"ip": null,
"image": "http://xos.dev:9999/api/core/images/1/",
"creator": "http://xos.dev:9999/api/core/users/1/",
"slice": "http://xos.dev:9999/api/core/slices/1/",
"deployment": "http://xos.dev:9999/api/core/deployments/1/",
"node": "http://xos.dev:9999/api/core/nodes/1/",
"numberCores": 0,
"flavor": "http://xos.dev:9999/api/core/flavors/1/",
"userData": null,
"isolation": "vm",
"volumes": "/etc/dnsmasq.d,/etc/ufw",
"parent": null,
"networks": [
"http://xos.dev:9999/api/core/networks/2/"
]
}
]
# Group Users
List of the XOS users
## Users [/api/core/users/{id}/]
### List all Users [GET]
+ Response 200 (application/json)
[
{
"id": 2,
"password": "pbkdf2_sha256$12000$9gn8DmZuIoz2$YPQkx3AOOV7jZNYr2ddrgUCkiuaPpvb8+aJR7RwLZNA=",
"last_login": "2016-04-12T18:50:45.880823Z",
"email": "johndoe@myhouse.com",
"username": "johndoe@myhouse.com",
"firstname": "john",
"lastname": "doe",
"phone": null,
"user_url": null,
"site": "http://xos.dev:9999/api/core/sites/1/",
"public_key": null,
"is_active": true,
"is_admin": false,
"is_staff": true,
"is_readonly": false,
"is_registering": false,
"is_appuser": false,
"login_page": null,
"created": "2016-04-12T18:50:45.912602Z",
"updated": "2016-04-12T18:50:45.912671Z",
"enacted": null,
"policed": null,
"backend_status": "Provisioning in progress",
"deleted": false,
"write_protect": false,
"timezone": "America/New_York"
}
]
# Group Example
## Example Services Collection [/api/service/exampleservice/]
### List all Example Services [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "MyExample",
"id": 1,
"service_message": "This is the test message"
}
]
# Group ONOS Services
List of the active onos services
## ONOS Services Collection [/api/service/onos/]
### List all ONOS Services [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "service_ONOS_vBNG",
"id": 5,
"rest_hostname": "",
"rest_port": "8181",
"no_container": false,
"node_key": ""
}
]
# Group vSG
## vSG Collection [/api/service/vsg/]
### List all vSGs [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "service_vsg",
"id": 2,
"dns_servers": "8.8.8.8",
"url_filter_kind": null,
"node_label": null
}
]
# Group Subscribers
Resource related to the CORD Subscribers.
## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/]
### List All Subscribers [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "cordSubscriber-1",
"id": 1,
"features": {
"cdn": false,
"uplink_speed": 1000000000,
"downlink_speed": 1000000000,
"uverse": false,
"status": "enabled"
},
"identity": {
"account_num": "123",
"name": "My House"
},
"related": {
"instance_name": "mysite_vcpe",
"vsg_id": 4,
"compute_node_name": "node2.opencloud.us",
"c_tag": "432",
"instance_id": 1,
"wan_container_ip": null,
"volt_id": 3,
"s_tag": "222"
}
}
]
### View a Subscriber Detail [GET]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
+ Response 200 (application/json)
{
"humanReadableName": "cordSubscriber-1",
"id": 1,
"features": {
"cdn": false,
"uplink_speed": 1000000000,
"downlink_speed": 1000000000,
"uverse": false,
"status": "enabled"
},
"identity": {
"account_num": "123",
"name": "My House"
},
"related": {
"instance_name": "mysite_vcpe",
"vsg_id": 4,
"compute_node_name": "node2.opencloud.us",
"c_tag": "432",
"instance_id": 1,
"wan_container_ip": null,
"volt_id": 3,
"s_tag": "222"
}
}
### Delete a Subscriber [DELETE]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
+ Response 204
### Subscriber features [/api/tenant/cord/subscriber/{subscriber_id}/features/]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
### View a Subscriber Features Detail [GET]
+ Response 200 (application/json)
{
"cdn": false,
"uplink_speed": 1000000000,
"downlink_speed": 1000000000,
"uverse": true,
"status": "enabled"
}
#### Subscriber features uplink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/uplink_speed/]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
#### Read Subscriber uplink_speed [GET]
+ Response 200 (application/json)
{
"uplink_speed": 1000000000
}
#### Update Subscriber uplink_speed [PUT]
+ Request 200 (application/json)
{
"uplink_speed": 1000000000
}
+ Response 200 (application/json)
{
"uplink_speed": 1000000000
}
#### Subscriber features downlink_speed [/api/tenant/cord/subscriber/{subscriber_id}/features/downlink_speed/]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
#### Read Subscriber downlink_speed [GET]
+ Response 200 (application/json)
{
"downlink_speed": 1000000000
}
#### Update Subscriber downlink_speed [PUT]
+ Request 200 (application/json)
{
"downlink_speed": 1000000000
}
+ Response 200 (application/json)
{
"downlink_speed": 1000000000
}
#### Subscriber features cdn [/api/tenant/cord/subscriber/{subscriber_id}/features/cdn/]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
#### Read Subscriber cdn [GET]
+ Response 200 (application/json)
{
"cdn": false
}
#### Update Subscriber cdn [PUT]
+ Request 200 (application/json)
{
"cdn": false
}
+ Response 200 (application/json)
{
"cdn": false
}
#### Subscriber features uverse [/api/tenant/cord/subscriber/{subscriber_id}/features/uverse/]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
#### Read Subscriber uverse [GET]
+ Response 200 (application/json)
{
"uverse": false
}
#### Update Subscriber uverse [PUT]
+ Request 200 (application/json)
{
"uverse": false
}
+ Response 200 (application/json)
{
"uverse": false
}
#### Subscriber features status [/api/tenant/cord/subscriber/{subscriber_id}/features/status/]
+ Parameters
+ subscriber_id: 1 (number) - ID of the Subscriber in the form of an integer
#### Read Subscriber status [GET]
+ Response 200 (application/json)
{
"status": "enabled"
}
#### Update Subscriber status [PUT]
+ Request 200 (application/json)
{
"status": "enabled"
}
+ Response 200 (application/json)
{
"status": "enabled"
}
# Group Truckroll
Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump.
## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/]
### List all Truckroll [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "vTR-tenant-9",
"id": 9,
"provider_service": 6,
"target_id": 2,
"scope": "container",
"test": "ping",
"argument": "8.8.8.8",
"result": "",
"result_code": "",
"is_synced": false,
"backend_status": "2 - Exception('Unreachable results in ansible recipe',)"
}
]
### Create a Truckroll [POST]
A virtual truckroll is complete once is_synced equal true
+ Request (application/json)
{
"target_id": 2,
"scope": "container",
"test": "ping",
"argument": "8.8.8.8"
}
+ Response 201 (application/json)
{
"humanReadableName": "vTR-tenant-1",
"id": 1,
"provider_service": 6,
"target_id": 2,
"scope": "container",
"test": "ping",
"argument": "8.8.8.8",
"result": null,
"result_code": null,
"is_synced": false,
"backend_status": "0 - Provisioning in progress"
}
### View a Truckroll Detail [GET]
+ Parameters
+ truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
+ Response 200 (application/json)
{
"humanReadableName": "vTR-tenant-10",
"id": 10,
"provider_service": 6,
"target_id": 2,
"scope": "container",
"test": "ping",
"argument": "8.8.8.8",
"result": null,
"result_code": null,
"is_synced": false,
"backend_status": "0 - Provisioning in progress"
}
### Delete a Truckroll Detail [DELETE]
+ Parameters
+ truckroll_id: 1 (number) - ID of the Truckroll in the form of an integer
+ Response 204
# Group vOLT
OLT devices aggregate a set of subscriber connections
## vOLT Collection [/api/tenant/cord/volt/{volt_id}/]
### List all vOLT [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "vOLT-tenant-1",
"id": 1,
"service_specific_id": "123",
"s_tag": "222",
"c_tag": "432",
"subscriber": 1,
"related": {
"instance_id": 1,
"instance_name": "mysite_vcpe",
"vsg_id": 4,
"wan_container_ip": null,
"compute_node_name": "node2.opencloud.us"
}
}
]
### Create a vOLT [POST]
+ Request (application/json)
{
"s_tag": "222",
"c_tag": "432",
"subscriber": 1
}
+ Response 201 (application/json)
{
"humanReadableName": "vOLT-tenant-1",
"id": 1,
"service_specific_id": "123",
"s_tag": "222",
"c_tag": "432",
"subscriber": 1,
"related": {
"instance_id": 1,
"instance_name": "mysite_vcpe",
"vsg_id": 4,
"wan_container_ip": null,
"compute_node_name": "node2.opencloud.us"
}
}
### View a vOLT Detail [GET]
+ Parameters
+ volt_id: 1 (number) - ID of the vOLT in the form of an integer
+ Response 200 (application/json)
{
"humanReadableName": "vOLT-tenant-1",
"id": 1,
"service_specific_id": "123",
"s_tag": "222",
"c_tag": "432",
"subscriber": 1,
"related": {
"instance_id": 1,
"instance_name": "mysite_vcpe",
"vsg_id": 4,
"wan_container_ip": null,
"compute_node_name": "node2.opencloud.us"
}
}
# Group ONOS Apps
## ONOS App Collection [/api/tenant/onos/app/]
### List all apps [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "onos-tenant-7",
"id": 7,
"name": "vBNG_ONOS_app",
"dependencies": "org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd"
}
]