OpenAPI English gyrohosting.com ↗
Markdown olarak görClaude'da aç ↗

Sunucular

Sahip olduğunuz bulut sunucular. Oluşturma, hesap bakiyesinden ödenen bir sipariştir.

#GET/cloud/servers

Bulut sunucuları listeleKapsam: cloud_readlistServersBu işlemin OpenAPI parçası

Parametreler

AlaninTürAçıklama
statusquerystring (active, waiting, inprocess, suspended, cancelled)
pagequeryinteger
limitqueryinteger

Yanıtlar

200Servers (without live state) — data: array<Server>
401Missing, invalid or revoked key

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro server list
# kaynak gyro_server: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server
# Pick a product by plan + region (see gyro_products / gyro_locations) ...
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "eu-de-1"
  image         = "debian-12"
  hostname      = "web-1.example.com"
  ssh_key_ids   = [tonumber(gyro_ssh_key.laptop.id)]
  power_state   = "running"
  confirm_order = true # creating a server is a paid order from your account balance
}

# ... or by product id from the catalog, e.g. the first product in stock in Helsinki.
data "gyro_products" "helsinki" {
  region         = "eu-fi-1"
  available_only = true
}

resource "gyro_server" "db" {
  product_id    = data.gyro_products.helsinki.products[0].id
  image         = "ubuntu-24.04"
  confirm_order = true
}

