class

ScalewayApi::Endpoints::Domain::Records

Inherits Reference < Object

Endpoints /domain/v2beta1/dns-zones/{zone}/records.

Scaleway expose une API DNS en deux temps :

  • GET liste les records d'une zone
  • PATCH applique un changeset (add/set/delete) en une seule requête, atomique.

Pour garder l'usage simple côté appelant (comme OvhApi::Endpoints::Domains), on expose les opérations courantes en méthodes dédiées : list, ensure, set, delete. Chacune construit le changeset approprié et envoie un PATCH en interne.

Constructors

Instance methods

delete(zone : String, type : String, name : String) : Nil

Supprime tous les records avec le (name, type) fourni.

Source
ensure(zone : String, type : String, name : String, value : String, ttl : Int32 = 3600) : Array(Record)

Idempotent : s'assure qu'il existe exactement un record (name, type) qui pointe vers value. Crée / met à jour / laisse tel quel selon l'état actuel. Retourne les records après opération (la liste résultante).

Pattern identique à OvhApi::Endpoints::Domains#ensure_record pour que beryl puisse traiter les deux providers pareillement.

Source
list(zone : String, type : String | Nil = nil, name : String | Nil = nil) : Array(Record)

Liste les records d'une zone, optionnellement filtrés par type (A, AAAA, CNAME, MX…) et/ou par nom court.

GET /domain/v2beta1/dns-zones/{zone}/records.

name est le nom court (loulou pour loulou.aloli.net), ou "" pour la racine de la zone.

Source
set(zone : String, type : String, name : String, values : Array(String), ttl : Int32 = 3600) : Nil

Applique un « set » sur un couple (name, type) : tous les records existants avec ce name+type sont remplacés par les data fournis (un par ligne de values).

PATCH /domain/v2beta1/dns-zones/{zone}/records avec {changes: [{set: {id_fields: {name, type}, records: [{data, ttl}]}}]}.

Cas d'usage typique pour un CNAME de serveur : set(zone: "aloli.net", type: "CNAME", name: "loulou", values: ["ns3156789.ip-51-83-6.eu."], ttl: 3600).

Source