EaaSI 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.
Autenticación y acceso 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.
Nota
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]
Asegurarse de reemplazar toda la información en ``` con los valores/creencias apropiados. Las fichas son válidas durante una hora por defecto, después de lo cual deben ser regeneradas o refrescadas.
A valid request should receive an `OAuth 2.0 access token response ■https://www.oauth.com/oauth2-servers/access-tokens/access-token-response/año`_. The received access_token
property value can then be provided in the header of subsequent requests to the EaaS API, for example:
curl --request GET \
--url 'https://[eaasi.domain]/emil/environment-repository/environments' \
--header 'Authorization: Bearer [access_token]' \
--header 'accept: application/json'
Public API
Todos los puntos finales de EaS API públicos se encuentran bajo la URL base: https://[eaasi.domain]/emil
Environments
- GET /environment-repository/environments
Retrieves a list of all available Environments in the server
- Encabezados de solicitud:
Accept – Debería definir el tipo de contenido de respuesta como application/json
Authorization – opcional OAuth token para autenticar (necesario para recuperar ambientes privados)
- Parámetros de consulta:
detailed (boolean) – Si se establece en «verdad», se puede utilizar para mostrar todos metadatos asociados a cada medio ambiente en lugar de una visión general (véase
repositorio/ambiente de ambiente/ambiente/[envId]
documentación de punto final abajo para detalles completos incluidos; «falso» por defecto)localOnly (boolean) – If set to «false», returns metadata associated with Public Environments visible but not Saved Locally to the server («true» by default)
- Códigos de Status:
200 OK – Una variedad de entornos
- Objeto JSON de respuesta:
envId (string) – ID único (UUID) para un recurso ambiental
title (string) – Nombre legible para un recurso ambiental
archive (string) – Indica el archivo de almacenamiento del Medio Ambiente, una de las tres opciones dependiendo de su estado de red (devuelve «remote» para público, «public» para salvado localmente, «default» para privado)
owner (string) – Indica la cuenta de usuario que posee el recurso Medio Ambiente (ya sea «compartido» para públicos o guardados localmente, o un UUID para los entornos privados proporcionados por la cuenta de usuario)
objectId (string) – Si el medio ambiente es un Content Environment, devuelve el UUID del objeto asociado Content
objectArchive (string) – Si el medio ambiente es un Content Environment, devuelve el UUID del archivo de usuario asociado con ese Content (debe ser el mismo que
owner`
UUID)envType (string) – Devuelve «objeto» si el Medio Ambiente es un Content Environment, devuelve «base» para todos los demás
timestamp (string) – Calendario completo ISO 8601 para cuando se creó el Medio Ambiente
description (string) – La descripción más reciente del Medio Ambiente de su Historia (displayada durante las sesiones de Emulation Access)
linuxRuntime (boolean) – Indica si el Medio Ambiente es un tiempo de ejecución Linux apropiado para importar y ejecutar contenedores (una característica EaaS aún no implementada en los nodos EaaSI)
networkEnabled (boolean) – Indica si el Medio Ambiente es capaz de conectarse con Internet en vivo u otros entornos (este último es una característica EaaS que aún no se implementa en los nodos EaaSI)
internetEnabled (boolean) – Indica si se permite que el Medio Ambiente se conecte a Internet en vivo (sólo puede ser «verdadero» si ``redworkEnabled` también es «verdad»)
serviceContainer (boolean) – Indica si el Medio Ambiente representa un servicio de contenedores (una característica EaaS aún no implementada en los nodos EaaSI)
Respuesta ejemplar:
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]
Retrieves a detailed record of a single Environment, as defined by a provided UUID
- Encabezados de solicitud:
Accept – Debería definir el tipo de contenido de respuesta como application/json
Authorization – opcional OAuth token para autenticar (necesario para recuperar ambientes privados)
- Códigos de Status:
200 OK – A single Environment JSON object
400 Bad Request – No Entorno con el UUID especificado
- Objeto JSON de respuesta:
networking (object) – un objeto JSON anidado literalmente describiendo las capacidades de redes emuladas del Medio Ambiente
enableInternet (nested,boolean) – Indica si se permite que el Medio Ambiente se conecte a Internet en vivo (sólo puede ser «verdadero» si ``redworkEnabled` también es «verdad»)
serverMode (nested,boolean) – Característica EaaS aún no implementada en los nodos EaaSI
localServerMode (nested,boolean) – Característica EaaS aún no implementada en los nodos EaaSI
enableSocks (nested,boolean) – Característica EaaS aún no implementada en los nodos EaaSI
connectEnvs (nested,boolean) – Característica EaaS aún no implementada en los nodos EaaSI
parentEnvId (string) – Si el Medio Ambiente es un derivative, esto hace referencia al ID único (UUID) del Medio Ambiente base que este derivado fue salvado directamente de
envId (string) – Unique ID (UUID) for the Environment resource
title (string) – Nombre legible por el medio ambiente
description (string) – La descripción más reciente del Medio Ambiente de su Historia (displayada durante las sesiones de Emulation Access)
emulator (string) – " JavaBeans " , publicados en https://en.wikipedia.org/wiki/JavaBeans " , nombre del emulador utilizado por este recurso para el medio ambiente
enableRelativeMouse (boolean) – Cuando «verdad», permite el ajuste «Ratón Relativo (Pointerlock)» (ver: Environment Details)
enablePrinting (boolean) – Cuando «verdad», permite el ajuste «Environment Can Print» (ver: Environment Details)
shutdownByOs (boolean) – Cuando «verdad», permite el ajuste «Requiere limpieza de apagado» (ver: Environment Details)
timeContext (string) –
canProcessAdditionalFiles (boolean) – Característica EaaS aún no implementada en los nodos EaaSI
archive (string) – Indica el archivo de almacenamiento del Medio Ambiente, una de las tres opciones dependiendo de su estado de red (devuelve «remote» para público, «public» para salvado localmente, «default» para privado)
xpraEncoding (string) – Cuando ``useXpra` se establece en «true», esta cadena determina el tipo de codificación de imagen utilizado por el servidor de pantalla Xpra y el cliente («jpeg» por defecto)
owner (string) – Indica la cuenta de usuario que posee el recurso Medio Ambiente (ya sea «compartido» para públicos o guardados localmente, o un UUID para los entornos privados proporcionados por la cuenta de usuario)
envType (string) – Devuelve «objeto» si el Medio Ambiente es un Content Environment, devuelve «base» para todos los demás
revisions (array) – Si el entorno seleccionado es un derivative, un sub-array de las revisiones anteriores en la historia del medio ambiente (listed from most recent to older revisions)
id (string) – ``envId` for the previous Environment in the derivative chain
text (nested,string) – La ``descripción `` para el entorno anterior en la cadena derivada
archive – El
archive
para el entorno anterior en la cadena derivadainstalledSoftwareIds (array) – A sub-array of any Software resources associated with this Environment. Podría incluir un instalador del sistema operativo si el Medio Ambiente es un:term:base u otros recursos asociados del Software si el Medio Ambiente es un :term:`derivativo `
id – El ``id` de cualquier recurso asociado del Software
label (string) – El nombre legible por el ser humano de cualquier recurso asociado del Software
archive – El ``archiveId` para el archivo de almacenamiento donde se guarda el recurso asociado del Software
nativeConfig (string) – Arbitrary string/flags añadidos al predeterminado del emulador configurado cuando se ejecuta el entorno (ver: Configuración del emulador)
useXpra (boolean) – Cuando «verdad», permite el ajuste «XPRA Video» (ver: Environment Details)
useWebRTC (boolean) – Cuando «verdad», permite el ajuste «WebRTC Audio» (ver: Environment Details)
containerName (string) – Nombre para el :ref:`Contenedor de muelles <emulators ` matching the specified emulator bean
drives (array) – Sub-array of JSON objects, each represeting the emulated drives available for this Environment
data (nested,string) – Si un object o la imagen del medio ambiente está vinculada a esta unidad, su ID único (UUID) se indicará en este campo (es decir, unidades de sistema o un Content Environment)
iface (nested,string) – estándar/interfaz de almacenamiento de computadora utilizado por la unidad emulada (las opciones son «ide» o «floppy»)
bus (nested,string) – Número de dirección de bus informático utilizado por la unidad emulada
unit (nested,string) – Número de dirección de unidad de almacenamiento de computadora utilizado por la unidad emulada
type (nested,string) – Tipo de Medios Físicos Correspondientes para la unidad emulada (permite qué tipo de objetos de recursos se pueden cargar en esta unidad; valores aceptados son «floppy», «cdrom», o «disk»)
filesystem (nested,string) – Indica los tipos de sistemas de archivos aceptados por la unidad emulada (por ejemplo, «ISO» para unidades «cdrom» o «fat12» para «floppy»)
boot (nested,boolean) – Comuníquese con el emulador (si es posible) que esta unidad debe indicarse como la unidad de sistema/boot (sólo una unidad en la configuración del Medio Ambiente debe ser marcada «verdadera», de lo contrario el comportamiento será impredecible)
plugged (nested,boolean) –
timestamp (string) – Calendario completo ISO 8601 para cuando se creó el Medio Ambiente
linuxRuntime (boolean) – Indica si el Medio Ambiente es un tiempo de ejecución Linux apropiado para importar y ejecutar contenedores (EaaS característica aún no implementada en los nodos EaSI)
isServiceContainer (boolean) – Indica si el Medio Ambiente representa un servicio de contenedores (EaaS característica aún no implementada en los nodos EaaSI)
Respuesta del ejemplo:
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
Retrieves una lista ligera de recursos de software
- Encabezados de solicitud:
Accept – Debería definir el tipo de contenido de respuesta como application/json
Authorization – OAuth token to autenticar (necesario para recuperar recursos del software privado)
- Códigos de Status:
200 OK – Una matriz de software
- Objeto JSON de respuesta:
id (string) – ID único (UUID) para este recurso de software
label (string) – Nombre legible para un recurso de software
isPublic (boolean) – Indica si el recurso de Software ha sido publicado (publicar recursos de Software todavía no ha sido implementado correctamente en EaSI; este valor debe ser «falso»)
archiveId (string) – Nombre para el archivo de almacenamiento donde se guarda el objeto Software; debe ser «cero conf» para todos los recursos del Software privado
isOperatingSystem (boolean) – Indica si el recurso de Software ha sido identificado como un instalador de sistemas operativos durante la importación de recursos (disponible a través de Demo UI pero aún no reincorporado en el proceso de importación EaaSI UI; debe ser «falso» pero ciertos objetos heredados pueden mostrar «verdad»)
Respuesta ejemplar:
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]
Retrieves description for a single Software resource, as defined by provided UUID
- Encabezados de solicitud:
Accept – Debería definir el tipo de contenido de respuesta como application/json
Authorization – OAuth token to autenticar (necesario para recuperar recursos del software privado)
- Códigos de Status:
200 OK – Un solo objeto de software JSON
500 Internal Server Error – No hay objeto de software con el UUID especificado
- Objeto JSON de respuesta:
id (string) – ID único (UUID) para este recurso de software
label (string) – Nombre legible por humanos para este recurso de software
isPublic (boolean) – Indica si este recurso de Software ha sido publicado (publicar recursos de Software todavía no ha sido implementado correctamente en EaSI; este valor debe ser «falso»)
archiveId (string) – Nombre para el archivo de almacenamiento donde se guarda el objeto Software; debe ser «cero conf» para todos los recursos del Software privado
isOperatingSystem (boolean) – Indica si el recurso de Software ha sido identificado como un instalador de sistemas operativos durante la importación de recursos (disponible a través de Demo UI pero aún no reincorporado en el proceso de importación EaaSI UI; debe ser «falso» pero ciertos objetos heredados pueden mostrar «verdad»)
Respuesta ejemplar:
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
Retrieves una gama más detallada de objetos de software, incluyendo formatos de archivo asociados
- Encabezados de solicitud:
Accept – Debería definir el tipo de contenido de respuesta como application/json
Authorization – OAuth token to autenticar (necesario para recuperar recursos del software privado)
- Códigos de Status:
200 OK – Una matriz de software
- Objeto JSON de respuesta:
id (string) – ID único (UUID) para este recurso de software
objectId (string) – ID único (UUID) para este objeto de Software (debería ser igual a ``id`).
label (string) – Nombre legible para un recurso de software
licenseInformation (string) – Campo abierto para definir cualquier información relevante de licencia de software
allowedInstances (integer) – Define cuántas sesiones concurrentes de emulación pueden ejecutarse con este objeto de software montado (default es «-1», indicando * sesiones ilimitadas*)
nativeFMTs (array) – Una serie de PUIDs formato de archivo que han sido asignados manualmente con este objeto Software como formatos que pueden ser renderizados nativamente en entornos asociados con este recurso de Software (ver uvi)
importFMTs (array) – Una serie de PUIDs formato de archivo que han sido asignados manualmente con este objeto Software como formatos que pueden ser específicamente importados en entornos asociados con este recurso de Software (principalmente experimental, para investigar la migración automatizada)
exportFMTs (array) – Una serie de PUIDs formato de archivo que han sido asignados manualmente con este objeto Software como formatos que pueden ser específicamente exportados de entornos asociados con este recurso de Software (principalmente experimental, para investigar la migración automatizada)
archiveId (string) – Nombre para el archivo de almacenamiento donde se guarda el objeto Software; debe ser «cero conf» para todos los recursos del Software privado
isPublic (boolean) – Indica si el recurso de Software ha sido publicado (publicar recursos de Software todavía no ha sido implementado correctamente en EaSI; este valor debe ser «falso»)
isOperatingSystem (boolean) – Indica si el recurso de Software ha sido identificado como un instalador de sistemas operativos durante la importación de recursos (disponible a través de Demo UI pero aún no reincorporado en el proceso de importación EaaSI UI; debe ser «falso» pero ciertos objetos heredados pueden mostrar «verdad»)
Respuesta ejemplar:
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]
Retrieves a more detailed view of a single Software resource, as defined by provided UUID
- Encabezados de solicitud:
Accept – Debería definir el tipo de contenido de respuesta como application/json
Authorization – OAuth token to autenticar (necesario para recuperar recursos del software privado)
- Códigos de Status:
200 OK – Un solo objeto de software JSON
500 Internal Server Error – No hay objeto de software con el UUID especificado
- Objeto JSON de respuesta:
id (string) – ID único (UUID) para este recurso de software
objectId (string) – ID único (UUID) para este objeto de Software (debería ser igual a ``id`).
label (string) – Nombre legible por humanos para este recurso de software
licenseInformation (string) – Campo abierto para definir cualquier información relevante de licencia de software
allowedInstances (integer) – Define cuántas sesiones concurrentes de emulación pueden ejecutarse con este objeto de software montado (default es «-1», indicando * sesiones ilimitadas*)
nativeFMTs (array) – Una serie de PUIDs formato de archivo que han sido asignados manualmente con este objeto Software como formatos que pueden ser renderizados nativamente en entornos asociados con este recurso de Software (ver uvi)
importFMTs (array) – Una serie de PUIDs formato de archivo que han sido asignados manualmente con este objeto Software como formatos que pueden ser específicamente importados en entornos asociados con este recurso de Software (principalmente experimental, para investigar la migración automatizada)
exportFMTs (array) – Una serie de PUIDs formato de archivo que han sido asignados manualmente con este objeto Software como formatos que pueden ser específicamente exportados de entornos asociados con este recurso de Software (principalmente experimental, para investigar la migración automatizada)
archiveId (string) – Nombre para el archivo de almacenamiento donde se guarda el objeto Software; debe ser «cero conf» para todos los recursos del Software privado
isPublic (boolean) – Indica si el recurso de Software ha sido publicado (publicar recursos de Software todavía no ha sido implementado correctamente en EaSI; este valor debe ser «falso»)
isOperatingSystem (boolean) – Indica si el recurso de Software ha sido identificado como un instalador de sistemas operativos durante la importación de recursos (disponible a través de Demo UI pero aún no reincorporado en el proceso de importación EaaSI UI; debe ser «falso» pero ciertos objetos heredados pueden mostrar «verdad»)
Respuesta ejemplar:
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
}