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

  • installedSoftwareIds (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:
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:
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
  }