REST - DNS

Listowanie domen

Zapytanie

GET /v2/dns

Zwraca listę istniejących domen. Lista zawiera tylko identyfikator i nazwę domeny - rekordy nie są zwracane, trzeba je pobrać osobno (patrz “Szczegóły domeny”).

Odpowiedź

{
  "success": true,
  "zones": [
    {
      "id": "$domain_id",
      "name": "$name"
    }, { ... }
  ]
}

Zwracane informacje

  • $domain_id (int) - ID domeny, używane w ścieżkach dalszych żądań (/v2/dns/$DOMAIN_ID)
  • $name (string) - nazwa domeny


Szczegóły domeny

Zapytanie

GET /v2/dns/$DOMAIN_ID

Zwraca domenę $DOMAIN_ID wraz ze wszystkimi jej rekordami.

Odpowiedź

{
  "success": true,
  "zone": {
    "id": "$zone_internal_id",
    "name": "$name",
    "records": [
      {
        "record_id": "$record_id",
        "record_name": "$record_name",
        "record_type": "$record_type",
        "record_prio": "$record_prio",
        "record_ttl": "$record_ttl",
        "record_value": "$record_value",
        //lub zamiast record_value
        "lbr_type": "$lbr_type",
        "lbr_ips":  "$lbr_ips",
        "lbr_port": "$lbr_port",
        "lbr_url": "$lbr_url"
      }, { ... }
    ]
  }
}

Zwracane informacje

  • $zone_internal_id (int) - wewnętrzny identyfikator strefy DNS, nie jest to ID domeny używane w ścieżkach żądań
  • $name (string) - nazwa domeny
  • $record_id (int) - ID rekordu domeny
  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT
  • $record_prio (int) - priorytet rekordu, null dla rekordów bez priorytetu (m.in. automatyczne rekordy NS)
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS
  • $lbr_type (string) - typ load balancera DNS spdns_rec (sprawdzanie portu), spdns_url (sprawdzanie URL), pickrandom (wybór losowego serwera), jeśli to pole jest podane wartość pola $record_value jest ignorowana
  • $lbr_ips (string) - numery IP dla weryfikacji stanu serwera dla load balancera DNS
  • $lbr_port (int) - numer portu dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_rec
  • $lbr_url (string) - URL dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_url

Dodatkowe uwagi

  • pola $lbr_* są zwracane tylko dla rekordów A i AAAA typu load balancera DNS
  • $DOMAIN_ID w ścieżce musi pochodzić z listy (GET /v2/dns) - id zwracane w obiekcie zone nie działa (patrz “Identyfikatory domen i rekordów”)


Dodanie domeny

Zapytanie

PUT /v2/dns

Dodaje nową domenę.

Zawartość zapytania

{
    "name": "$name",
    "ip_address": "$ip_address"
}

Opis parametrów

  • $name (string) - domena
  • $ip_address (string) - parametr opcjonalny, dodanie adresu IP od razu stworzy rekord A

Odpowiedź

{
  "success": true,
  "zone": {
    "id": "$zone_internal_id",
    "name": "$name",
    "records": [
      {
        "record_id": "$record_id",
        "record_name": "$record_name",
        "record_type": "$record_type",
        "record_prio": "$record_prio",
        "record_ttl": "$record_ttl",
        "record_value": "$record_value"
      }, { ... }
    ]
  }
}

Zwracane informacje

  • $zone_internal_id (int) - wewnętrzny identyfikator strefy DNS, nie jest to ID domeny używane w ścieżkach żądań
  • $name (string) - nazwa domeny
  • $record_id (int) - ID rekordu domeny
  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT
  • $record_prio (int) - priorytet rekordu, null dla rekordów bez priorytetu (m.in. automatyczne rekordy NS)
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS

Dodatkowe uwagi

  • nowa domena dostaje automatycznie dwa rekordy NS: ns1.beyond.pl i ns2.beyond.pl, oba z $record_ttl = 3600 i $record_prio = null
  • jeśli podano $ip_address, dodatkowo tworzony jest rekord A o nazwie równej nazwie domeny