output "web_ipv4" {
  value = gyro_server.web.ipv4
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers", {
  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}`);

#POST/cloud/servers

Bulut sunucu oluştur (sipariş)Kapsam: cloud_ordercreateServerBu işlemin OpenAPI parçası

Sipariş oluşturur ve hesap bakiyenizden öder (kayıtlı karttan asla çekmez). Güvenlik kuralları:

  • önce "dry_run": true ile fiyat teklifi alın; hiçbir şey oluşturulmaz;
  • gerçek sipariş için "confirm": true ve Idempotency-Key başlığı zorunludur — aynı anahtar ve gövdeyle tekrar denemek ikinci sipariş yerine ilk yanıtı döndürür (Idempotency-Replayed: true);
  • yönetici hesap başına sunucu sınırı koyabilir (409 server_limit).

Kurulum eşzamansızdır (genellikle bir dakikadan kısa): status active ve live.power_state running olana kadar GET /cloud/servers/{id} ile sorgulayın.

Toplu (2.21.0): quantity tek siparişte (tek fatura) N sunucu oluşturur, her biri ayrı hizmettir; name ({n} ile) ve tags adlandırır. app her birine tek tık uygulama kurar.

Parametreler

AlaninTürAçıklama
Idempotency-Key zorunluheaderstringUnique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.

İstek gövdesi

AlanTürAçıklama
product_idintegerFrom GET /cloud/products (or give plan + region)
planstringPlan name from GET /cloud/products
regionstringRegion from GET /cloud/locations
server_typestringDeprecated alias of plan
locationstringDeprecated alias of region
cyclestring (monthly, quarterly, semiannually, annually)
imagestring
ssh_keysarray<integer>Ids from /cloud/ssh-keys. Global regions: one key, installed at creation. tr-ist-1: up to 10 keys, installed for root at creation through cloud-init (ssh_keys on GET /cloud/servers/{id} lists their fingerprints and key ids).
hostnamestring In a batch {n} is replaced with 1..N (e.g. web-{n}.example.com); without {n} -1, -2... is appended.
user_datastringcloud-init user data: #cloud-config or a #! script, max 32 KiB. Accepted in every region (tr-ist-1 since 2.14.0). Ignored when a one-click application is chosen on the product.
dry_runboolean
confirmbooleanMust be true to place a paid order
end_customer_idintegerReseller main key: assign the new server to this end-customer
project_idintegerOptional project for the new service(s) (0 = default project). Checked before the order: unknown id = 404 project_not_found (GyroAPI order endpoints) or 422 checkout_blocked with [project_not_found] (POST /orders).
quantityintegerCreate N identical servers in ONE order (default 1). Upper limit per request: 25 by default (operator setting / per-account override; 422 invalid_quantity above it). The server cap and the prepaid 24-hour balance rule count all N.
namestringService name (nickname, shown in the panel, console and API as nickname). {n} is replaced with 1..N in a batch; without {n} a batch appends -1, -2...
tagsarray<any>Labels for every new server (max 10, 24 characters each).
appstringOne-click app id from GET /cloud/apps, installed when the server is up (products that offer apps). Not with user_data.
app_domainstringDomain of the app (its A record must point to the new server); quantity 1 only.

Yanıtlar

200Dry-run quote (nothing created) — data: object
202Order placed and paid; the server is being provisioned — data: CreateServerResult
400Malformed request (e.g. missing Idempotency-Key)
401Missing, invalid or revoked key
402Account balance does not cover the order (insufficient_balance)
403Key lacks the scope, IP not allowed, or feature disabled
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422confirm_required | limit_exceeded (new-account limit of the prepaid cloud; details = LimitHint, raise it with a support ticket) | validation errors

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"product_id": 723, "cycle": "monthly", "image": "debian-12", "ssh_keys": [12], "hostname": "web-1.example.com", "confirm": true}'
gyro server create --help    # tüm seçenekler
# kaynak gyro_server: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server
# Pick a product by plan + region (see gyro_products / gyro_locations) ...
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "eu-de-1"
  image         = "debian-12"
  hostname      = "web-1.example.com"
  ssh_key_ids   = [tonumber(gyro_ssh_key.laptop.id)]
  power_state   = "running"
  confirm_order = true # creating a server is a paid order from your account balance
}

# ... or by product id from the catalog, e.g. the first product in stock in Helsinki.
data "gyro_products" "helsinki" {
  region         = "eu-fi-1"
  available_only = true
}

resource "gyro_server" "db" {
  product_id    = data.gyro_products.helsinki.products[0].id
  image         = "ubuntu-24.04"
  confirm_order = true
}

output "web_ipv4" {
  value = gyro_server.web.ipv4
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
h["Idempotency-Key"] = str(uuid.uuid4())
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers", headers=h, json={"product_id": 723, "cycle": "monthly", "image": "debian-12", "ssh_keys": [12], "hostname": "web-1.example.com", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"product_id": 723, "cycle": "monthly", "image": "debian-12", "ssh_keys": [12], "hostname": "web-1.example.com", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#GET/cloud/servers/{id}

Sunucuyu canlı durumuyla getirKapsam: cloud_readgetServerBu işlemin OpenAPI parçası

live platformdan okunur (15 saniye önbellek) ve sunucu etkin değilken null olur.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Server — data: ServerDetail
404Not found — also returned for objects owned by someone else

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro server get 12345
# kaynak gyro_server: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server
# Pick a product by plan + region (see gyro_products / gyro_locations) ...
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "eu-de-1"
  image         = "debian-12"
  hostname      = "web-1.example.com"
  ssh_key_ids   = [tonumber(gyro_ssh_key.laptop.id)]
  power_state   = "running"
  confirm_order = true # creating a server is a paid order from your account balance
}

# ... or by product id from the catalog, e.g. the first product in stock in Helsinki.
data "gyro_products" "helsinki" {
  region         = "eu-fi-1"
  available_only = true
}

resource "gyro_server" "db" {
  product_id    = data.gyro_products.helsinki.products[0].id
  image         = "ubuntu-24.04"
  confirm_order = true
}

output "web_ipv4" {
  value = gyro_server.web.ipv4
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345", {
  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}`);

#PATCH/cloud/servers/{id}

Sunucu adını değiştir veya otomatik yenilemeyi aç/kapatKapsam: cloud_writeupdateServerBu işlemin OpenAPI parçası

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

İstek gövdesi

AlanTürAçıklama
hostnamestringFully qualified host name (max 63 characters)
auto_renewboolean

Yanıtlar

200Updated server — data: ServerDetail
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Örnekler

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hostname": "web-1.example.com", "auto_renew": true}'
gyro server update | rename 12345 --help    # tüm seçenekler
# kaynak gyro_server: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server
# Pick a product by plan + region (see gyro_products / gyro_locations) ...
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "eu-de-1"
  image         = "debian-12"
  hostname      = "web-1.example.com"
  ssh_key_ids   = [tonumber(gyro_ssh_key.laptop.id)]
  power_state   = "running"
  confirm_order = true # creating a server is a paid order from your account balance
}

