İki yetkili ad sunucusuna (ns1/ns2.gyrodns.net) doğrudan sorar. İkisi de value değerini yayınlıyorsa ready true. Ekledikten sonra birkaç saniyede bir sorun (genelde < 1 dk).
Parametreler
Alan
in
Tür
Açıklama
namezorunlu
query
string
_acme-challenge.<domain>
value
query
string
Challenge value (key authorization digest)
Yanıtlar
200
Status — data: AcmeChallenge
401
Missing, invalid or revoked key
403
zone_not_allowed / action_not_allowed
404
Not found — also returned for objects owned by someone else
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
value değerini name adındaki TXT kümesine ekler (TTL 60); diğer değerler kalır, böylece bir sertifikanın kök ve joker adları birlikte doğrulanır (ad başına en çok 10 değer). Hizmet ve zone addan bulunur (adı kapsayan en uzun Gyro DNS zone'unuz; hosting/cPanel zone'ları desteklenmez). Tekrarlanabilir.
İki yetkili ad sunucusuna (ns1/ns2.gyrodns.net) doğrudan sorar. İkisi de value değerini yayınlıyorsa ready true. Ekledikten sonra birkaç saniyede bir sorun (genelde < 1 dk).
Parametreler
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Gyro DNS service id
namezorunlu
query
string
_acme-challenge.<domain>
value
query
string
Challenge value (key authorization digest)
Yanıtlar
200
Status — data: AcmeChallenge
401
Missing, invalid or revoked key
403
zone_not_allowed / action_not_allowed
404
Not found — also returned for objects owned by someone else
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
value değerini name adındaki TXT kümesine ekler (TTL 60); diğer değerler kalır, böylece bir sertifikanın kök ve joker adları birlikte doğrulanır (ad başına en çok 10 değer). Hizmet ve zone addan bulunur (adı kapsayan en uzun Gyro DNS zone'unuz; hosting/cPanel zone'ları desteklenmez). Tekrarlanabilir.
# kaynak gyro_dns_acme_key: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_acme_key
# ACME key for Let's Encrypt DNS-01 (wildcard certificates). It can only add/remove _acme-challenge TXT records.
resource "gyro_dns_acme_key" "k8s" {
service_id = 12345 # Gyro DNS service
name = "k8s-prod"
zones = ["example.com"]
}
# e.g. hand it to cert-manager
resource "kubernetes_secret" "gyro_acme" {
metadata {
name = "gyro-acme"
namespace = "cert-manager"
}
data = { token = gyro_dns_acme_key.k8s.token }
}
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
Sertifika otomasyonu için yalnız _acme-challenge TXT kaydı ekleyip silebilen anahtar (kapsam dns_acme); isteğe bağlı yalnız zones içinde ve yalnız ips adreslerinden. Zone okuyamaz, başka kayıt değiştiremez, başka uca erişemez. Anahtar bir kez döner. Hizmet başına en çok 10.
Parametreler
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Gyro DNS service id
İstek gövdesi
Alan
Tür
Açıklama
name
string
Label (e.g. web-01)
zones
array<string>
Allowed zones (empty = all zones of the service)
ips
array<string>
Allowed client IPs (empty = any)
Yanıtlar
201
Created (token shown once) — data: AcmeKey
401
Missing, invalid or revoked key
403
subkey_forbidden
404
Not found — also returned for objects owned by someone else
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
gyro dns acme-key create 12345 --help # tüm seçenekler
# kaynak gyro_dns_acme_key: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_acme_key
# ACME key for Let's Encrypt DNS-01 (wildcard certificates). It can only add/remove _acme-challenge TXT records.
resource "gyro_dns_acme_key" "k8s" {
service_id = 12345 # Gyro DNS service
name = "k8s-prod"
zones = ["example.com"]
}
# e.g. hand it to cert-manager
resource "kubernetes_secret" "gyro_acme" {
metadata {
name = "gyro-acme"
namespace = "cert-manager"
}
data = { token = gyro_dns_acme_key.k8s.token }
}
# kaynak gyro_dns_acme_key: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_acme_key
# ACME key for Let's Encrypt DNS-01 (wildcard certificates). It can only add/remove _acme-challenge TXT records.
resource "gyro_dns_acme_key" "k8s" {
service_id = 12345 # Gyro DNS service
name = "k8s-prod"
zones = ["example.com"]
}
# e.g. hand it to cert-manager
resource "kubernetes_secret" "gyro_acme" {
metadata {
name = "gyro-acme"
namespace = "cert-manager"
}
data = { token = gyro_dns_acme_key.k8s.token }
}
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/acme-keys/1", {
method: "DELETE",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
Bu DNS hizmetinin zone'ları (items, durum active|pending ve TXT doğrulama değeri), cPanel hosting'inizden kopyalanan salt okunur zone'lar (cpanel), paket sınırları ve ad sunucularımız.
Parametreler
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Service id
Yanıtlar
200
Tool data / result — data: object
404
Not found — also returned for objects owned by someone else
409
State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
Alan adını talep eder. Sahiplik doğrulanınca ns1/ns2.gyrodns.net'te yayınlanır: ad sunucularımıza devir (zaten devredilmişse hemen) ya da mevcut DNS'inizde _gyrodns-dogrulama.<zone> = txt_value TXT kaydı. İsteğe bağlı bind (zone dosyası) etkinleşince içe aktarılır (SOA ve kök NS yok sayılır).
Parametreler
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Service id
İstek gövdesi
Alan
Tür
Açıklama
namezorunlu
string
Zone name (IDN allowed)
bind
string
Optional BIND zone file (max 2 MB)
confirm
boolean
Yanıtlar
202
Tool data / result — data: object
404
Not found — also returned for objects owned by someone else
409
State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
gyro dns zone create 12345 --help # tüm seçenekler
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
gyro dns zone delete 12345 --help # tüm seçenekler
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
gyro dns zone verify 12345 --help # tüm seçenekler
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/verify", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
BIND zone dosyası içe aktarKapsam: services_writetyped_post_dns__id__zones__zone__importBu işlemin OpenAPI parçası
merge dosyadaki kayıt kümelerini değiştirir, diğerlerini korur; replace dosyada olmayanları da siler. SOA ve kök NS yok sayılır; desteklenmeyen tipler skipped içinde. "confirm": true gerekir.
Parametreler
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Service id
zonezorunlu
path
string
Zone name
İstek gövdesi
Alan
Tür
Açıklama
bindzorunlu
string
mode
string (merge, replace)
confirm
boolean
Yanıtlar
202
Tool data / result — data: object
404
Not found — also returned for objects owned by someone else
409
State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
gyro dns zone import 12345 --help # tüm seçenekler
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/export", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/export", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
# kaynak gyro_dns_record: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_record
resource "gyro_dns_record" "www" {
service_id = gyro_dns_zone.example.service_id
zone = gyro_dns_zone.example.name
name = "www"
type = "A"
ttl = 300
records = [gyro_server.web.ipv4]
}
resource "gyro_dns_record" "mx" {
service_id = gyro_dns_zone.example.service_id
zone = gyro_dns_zone.example.name
name = "@"
type = "MX"
records = ["10 mx1.example.com.", "20 mx2.example.com."]
}
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
# kaynak gyro_dns_record: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_record
resource "gyro_dns_record" "www" {
service_id = gyro_dns_zone.example.service_id
zone = gyro_dns_zone.example.name
name = "www"
type = "A"
ttl = 300
records = [gyro_server.web.ipv4]
}
resource "gyro_dns_record" "mx" {
service_id = gyro_dns_zone.example.service_id
zone = gyro_dns_zone.example.name
name = "@"
type = "MX"
records = ["10 mx1.example.com.", "20 mx2.example.com."]
}
gyro dns rrset delete 12345 --help # tüm seçenekler
# kaynak gyro_dns_record: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_record
resource "gyro_dns_record" "www" {
service_id = gyro_dns_zone.example.service_id
zone = gyro_dns_zone.example.name
name = "www"
type = "A"
ttl = 300
records = [gyro_server.web.ipv4]
}
resource "gyro_dns_record" "mx" {
service_id = gyro_dns_zone.example.service_id
zone = gyro_dns_zone.example.name
name = "@"
type = "MX"
records = ["10 mx1.example.com.", "20 mx2.example.com."]
}
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/records", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
gyro dns dnssec enable 12345 --help # tüm seçenekler
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
gyro dns dnssec disable 12345 --help # tüm seçenekler
# kaynak gyro_dns_zone: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/dns_zone
resource "gyro_dns_zone" "example" {
service_id = 789 # Gyro DNS service
name = "example.com"
dnssec = true
}
# Point the domain to the name servers (or create the TXT record) to activate the zone
output "nameservers" { value = gyro_dns_zone.example.nameservers }
output "verify_txt" { value = "${gyro_dns_zone.example.verification_txt_name} = ${gyro_dns_zone.example.verification_txt_value}" }
output "ds" { value = gyro_dns_zone.example.ds_records }
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/12345/zones/1/dnssec", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
Sağlık kontrollü kayıt oluşturKapsam: services_writetyped_post_dns__id__health_checksBu işlemin OpenAPI parçası
name kaydını primary'ye yönlendirir; kontrol çoğunluk lokasyondan düşerse backup'a geçer, 3 başarılı turdan sonra geri döner. Bir sağlık kontrolü ek hizmet birimi kullanır.
Parametreler
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Service id
İstek gövdesi
Alan
Tür
Açıklama
zonezorunlu
string
namezorunlu
string
typezorunlu
string (A, AAAA)
primaryzorunlu
string
backupzorunlu
string
checkzorunlu
string (http, https, tcp, ping)
port
integer
path
string
ttl
integer
30-300 s
confirm
boolean
Yanıtlar
202
Tool data / result — data: object
404
Not found — also returned for objects owned by someone else
409
State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)