Dodanie rekordu

Zapytanie

PUT /v2/dns/$DOMAIN_ID

Dodaje rekord do domeny $DOMAIN_ID.

Zawartość zapytania

{
    "record_name": "$record_name",
    "record_type": "$record_type",
    "record_priority": "$record_priority",
    "record_ttl": "$record_ttl",
    "record_value": "$record_value",
    //lub zamiast record_value
    "lbr_type": "$lbr_type",
    "lbr_ips":  "$lbr_ips",
    "lbr_port": "$lbr_port",
    "lbr_url": "$lbr_url"
}

Opis parametrów

  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT
  • $record_priority (int) - priorytet rekordu
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS
  • $lbr_type (string) - typ load balancera DNS spdns_rec (sprawdzanie portu), spdns_url (sprawdzanie URL), pickrandom (wybór losowego serwera), jeśli to pole jest podane wartość pola $record_value jest ignorowana
  • $lbr_ips (string) - numery IP dla weryfikacji stanu serwera dla load balancera DNS
  • $lbr_port (int) - numer portu dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_rec
  • $lbr_url (string) - URL dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_url

Pola $lbr_* są dostępne tylko dla $record_type A lub AAAA.

Odpowiedź

{
  "success": true,
  "zone": {
    "id": "$zone_internal_id",
    "name": "$name",
    "records": [
      {
        "record_id": "$record_id",
        "record_name": "$record_name",
        "record_type": "$record_type",
        "record_prio": "$record_prio",
        "record_ttl": "$record_ttl",
        "record_value": "$record_value",
        //lub zamiast record_value
        "lbr_type": "$lbr_type",
        "lbr_ips":  "$lbr_ips",
        "lbr_port": "$lbr_port",
        "lbr_url": "$lbr_url"
      }, { ... }
    ]
  }
}

Zwracane informacje

  • $zone_internal_id (int) - wewnętrzny identyfikator strefy DNS, nie jest to ID domeny używane w ścieżkach żądań
  • $name (string) - nazwa domeny
  • $record_id (int) - ID rekordu domeny
  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT.
  • $record_prio (int) - priorytet rekordu, null dla rekordów bez priorytetu; w odpowiedziach API nazywa się record_prio, choć w żądaniu parametr to record_priority
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS
  • $lbr_type (string) - typ load balancera DNS spdns_rec (sprawdzanie portu), spdns_url (sprawdzanie URL), pickrandom (wybór losowego serwera), jeśli to pole jest podane wartość pola $record_value jest ignorowana
  • $lbr_ips (string) - numery IP dla weryfikacji stanu serwera dla load balancera DNS
  • $lbr_port (int) - numer portu dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_rec
  • $lbr_url (string) - URL dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_url

Odpowiedź zawiera wszystkie rekordy domeny, także te utworzone wcześniej (m.in. automatyczne rekordy NS).

Dodatkowe uwagi

  • wartość $record_priority jest zwracana w odpowiedzi jako record_prio (dla rekordów bez priorytetu - null)
  • PUT /v2/dns/$DOMAIN_ID/record nie służy do edycji - API odrzuca takie żądanie kodem 400


Edycja rekordu

Zapytanie

POST /v2/dns/$DOMAIN_ID/record

Edycja rekordu $record_id podanego w zawartości żądania.

Zawartość zapytania

{
    "record_id": "$record_id",
    "record_name": "$record_name",
    "record_type": "$record_type",
    "record_priority": "$record_priority",
    "record_ttl": "$record_ttl",
    "record_value": "$record_value",
    //lub zamiast record_value
    "lbr_type": "$lbr_type",
    "lbr_ips":  "$lbr_ips",
    "lbr_port": "$lbr_port",
    "lbr_url": "$lbr_url"
}

Opis parametrów

  • $record_id (int) - ID edytowanego rekordu
  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT
  • $record_priority (int) - priorytet rekordu
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS
  • $lbr_type (string) - typ load balancera DNS spdns_rec (sprawdzanie portu), spdns_url (sprawdzanie URL), pickrandom (wybór losowego serwera), jeśli to pole jest podane wartość pola $record_value jest ignorowana
  • $lbr_ips (string) - numery IP dla weryfikacji stanu serwera dla load balancera DNS
  • $lbr_port (int) - numer portu dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_rec
  • $lbr_url (string) - URL dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_url

