Commande par API

Online by Scaleway permet de commander facilement des serveurs dédiés Dedibox depuis l'API.

Pré-requis:
  • Vous avez un compte et vous êtes connectés à console.online.net
  • Vous devez avoir déjà commandé
  • Vous disposez d'un moyen de paiement valide (SEPA, CB ou Paypal)
  • Vous connaissez votre token API.
  • You avez installé curl sur votre ordinateur.

Connaitre l'ID du produit que vous commandez

C'est la première question que l'on se pose : Quel serveur vais-je prendre ?

Vous disposez d'un endpoint /api/v1/dedibox/plans qui va vous permettre de connaitre l'ID du produit que vous voulez commander.

Cet endpoint retourne également d'autres informations importantes tel que le prix, les spécifications techniques ainsi que le stock par datacenters.

$ # $ # Remplacez $OAUTH_ACCESS_TOKEN avec votre token personnel
$ curl -s -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" https://api.online.net/api/v1/dedibox/plans
{
    "Start Range": {
        "Start-2-XS-SATA": {
            "id": 4445,
            "price": "7.99",
            "specs": {
                "cpu": "Intel® C2350 (Avoton)",
                "ram": "4 GB",
                "disks": "1 x 500 GB",
                "bp": "1Gbit/sec",
                "policer_rate": "1 Gbit/sec",
                "customizable": false
            },
            "stocks": [
                {
                    "datacenter": {
                        "id": 2,
                        "name": "DC2",
                        "address": "29 rue Edith Cavell",
                        "zip": "94400",
                        "city": "Vitry",
                        "country": "FR"
                    },
                    "stock": 12
            ],
            "slug": "Start-2-XS-SATA"
        },
    ...
}
$ curl -s -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" https://api.online.net/api/v1/dedibox/plans
{
    "Start Range": {
        "Start-2-XS-SATA": {
            "id": 4445,
            "price": "7.99",
            "specs": {
                "cpu": "Intel® C2350 (Avoton)",
                "ram": "4 GB",
                "disks": "1 x 500 GB",
                "bp": "1Gbit/sec",
                "policer_rate": "1 Gbit/sec",
                "customizable": false
            },
            "stocks": [
                {
                    "datacenter": {
                        "id": 2,
                        "name": "DC2",
                        "address": "29 rue Edith Cavell",
                        "zip": "94400",
                        "city": "Vitry",
                        "country": "FR"
                    },
                    "stock": 12
            ],
            "slug": "Start-2-XS-SATA"
        },
    ...
}

Ainsi, si je veux commander la Start-2-XS-SATA de la gamme Start, je dois retenir l'id 4445.

Bien évidemment, si le stock d'un datacenter est égal à 0, vous ne pourrez pas commander ce produit dans ce datacenter.

==== Connaitre les options et addons disponibles ====

Cette étape est optionnelle, vous pouvez la passer si vous ne souhaitez pas d'options ou d'addons.

Dans le cas contraire, vous pouvez requêter l'endpoint /api/v1/dedibox/options/<id produit>?support=<niveau de support> en prenant soin de remplacer <id produit> par l'id de la Start-2-XS-SATA (c'est à dire 4445) et <niveau de support> par le niveau de support souhaité (basic ou business).

$ curl -s -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" https://api.online.net/api/v1/dedibox/options/4445?support=basic
{
    "ftp": [
        {
            "id": 890,
            "description": "Backup 100GB",
            "price": "0",
            ...
        },
        ...
    ],
    "storage": [...],
    "antidos": [...],
    "network": [...],
    "rsync": [...],
    "addons": [
        {
            "product": {
                "id": 912,
                "description": "USB drive 500 GB",
                "price": "35",
                ...
            },
            "category": "usb",
        },
        ...
    ],
    "category_quotas": {
        "hdd": 5,
        "usb": 1
    }
}

Le tableau ci dessous explique ce qui est retourné par l'API.

CléDescription
ftpOptions de backup par FTP.
storageOptions des stockage (SAN).
antidosOptions de protections antidos.
networkOptions réseau (rpn).
rsyncOptions de backup par rpn rsync.
addonsListe les addons et leur catégorie associée (usb externe ou hdd externe).
category_quotasDéfini le quota des addons par catégorie (usb/hdd).Dans l'exemple ci dessus, pour les Start-2-XS-SATA il serait possible de commander au maximum 5 hdd, et 1 usb.

Exemple de commande simple

De base, si vous ne prenez pas d'options vous devez renseigner 3 paramètres :

product: ID du produit serveur datacenter: ID du datacenter désiré ou “any” pour laisser l'API choisir automatiquement support: basic pour le support de base, business pour le support avancé

$ curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" -d '{"product": 4445, "datacenter": "any", "support": "basic"}' https://api.online.net/api/v1/dedibox/
{
    "id": 4946383
}

L'API retourne un ID de commande que vous pouvez utiliser afin de savoir si et quand votre serveur à été provisionné.

$ curl -s  -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" https://api.online.net/api/v1/dedibox/status/4946383
{
    "delivered": false
}
Si l'option network n'est pas renseignée et qu'il est possible de bénéficier uniquement du RPN-E, vous l'aurez automatiquement inclus dans votre commande sans frais. Pour tous les autres cas, vous ne bénéficierez d'aucun autre service par défaut.

Commander avec des options et addons

Voici un exemple complet de commande de serveur avec options et addons (USB et HDD).

$ curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" -d '{
    "product": 4369,
    "datacenter": "any",
    "support": "business",
    "ftp": 890,
    "storage": 3625,
    "antidos": 776,
    "network": 3485,
    "rsync": 765,
    "addons": {
        "912": { "quantity": 1 },
        "1031": { "quantity": 2 }
    }
}' https://api.online.net/api/v1/dedibox/
{
    "id": 3492932
}

Le tableau ci-dessous explique les différents produits commandés.

CléDescription
productPro-3-L-SSD
datacenterN'importe quel datacenter disponible
supportNiveau de support business
ftpBackup FTP de 100 Go
storageStockage SAN de 1 To via RPN
antidosProtection antidos curative
networkRPN G
rsyncRPN Rsync 500
addons912 = USB de 500 Go / 1031 = HDD de 8 Tb

Comment résilier mon serveur

Pour résilier un serveur, envoyez une requête `DELETE` sur l'endpoint `/api/v1/server/<id serveur>` en remplaçant bien sûr `<id serveur>` par l'ID en question.

$ curl -s -X DELETE -H "Authorization: Bearer $OAUTH_ACCESS_TOKEN" https://api.online.net/api/v1/server/123

Pour récupérer l'ID de votre serveur vous avez plusieurs options :

  • Récupérer le directement depuis la page de liste des serveurs (colonne Num)
  • Envoyer une requête GET sur l'endpoint /api/v1/server

Liens utiles

Swagger (voir la section /dedibox): https://console.online.net/en/api/

Récupérer votre token privé: https://console.online.net/en/api/access