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

Private networks

Gyro Bulut İstanbul (tr-ist-1) sunucuları için özel ağlar (VPC): subnetler, özel ağ kartları, sunucunun public IPv4'ünü kapatma ve VPC kapısı (NAT ile internet çıkışı, port yönlendirme, subnetler arası kural). VPC, subnet ve özel trafik ücretsiz; kapı açıkken ön ödemeli bakiyeden saatlik ücretlenir (ayda en çok 4,99 €).

#GET/cloud/vpcs

Özel ağları listeleKapsam: cloud_readlistVpcsBu işlemin OpenAPI parçası

Yalnız tr-ist-1. Sınırlar (GET /cloud/vpcs limits, destek talebiyle artırılır): hesap başına 3 VPC, VPC başına 4 subnet, sunucu başına 3 özel kart, VPC başına 20 port yönlendirme; bir sunucu aynı anda tek VPC'ye (o VPC'nin birden çok subnetine) bağlanır. Başka hesabın nesnesi 404 döner. limits ve pricing de döner.

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

Özel ağ oluşturKapsam: cloud_writecreateVpcBu işlemin OpenAPI parçası

Yalnız tr-ist-1. Sınırlar (GET /cloud/vpcs limits, destek talebiyle artırılır): hesap başına 3 VPC, VPC başına 4 subnet, sunucu başına 3 özel kart, VPC başına 20 port yönlendirme; bir sunucu aynı anda tek VPC'ye (o VPC'nin birden çok subnetine) bağlanır. Başka hesabın nesnesi 404 döner. 10.0.0.0/8, 172.16.0.0/12 ya da 192.168.0.0/16 içinde /16 - /24 özel aralık; ağ adresi yazılır (10.10.0.0/16, 10.10.0.5/16 değil). Platforma ayrılmış: 10.42.0.0/16, 10.43.0.0/16, 10.200.0.0/16, 10.250.0.0/16, 10.255.0.0/16. İlk subnet birlikte açılır: subnet.cidr ya da verilmezse aralığın ilk /24'ü (ad default). Ücretsiz.

İstek gövdesi

AlanTürAçıklama
name zorunlustring
cidr zorunlustring
project_idinteger
subnetobject
subnet.namestring
subnet.cidrstring

Yanıtlar

201OK — data: Vpc
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "cidr": "10.10.0.0/16", "project_id": 1, "subnet": {"name": "string", "cidr": "10.10.1.0/24"}}'
import os, uuid, requests

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

#GET/cloud/vpcs/{vpc_id}

Özel ağı getirKapsam: cloud_readgetVpcBu işlemin OpenAPI parçası

Subnetler, bağlı sunucular ve kapı.

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

Yanıtlar

200OK — data: Vpc
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

#PATCH/cloud/vpcs/{vpc_id}

Özel ağın adını değiştirKapsam: cloud_writeupdateVpcBu işlemin OpenAPI parçası

Yalnız ad değişir (aralık değişmez).

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

İstek gövdesi

AlanTürAçıklama
name zorunlustring

Yanıtlar

200OK — data: Vpc
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string"}'
import os, uuid, requests

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

#DELETE/cloud/vpcs/{vpc_id}

Özel ağı silKapsam: cloud_writedeleteVpcBu işlemin OpenAPI parçası

Kalıcıdır. Önce sunucu kartlarını çıkarın ve port yönlendirmelerini silin (409 vpc_in_use); açık kapı kapatılır. "confirm": true gerekir (gövde ya da sorgu).

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)
confirmqueryboolean

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

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

#GET/cloud/vpcs/{vpc_id}/subnets

Subnetleri listeleKapsam: cloud_readlistVpcSubnetsBu işlemin OpenAPI parçası

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/subnets' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

Subnet ekleKapsam: cloud_writecreateVpcSubnetBu işlemin OpenAPI parçası

VPC aralığı içinde /20 - /28, başka subnetle çakışmadan. cidr verin ya da sıradaki boş aralık için prefix (varsayılan 24). Her subnette .1 kapıdır; .0-.4 ve son adres ayrılmıştır.

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

İstek gövdesi

AlanTürAçıklama
name zorunlustring
cidrstring
prefixinteger

Yanıtlar

201OK — data: VpcSubnet
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/subnets' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "cidr": "string", "prefix": 1}'
import os, uuid, requests

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

