Saltar al contenido
NimbusNexus

Imágenes de VM

Una imagen de VM es la plantilla de SO con la que se arranca el disco raíz de una VM nueva. NimbusNexus ofrece imágenes públicas de las principales distribuciones de Linux y de Windows Server; también puedes subir tus propias imágenes personalizadas, creadas con herramientas como Packer o haciendo un snapshot de una VM ya configurada.

Imágenes públicas

El catálogo público se actualiza cada mes con parches de seguridad. Los slugs se mantienen estables entre parches; descargar ubuntu-24.04 hoy y otra vez dentro de 6 meses te da 6 meses de parches aplicados sobre la misma base. Fija un slug con fecha (p. ej. ubuntu-24.04-20260301) si necesitas arranques reproducibles byte a byte.

Slugs publicados actualmente:

  • ubuntu-24.04, ubuntu-22.04, ubuntu-20.04
  • debian-12, debian-11
  • fedora-40, fedora-39
  • rocky-9, rocky-8
  • almalinux-9, almalinux-8
  • windows-2022, windows-2019

Todas las imágenes públicas incluyen nuestra configuración mínima de cloud-init: las claves SSH inyectadas a partir de las claves registradas en el proyecto (consulta Claves SSH), apt-get update o equivalente en el primer arranque y el servicio de metadatos fijado en 169.254.169.254.

Imágenes personalizadas

Se aceptan imágenes propias en archivos raw, qcow2 o vmdk de hasta 128 GB sin comprimir. Al subirla, la imagen se convierte a nuestro formato interno (~1–3 minutos por GB) y después pasa a ser una imagen arrancable normal para cualquier VM de la misma región.

Las imágenes personalizadas se facturan a $0.013/GB·mes (la tarifa de la clase Standard del almacenamiento de objetos) por el almacenamiento. No hay un tier aparte de "almacenamiento de imágenes".

Regiones

Las imágenes públicas están disponibles en todas las regiones activas. Las imágenes personalizadas son de alcance regional — subirlas a us-east-1 no hace que la imagen sea arrancable en eu-central-1 si no se copia. Usa POST /v1/vm-images/{id}/copy (no aparece en la referencia de abajo — próximamente) para replicarla.

Próximos pasos

  • Máquinas virtuales — provisiona una VM con una de estas imágenes.
  • Tamaños de VM — la configuración de cómputo en la que arranca la imagen.
  • Snapshots — captura una VM existente como snapshot y conviértelo después en una imagen personalizada.

Reference

GET/api/v1/image/

Images List

Lists images visible to the caller, applying the supplied filters and pagination.

Parameters

NameInTypeDescription
limitqueryinteger | null—
markerquerystring | null—
namequerystring | null—
ownerquerystring | null—
protectedqueryboolean | null—
statusquerystring | null—
tagquerystring | null—
visibilityquery"public" | "private" | "community" | "shared" | "all" | null—
os_hiddenqueryboolean | null—
member_statusquery"accepted" | "pending" | "rejected" | "all" | null—
size_maxquerystring | null—
size_minquerystring | null—
created_atquerystring | null—
updated_atquerystring | null—
sort_dirquerystring | null—
sort_keyquerystring | null—
sortquerystring | null—

Responses

  • 200Successful Response
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X GET "https://api.nimbusnexus.net/api/v1/image/" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/image/

Image Create

Creates a new image record and resolves its billing product for the calling project.

Request body

FieldTypeDescription
name*string—
descriptionstring | null—
disk_format*string—
container_format*string—
visibilitystring—
product_categorystringProduct category for billing
subscriptionobjectSubscription plan type

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/image/" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "disk_format": "example",
    "container_format": "example"
  }'
DELETE/api/v1/image/

Images Delete

admin_domain, admin_project are only for admin

Request body

FieldTypeDescription
admin_domainstring | null—
admin_projectstring | null—
projectstring | null—
ids*array of string—

Responses

  • 204Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X DELETE "https://api.nimbusnexus.net/api/v1/image/" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "example"
    ]
  }'
POST/api/v1/image/file

Image Upload

Uploads the binary contents of a previously created image from the supplied file.

Request body

JSON body required.

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/image/file" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/image/import

Image Import

Imports an image into the catalog by fetching its contents from a remote URL.

Request body

FieldTypeDescription
id*string—
url*string—

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/image/import" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example",
    "url": "https://example.com/webhooks"
  }'
PATCH/api/v1/image/{image_id}

Image Update

Updates the editable fields of an image owned by the caller's project.

Parameters

NameInTypeDescription
image_id*pathstring—

Request body

FieldTypeDescription
namestring | null—
descriptionstring | null—
metadataobject | null—

Responses

  • 200Successful Response
  • 422Validation Error

Example

curl -X PATCH "https://api.nimbusnexus.net/api/v1/image/<image_id>" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Need to make a real call? Try these endpoints in the live Swagger UI →