| FORMAT: 1A |
| |
| # XOS |
| |
| |
| # Group Utility |
| |
| List of the XOS Utility API |
| |
| |
| ## Login [/api/utility/login/] |
| |
| ### Log a user in the system [POST] |
| |
| + Request (application/json) |
| |
| { |
| "username": "padmin@vicci.org", |
| "password": "letmein" |
| } |
| |
| + Response 200 (application/json) |
| |
| { |
| "xoscsrftoken":"xuvsRC1jkXAsnrdRlgJvcXpmtthTAqqf", |
| "xossessionid":"7ds5a3wzjlgbjqo4odkd25qsm0j2s6zg", |
| "user": "{\"policed\": null, \"site\": 3, \"is_appuser\": false, \"is_staff\": true, \"backend_status\": \"Provisioning in progress\", \"id\": 3, \"is_registering\": false, \"last_login\": \"2016-04-30T22:51:04.788675+00:00\", \"email\": \"padmin@vicci.org\", \"no_sync\": false, \"username\": \"padmin@vicci.org\", \"dashboards\": [11], \"login_page\": null, \"firstname\": \"XOS\", \"user_url\": null, \"deleted\": false, \"lastname\": \"admin\", \"is_active\": true, \"lazy_blocked\": false, \"phone\": null, \"is_admin\": true, \"enacted\": null, \"public_key\": null, \"is_readonly\": false, \"no_policy\": false, \"write_protect\": false}" |
| } |
| |
| ## Logout [/api/utility/logout/] |
| |
| ### Log a user out of the system [POST] |
| |
| + Request (application/json) |
| |
| { |
| "xossessionid": "sessionId" |
| } |
| |
| + Response 200 (application/json) |
| |
| ## Port Forwarding [/api/utility/portforwarding/] |
| |
| Contains the set of port forwarding mappings for each compute node. |
| Used on OpenCloud to setup port forwarding for nat-net. |
| |
| ### List port forwarding objects [GET] |
| |
| + Response 200 (application/json) |
| |
| [ |
| { |
| "id": 79, |
| "ip": "172.16.0.36", |
| "ports": "tcp 2222, tcp 25566", |
| "hostname": "node1.opencloud.us" |
| }, |
| { |
| "id": 131, |
| "ip": "172.16.0.16", |
| "ports": "udp 53, tcp 8017", |
| "hostname": "node2.opencloud.us" |
| } |
| ] |
| |
| ## Slices Plus [/api/utility/slicesplus/] |
| |
| A list of slices with addictional information, it is used in the Tenant custom dashboard. |
| |
| ### List Slices objects [GET] |
| |
| + Response 200 (application/json) |
| |
| [ |
| { |
| "humanReadableName": "mysite_management", |
| "id": 2, |
| "created": "2016-06-29T18:43:50.730912Z", |
| "updated": "2016-06-29T18:43:50.730789Z", |
| "enacted": null, |
| "name": "mysite_management", |
| "enabled": true, |
| "omf_friendly": false, |
| "description": "", |
| "slice_url": "", |
| "site": 2, |
| "max_instances": 10, |
| "service": null, |
| "network": "noauto", |
| "mount_data_sets": "GenBank", |
| "default_image": null, |
| "default_flavor": null, |
| "serviceClass": null, |
| "creator": 2, |
| "networks": [], |
| "network_ports": "", |
| "backendIcon": "/static/admin/img/icon_clock.gif", |
| "backendHtml": "<span title=\"Pending sync, last_status = 0 - Provisioning in progress\"><img src=\"/static/admin/img/icon_clock.gif\"></span>", |
| "current_user_roles": [], |
| "instance_distribution": {}, |
| "instance_distribution_ready": {}, |
| "instance_total": 0, |
| "instance_total_ready": 0, |
| "instance_status": {}, |
| "users": [], |
| "user_names": [], |
| "current_user_can_see": true |
| } |
| ] |
| |
| ## Synchronizer [/api/utility/synchronizer/] |
| |
| Lists the Diag objects for synchronizers. From here you can get the synchronizer status. |
| |
| ### List Diag objects [GET] |
| |
| + Response 200 (application/json) |
| |
| [ |
| { |
| "id": 3, |
| "name": "onboarding", |
| "backend_status": "1 - Bottom Of Loop", |
| "backend_register": "{\"last_duration\": 0.18996095657348633, \"last_run\": 1467923907.908469}" |
| } |
| ] |
| |
| ## Onboarding [/api/utility/onboarding/{service}/ready] |
| |
| Used to get the status of onboarding, to determine if services have been to successfully onboarded and if the XOS UI container has been built. |
| |
| ### Get service status [GET] |
| |
| + Parameters |
| + service: services/vsg (string) - Name of the service to wait for |
| |
| |
| + Response 200 (text/plain) |
| |
| true |
| |
| ## Tosca [/api/utility/tosca/run/] |
| |
| ### Load a Tosca recipe [POST] |
| |
| + Request (application/json) |
| |
| { |
| "recipe": "tosca_definitions_version: tosca_simple_yaml_1_0\n\ndescription: Onboard the exampleservice\n\nimports:\n - custom_types/xos.yaml\n\ntopology_template:\n node_templates:\n test_site:\n type: tosca.nodes.Site\n properties:\n display_name: Test Site\n site_url: https://www.onlab.us/" |
| } |
| |
| + Response 200 (application/json) |
| |
| { |
| "log_msgs":[ |
| "ordered_names: ['test_site']", |
| "Created Site 'Test Site'" |
| ] |
| } |
| |
| ## Ssh Keys [/api/utility/sshkeys/] |
| |
| Returns the set of ssh keys for instances. Used on OpenCloud to configure ssh-proxy to instances. |
| |
| ### List ssh keys by instance [GET] |
| |
| + Response 200 (application/json) |
| |
| [ |
| { |
| "id": "instance-00000001", |
| "public_keys": [ |
| "ssh-rsa xxyyzz\r\n" |
| ], |
| "node_name": "node1.opencloud.us" |
| }, |
| { |
| "id": "instance-00000001", |
| "public_keys": [ |
| "ssh-rsa xxyyzz\r\n" |
| ], |
| "node_name": "node2.opencloud.us" |
| } |
| ] |
| |
| |
| # Group Tenant |
| |
| |
| ## Subscribers [/api/tenant/cord/subscriber/{subscriber_id}/] |
| |
| Resource related to the CORD Subscribers. |
| |
| ### 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" |
| } |
| |
| |
| ## Truckroll Collection [/api/tenant/truckroll/{truckroll_id}/] |
| |
| Virtual Truckroll, enable to perform basic test on user connectivity such as ping, traceroute and tcpdump. |
| |
| ### 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 |
| |
| |
| |
| ## vOLT Collection [/api/tenant/cord/volt/{volt_id}/] |
| |
| OLT devices aggregate a set of subscriber connections |
| |
| ### 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" |
| } |
| } |
| |
| |
| |
| ## 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" |
| } |
| ] |
| |
| |
| # Group Service |
| |
| |
| ## 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" |
| } |
| ] |
| |
| |
| |
| ## ONOS Services Collection [/api/service/onos/] |
| |
| List of the active onos services |
| |
| ### 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": "" |
| } |
| ] |
| |
| |
| ## 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 Core |
| |
| List of the XOS Core API |
| |
| |
| ## Deployments [/api/core/deployments/{id}/] |
| |
| List of the XOS deployments |
| |
| ### 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" |
| ] |
| } |
| ] |
| |
| ### Create a deployment [POST] |
| |
| + Request (application/json) |
| |
| { |
| "humanReadableName": "MyDeployment", |
| } |
| |
| + 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" |
| ] |
| } |
| |
| ### View a Deployment Detail [GET] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Deployment in the form of an integer |
| |
| + Response 200 (application/json) |
| |
| { |
| "humanReadableName": "MyDeployment", |
| "id": 1, |
| "created": "2016-04-27T21:46:57.354544Z", |
| "updated": "2016-04-27T21:47:05.221720Z", |
| "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": [], |
| "sites": [ |
| "1" |
| ], |
| "flavors": [ |
| "3", |
| "2", |
| "1" |
| ], |
| "dashboardviews": [ |
| "3" |
| ] |
| } |
| |
| ### Delete a Deployment [DELETE] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Deployment in the form of an integer |
| |
| + Response 204 |
| |
| |
| ## Flavors [/api/core/flavors/{id}/] |
| |
| List of the XOS flavors |
| |
| ### 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" |
| ] |
| } |
| ] |
| |
| ### Create a Flavor [POST] |
| |
| + Request (application/json) |
| |
| { |
| "humanReadableName": "mq.test", |
| } |
| |
| + 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" |
| ] |
| } |
| |
| ### Delete a Flavors Detail [DELETE] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Flavors in the form of an integer |
| |
| + Response 204 |
| |
| |
| ## Instances Collection [/api/core/instances/{?no_hyperlinks}] |
| |
| + no_hyperlinks (number, optional) - Wheter to return relation with links or ids |
| + Default: `0` |
| |
| ### 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" |
| ] |
| } |
| ] |
| |
| ### Create an Instance [POST] |
| |
| + Parameters |
| + no_hyperlinks: 1 |
| |
| + Request (application/json) |
| |
| { |
| "name": "test-instance", |
| "image": 1, |
| "slice": 1, |
| "deployment": 1, |
| "node": 1 |
| } |
| |
| + 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": "test-instance", |
| "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" |
| ] |
| } |
| |
| ## Instances Detail [/api/core/instances/{id}/] |
| |
| ### Get instance details [GET] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Instance in the form of an integer |
| |
| + 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" |
| ] |
| } |
| |
| ### Delete instance [DELETE] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Instance in the form of an integer |
| |
| + Response 204 |
| |
| |
| ## 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": [] |
| } |
| ] |
| |
| |
| |
| ## Services [/api/core/services/{id}/] |
| |
| ### List all Services [GET] |
| |
| + Response 200 (application/json) |
| |
| [ |
| { |
| "humanReadableName": "MyService", |
| "id": 1, |
| "created": "2016-05-05T23:06:33.835277Z", |
| "updated": "2016-05-05T23:06:33.835302Z", |
| "enacted": null, |
| "policed": null, |
| "backend_register": "{}", |
| "backend_status": "0 - Provisioning in progress", |
| "deleted": false, |
| "write_protect": false, |
| "lazy_blocked": false, |
| "no_sync": false, |
| "no_policy": false, |
| "description": null, |
| "enabled": true, |
| "kind": "vROUTER", |
| "name": "MyService", |
| "versionNumber": null, |
| "published": true, |
| "view_url": "/admin/vrouter/vrouterservice/$id$/", |
| "icon_url": null, |
| "public_key": null, |
| "private_key_fn": null, |
| "service_specific_id": null, |
| "service_specific_attribute": null |
| } |
| ] |
| |
| ### Create a Service [POST] |
| |
| + Request (application/json) |
| |
| { |
| "name": "MyService", |
| "kind": "vROUTER" |
| } |
| |
| + Response 200 (application/json) |
| |
| { |
| "humanReadableName": "MyService", |
| "id": 1, |
| "created": "2016-05-05T23:06:33.835277Z", |
| "updated": "2016-05-05T23:06:33.835302Z", |
| "enacted": null, |
| "policed": null, |
| "backend_register": "{}", |
| "backend_status": "0 - Provisioning in progress", |
| "deleted": false, |
| "write_protect": false, |
| "lazy_blocked": false, |
| "no_sync": false, |
| "no_policy": false, |
| "description": null, |
| "enabled": true, |
| "kind": "vROUTER", |
| "name": "MyService", |
| "versionNumber": null, |
| "published": true, |
| "view_url": "/admin/vrouter/vrouterservice/$id$/", |
| "icon_url": null, |
| "public_key": null, |
| "private_key_fn": null, |
| "service_specific_id": null, |
| "service_specific_attribute": null |
| } |
| |
| ### View a Service Detail [GET] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Service in the form of an integer |
| |
| + Response 200 (application/json) |
| |
| { |
| "humanReadableName": "MyService", |
| "id": 1, |
| "created": "2016-05-05T23:06:33.835277Z", |
| "updated": "2016-05-05T23:06:33.835302Z", |
| "enacted": null, |
| "policed": null, |
| "backend_register": "{}", |
| "backend_status": "0 - Provisioning in progress", |
| "deleted": false, |
| "write_protect": false, |
| "lazy_blocked": false, |
| "no_sync": false, |
| "no_policy": false, |
| "description": null, |
| "enabled": true, |
| "kind": "vROUTER", |
| "name": "MyService", |
| "versionNumber": null, |
| "published": true, |
| "view_url": "/admin/vrouter/vrouterservice/$id$/", |
| "icon_url": null, |
| "public_key": null, |
| "private_key_fn": null, |
| "service_specific_id": null, |
| "service_specific_attribute": null |
| } |
| |
| ### Delete a Service [DELETE] |
| |
| + Parameters |
| + id: 1 (number) - ID of the Service in the form of an integer |
| |
| + Response 204 |
| |
| |
| |
| ## 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" |
| ] |
| } |
| |
| |
| ## Slices [/api/core/slices/{id}/] |
| |
| List of the XOS slices |
| |
| ### 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/" |
| ] |
| } |
| ] |
| |
| |
| |
| ## 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" |
| } |
| ] |
| |