#DELETE/cloud/vpcs/{vpc_id}/subnets/{subnet_id}

Subneti silKapsam: cloud_writedeleteVpcSubnetBu işlemin OpenAPI parçası

Bağlı kart ya da ona yönlenen port yönlendirme varken reddedilir (409 subnet_in_use); son subnet silinmez (VPC'yi silin).

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)
subnet_id zorunlupathstringSubnet id

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/subnets/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

#GET/cloud/vpcs/{vpc_id}/gateway

VPC kapısını getirKapsam: cloud_readgetVpcGatewayBu işlemin OpenAPI parçası

Kapı; public IP'si kapalı sunucuların internete çıkışını (NAT), port yönlendirmeyi ve subnetler arası kuralı sağlar. Açıkken ön ödemeli bakiyeden saatlik ücretlenir (monthly_eur / 672, en az 1 saat, ayda en çok monthly_eur) ve hesapta en az bir ön ödemeli tr-ist-1 sunucusu gerekir (409 no_billing_server). Kapatınca public IP bırakılır; port yönlendirme varken ya da public IP'si kapalı sunucular kullanırken reddedilir (409 gateway_in_use, allow_no_egress: true ile tekrarlayın). Dışarı çıkan bağlantılar 5651 sayılı Kanun gereği kaydedilir (2 yıl).

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

Yanıtlar

200OK — data: VpcGateway
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/gateway' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

#PUT/cloud/vpcs/{vpc_id}/gateway

VPC kapısını aç/kapat, ayarlaKapsam: cloud_writesetVpcGatewayBu işlemin OpenAPI parçası

Kapı; public IP'si kapalı sunucuların internete çıkışını (NAT), port yönlendirmeyi ve subnetler arası kuralı sağlar. Açıkken ön ödemeli bakiyeden saatlik ücretlenir (monthly_eur / 672, en az 1 saat, ayda en çok monthly_eur) ve hesapta en az bir ön ödemeli tr-ist-1 sunucusu gerekir (409 no_billing_server). Kapatınca public IP bırakılır; port yönlendirme varken ya da public IP'si kapalı sunucular kullanırken reddedilir (409 gateway_in_use, allow_no_egress: true ile tekrarlayın). Dışarı çıkan bağlantılar 5651 sayılı Kanun gereği kaydedilir (2 yıl). Yalnız verilen alanlar değişir.

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

İstek gövdesi

AlanTürAçıklama
enabledboolean
natboolean
inter_subnetstring (allow, deny)
allow_no_egressboolean

Yanıtlar

200OK — data: VpcGateway
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/gateway' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true, "nat": true, "inter_subnet": "allow", "allow_no_egress": true}'
import os, uuid, requests

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

#GET/cloud/vpcs/{vpc_id}/port-forwards

Port yönlendirmeleri listeleKapsam: cloud_readlistVpcPortForwardsBu işlemin OpenAPI parçası

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/port-forwards' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

Kapının dış portunu yönlendirKapsam: cloud_writecreateVpcPortForwardBu işlemin OpenAPI parçası

Kapının public_ip:public_port adresi -> VPC içinde target_ip:target_port. Kapı açık olmalı (409 gateway_disabled); protokol + dış port başına bir yönlendirme; en çok 20.

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)

İstek gövdesi

AlanTürAçıklama
protocol zorunlustring (tcp, udp)
public_port zorunluinteger
target_ip zorunlustring
target_port zorunluinteger

Yanıtlar

201OK — data: VpcPortForward
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/port-forwards' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"protocol": "tcp", "public_port": 1, "target_ip": "string", "target_port": 1}'
import os, uuid, requests

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

#DELETE/cloud/vpcs/{vpc_id}/port-forwards/{pf_id}

Port yönlendirmeyi silKapsam: cloud_writedeleteVpcPortForwardBu işlemin OpenAPI parçası

Parametreler

AlaninTürAçıklama
vpc_id zorunlupathstringVPC id (from GET /cloud/vpcs)
pf_id zorunlupathstringPort forward id

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/vpcs/1/port-forwards/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

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

Sunucunun özel ağ kartlarıKapsam: cloud_readlistServerNicsBu işlemin OpenAPI parçası

