Aller au contenu
NimbusNexus

Images de VM

Une image de VM est le modèle d’OS utilisé pour démarrer le disque racine d’une nouvelle VM. NimbusNexus fournit des images publiques pour les principales distributions Linux et pour Windows Server ; vous pouvez aussi téléverser vos propres images personnalisées, construites avec des outils comme Packer ou en prenant un snapshot d’une VM configurée.

Images publiques

Le catalogue public est mis à jour chaque mois avec les correctifs de sécurité. Les slugs restent stables d’un correctif à l’autre ; récupérer ubuntu-24.04 aujourd’hui puis dans 6 mois vous donne 6 mois de correctifs appliqués à la même base. Épinglez un slug daté (par exemple ubuntu-24.04-20260301) si vous avez besoin de démarrages reproductibles à l’octet près.

Slugs publiés actuellement :

  • 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

Chaque image publique inclut notre configuration cloud-init minimale : les clés SSH injectées à partir des clés enregistrées du projet (voir Clés SSH), apt-get update ou équivalent au premier démarrage, et le service de métadonnées fixé sur 169.254.169.254.

Images personnalisées

Les images que vous apportez sont acceptées sous forme de fichiers raw, qcow2 ou vmdk d’au plus 128 GB non compressés. L’image est convertie dans notre format interne au téléversement (~1–3 minutes par GB), puis devient une image amorçable ordinaire pour n’importe quelle VM de la même région.

Les images personnalisées sont facturées $0.013/GB-mois (tarif du stockage objet Standard) pour le stockage. Il n’y a pas de tier distinct de « stockage d’images ».

Régions

Les images publiques sont disponibles dans chaque région active. Les images personnalisées sont propres à une région — téléverser une image dans us-east-1 ne la rend pas amorçable dans eu-central-1 sans copie. Utilisez POST /v1/vm-images/{id}/copy (absent de la référence ci-dessous — à venir) pour la répliquer.

Étapes suivantes

  • Machines virtuelles — provisionner une VM avec l’une de ces images.
  • Tailles de VM — la configuration de calcul dans laquelle l’image démarre.
  • Snapshots — capturer une VM existante sous forme de snapshot, puis le convertir en image personnalisée.

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 →