# ... or by product id from the catalog, e.g. the first product in stock in Helsinki.
data "gyro_products" "helsinki" {
  region         = "eu-fi-1"
  available_only = true
}

resource "gyro_server" "db" {
  product_id    = data.gyro_products.helsinki.products[0].id
  image         = "ubuntu-24.04"
  confirm_order = true
}

output "web_ipv4" {
  value = gyro_server.web.ipv4
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345", headers=h, json={"hostname": "web-1.example.com", "auto_renew": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"hostname": "web-1.example.com", "auto_renew": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/servers/{id}

Sunucuyu sil (iptal)Kapsam: cloud_deletedeleteServerBu işlemin OpenAPI parçası

confirm=true (sorgu veya gövde) zorunludur. İki biçim:

  • varsayılan: iptal talebi açar (status: cancellation_requested); talep panel otomasyonuyla işlenene kadar (günlük, mesai saatleri) sunucu çalışır ve faturalama sürer;
  • immediate=true: hemen iptal eder (status: cancelling, yaklaşık bir dakikada cancelled) - faturalama durur, sunucu hemen kapanır, bekleme süresi (3 gün) sonunda verisiyle silinir. Paneldeki onaylanmış "hemen iptal" ile aynı etki. Yönetici kapatabilir.

Tekrar çağırmak güvenlidir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
confirm zorunluqueryboolean
immediatequerybooleantrue = cancel now instead of filing a request

Yanıtlar

202Cancellation requested (default) or cancelled (immediate) — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro server delete 12345
# kaynak gyro_server: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server
# Pick a product by plan + region (see gyro_products / gyro_locations) ...
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "eu-de-1"
  image         = "debian-12"
  hostname      = "web-1.example.com"
  ssh_key_ids   = [tonumber(gyro_ssh_key.laptop.id)]
  power_state   = "running"
  confirm_order = true # creating a server is a paid order from your account balance
}

# ... or by product id from the catalog, e.g. the first product in stock in Helsinki.
data "gyro_products" "helsinki" {
  region         = "eu-fi-1"
  available_only = true
}

resource "gyro_server" "db" {
  product_id    = data.gyro_products.helsinki.products[0].id
  image         = "ubuntu-24.04"
  confirm_order = true
}

output "web_ipv4" {
  value = gyro_server.web.ipv4
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345", {
  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}`);

#GET/cloud/servers/{id}/disks

Sunucunun ek diskleriKapsam: cloud_readlistServerDisksBu işlemin OpenAPI parçası

İki sınıf: ssd (hızlı) ve hdd (yedek, arşiv, medya için büyük depolama; veritabanı için kullanmayın). Ek diskler GB başına ön ödemeli bakiyeden saatlik ücretlendirilir (classes.<sınıf>.per_gb_monthly_eur, aylık / 672); eklendiği saatten silindiği saate kadar, her disk en az pricing.minimum_hours saat. Sunucu başına en çok 4 disk ve sınıf başına classes.<sınıf>.max_gb GB; boyutlar step_gb katları. Yeni disk boştur (sunucu içinde bölümlendirip biçimlendirin ve bağlayın). Yeniden kurulum ek diskleri siler.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (tr-ist-1)

Yanıtlar

200OK — data: ServerDisks
404Not found — also returned for objects owned by someone else
409not_actionable (suspended / busy / snapshots exist)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
501not_supported (not a tr-ist-1 Gyro Compute server)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro server disk list 12345
# kaynak gyro_server_disk: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server_disk
# Fast SSD disk for data (grow in place by raising size_gb; never shrinks)
resource "gyro_server_disk" "data" {
  server_id = gyro_server.web.id
  size_gb   = 100
}

# Large storage (HDD) for backups / archives / media - when the hdd class is on sale
resource "gyro_server_disk" "archive" {
  server_id = gyro_server.web.id
  size_gb   = 500
  class     = "hdd"
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks", {
  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}`);

#POST/cloud/servers/{id}/disks

Ek disk ekleKapsam: cloud_writeaddServerDiskBu işlemin OpenAPI parçası