tr-ist-1 sunucusunun özel ağ kartları. Takma sıcak yapılır (yeniden başlatma yok): açık sunucuda yaklaşık 10-60 sn'de hazır (state attaching -> ready); kapalı sunucuda ayarlar açılışta uygulanır. Bir sunucu aynı anda tek VPC'ye bağlanır (409 other_vpc), en çok 3 kart. ip boş = otomatik.

Parametreler

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

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/nics' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

Sunucuyu subnete bağlaKapsam: cloud_writeattachServerNicBu işlemin OpenAPI parçası

tr-ist-1 sunucusunun özel ağ kartları. Takma sıcak yapılır (yeniden başlatma yok): açık sunucuda yaklaşık 10-60 sn'de hazır (state attaching -> ready); kapalı sunucuda ayarlar açılışta uygulanır. Bir sunucu aynı anda tek VPC'ye bağlanır (409 other_vpc), en çok 3 kart. ip boş = otomatik.

Parametreler

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

İstek gövdesi

AlanTürAçıklama
subnet_id zorunlustring
ipstring

Yanıtlar

202OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/nics' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"subnet_id": "string", "ip": "string"}'
import os, uuid, requests

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

#DELETE/cloud/servers/{id}/nics/{nic_id}

Özel ağ kartını çıkarKapsam: cloud_writedetachServerNicBu işlemin OpenAPI parçası

Adres 10 dakika başka sunucuya verilmez. Public IP kapalıyken son kart çıkarılamaz (409 last_network).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (tr-ist-1)
nic_id zorunlupathstringNetwork card id (from GET /cloud/servers/{id}/nics)

Yanıtlar

202OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/nics/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

#GET/cloud/servers/{id}/public-ip

Public IPv4 durumuKapsam: cloud_readgetServerPublicIpBu işlemin OpenAPI parçası

Public IPv4 kapanınca sunucuya yalnız VPC'den, kapı port yönlendirmesinden ya da web konsoldan (her zaman çalışır) erişilir. Onay için sunucunun mevcut IP'si (confirm_ip) yazılır. Hazır bir özel kart (409 no_private_network) gerekir ve ek IPv4 olmamalı (409 extra_ips). VPC kapısı (NAT) kapalıysa sunucu internete çıkamaz: allow_no_egress: true verilmezse 409 no_egress. Adres sunucuya ayrılmış kalır; açınca aynı IP gelir.

Parametreler

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

Yanıtlar

200OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/public-ip' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

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

Public IPv4'ü açKapsam: cloud_writeenableServerPublicIpBu işlemin OpenAPI parçası

Aynı adres geri gelir.

Parametreler

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

Yanıtlar

202OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/public-ip' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/public-ip", 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/public-ip", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

#DELETE/cloud/servers/{id}/public-ip

Public IPv4'ü kapatKapsam: cloud_writedisableServerPublicIpBu işlemin OpenAPI parçası

Public IPv4 kapanınca sunucuya yalnız VPC'den, kapı port yönlendirmesinden ya da web konsoldan (her zaman çalışır) erişilir. Onay için sunucunun mevcut IP'si (confirm_ip) yazılır. Hazır bir özel kart (409 no_private_network) gerekir ve ek IPv4 olmamalı (409 extra_ips). VPC kapısı (NAT) kapalıysa sunucu internete çıkamaz: allow_no_egress: true verilmezse 409 no_egress. Adres sunucuya ayrılmış kalır; açınca aynı IP gelir.

Parametreler

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

İstek gövdesi

AlanTürAçıklama
confirm_ip zorunlustring
allow_no_egressboolean

Yanıtlar

202OK — data: object
403not_available (private networks are not enabled for this account yet) / forbidden (key limited to some servers)
404Not found — also returned for objects owned by someone else
409conflict: limit_exceeded, vpc_in_use, subnet_in_use, last_subnet, gateway_disabled, gateway_in_use, port_in_use, already_attached, other_vpc, extra_ips, no_private_network, no_egress, already_off, already_on, last_network, no_billing_server, suspended, busy
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
503capacity / pool_exhausted (try again later)

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/public-ip' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm_ip": "string", "allow_no_egress": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/servers/12345/public-ip", headers=h, json={"confirm_ip": "string", "allow_no_egress": 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/public-ip", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm_ip": "string", "allow_no_egress": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);