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

Projeler

Hizmetlerinizi projelere ayırın (iş, müşteri ya da ortam başına). Her hizmet tek bir projededir; atanmamış hizmetler varsayılan projededir (id 0). Faturalar projeye göre bölünmez.

#GET/cloud/projects

Projeleri listeleKapsam: services_readlistProjectsBu işlemin OpenAPI parçası

Projeleriniz; varsayılan proje (id 0) her zaman ilk sırada. Sayılar anahtarın hizmet kapsamına göredir.

Yanıtlar

200Projects — data: array<Project>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/projects' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro project list
# kaynak gyro_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/project
# A project per business / client / environment. Destroying it only deletes the project:
# its services go back to the default project (id 0).
resource "gyro_project" "gyroproje" {
  name        = "Gyro Proje"
  description = "Web + API + CDN"
  color       = "blue"
  icon        = "rocket-takeoff"
}

# New servers and load balancers can be ordered straight into a project.
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "tr-ist-1"
  image         = "ubuntu-24.04"
  confirm_order = true
  project_id    = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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

Proje oluşturKapsam: services_writecreateProjectBu işlemin OpenAPI parçası

Hesap başına en çok 50 proje (409 project_limit). İsteğe bağlı service_ids hizmetleri hemen taşır. Yazma: anahtar başına dakikada 60 (429 rate_limited). Alt hesap anahtarları proje oluşturamaz, yeniden adlandıramaz, silemez (403 subkey_forbidden).

İstek gövdesi

AlanTürAçıklama
name zorunlustringLetter or digit first; then letters, digits, space and . _ - / + # & ( ). Unique per account (case-insensitive). Reserved: Genel, General, Default.
descriptionstring | null
colorstring (gray, blue, green, red, orange, yellow, purple, pink, teal, indigo)
iconstring (folder, briefcase, building, cart3, cloud, code-slash, controller, globe2, heart, house, kanban, lightning, people, rocket-takeoff, shield-lock, shop, star, tools, truck, box-seam, mortarboard, camera)
service_idsarray<integer>Optional: move these services into the new project at once

Yanıtlar

201Created — data: Project
409name_taken / project_limit
422Validation error
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/projects' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Gyro Proje", "color": "blue", "icon": "rocket-takeoff", "service_ids": [12345]}'
gyro project create --help    # tüm seçenekler
# kaynak gyro_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/project
# A project per business / client / environment. Destroying it only deletes the project:
# its services go back to the default project (id 0).
resource "gyro_project" "gyroproje" {
  name        = "Gyro Proje"
  description = "Web + API + CDN"
  color       = "blue"
  icon        = "rocket-takeoff"
}

# New servers and load balancers can be ordered straight into a project.
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "tr-ist-1"
  image         = "ubuntu-24.04"
  confirm_order = true
  project_id    = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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

#GET/cloud/projects/{id}

Projeyi hizmet numaralarıyla getirKapsam: services_readgetProjectBu işlemin OpenAPI parçası

Başka hesabın projesi 404 project_not_found döner.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerProject id (0 = default project)

Yanıtlar

200Project — data: Project
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Örnekler

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/projects/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro project get 12345
# kaynak gyro_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/project
# A project per business / client / environment. Destroying it only deletes the project:
# its services go back to the default project (id 0).
resource "gyro_project" "gyroproje" {
  name        = "Gyro Proje"
  description = "Web + API + CDN"
  color       = "blue"
  icon        = "rocket-takeoff"
}

# New servers and load balancers can be ordered straight into a project.
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "tr-ist-1"
  image         = "ubuntu-24.04"
  confirm_order = true
  project_id    = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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

Projeyi yeniden adlandır / renklendirKapsam: services_writeupdateProjectBu işlemin OpenAPI parçası

name, description, color, icon alanlarından istediğinizi gönderin. Varsayılan proje değiştirilemez (409 default_project). Yazma: anahtar başına dakikada 60 (429 rate_limited). Alt hesap anahtarları proje oluşturamaz, yeniden adlandıramaz, silemez (403 subkey_forbidden).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerProject id (0 = default project)

İstek gövdesi

