# 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}`);
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": trueveIdempotency-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): statusactive ve live.power_staterunning 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
Alan
in
Tür
Açıklama
Idempotency-Keyzorunlu
header
string
Unique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.
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).
hostname
string
In a batch {n} is replaced with 1..N (e.g. web-{n}.example.com); without {n}-1, -2... is appended.
user_data
string
cloud-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_run
boolean
confirm
boolean
Must be true to place a paid order
end_customer_id
integer
Reseller main key: assign the new server to this end-customer
project_id
integer
Optional 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).
quantity
integer
Create 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.
name
string
Service 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...
tags
array<any>
Labels for every new server (max 10, 24 characters each).
app
string
One-click app id from GET /cloud/apps, installed when the server is up (products that offer apps). Not with user_data.
app_domain
string
Domain of the app (its A record must point to the new server); quantity 1 only.
Yanıtlar
200
Dry-run quote (nothing created) — data: object
202
Order placed and paid; the server is being provisioned — data: CreateServerResult
400
Malformed request (e.g. missing Idempotency-Key)
401
Missing, invalid or revoked key
402
Account balance does not cover the order (insufficient_balance)
403
Key lacks the scope, IP not allowed, or feature disabled
409
State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422
confirm_required | limit_exceeded (new-account limit of the prepaid cloud; details = LimitHint, raise it with a support ticket) | validation errors
# 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
}
# 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}`);
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
}
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
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Server id (= service id in the client area)
confirmzorunlu
query
boolean
immediate
query
boolean
true = cancel now instead of filing a request
Yanıtlar
202
Cancellation requested (default) or cancelled (immediate) — 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_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}`);
İ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
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Server id (tr-ist-1)
Yanıtlar
200
OK — data: ServerDisks
404
Not found — also returned for objects owned by someone else
# 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}`);
İ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
Alan
in
Tür
Açıklama
idzorunlu
path
integer
Server id (tr-ist-1)
İstek gövdesi
Alan
Tür
Açıklama
size_gbzorunlu
integer
class
string (ssd, hdd)
ssd (fast) or hdd (large storage; see classes.hdd.on_sale)
Yanıtlar
201
OK — data: ServerDisks
404
Not found — also returned for objects owned by someone else
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"
}
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"])
# 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}`);
Esc
Sonuç yok. Bir uç yolu (/cloud/servers), işlem adı (createServer) ya da hata kodu (limit_exceeded) deneyin.