blob: d7034d8fb66a3fbbe5f2e6cc938386f52c305105 [file] [log] [blame]
FORMAT: 1A
# XOS
# 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 Deployments
List of the XOS deployments
## Deployments [/api/core/deployments/{id}/]
### List all deployments [GET]
+ Response 200 (application/json)
{
"humanReadableName": "MyDeployment",
"id": 1,
"created": "2016-04-29T16:19:03.549901Z",
"updated": "2016-04-29T16:19:05.624151Z",
"enacted": null,
"policed": null,
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": true,
"name": "MyDeployment",
"accessControl": "allow all",
"images": [
"1"
],
"sites": [
"1"
],
"flavors": [
"1",
"2",
"3"
],
"dashboardviews": [
"1"
]
}
# Group Flavors
List of the XOS flavors
## Flavors [/api/core/flavors/{id}/]
### List all flavors [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "m1.large",
"id": 1,
"created": "2016-04-29T16:19:01.979548Z",
"updated": "2016-04-29T16:19:03.568238Z",
"enacted": null,
"policed": null,
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": true,
"name": "m1.large",
"description": null,
"flavor": "m1.large",
"order": 0,
"default": false,
"deployments": [
"1"
]
}
]
### View a Flavors Detail [GET]
+ Parameters
+ id: 1 (number) - ID of the Flavors in the form of an integer
+ Response 200 (application/json)
{
"humanReadableName": "m1.large",
"id": 1,
"created": "2016-04-29T16:19:01.979548Z",
"updated": "2016-04-29T16:19:03.568238Z",
"enacted": null,
"policed": null,
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": true,
"name": "m1.large",
"description": null,
"flavor": "m1.large",
"order": 0,
"default": false,
"deployments": [
"1"
]
}
# 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": "1",
"creator": "1",
"slice": "1",
"deployment": "1",
"node": "1",
"numberCores": 0,
"flavor": "1",
"userData": null,
"isolation": "vm",
"volumes": "/etc/dnsmasq.d,/etc/ufw",
"parent": null,
"networks": [
"1"
]
}
]
# Group Nodes
List of the XOS nodes
## Nodes [/api/core/nodes/{id}/]
### List all nodes [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "node2.opencloud.us",
"id": 1,
"created": "2016-04-29T16:19:05.661567Z",
"updated": "2016-04-29T16:19:05.661454Z",
"enacted": null,
"policed": null,
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": true,
"name": "node2.opencloud.us",
"site_deployment": "1",
"site": "1",
"nodelabels": []
}
]
# Group Sites
List of the XOS sites
## Sites [/api/core/sites/{id}/]
### List all sites [GET]
+ Response 200 (application/json)
{
"humanReadableName": "MySite",
"id": 1,
"created": "2016-04-29T16:19:03.587770Z",
"updated": "2016-04-29T16:19:05.651933Z",
"enacted": null,
"policed": null,
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": false,
"name": "MySite",
"site_url": "http://opencord.us/",
"enabled": true,
"hosts_nodes": true,
"hosts_users": true,
"location": null,
"longitude": null,
"latitude": null,
"login_base": "mysite",
"is_public": true,
"abbreviated_name": "",
"deployments": [
"1"
]
}
# Group Slices
List of the XOS slices
## Slices [/api/core/slices/{id}/]
### List all slices [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "mysite_slice",
"id": 1,
"created": "2016-04-29T16:23:22.505072Z",
"updated": "2016-04-29T16:23:22.504691Z",
"enacted": null,
"policed": "2016-04-29T16:23:22.781298Z",
"backend_register": "{}",
"backend_status": "0 - Provisioning in progress",
"deleted": false,
"write_protect": false,
"lazy_blocked": false,
"no_sync": false,
"name": "mysite_slice",
"enabled": true,
"omf_friendly": false,
"description": "",
"slice_url": "",
"site": "http://apt118.apt.emulab.net/api/core/sites/1/",
"max_instances": 10,
"service": null,
"network": null,
"exposed_ports": null,
"serviceClass": "http://apt118.apt.emulab.net/api/core/serviceclasses/1/",
"creator": "http://apt118.apt.emulab.net/api/core/users/1/",
"default_flavor": null,
"default_image": null,
"mount_data_sets": "GenBank",
"default_isolation": "vm",
"networks": [
"http://apt118.apt.emulab.net/api/core/networks/1/"
]
}
]
# 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 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"
}
]