Documentation API Gestion des instances

Gestion des instances

12 minutes Intermédiaire

Introduction

L’API de gestion des instances vous permet de créer, modifier, supprimer et administrer vos instances cloud programmatiquement. Toutes les opérations disponibles dans l’espace client sont accessibles via l’API.

Lister les instances

Requête

# Lister toutes les instances
curl -X GET "https://api.m2s.cloud/v1/instances" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Avec pagination
curl -X GET "https://api.m2s.cloud/v1/instances?page=1&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Filtrer par statut
curl -X GET "https://api.m2s.cloud/v1/instances?status=running" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Filtrer par région
curl -X GET "https://api.m2s.cloud/v1/instances?region=fr-par-1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse

{
  "data": [
    {
      "id": "i-abc123",
      "name": "web-prod-01",
      "status": "running",
      "plan": "business",
      "region": "fr-par-1",
      "ip_address": "51.15.0.100",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-20T14:22:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 5,
    "total_pages": 1
  }
}

Créer une instance

Requête

# Création simple
curl -X POST "https://api.m2s.cloud/v1/instances" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "web-prod-01",
    "plan": "business",
    "region": "fr-par-1",
    "image": "ubuntu-22.04"
  }'

# Création avancée avec SSH key et networking
curl -X POST "https://api.m2s.cloud/v1/instances" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "db-prod-01",
    "plan": "performance",
    "region": "fr-par-1",
    "image": "ubuntu-22.04",
    "ssh_keys": ["ssh-rsa AAAA..."],
    "backup_enabled": true,
    "monitoring_enabled": true,
    "private_network": "pn-abc123",
    "tags": ["production", "database"]
  }'

Réponse

{
  "data": {
    "id": "i-xyz789",
    "name": "db-prod-01",
    "status": "provisioning",
    "plan": "performance",
    "region": "fr-par-1",
    "image": "ubuntu-22.04",
    "created_at": "2024-01-20T15:00:00Z"
  },
  "message": "Instance en cours de création. Comptez 2-3 minutes."
}

Plans disponibles

PlanCPURAMPrix/mois
starter1 vCPU2 Go5 €
business2 vCPU4 Go15 €
performance4 vCPU8 Go30 €
enterprise8 vCPU16 Go60 €

Obtenir les détails d’une instance

Requête

# Détails d'une instance
curl -X GET "https://api.m2s.cloud/v1/instances/i-abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Inclure les métriques
curl -X GET "https://api.m2s.cloud/v1/instances/i-abc123?include=metrics" \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse

{
  "data": {
    "id": "i-abc123",
    "name": "web-prod-01",
    "status": "running",
    "plan": "business",
    "region": "fr-par-1",
    "ip_address": "51.15.0.100",
    "ipv6_address": "2001:bc8:1234::100",
    "disk_size": 50,
    "memory": 4096,
    "vcpu": 2,
    "image": "ubuntu-22.04",
    "backup_enabled": true,
    "monitoring_enabled": true,
    "tags": ["production", "web"],
    "created_at": "2024-01-15T10:30:00Z",
    "metrics": {
      "cpu_usage": 45.2,
      "memory_usage": 62.8,
      "disk_usage": 38.5,
      "network_in": 1024000,
      "network_out": 2048000
    }
  }
}

Modifier une instance

Requêtes

# Changer le plan (resize)
curl -X PATCH "https://api.m2s.cloud/v1/instances/i-abc123" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"plan": "performance"}'

# Mettre à jour les tags
curl -X PATCH "https://api.m2s.cloud/v1/instances/i-abc123" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tags": ["production", "web", "frontend"]}'

# Activer les backups
curl -X PATCH "https://api.m2s.cloud/v1/instances/i-abc123" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"backup_enabled": true}'

Note

Le changement de plan (resize) nécessite un redémarrage de l’instance. L’API redémarrera automatiquement l’instance sauf si vous ajoutez "reboot": false.

Opérations sur les instances

Actions

# Démarrer une instance
curl -X POST "https://api.m2s.cloud/v1/instances/i-abc123/start" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Arrêter une instance (soft shutdown)
curl -X POST "https://api.m2s.cloud/v1/instances/i-abc123/stop" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Arrêt forcé (power off)
curl -X POST "https://api.m2s.cloud/v1/instances/i-abc123/poweroff" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Redémarrer
curl -X POST "https://api.m2s.cloud/v1/instances/i-abc123/reboot" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Rebuild (réinstaller)
curl -X POST "https://api.m2s.cloud/v1/instances/i-abc123/rebuild" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "ubuntu-22.04"}'

# Supprimer une instance
curl -X DELETE "https://api.m2s.cloud/v1/instances/i-abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
Attention

La suppression d’instance est irréversible. Assurez-vous d’avoir sauvegardé vos données. Les snapshots associés peuvent être conservés séparément.

Attendre la fin d’une opération

Script d’attente (Bash)

#!/bin/bash

API_KEY="YOUR_API_KEY"
INSTANCE_ID="i-abc123"
TARGET_STATUS="running"

echo "Attente du statut '$TARGET_STATUS'..."

while true; do
  STATUS=$(curl -s "https://api.m2s.cloud/v1/instances/$INSTANCE_ID" \
    -H "Authorization: Bearer $API_KEY" | jq -r '.data.status')

  echo "$(date +%T) - Statut: $STATUS"

  if [ "$STATUS" = "$TARGET_STATUS" ]; then
    echo "Instance $TARGET_STATUS !"
    break
  fi

  sleep 5
done