Dodatkowe uwagi

  • Pola $lbr_* są dostępne tylko dla $record_type A lub AAAA.

Odpowiedź

{
  "success": true,
  "zone": {
    "id": "$zone_internal_id",
    "name": "$name",
    "records": [
      {
        "record_id": "$record_id",
        "record_name": "$record_name",
        "record_type": "$record_type",
        "record_prio": "$record_prio",
        "record_ttl": "$record_ttl",
        "record_value": "$record_value",
        //lub zamiast record_value
        "lbr_type": "$lbr_type",
        "lbr_ips":  "$lbr_ips",
        "lbr_port": "$lbr_port",
        "lbr_url": "$lbr_url"
      }, { ... }
    ]
  }
}

Zwracane informacje

  • $zone_internal_id (int) - wewnętrzny identyfikator strefy DNS, nie jest to ID domeny używane w ścieżkach żądań
  • $name (string) - nazwa domeny
  • $record_id (int) - ID rekordu domeny
  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT.
  • $record_prio (int) - priorytet rekordu, null dla rekordów bez priorytetu
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS
  • $lbr_type (string) - typ load balancera DNS spdns_rec (sprawdzanie portu), spdns_url (sprawdzanie URL), pickrandom (wybór losowego serwera), jeśli to pole jest podane wartość pola $record_value jest ignorowana
  • $lbr_ips (string) - numery IP dla weryfikacji stanu serwera dla load balancera DNS
  • $lbr_port (int) - numer portu dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_rec
  • $lbr_url (string) - URL dla weryfikacji stanu serwera dla load balancera DNS, zwracane, jeśli lbr_type=spdns_url

Dodatkowe uwagi

  • ścieżka używa ID domeny ($DOMAIN_ID), a edytowany rekord wskazuje pole record_id w zawartości żądania
  • pole record_id w zawartości żądania jest wymagane - bez niego API zwraca 400


Usuwanie rekordu

Zapytanie

DELETE /v2/dns/$DOMAIN_ID/record

Usuwa rekord $record_id podany w zawartości żądania.

Zawartość zapytania

{
    "record_id": "$record_id"
}

Opis parametrów

  • $record_id (int) - ID usuwanego rekordu

Odpowiedź

{
  "success": true,
  "zone": {
    "id": "$zone_internal_id",
    "name": "$name",
    "records": [
      {
        "record_id": "$record_id",
        "record_name": "$record_name",
        "record_type": "$record_type",
        "record_prio": "$record_prio",
        "record_ttl": "$record_ttl",
        "record_value": "$record_value"
      }, { ... }
    ]
  }
}

Zwracane informacje

  • $zone_internal_id (int) - wewnętrzny identyfikator strefy DNS, nie jest to ID domeny używane w ścieżkach żądań
  • $name (string) - nazwa domeny
  • $record_id (int) - ID rekordu domeny
  • $record_name (string) - nazwa rekordu
  • $record_type (string) - typ rekordu A,AAAA,CAA,CNAME,MX,NS,PTR,SRV,TXT.
  • $record_prio (int) - priorytet rekordu, null dla rekordów bez priorytetu
  • $record_ttl (int) - czas przechowywania rekordu w pamięci podręcznej DNS
  • $record_value (string) - wartość rekordu DNS

Odpowiedź zawiera rekordy pozostałe po usunięciu.

Dodatkowe uwagi

  • ścieżka używa ID domeny ($DOMAIN_ID), a usuwany rekord wskazuje pole record_id w zawartości żądania
  • zawartość żądania z polem record_id jest wymagana


Usuwanie domeny

Zapytanie

DELETE /v2/dns/$DOMAIN_ID

Usuwa domenę $DOMAIN_ID wraz ze wszystkimi jej rekordami.

Odpowiedź

{  
  "success":true
}