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.
Resource | URI | Description | GET | POST | PUT | PATCH | OPTIONS |
---|
Public ISO images | /iso | CD/DVD iso images available to customers. | | | | | |
Personal ISO images | /user/image/iso | CD/DVD ISO images in user's personal store | |
|
| |
|
Note |
---|
|
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 "https://vss-api.eis.utoronto.ca/v2/iso"
curl -X OPTIONS "https://vss-api.eis.utoronto.ca/v2/iso" |
|
List Personal ISOs
In order to list available ISO images you should make a GETimages 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,
{ "name"updated_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",
} ], "metadata_store": {"vssUser-xfers",
"countid": 3224,
"timename": "0.91943s50128758-774e-a3df-7137-5b6aa38aa760-ud.iso",
"userpath": "jm"[vssUser-xfers] josem/config-drive/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": "https://vss-api.eis.utoronto.ca/v2/", "public": false,
"updated_on": "2017-11-17 13:51:31 EST"
}
],
"meta": {
"count": 2,
"time": "0.00372s",
"selfuser": "https://vss-api.eis.utoronto.ca/v2/isojosem"
},
"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",
} |
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" -X PATCH "https://vss-api.eis.utoronto.ca/v2/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": {
"name"_link": "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,
"pages": {
"name "first_url": "ubuntu-12.10-server-amd64", https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=1",
"pathlast_url": "[vss-ISOs] Linux/Ubuntu/ubuntu-12.10-server-amd64.iso"
},
{https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=23",
"namenext_url": "ubuntu-13.04-server-amd64", https://vss-api.eis.utoronto.ca/v2/iso?per_page=10&page=2",
"pathpage": "[vss-ISOs] Linux/Ubuntu/ubuntu-13.04-server-amd64.iso"1,
}, "pages": 23,
{
"nameper_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",
{ "name"data_store": "ubuntu-14.04.1-server-amd64vss-ISOs",
"pathid": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04.1-server-amd64.iso"
}10,
{ "name": "ubuntu-14.04.1-server-i386", "name": "MS_Win2003std_R2_SP2_DISK1.iso",
"path": "[vss-ISOs] LinuxWindows/Ubuntu/ubuntu-14.04.1-server-i386.iso"Win2003/MS_Win2003std_R2_SP2_DISK1.iso",
}, "public": true,
{ "name"updated_on": "ubuntu-14.04.2-desktop-amd64",2017-11-17 13:43:11 EST"
}
...
],
"pathmeta": "[vss-ISOs] Linux/Ubuntu/ubuntu-14.04.2-desktop-amd64.{
"_link": {
"self": "https://vss-api.eis.utoronto.ca/v2/iso"
},
{"count": 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" |
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" |