DNS
Borrar un RRset
Sección titulada «Borrar un RRset»DELETE /v1/dns/zones/{zone}/records/{name}/{type} · scope dns:write · destructiva — no tiene vuelta atras · idempotente
Borra todos los valores de ese nombre y tipo.
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com/records/www/A \ -X DELETE \ -H "Authorization: Bearer $TRUO_TOKEN"truo dns record delete ejemplo.com www Aawait truo.dns.records.delete("ejemplo.com", "www", "A");truo_dns({ "action": "record_delete", "zone": "ejemplo.com", "name": "www", "type": "A"})operationId: dns.records.delete
Obtener un RRset
Sección titulada «Obtener un RRset»GET /v1/dns/zones/{zone}/records/{name}/{type} · scope dns:read
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com/records/www/A \ -H "Authorization: Bearer $TRUO_TOKEN"truo dns record get ejemplo.com www Aawait truo.dns.records.get("ejemplo.com", "www", "A");truo_dns({ "action": "record_get", "zone": "ejemplo.com", "name": "www", "type": "A"})operationId: dns.records.get
Listar los registros de una zona
Sección titulada «Listar los registros de una zona»GET /v1/dns/zones/{zone}/records · scope dns:read
Agrupados en RRsets: un A con dos IPs es un registro con dos valores. La respuesta trae un ETag; pasalo como If-Match al escribir y ningún cambio concurrente se pierde.
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com/records \ -H "Authorization: Bearer $TRUO_TOKEN"truo dns record list ejemplo.comawait truo.dns.records.list("ejemplo.com");truo_dns({ "action": "record_list", "zone": "ejemplo.com"})operationId: dns.records.list
Aplicar varios cambios a la vez
Sección titulada «Aplicar varios cambios a la vez»PATCH /v1/dns/zones/{zone}/records · scope dns:write · destructiva — no tiene vuelta atras · idempotente
Cada elemento reemplaza su RRset; values: [] lo borra. Es la forma de aplicar un cambio coherente —mover un sitio y su correo juntos— sin que quede a medias entre dos llamadas. No es atómico en el backend: si un cambio falla, los anteriores ya se aplicaron y la respuesta dice cuál cortó.
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com/records \ -X PATCH \ -H "Authorization: Bearer $TRUO_TOKEN" \ -H "Content-Type: application/json" \ -d '{"records":[]}'truo dns record apply ejemplo.comawait truo.dns.records.patch("ejemplo.com", {"records":[]});truo_dns({ "action": "record_apply", "zone": "ejemplo.com"})operationId: dns.records.patch
Crear o reemplazar un RRset
Sección titulada «Crear o reemplazar un RRset»PUT /v1/dns/zones/{zone}/records/{name}/{type} · scope dns:write · reversible · idempotente
Reemplaza el RRset entero: los valores que no vengan en values se borran. Es la semántica del DNS y la del backend — no existe “agregar una IP” sin reescribir el conjunto. Leé el RRset, agregá el valor a la lista y mandá la lista completa con el ETag en If-Match.
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com/records/www/A \ -X PUT \ -H "Authorization: Bearer $TRUO_TOKEN" \ -H "Content-Type: application/json" \ -d '{"values":[]}'truo dns record set ejemplo.com www Aawait truo.dns.records.put("ejemplo.com", "www", "A", {"values":[]});truo_dns({ "action": "record_set", "zone": "ejemplo.com", "name": "www", "type": "A"})operationId: dns.records.put
Exportar la zona en formato BIND
Sección titulada «Exportar la zona en formato BIND»GET /v1/dns/zones/{zone}/export · scope dns:read
El archivo de zona tal como lo emite el backend. Útil para respaldo o migración.
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com/export \ -H "Authorization: Bearer $TRUO_TOKEN"truo dns zone export ejemplo.comawait truo.dns.zones.export("ejemplo.com");truo_dns({ "action": "zone_export", "zone": "ejemplo.com"})operationId: dns.zones.export
Obtener una zona
Sección titulada «Obtener una zona»GET /v1/dns/zones/{zone} · scope dns:read
curl https://api.truo.cloud/v1/dns/zones/ejemplo.com \ -H "Authorization: Bearer $TRUO_TOKEN"truo dns zone get ejemplo.comawait truo.dns.zones.get("ejemplo.com");truo_dns({ "action": "zone_get", "zone": "ejemplo.com"})operationId: dns.zones.get
Listar las zonas DNS de la cuenta
Sección titulada «Listar las zonas DNS de la cuenta»GET /v1/dns/zones · scope dns:read
Sale de la base, sin consultar el backend de DNS: record_count y serial vienen en null. Traerlos costaría una llamada por zona y hay cuentas con decenas.
curl https://api.truo.cloud/v1/dns/zones \ -H "Authorization: Bearer $TRUO_TOKEN"truo dns zone listawait truo.dns.zones.list();truo_dns({ "action": "zone_list"})operationId: dns.zones.list