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:
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:
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
  }