blob: 5bd34fd953223844cb8a9bb95249f55118f1a7b8 [file] [log] [blame]
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/]
### List all sites [GET]
+ Response 200 (application/json)
[
{
"humanReadableName": "mysite",
"id": 1,
"created": "2016-08-18T21:21:03.429133Z",
"updated": "2016-08-18T21:21:06.676008Z",
"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,
"name": "mysite",
"site_url": "http://opencloud.us/",
"enabled": true,
"hosts_nodes": true,
"hosts_users": true,
"longitude": null,
"latitude": null,
"login_base": "mysite",
"is_public": true,
"abbreviated_name": "",
"deployments": [
"1"
]
}
]
## Sites [/api/core/sites/{id}/]
### View a Site Detail [GET]
+ Parameters
+ id: 1 (number) - ID of the Site in the form of an integer
+ Response 200 (application/json)
{
"humanReadableName": "mysite",
"id": 1,
"created": "2016-08-18T21:21:03.429133Z",
"updated": "2016-08-18T21:21:06.676008Z",
"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,
"name": "mysite",
"site_url": "http://opencloud.us/",
"enabled": true,
"hosts_nodes": true,
"hosts_users": true,
"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"
}
]