Our ISO image catalog is composed by more than 130 220 ISO images (and growing) stored within our virtual environment to make a faster VM-ISO interaction, where users can pick and choose the most common Linux distributions, Windows, Solaris, etc. or any other Software like SQL Server.
The following table shows a brief description and HTTP methods allowed to interact with ISO images available to customers.
Remember, you can also show what methods are allowed and description, parameters, etc. by making an OPTIONS HTTP request to /v2/iso.
Code Block |
---|
|
http OPTIONS "Resource | URI | Description | GET | POST | PUT | PATCH | OPTIONS |
---|
Public ISO images | /iso | CD/DVD iso images available to customers. | | | | | |
Note |
---|
|
|
|
|
| |
Personal ISO images | /user/image/iso | CD/DVD ISO images in user's personal store | |
|
| |
|
Note |
---|
TK stores the Cloud API Token generated as a result of the following POST request to the /auth/request-token resource: Code Block |
---|
curl -X POST https://vss-api.eis.utoronto.ca/v2/iso"
curl -X OPTIONS "auth/request-token -u <username> |
For example, extracting the token with the jq command: Code Block |
---|
TK=$(curl -X POST https://vss-api.eis.utoronto.ca/v2/iso" |
|
Listauth/request-token -u <username> | jq -r '.token') |
|
List Personal ISOs
In order to list available ISO images you should make images in your personal https://vskey-stor.eis.utoronto.ca account you should make a GET request to the endpoint /v2/user/image/iso passing your access token. As a result, you will get list of ISO images in form of JSON objects with the following attributes:
Name | Type | Description |
---|
name | string | ISO image file name |
path | string | Datastore path location |
The following examples implements HTTPie and CURL to list available ISO images:
Code Block |
http GET The following examples implements HTTPie and CURL to list available ISO images:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/user/image/iso" "Authorization: Bearer $TK"
curl -H "Authorization: Bearer $TK" -X GET "https://vss-api.eis.utoronto.ca/v2/user/image/iso" |
Code Block |
---|
language | py |
---|
title | Response Body |
---|
collapse | true |
---|
|
{
"_links": {
"apiself": "https://vss-api.eis.utoronto.ca/v2/user/image/iso",
"selfuser": "https://vss-api.eis.utoronto.ca/v2/isouser/image"
},
"data": [
{
"namecreated_on": "CentOS2017-7.0-1406-x86_64-DVD11-17 13:51:31 EST",
"pathdata_store": "[vss-ISOs] Linux/CentOS/CentOS-7.0-1406-x86_64-DVD.iso"vssUser-xfers",
}, {"id": 223,
"name": "CentOS-7.0-1406-x86_64-Minimal", 501219a5-a563-787c-f334-e7b65e829dca-ud.iso",
"path": "[vssvssUser-ISOsxfers] Linuxjosem/CentOS/CentOS-7.0-1406-x86_64-Minimalconfig-drive/501219a5-a563-787c-f334-e7b65e829dca-ud.iso",
}, {"public": false,
"nameupdated_on": "CentOS2017-7.0-1406-x86_64-NetInstall",11-17 13:51:31 EST"
},
{
"path": "[vss-ISOs] Linux/CentOS/CentOS-7.0-1406-x86_64-NetInstall.iso" } "created_on": "2017-11-17 ],
13:51:31 EST",
"meta": { "countdata_store": 3"vssUser-xfers",
"timeid": "0.91943s"224,
"username": "jm"50128758-774e-a3df-7137-5b6aa38aa760-ud.iso",
}
} |
Sort
Sorting results has been recently introduced on version 3.2.1:
Name | Description |
---|
sort | sort results by path or name |
The following examples show how to structure a GET request, with sorting:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso?sort=name" "Authorization: Bearer $TK"
http GET "https://vss-api.eis.utoronto.ca/v2/iso?sort=path" "Authorization: Bearer $TK" |
Filters
This resource has one filter to narrow down the number of ISO images shown in the result.
Name | Description |
---|
name | ISO image file name |
The following examples show how to structure a GET request, with filters:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso?name=ubuntu" "Authorization: Bearer $TK"
http GET "https://vss-api.eis.utoronto.ca/v2/iso?name=ubuntu-16" "Authorization: Bearer $TK" |
Code Block |
---|
language | py |
---|
title | Response Body - Filtered by name=ubuntu |
---|
collapse | true |
---|
|
{
"_links": {
"api": " "path": "[vssUser-xfers] josem/config-drive/50128758-774e-a3df-7137-5b6aa38aa760-ud.iso",
"public": false,
"updated_on": "2017-11-17 13:51:31 EST"
}
],
"meta": {
"count": 2,
"time": "0.00372s",
"user": "josem"
}
} |
Sync personal ISOS
Before listing personal ISOs, please be sure you have uploaded the desired file to https://vskey-stor.eis.utoronto.ca and then execute a Synchronization task as follows:
Code Block |
---|
http PATCH https://vss-api.eis.utoronto.ca/v2/user/image/iso ",Authorization: Bearer $TK"
curl -H "Authorization: Bearer $TK" "self":-X PATCH "https://vss-api.eis.utoronto.ca/v2/iso"
},
"data": [
{
"name": "ubuntu-12.04.1-server-i386",
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.04.1-server-i386.iso"
},
{
"name": "ubuntu-12.04.2-server-amd64",/user/image/iso" |
A synchronization task should be submitted and your ISO images should appear momentaneously on /v2/user/image/iso
List Public ISOs
In order to list available ISO images you should make a GET request to the endpoint /v2/iso passing your access token. As a result, you will get list of ISO images URL reference.
The following examples implements HTTPie and CURL to list available ISO images:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso" "Authorization: Bearer $TK"
curl -H "Authorization: Bearer $TK" -X GET "https://vss-api.eis.utoronto.ca/v2/iso" |
Code Block |
---|
language | py |
---|
title | Response Body |
---|
collapse | true |
---|
|
{
"data": [
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.04.2-server-amd64.iso""https://vss-api.eis.utoronto.ca/v2/iso/1",
}"https://vss-api.eis.utoronto.ca/v2/iso/2",
{
"https://vss-api.eis.utoronto.ca/v2/iso/3",
"name": "ubuntu-12.04.3-desktop-amd64",
https://vss-api.eis.utoronto.ca/v2/iso/4",
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.04.3-desktop-amd64.iso"https://vss-api.eis.utoronto.ca/v2/iso/5",
}"https://vss-api.eis.utoronto.ca/v2/iso/6",
{
"https://vss-api.eis.utoronto.ca/v2/iso/7",
"name": "ubuntu-12.04.3-server-amd64",
https://vss-api.eis.utoronto.ca/v2/iso/8",
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.04.3-server-amd64.iso"https://vss-api.eis.utoronto.ca/v2/iso/9",
}, "https://vss-api.eis.utoronto.ca/v2/iso/10"
],
"meta": {
"_link": {
"name": "ubuntu-12.04.4-server-amd64",
"pathself": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.04.4-server-amd64.https://vss-api.eis.utoronto.ca/v2/iso"
},
{"count": 10,
"name"pages": "ubuntu-12.10-server-amd64", {
"pathfirst_url": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.10-server-amd64.iso"https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=1",
},
{
"namelast_url": "ubuntu-13.04-server-amd64https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=23",
"pathnext_url": "[vss-ISOs] Linux/Ubuntu/ubuntu-13.04-server-amd64.iso"https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=2",
"page": }1,
{ "pages": 23,
"name "per_page": "ubuntu-13.10-server-amd64",
"pathprev_url": "[vss-ISOs] Linux/Ubuntu/ubuntu-13.10-server-amd64.iso"null,
}, "total": 224
{ },
"nametime": "ubuntu-14.04-desktop-amd64",
0.00862s",
"pathuser": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04-desktop-amd64.isojosem"
}
},
{
"name": "ubuntu-14.04-server-amd64",
} |
Expand
You can also expand given resources by adding the parameter to the query string expand=1 as follows:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso?expand=1" "Authorization: Bearer $TK"
curl -H "Authorization: Bearer $TK" -X GET "https://vss-api.eis.utoronto.ca/v2/iso?expand=1" |
Code Block |
---|
language | py |
---|
title | Response Body |
---|
collapse | true |
---|
|
{
"data": [
...
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04-server-amd64.iso" {
}, "created_on": "2017-11-17 {13:43:11 EST",
"namedata_store": "ubuntu-14.04.1-server-amd64vss-ISOs",
"pathid": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04.1-server-amd64.iso"10,
}, "name": "MS_Win2003std_R2_SP2_DISK1.iso",
{ "path": "[vss-ISOs] Windows/Win2003/MS_Win2003std_R2_SP2_DISK1.iso",
"namepublic": "ubuntu-14.04.1-server-i386"true,
"pathupdated_on": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04.1-server-i386.iso"2017-11-17 13:43:11 EST"
}
...
],
}, "meta": {
"_link": {
"nameself": "ubuntu-14.04.2-desktop-amd64",https://vss-api.eis.utoronto.ca/v2/iso"
},
"pathcount": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04.2-desktop-amd64.iso"10,
},
"pages": {
"namefirst_url": "ubuntu-14.04.3-server-amd64", https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=1",
"pathlast_url": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04.3-server-amd64.iso"
},
{https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=23",
"namenext_url": "ubuntu-14.10-server-amd64https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=2",
"pathpage": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.10-server-amd64.iso"1,
}, {"pages": 23,
"nameper_page": "ubuntu-15.04-server-amd64", 10,
"pathprev_url": "[vss-ISOs] Linux/Ubuntu/ubuntu-15.04-server-amd64.iso"null,
}, "total": 224
{ },
"nametime": "ubuntu-15.10-desktop-amd64",
0.00862s",
"pathuser": "[vss-ISOs] Linux/Ubuntu/ubuntu-15.10-desktop-amd64.isojosem"
},
{
"name": "ubuntu-15.10-server-amd64",
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-15.10-server-amd64.iso"
},
{
"name": "ubuntu-16.04-server-amd64",
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-16.04-server-amd64.iso"
}
],
"meta": {
"count": 19,
"time": "0.90471s",
"user": "jm"
}
} |
Code Block |
---|
language | py |
---|
title | Response Body - Filtered by name=ubuntu-16 |
---|
collapse | true |
---|
|
{
"_links": {
"api": "https://vss-api.eis.utoronto.ca/v2/",
"self": "https://vss-api.eis.utoronto.ca/v2/iso"
},
"data": [
{
"name": "ubuntu-16.04-server-amd64",
"path": "[vss-ISOs] Linux/Ubuntu/ubuntu-16.04-server-amd64.iso"
}
],
"meta": {
"count": 1,
"time": "0.87093s",
"user": "jm"
}
}}
} |
Paging
All requests to the /iso URL are paginated. The response body includes a 'meta.pages' key with everything to navigate through the results, for instance:
Key | Description |
---|
first_url | Contain the URLs to navigate through results. |
last_url |
prev_url |
next_url |
page | Current page |
pages | Total number of pages |
per_page | Results per page. Maximum 250; Default 10. |
total | Total number of results |
Results per page can be set by including the parameter in the URL query, so we can get the desired number of elements per page, for example:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1" "Authorization: Bearer $TK"
curl -X GET -H "Authorization: Bearer $TK" "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1" |
Filtering
ISOs can be filtered by adding the filter argument to the query string in the following format:
Code Block |
---|
filter=<field_name>,<operator>,<value> |
Operators can be:
Operator | Description |
---|
eq | Equals |
ne | Not equal |
lt | Lower than |
le | Lower equal |
gt | Greater than |
ge | Greater equal |
like | Matching pattern |
in | Match value in many items separated by commas |
A resource can be filtered by as many attributes the request has, for instance /iso can be filtered by name, path, created_on, updated_on, etc. Thus, the following example will filter only CentOS images:
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1&filter=name,like,CentO%" "Authorization: Bearer $TK" |
Sorting
ISO images can be sorted by adding the sort parameter in the URL query string in the following format:
Code Block |
---|
sort=<field_name>,<asc|desc> |
The following example shows how to filter by date (latest first):
Code Block |
---|
http GET "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1&filter=name,like,CentO%&sort=name,desc" "Authorization: Bearer $TK"
curl -X GET -H "Authorization: Bearer $TK" "https://vss-api.eis.utoronto.ca/v2/iso?per_page=250&expand=1&filter=name,like,CentO%&sort=name,desc" |