API
Emulation-as-a-Service exposes a number of RESTful API endpoints users can employ with an API client (including curl
or any other HTTP request tooling) to get some descriptive and technical information on the resources present in an EaaSI installation.
Authenticatie en Access Tokens
Users with an account on an EaaSI server can query the API based on their unique user context (for example, to receive metadata about Private Environments or imported Software resources) by obtaining an access token from EaaSI’s Keycloak authentication module.
Notitie
If no access token/user context is provided, GET requests to the public API may still return metadata on a server’s published/public resources (Public Environments)
Users with an EaaSI account can acquire an access token from their server by sending a POST request to https://[eaasi.domain]/auth/realms/master/protocol/openid-connect/token
, for example:
$ curl --request POST \
--url https://[eaasi.domain]/auth/realms/master/protocol/openid-connect/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data client_id=eaas \
--data grant_type=password \
--data username=[user] \
--data password=[password]
Om alle informatie te vervangen door de juiste waarden. Tokens zijn een uur per defect, waarna ze moeten worden geregenereerd of verfrist.
Een geldig verzoek zou moeten ontvangen ‘OAuth 2.0 toegang tot de token reageert: Wauw, eauth.com/oauth2-servers/access-kens/accestokens/acstokens sponse Response. De ontvingspunten van het ontstaan van eigendom kunnen dan worden verstrekt in het hoofd van vervolg verzoeken aan de EasaS API, bijvoorbeeld.
curl --request GET \
--url 'https://[eaasi.domain]/emil/environment-repository/environments' \
--header 'Authorization: Bearer [access_token]' \
--header 'accept: application/json'
Publiek API
Alle openbare EaaS API-uiteinden zijn gelokaliseerd onder de basis _
Environmenten
- GET /environment-repository/environments
Retrieves a list of all available Environments in the server
- Verzoek:
Accept – Moet de reactie van het apparaat definiëren als ‘plicatie/json’
Authorization – Optie OAuth Token om te authenticeren (necessary om Soldaat Environmenten te halen)
- Query Parameters:
detailed (boolean) – Als je naar “true” kunt worden gebruikt om alles te vertoonen metadata geassocieerd met elke Environment in plaats van een overzicht (zee ) inclusief verwijdering /environment /environment /dufal definvidus gedocumenteerd door te worden
localOnly (boolean) – If set to “false”, returns metadata associated with Public Environments visible but not Saved Locally to the server (“true” by default)
- Status Codes:
200 OK – Een reeks Environmenten
- Respons JSON Object:
envId (string) – Unique ID (UID) voor een Environment middel
title (string) – Menselijke naam voor een Environment
archive (string) – Dat wijst op het archief van de Environment, een van de drie opties afhankelijk van zijn netwerk Status (returns “verwijderen” voor Public, “public” voor Saved Locally, “Precally”
owner (string) – Wijst op gebruikersrekening dat eigenaar is van de Environment middel (eider keert “geschoren” voor Public of Saved Locally, of een UUID voor gepresenteerde rekening van gebruikers
objectId (string) – Als Environment een : “Content Environment” is, keert de UUID van de geassocieerde: “Kontent object “
objectArchive (string) – Als Environment een : “Content Environment” is, keert de UUID terug van het gebruiker archief geassocieerd met die : “Content” “should is hetzelfde als de UIDowner
envType (string) – Keer “object” terug als Environment een “Content Environment” is, keert terug “basis voor alle anderen”
timestamp (string) – ISO 8601 fulltime Timestamp voor toen de Environment werd gecreëerd
description (string) – De meest recente beschrijving van de Environment uit zijn geschiedenis (gelezen tijdens het uitvoeren van Emulatie Access sessies
linuxRuntime (boolean) – Het wijst erop dat de Environment een Linux runtime gepast is voor importeren en beheersen van containers (an EasS kenmerk nog niet geïnformeerd in EaSI nodes)
networkEnabled (boolean) – Het wijst erop dat het Environment in staat is om te netwerken met het levende internet of andere Environmenten (het laatste is een EaasaS kenmerk nog niet geïnformeerd in EaSI nodes)
internetEnabled (boolean) – Verklaar dat als de Environment wordt toegestaan om te verbinden met het internet (kan alleen maar “waar” als “Leve” levende werkzaam is in “true”
serviceContainer (boolean) – Dat wijst erop dat als de Environment een container service vertegenwoordigt… (an Eaas’ kenmerk nog niet geïnformeerd in EasI nodes
Vertaling:
HTTP/1.1 200 OK Content-Type: application/json [ { "envId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "title": "Windows 98 + Borland Quattro Pro 5.0", "archive": "default", "owner": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "envType": "base", "timestamp": "2022-04-27T17:45:45.922581Z", "description": "installed to C: drive", "linuxRuntime": false, "networkEnabled": true, "internetEnabled": true, "serviceContainer": false }, { "envId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "title": "The Would-Be Gentleman", "archive": "default", "owner": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "objectArchive": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "envType": "object", "timestamp": "2022-03-17T15:18:56.917042Z", "description": "unstuffed floppy image and copied contents to MacintoshHD", "linuxRuntime": false, "networkEnabled": false, "internetEnabled": false, "serviceContainer": false } ]
- GET /environment-repository/environments/[envId]
Een gedetailleerd verslag van een environment, zoals gedefinieerd door een UUID
- Verzoek:
Accept – Moet de reactie van het apparaat definiëren als ‘plicatie/json’
Authorization – Optie OAuth Token om te authenticeren (necessary om Soldaat Environmenten te halen)
- Status Codes:
200 OK – Een environatie JSON
400 Bad Request – Geen uitzondering met de gespecificeerde UUID gevonden
- Respons JSON Object:
networking (object) – een nest JSON object letterlijk beschrijft de Environment’s ge emuleerde netwerk capaciteiten
enableInternet (nested,boolean) – Verklaar dat als de Environment wordt toegestaan om te verbinden met het internet (kan alleen maar “waar” als “Leve” levende werkzaam is in “true”
serverMode (nested,boolean) – Quality over Quantity (QoQ) Releases Vertaling:
localServerMode (nested,boolean) – Quality over Quantity (QoQ) Releases Vertaling:
enableSocks (nested,boolean) – Quality over Quantity (QoQ) Releases Vertaling:
connectEnvs (nested,boolean) – Quality over Quantity (QoQ) Releases Vertaling:
parentEnvId (string) – Als de Environment een ‘termatief’ is, verwijst dit de unieke ID van de basis environment die deze derivatatie direct werd gered van
envId (string) – Unique ID (UID) voor de Environment middel
title (string) – Menselijke naam voor de Environment
description (string) – De meest recente beschrijving van de Environment uit zijn geschiedenis (gelezen tijdens het uitvoeren van Emulatie Access sessies
emulator (string) – ‘Javabeans’ tjahtps .wiki, org/Javabeans naam voor de emulator gebruikt door deze Environment middel
enableRelativeMouse (boolean) – Als “true” in staat is de “Relatieve Mouse (Pointerlock).
enablePrinting (boolean) – Als ‘t waar’ in staat is om de ‘Environment Can Print’ te plaatsen.
shutdownByOs (boolean) – Als ‘t waar’ in staat is de “Requires Clean sluiting” te plaatsen
timeContext (string) –
canProcessAdditionalFiles (boolean) – Quality over Quantity (QoQ) Releases Vertaling:
archive (string) – Dat wijst op het archief van de Environment, een van de drie opties afhankelijk van zijn netwerk Status (returns “verwijderen” voor Public, “public” voor Saved Locally, “Precally”
xpraEncoding (string) – Als XPPRA op ‘t ware pad staat, bepaalt deze string het type beeld dat gebruikt wordt door de Xpra display server en cliënt ‘jpeg’ per default:
owner (string) – Wijst op gebruikersrekening dat eigenaar is van de Environment middel (eider keert “geschoren” voor Public of Saved Locally, of een UUID voor gepresenteerde rekening van gebruikers
envType (string) – Keer “object” terug als Environment een “Content Environment” is, keert terug “basis voor alle anderen”
revisions (array) – Als de geselecteerde Environment een ‘termatief’ is, een sub-array van de vorige herzieningen in de geschiedenis van de Environment (gelijst van de meest recente tot oudste herzieningen)
id (string) – _
text (nested,string) – De vorige Environment in de afgeleide keten
archive – De vorige Enviment in de keten
installedSoftwareIds (array) – Een sub-array van alle Software middelen geassocieerd met deze Environment. Kan een besturingssysteem installeren als het Environment een “basis” is of andere geassocieerde Software middelen als de Environment een: _
id – _
label (string) – De menselijke naam van elke geassocieerde Software bron
archive – De zoektocht naar het opslagarchief waar de geassocieerde Software middel wordt bewaard
nativeConfig (string) – Arbitraire string/flags toegevoegd aan het in beslag genomen emulator’s defect wanneer Environment wordt geleid:
useXpra (boolean) – Als ‘t waar’ in staat is de ‘XPRA Video’ te plaatsen:
useWebRTC (boolean) – Als ‘t waar’ in staat is de ‘WebRTC Audio’ te plaatsen:
containerName (string) – Naam voor de Docker container uler ~ = = _
drives (array) – Een sub-array van JSON objecten, elke herscheiding van de geëlimineerde schijven die beschikbaar zijn voor deze Environment
data (nested,string) – Als een object of milieubeeld gebonden is aan deze schijf, zal zijn unieke ID in dit veld worden aangeduid, systeem drives of een : ‘C’ontentronment’
iface (nested,string) – Computeropslag standaard/interface gebruikt door de ge emuleerde drive (opties zijn “ide” of “floppy”
bus (nested,string) – Quality over Quantity (QoQ) Releases Vertaling:
unit (nested,string) – Vertaling:
type (nested,string) – Het corresponderen van Physical Media type voor de ge emuleerde schijf (allows welke middelen objecten kunnen worden geladen in deze schijf, aanvaarde waarden zijn “floppy”, “cdrom”, of “disk”
filesystem (nested,string) – Geeft aan dat de bestandsystem types geaccepteerd worden door de geavanceerde drives of “cdrom” drives of “fat12” voor “floppy”
boot (nested,boolean) – Communicaten aan de emulator (als mogelijk) dat deze schijf zou moeten worden aangetoond als de system/boot-stick (only one drive in de Environment configuration zou moeten worden gemarkeerd “true”, anders gedrag zal onvoorspelbaar zijn
plugged (nested,boolean) –
timestamp (string) – ISO 8601 fulltime Timestamp voor toen de Environment werd gecreëerd
linuxRuntime (boolean) – Beweert dat als de Environment een Linux runtime gepast is voor importeren en beheersen van containers nog niet geïmplementeerd in EaSI nodes
isServiceContainer (boolean) – Beweert dat als de Environment een container service vertegenwoordigt… nog niet in EasaSI nodes geïnformeerd wordt.
Vertaling:
HTTP/1.1 200 OK Content-Type: application/json { "networking": { "enableInternet": false, "serverMode": false, "localServerMode": false, "enableSocks": false, "connectEnvs": false }, "parentEnvId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "envId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "title": "Windows 98 + Borland Quattro Pro 5.0", "description": "installed to C: drive", "emulator": "Qemu", "enableRelativeMouse": false, "enablePrinting": true, "shutdownByOs": false, "timeContext": "1628524787526", "canProcessAdditionalFiles": false, "archive": "default", "xpraEncoding": "jpeg", "owner": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "envType": "base", "revisions": [ { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "text": "removed daylight savings time pop-up", "archive": "default" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "text": "fixed Plug n Play BIOS warning, rebooted to add Soundblaster card", "archive": "public" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.xml", "text": "n.a.", "archive": "public" } ], "installedSoftwareIds": [ { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "label": "Windows98SE", "archive": "zero conf" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "label": "Borland Quattro Pro 5.0", "archive": "zero conf" } ], "nativeConfig": "-usb -usbdevice tablet -vga cirrus -soundhw sb16 -net nic,model=pcnet", "useXpra": false, "useWebRTC": false, "containerName": "qemu-system", "drives": [ { "data": "binding://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "iface": "ide", "bus": "0", "unit": "0", "type": "disk", "boot": true, "plugged": true }, { "iface": "floppy", "bus": "0", "unit": "0", "type": "floppy", "filesystem": "fat12", "boot": false, "plugged": false }, { "iface": "ide", "bus": "0", "unit": "1", "type": "cdrom", "filesystem": "ISO", "boot": false, "plugged": false } ], "timestamp": "2022-04-27T17:45:45.922581Z", "linuxRuntime": false, "isServiceContainer": false }
Software
- GET /software-repository/descriptions
Een lichtgewichtslijst van Software.
- Verzoek:
Accept – Moet de reactie van het apparaat definiëren als ‘plicatie/json’
Authorization – OAuth token om te authenticeren (necessary om Software middelen te halen)
- Status Codes:
200 OK – Een reeks Software
- Respons JSON Object:
id (string) – Unique ID (UID) voor deze Software bron
label (string) – Menselijke naam voor een Software middel
isPublic (boolean) – Indicaties als de Software middel is gepubliceerd (publishing Software middelen is nog niet goed uitgevoerd in EaSI, deze waarde zou “false” moeten zijn.
archiveId (string) – Naam voor het opslagarchief waar het Software object wordt bewaard, zou “nul conf” moeten zijn voor alle privé Software middelen
isOperatingSystem (boolean) – Beweert dat de Software-bron is geïdentificeerd als een besturingssysteem geïmporteerd tijdens het Importeren via Demo UI, maar nog niet heropgericht in EaSI UI UI UI Iport proces, zou moeten zijn, maar zekere materiële voorwerpen.
Vertaling:
HTTP/1.1 200 OK Content-Type: application/json [ { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "label": "Microsoft Money 95", "isPublic": false, "archiveId": "zero conf", "isOperatingSystem": false }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "label": "Advanced_DB_Master_3.0", "isPublic": false, "archiveId": "zero conf", "isOperatingSystem": false } ]
- GET /software-repository/descriptions/[id]
Verkrijgt beschrijving voor een enkele Software middel, zoals gedefinieerd door UUID
- Verzoek:
Accept – Moet de reactie van het apparaat definiëren als ‘plicatie/json’
Authorization – OAuth token om te authenticeren (necessary om Software middelen te halen)
- Status Codes:
200 OK – Een Software JSON
500 Internal Server Error – Geen Software bezwaar tegen de gespecificeerde UUID
- Respons JSON Object:
id (string) – Unique ID (UID) voor deze Software bron
label (string) – Menselijke naam voor deze Software middel
isPublic (boolean) – Als deze Software-bron gepubliceerd is, is Software nog niet goed geïnformeerd in EaSI, deze waarde zou “false” moeten zijn.
archiveId (string) – Naam voor het opslagarchief waar het Software object wordt bewaard, zou “nul conf” moeten zijn voor alle privé Software middelen
isOperatingSystem (boolean) – Beweert dat de Software-bron is geïdentificeerd als een besturingssysteem geïmporteerd tijdens het Importeren via Demo UI, maar nog niet heropgericht in EaSI UI UI UI Iport proces, zou moeten zijn, maar zekere materiële voorwerpen.
Vertaling:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"label": "Microsoft Money 95",
"isPublic": false,
"archiveId": "zero conf",
"isOperatingSystem": false
}
- GET /software-repository/packages
Haal een meer gedetailleerde lading van Software objecten, waaronder geassocieerde bestanden.
- Verzoek:
Accept – Moet de reactie van het apparaat definiëren als ‘plicatie/json’
Authorization – OAuth token om te authenticeren (necessary om Software middelen te halen)
- Status Codes:
200 OK – Een reeks Software
- Respons JSON Object:
id (string) – Unique ID (UID) voor deze Software bron
objectId (string) – Unique ID (UID) voor dit Software object (should is hetzelfde als *
label (string) – Menselijke naam voor een Software middel
licenseInformation (string) – Open veld voor het definiëren van relevante softwarevergunning informatie
allowedInstances (integer) – Definieert hoeveel emulatie sessies kunnen worden geleid met dit Software object dat gematigd is met 1, indicatie sessies
nativeFMTs (array) – Een reeks bestandspuIDs die handmatig zijn toegewezen aan dit Software object als formats die inheems in Environmenten kunnen worden geassocieerd met deze Software middel:
importFMTs (array) – Een reeks bestandsformat PUIDs die handmatig zijn toegewezen aan dit Software object als formats die specifiek geïmporteerd kunnen worden in Environmenten geassocieerd met deze Software middel (primigaliseerde experimenteren)
exportFMTs (array) – Een reeks bestandsformat PUIDs die handmatig zijn toegewezen aan dit Software object als formats die specifiek kunnen worden uitgevoerd van Environmenten geassocieerd met deze Software middel (primigmatig onderzoek)
archiveId (string) – Naam voor het opslagarchief waar het Software object wordt bewaard, zou “nul conf” moeten zijn voor alle privé Software middelen
isPublic (boolean) – Indicaties als de Software middel is gepubliceerd (publishing Software middelen is nog niet goed uitgevoerd in EaSI, deze waarde zou “false” moeten zijn.
isOperatingSystem (boolean) – Beweert dat de Software-bron is geïdentificeerd als een besturingssysteem geïmporteerd tijdens het Importeren via Demo UI, maar nog niet heropgericht in EaSI UI UI UI Iport proces, zou moeten zijn, maar zekere materiële voorwerpen.
Vertaling:
HTTP/1.1 200 OK Content-Type: application/json [ { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "label": "Microsoft Money 95", "licenseInformation": "Proprietary commercial", "allowedInstances": 1, "nativeFMTs": ["fmt/38", "fmt/138", "fmt/57"], "importFMTs": ["x-fmt/18", " x-fmt/13"], "exportFMTs": ["x-fmt/18", "fmt/15"], "archiveId": "zero conf", "isPublic": false, "isOperatingSystem": false }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "label": "Advanced_DB_Master_3.0", "licenseInformation": "License key: xxx-xxxxx", "allowedInstances": -1, "nativeFMTs": ["fmt/38", "fmt/138", "fmt/57"], "importFMTs": ["x-fmt/18", " x-fmt/13"], "exportFMTs": ["x-fmt/18", "fmt/15"], "archiveId": "zero conf", "isPublic": false, "isOperatingSystem": false } ]
- GET /software-repository/packages/[id]
Een meer gedetailleerd uitzicht op een enkele Software middel, zoals gedefinieerd door UUID
- Verzoek:
Accept – Moet de reactie van het apparaat definiëren als ‘plicatie/json’
Authorization – OAuth token om te authenticeren (necessary om Software middelen te halen)
- Status Codes:
200 OK – Een Software JSON
500 Internal Server Error – Geen Software bezwaar tegen de gespecificeerde UUID
- Respons JSON Object:
id (string) – Unique ID (UID) voor deze Software bron
objectId (string) – Unique ID (UID) voor dit Software object (should is hetzelfde als *
label (string) – Menselijke naam voor deze Software middel
licenseInformation (string) – Open veld voor het definiëren van relevante softwarevergunning informatie
allowedInstances (integer) – Definieert hoeveel emulatie sessies kunnen worden geleid met dit Software object dat gematigd is met 1, indicatie sessies
nativeFMTs (array) – Een reeks bestandspuIDs die handmatig zijn toegewezen aan dit Software object als formats die inheems in Environmenten kunnen worden geassocieerd met deze Software middel:
importFMTs (array) – Een reeks bestandsformat PUIDs die handmatig zijn toegewezen aan dit Software object als formats die specifiek geïmporteerd kunnen worden in Environmenten geassocieerd met deze Software middel (primigaliseerde experimenteren)
exportFMTs (array) – Een reeks bestandsformat PUIDs die handmatig zijn toegewezen aan dit Software object als formats die specifiek kunnen worden uitgevoerd van Environmenten geassocieerd met deze Software middel (primigmatig onderzoek)
archiveId (string) – Naam voor het opslagarchief waar het Software object wordt bewaard, zou “nul conf” moeten zijn voor alle privé Software middelen
isPublic (boolean) – Indicaties als de Software middel is gepubliceerd (publishing Software middelen is nog niet goed uitgevoerd in EaSI, deze waarde zou “false” moeten zijn.
isOperatingSystem (boolean) – Beweert dat de Software-bron is geïdentificeerd als een besturingssysteem geïmporteerd tijdens het Importeren via Demo UI, maar nog niet heropgericht in EaSI UI UI UI Iport proces, zou moeten zijn, maar zekere materiële voorwerpen.
Vertaling:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"label": "Microsoft Money 95",
"licenseInformation": "Proprietary commercial",
"allowedInstances": 1,
"nativeFMTs": ["fmt/38", "fmt/138", "fmt/57"],
"importFMTs": ["x-fmt/18", " x-fmt/13"],
"exportFMTs": ["x-fmt/18", "fmt/15"],
"archiveId": "zero conf",
"isPublic": false,
"isOperatingSystem": false
}