class

ScalewayApi::Client

Inherits Reference < Object

Client Scaleway REST API v1.

Authentification beaucoup plus simple que l'API OVH : un seul en-tête X-Auth-Token porté par chaque requête. Pas de signature, pas de synchronisation d'horloge, pas de consumer key.

La secret_key est celle d'une clé API IAM Scaleway (générée sur https://console.scaleway.com/iam/api-keys). default_project_id est nécessaire pour créer des ressources (clés SSH, serveurs) : Scaleway exige la présence du projet dans le corps de la requête.

client = ScalewayApi::Client.new(
  secret_key: ENV["SCW_SECRET_KEY"],
  default_project_id: ENV["SCW_DEFAULT_PROJECT_ID"],
  default_zone: "fr-par-2",
)

Constructors

new(secret_key : String, default_project_id : String | Nil = nil, default_zone : String = DEFAULT_ZONE, base_url : String = BASE_URL, transport : HttpTransport = DefaultHttpTransport.new)
Source

Instance methods

baremetal
Source
base_url
Source
call(method : String, path : String, query : Hash(String, String) | Nil = nil, body = nil) : JSON::Any | Nil

Effectue un appel API.

  • method : "GET", "POST", "PUT", "PATCH", "DELETE".
  • path : chemin relatif à base_url (ex. "/iam/v1alpha1/ssh-keys" ou "/baremetal/v1/zones/fr-par-2/servers").
  • query : table de paramètres encodée dans l'URL.
  • body : objet JSON-sérialisable (ou nil).

Retourne le corps parsé en JSON::Any (ou nil si corps vide).

Source
default_project_id
Source
default_zone
Source
domain
Source
projects
Source
resolve_project_id(project_id : String | Nil) : String

Résout le project_id à utiliser : argument explicite en priorité, sinon default_project_id du client. Lève si aucun n'est défini et que l'endpoint en exige un.

Source
resolve_zone(zone : String | Nil) : String

Résout la zone à utiliser : argument explicite en priorité, sinon default_zone du client.

Source
secret_key
Source
ssh_keys
Source
transport

Injection du transport HTTP (par défaut DefaultHttpTransport). En test, passer un double qui renvoie {status, body} prédéfini.

Source
transport=(transport : HttpTransport)

Injection du transport HTTP (par défaut DefaultHttpTransport). En test, passer un double qui renvoie {status, body} prédéfini.

Source