FORMAT: 1A

# XOS
 
 
# Group Instances

List of the XOS instances

## Instances [/api/core/instances/{instance_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/{user_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 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,
                "wan_container_gateway_ip": "",
                "wan_container_gateway_mac": "",
                "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"
            }
        ]