İki sınıf: ssd (hızlı) ve hdd (yedek, arşiv, medya için büyük depolama; veritabanı için kullanmayın). Ek diskler GB başına ön ödemeli bakiyeden saatlik ücretlendirilir (classes.<sınıf>.per_gb_monthly_eur, aylık / 672); eklendiği saatten silindiği saate kadar, her disk en az pricing.minimum_hours saat. Sunucu başına en çok 4 disk ve sınıf başına classes.<sınıf>.max_gb GB; boyutlar step_gb katları. Yeni disk boştur (sunucu içinde bölümlendirip biçimlendirin ve bağlayın). Yeniden kurulum ek diskleri siler. Yalnız ön ödemeli tr-ist-1 sunucuları; askıdayken eklenemez.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (tr-ist-1)

İstek gövdesi

AlanTürAçıklama
size_gb zorunluinteger
classstring (ssd, hdd)ssd (fast) or hdd (large storage; see classes.hdd.on_sale)

Yanıtlar

201OK — data: ServerDisks
404Not found — also returned for objects owned by someone else
409not_actionable (suspended / busy / snapshots exist)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
501not_supported (not a tr-ist-1 Gyro Compute server)

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"size_gb": 1, "class": "ssd"}'
gyro server disk add 12345 --help    # tüm seçenekler
# kaynak gyro_server_disk: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server_disk
# Fast SSD disk for data (grow in place by raising size_gb; never shrinks)
resource "gyro_server_disk" "data" {
  server_id = gyro_server.web.id
  size_gb   = 100
}

# Large storage (HDD) for backups / archives / media - when the hdd class is on sale
resource "gyro_server_disk" "archive" {
  server_id = gyro_server.web.id
  size_gb   = 500
  class     = "hdd"
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks", headers=h, json={"size_gb": 1, "class": "ssd"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"size_gb": 1, "class": "ssd"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#PUT/cloud/servers/{id}/disks/{disk}

Ek diski büyütKapsam: cloud_writeresizeServerDiskBu işlemin OpenAPI parçası

Diski size_gb boyutuna büyütür (küçültmez; snapshot varken olmaz). Sonra sunucu içinde bölümü / dosya sistemini genişletin.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (tr-ist-1)
disk zorunlupathintegerDisk id (from GET /cloud/servers/{id}/disks)

İstek gövdesi

AlanTürAçıklama
size_gb zorunluinteger

Yanıtlar

200OK — data: ServerDisks
404Not found — also returned for objects owned by someone else
409not_actionable (suspended / busy / snapshots exist)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
501not_supported (not a tr-ist-1 Gyro Compute server)

Örnekler

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"size_gb": 1}'
gyro server disk resize 12345 --help    # tüm seçenekler
# kaynak gyro_server_disk: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server_disk
# Fast SSD disk for data (grow in place by raising size_gb; never shrinks)
resource "gyro_server_disk" "data" {
  server_id = gyro_server.web.id
  size_gb   = 100
}

# Large storage (HDD) for backups / archives / media - when the hdd class is on sale
resource "gyro_server_disk" "archive" {
  server_id = gyro_server.web.id
  size_gb   = 500
  class     = "hdd"
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks/1", headers=h, json={"size_gb": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks/1", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"size_gb": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/servers/{id}/disks/{disk}

Ek diski sil (verisiyle)Kapsam: cloud_writeremoveServerDiskBu işlemin OpenAPI parçası

Diski tüm verisiyle siler (geri alınamaz); ücret içinde bulunulan saatten sonra durur (asgari süre geçerli). confirm=true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (tr-ist-1)
disk zorunlupathintegerDisk id (from GET /cloud/servers/{id}/disks)
confirm zorunluqueryboolean

Yanıtlar

200OK — data: ServerDisks
404Not found — also returned for objects owned by someone else
409not_actionable (suspended / busy / snapshots exist)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
501not_supported (not a tr-ist-1 Gyro Compute server)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro server disk remove 12345
# kaynak gyro_server_disk: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/server_disk
# Fast SSD disk for data (grow in place by raising size_gb; never shrinks)
resource "gyro_server_disk" "data" {
  server_id = gyro_server.web.id
  size_gb   = 100
}

# Large storage (HDD) for backups / archives / media - when the hdd class is on sale
resource "gyro_server_disk" "archive" {
  server_id = gyro_server.web.id
  size_gb   = 500
  class     = "hdd"
}
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/disks/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/servers/12345/disks/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}`);