AlanTürAçıklama
namestringLetter or digit first; then letters, digits, space and . _ - / + # & ( ). Unique per account (case-insensitive). Reserved: Genel, General, Default.
descriptionstring | null
colorstring (gray, blue, green, red, orange, yellow, purple, pink, teal, indigo)
iconstring (folder, briefcase, building, cart3, cloud, code-slash, controller, globe2, heart, house, kanban, lightning, people, rocket-takeoff, shield-lock, shop, star, tools, truck, box-seam, mortarboard, camera)

Yanıtlar

200Updated — data: Project
409name_taken / default_project
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Örnekler

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/projects/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "description": "string", "color": "gray", "icon": "folder"}'
gyro project rename 12345 --help    # tüm seçenekler
# kaynak gyro_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/project
# A project per business / client / environment. Destroying it only deletes the project:
# its services go back to the default project (id 0).
resource "gyro_project" "gyroproje" {
  name        = "Gyro Proje"
  description = "Web + API + CDN"
  color       = "blue"
  icon        = "rocket-takeoff"
}

# New servers and load balancers can be ordered straight into a project.
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "tr-ist-1"
  image         = "ubuntu-24.04"
  confirm_order = true
  project_id    = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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

#DELETE/cloud/projects/{id}

Projeyi silKapsam: services_writedeleteProjectBu işlemin OpenAPI parçası

Yalnız proje silinir: hizmetleri varsayılan projeye döner, başka hiçbir şey değişmez. Yazma: anahtar başına dakikada 60 (429 rate_limited). Alt hesap anahtarları proje oluşturamaz, yeniden adlandıramaz, silemez (403 subkey_forbidden).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerProject id (0 = default project)

Yanıtlar

200Deleted — data: object
409default_project
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Örnekler

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/projects/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN"
gyro project delete 12345
# kaynak gyro_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/project
# A project per business / client / environment. Destroying it only deletes the project:
# its services go back to the default project (id 0).
resource "gyro_project" "gyroproje" {
  name        = "Gyro Proje"
  description = "Web + API + CDN"
  color       = "blue"
  icon        = "rocket-takeoff"
}

# New servers and load balancers can be ordered straight into a project.
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "tr-ist-1"
  image         = "ubuntu-24.04"
  confirm_order = true
  project_id    = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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

#POST/cloud/projects/{id}/services

Hizmetleri projeye taşıKapsam: services_writemoveServicesToProjectBu işlemin OpenAPI parçası

Tüm numaralar anahtarın kapsamındaki hizmetleriniz olmalı, yoksa 404 service_not_found ve hiçbir şey taşınmaz. Çağrı başına en çok 500; id 0 = varsayılan proje. Alt hesap anahtarı project:move eylemi ister.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerProject id (0 = default project)

İstek gövdesi

AlanTürAçıklama
service_ids zorunluarray<integer>

Yanıtlar

200Moved — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Örnekler

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/projects/12345/services' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"service_ids": [12345, 12346]}'
gyro project move 12345 --help    # tüm seçenekler
# kaynak gyro_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/project
# A project per business / client / environment. Destroying it only deletes the project:
# its services go back to the default project (id 0).
resource "gyro_project" "gyroproje" {
  name        = "Gyro Proje"
  description = "Web + API + CDN"
  color       = "blue"
  icon        = "rocket-takeoff"
}

# New servers and load balancers can be ordered straight into a project.
resource "gyro_server" "web" {
  plan          = "standart-2-4"
  region        = "tr-ist-1"
  image         = "ubuntu-24.04"
  confirm_order = true
  project_id    = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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

#PUT/cloud/services/{id}/project

Hizmetin projesini ayarlaKapsam: services_writesetServiceProjectBu işlemin OpenAPI parçası

project_id 0 = varsayılan proje. Hizmeti (project ile) döner. Alt hesap anahtarı project:move eylemi ister.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
project_id zorunluinteger

Yanıtlar

200Service — data: Service
422project_id_required / invalid_project_id
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Örnekler

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/services/12345/project' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"project_id": 1}'
gyro service project set 12345 --help    # tüm seçenekler
# kaynak gyro_service_project: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/service_project
# Put any existing service (DNS, storage, mail, containers, VDS ...) into a project.
resource "gyro_service_project" "dns" {
  service_id = 12345
  project_id = tonumber(gyro_project.gyroproje.id)
}
import os, uuid, requests

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