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"
            }
        ]