{
 "openapi": "3.1.0",
 "info": {
  "title": "Gyro Public API",
  "version": "2.5.0",
  "summary": "Manage Gyro cloud servers, SSH keys and billing programmatically.",
  "x-summary-tr": "Gyro bulut sunucularınızı, SSH anahtarlarınızı ve faturalarınızı programla yönetin.",
  "description": "The Gyro Public API lets you automate everything you do in the Gyro client area:\norder and manage cloud servers, keep SSH keys, read invoices and your account balance.\nIt is the API behind the official Terraform provider (`gyro-hosting/gyro`) and `gyroctl`.\n\n* **Base URL** `https://www.gyrohosting.com/api/v1/client`\n* **Authentication** `Authorization: Bearer wck_...` (create keys in *Client area → account menu (top right) → API Credentials*)\n* **Format** JSON in, JSON out. Successful answers are `{\"data\": ..., \"meta\": ...}`; errors are\n  `{\"error\": {\"code\", \"message\", \"details\"}}`.\n\n**v2**: every product line through the generic service bridge (`/cloud/services`), webhooks, sub-account keys, reseller (bayi) end-customers, and the complete core client API (domains, DNS, tickets, orders, invoices, account) under the same key.\n",
  "x-description-tr": "Gyro Public API, müşteri panelinde yaptığınız her işi otomatikleştirmenizi sağlar:\nbulut sunucu siparişi ve yönetimi, SSH anahtarları, fatura ve bakiye okuma.\nResmi Terraform sağlayıcısı (`gyro-hosting/gyro`) ve `gyroctl` bu API'yi kullanır.\n\n* **Taban adres** `https://www.gyrohosting.com/api/v1/client`\n* **Kimlik** `Authorization: Bearer wck_...` (anahtarı *Müşteri paneli → sağ üstteki hesap menüsü → API Kimlik Bilgileri* bölümünden oluşturun)\n* **Biçim** JSON gönderilir, JSON döner. Başarılı yanıt `{\"data\": ..., \"meta\": ...}`, hata\n  `{\"error\": {\"code\", \"message\", \"details\"}}` biçimindedir.\n\n**v2**: genel hizmet köprüsüyle tüm ürün hatları (`/cloud/services`), webhook'lar, alt hesap anahtarları, bayi uç-müşterileri ve aynı anahtarla çekirdek müşteri API'sinin tamamı (alan adı, DNS, destek, sipariş, fatura, hesap).\n",
  "contact": {
   "name": "Gyro Hosting",
   "url": "https://www.gyrohosting.com"
  },
  "license": {
   "name": "Proprietary",
   "identifier": "LicenseRef-Gyro-API-Terms"
  }
 },
 "servers": [
  {
   "url": "https://www.gyrohosting.com/api/v1/client",
   "description": "Production"
  }
 ],
 "security": [
  {
   "bearerAuth": []
  }
 ],
 "tags": [
  {
   "name": "Servers",
   "description": "Cloud servers you own. Creating one places an order paid from your account balance.",
   "x-description-tr": "Sahip olduğunuz bulut sunucular. Oluşturma, hesap bakiyesinden ödenen bir sipariştir."
  },
  {
   "name": "Server actions",
   "description": "Power, rebuild, password and rescue operations. Asynchronous; poll the server until `live.locked` is false.",
   "x-description-tr": "Güç, yeniden kurulum, parola ve kurtarma işlemleri. Eşzamansızdır; `live.locked` false olana kadar sunucuyu sorgulayın."
  },
  {
   "name": "Snapshots and backups",
   "description": "Point-in-time images of a server disk. Snapshot space is an add-on quota in GB.",
   "x-description-tr": "Sunucu diskinin anlık görüntüleri. Snapshot alanı GB cinsinden ek hizmet kotasıdır."
  },
  {
   "name": "Networking",
   "description": "Reverse DNS and the inbound firewall of a server.",
   "x-description-tr": "Sunucunun ters DNS kayıtları ve gelen trafik güvenlik duvarı."
  },
  {
   "name": "Monitoring",
   "description": "CPU, disk and network metrics and the provider-side action history.",
   "x-description-tr": "CPU, disk ve ağ ölçümleri ile sunucu işlem geçmişi."
  },
  {
   "name": "SSH keys",
   "description": "Account-level public keys you can install on new servers.",
   "x-description-tr": "Yeni sunuculara kurulabilen, hesap düzeyinde açık anahtarlar."
  },
  {
   "name": "Catalog",
   "description": "Orderable products, locations and operating system images.",
   "x-description-tr": "Sipariş verilebilen ürünler, lokasyonlar ve işletim sistemi imajları."
  },
  {
   "name": "Billing",
   "description": "Invoices and account balance (read-only with the recommended scopes).",
   "x-description-tr": "Faturalar ve hesap bakiyesi (önerilen kapsamlarla salt okunur)."
  },
  {
   "name": "Account",
   "description": "Key introspection and the write log of your API keys.",
   "x-description-tr": "Anahtar bilgisi ve API anahtarlarınızın yazma kaydı."
  },
  {
   "name": "Services (all products)",
   "description": "Generic bridge to every product line (cloud server, VDS, dedicated, mail, monitor, storage, license, ...).\nEverything a customer can do on a service in the client area is a module tool or method and is reachable here.\nStart with `GET /cloud/services/{id}/tools`: it lists the tools, their actions and our safety policy\n(`read`, `confirm`, `secret`) for that very service.\n",
   "x-description-tr": "Tüm ürün hatlarına (bulut sunucu, VDS, fiziksel sunucu, kurumsal mail, izleme, depolama, lisans, ...) genel köprü.\nMüşteri panelinde bir hizmette yapılabilen her şey bir modül aracı ya da metodudur ve burada erişilebilir.\n`GET /cloud/services/{id}/tools` ile başlayın: o hizmetin araçlarını, eylemlerini ve güvenlik politikasını\n(`read`, `confirm`, `secret`) döndürür.\n"
  },
  {
   "name": "Webhooks",
   "description": "Signed HTTPS callbacks for service, invoice, order and ticket events.",
   "x-description-tr": "Hizmet, fatura, sipariş ve talep olayları için imzalı HTTPS geri çağrıları."
  },
  {
   "name": "API keys",
   "description": "Sub-account keys narrowed to services, actions or a reseller end-customer. Only GyroAPI `/cloud` routes accept them.",
   "x-description-tr": "Hizmet, eylem ya da bayi uç-müşterisiyle daraltılmış alt hesap anahtarları. Yalnız GyroAPI `/cloud` uçlarında geçerlidir."
  },
  {
   "name": "Reseller",
   "description": "Reseller (bayi) accounts manage their own end-customers, assign services, mint end-customer keys and read usage reports. Services stay on the reseller account and use its discount.",
   "x-description-tr": "Bayi hesapları kendi uç-müşterilerini yönetir, hizmet atar, uç-müşteri anahtarı üretir ve kullanım raporu okur. Hizmetler bayinin hesabında kalır ve bayi indirimiyle fiyatlanır."
  },
  {
   "name": "Mail",
   "description": "Typed corporate-mail shortcuts (mailboxes, aliases, catch-all, auto-responders, IMAP migrations, DNS, spam, delivery log, quarantine, deleted mail, archive, 2FA). Mailboxes are addressed by local part.",
   "x-description-tr": "Kurumsal mail kısayolları (kutular, takma adlar, catch-all, otomatik yanıt, IMAP taşıma, DNS, spam, teslim kaydı, karantina, silinen posta, arşiv, 2FA). Kutular yerel kısımla (@ öncesi) adreslenir."
  },
  {
   "name": "Object storage",
   "description": "Typed S3 storage shortcuts: buckets, access keys (secret shown once), usage, connection details.",
   "x-description-tr": "S3 depolama kısayolları: kovalar, erişim anahtarları (gizli bir kez), kullanım, bağlantı bilgisi."
  },
  {
   "name": "Monitoring (uptime)",
   "description": "Typed uptime-monitor shortcuts: monitors, channels, heartbeats, status pages.",
   "x-description-tr": "Uptime izleme kısayolları: monitörler, kanallar, heartbeat, durum sayfaları."
  },
  {
   "name": "Licenses",
   "description": "Software license status and IP change.",
   "x-description-tr": "Yazılım lisansı durumu ve IP değişikliği."
  },
  {
   "name": "One-click apps",
   "description": "Install a one-click app on a cloud server (the disk is rebuilt).",
   "x-description-tr": "Bulut sunucuya tek tık uygulama kur (disk yeniden kurulur)."
  },
  {
   "name": "Plan changes and add-ons",
   "description": "Resize (plan upgrade) and add-on purchase, paid from the account balance (dry_run, confirm, Idempotency-Key, daily limit: default 50 paid operations per account, per-account/reseller override, 429 daily_limit).",
   "x-description-tr": "Paket yükseltme ve ek hizmet satın alma; bakiyeden ödenir (dry_run, confirm, Idempotency-Key, günlük sınır: hesap başına varsayılan 50 ücretli işlem, hesap/bayi bazında istisna, 429 daily_limit)."
  },
  {
   "name": "Panel users",
   "description": "Sub-users: extra panel logins with limited permissions (accountant, technical staff). Scope `users`.",
   "x-description-tr": "Alt kullanıcılar: sınırlı izinli ek panel girişleri (muhasebe, teknik ekip). Kapsam `users`."
  },
  {
   "name": "Load balancers",
   "description": "Managed L4/L7 load balancer for your cloud servers: services, health checks, targets, free Let's Encrypt certificates, metrics. EU regions.",
   "x-description-tr": "Bulut sunucularınız için yönetilen L4/L7 yük dengeleyici: servisler, sağlık kontrolü, hedefler, ücretsiz Let's Encrypt sertifikası, ölçümler. AB bölgeleri."
  },
  {
   "name": "Managed DNS",
   "description": "Authoritative DNS on ns1.gyrodns.net (Istanbul) + ns2.gyrodns.net (Germany): zones, records (A/AAAA/CNAME/MX/TXT/SRV/CAA/ALIAS/NS/PTR), BIND import/export, one-click DNSSEC, health-checked failover records.",
   "x-description-tr": "ns1.gyrodns.net (İstanbul) + ns2.gyrodns.net (Almanya) yetkili DNS: zone'lar, kayıtlar, BIND içe/dışa aktarma, tek tık DNSSEC, sağlık kontrollü failover kayıtları."
  },
  {
   "name": "Reference data",
   "description": "Countries, states, cities.",
   "x-description-tr": "Ülke, il, ilçe."
  },
  {
   "name": "Services (core)",
   "description": "Core service endpoints: renew, cancel, auto-renew, add-ons, metrics, SSO, password.",
   "x-description-tr": "Çekirdek hizmet uçları: yenileme, iptal, otomatik yenileme, ek hizmetler, ölçümler, SSO, parola."
  },
  {
   "name": "Domains and DNS",
   "description": "Register, transfer, renew, nameservers, DNS records, DNSSEC, lock, EPP code, privacy, WHOIS contacts, forwarding (core WISECP client API).",
   "x-description-tr": "Kayıt, transfer, yenileme, ad sunucuları, DNS kayıtları, DNSSEC, kilit, EPP kodu, gizlilik, WHOIS kişileri, yönlendirme (çekirdek WISECP müşteri API'si)."
  },
  {
   "name": "Orders",
   "description": "Preview (quote) and place orders for any product.",
   "x-description-tr": "Her ürün için teklif ve sipariş."
  },
  {
   "name": "Support tickets",
   "description": "Departments, open, reply, close, reopen, rate, attachments.",
   "x-description-tr": "Departmanlar, aç, yanıtla, kapat, yeniden aç, puanla, ekler."
  },
  {
   "name": "SMS",
   "description": "SMS senders, quote and send.",
   "x-description-tr": "SMS başlıkları, teklif ve gönderim."
  },
  {
   "name": "Affiliate",
   "description": "Affiliate programme.",
   "x-description-tr": "Satış ortaklığı."
  }
 ],
 "paths": {
  "/whoami": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "whoami",
    "summary": "Describe the calling API key",
    "x-summary-tr": "Çağıran API anahtarını göster",
    "x-scope": "any",
    "responses": {
     "200": {
      "description": "Key details",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "id": {
             "type": "integer"
            },
            "type": {
             "type": "string",
             "const": "client"
            },
            "name": {
             "type": "string"
            },
            "permissions": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "owner_id": {
             "type": "integer"
            }
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/activity": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "listActivity",
    "summary": "List write calls made with your API keys",
    "x-summary-tr": "API anahtarlarınızla yapılan yazma çağrılarını listele",
    "description": "Every non-GET call to `/cloud/...` is recorded for 365 days (method, path, scope, HTTP status, IP, key id). Request and response bodies are never stored.",
    "x-description-tr": "`/cloud/...` altındaki her GET dışı çağrı 365 gün saklanır (yöntem, yol, kapsam, HTTP durumu, IP, anahtar no). İstek ve yanıt gövdeleri saklanmaz.",
    "x-scope": "cloud_read",
    "parameters": [
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "$ref": "#/components/parameters/Limit"
     }
    ],
    "responses": {
     "200": {
      "description": "Activity page",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/ActivityEntry"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/cloud/products": {
   "get": {
    "tags": [
     "Catalog"
    ],
    "operationId": "listProducts",
    "summary": "List orderable cloud server products",
    "x-summary-tr": "Sipariş verilebilen bulut sunucu ürünlerini listele",
    "description": "Prices are in the product currency, VAT excluded. `available=false` means temporarily out of stock.",
    "x-description-tr": "Fiyatlar ürün para biriminde ve KDV hariçtir. `available=false` geçici olarak stokta yok demektir.",
    "x-scope": "cloud_read",
    "parameters": [
     {
      "name": "region",
      "in": "query",
      "schema": {
       "type": "string",
       "example": "eu-de-1"
      },
      "description": "Filter by region (see GET /cloud/locations). A city name (falkenstein) also works."
     },
     {
      "name": "plan",
      "in": "query",
      "schema": {
       "type": "string",
       "example": "standart-2-4"
      },
      "description": "Filter by plan name"
     },
     {
      "name": "location",
      "in": "query",
      "deprecated": true,
      "schema": {
       "type": "string"
      },
      "description": "Deprecated alias of region (legacy location code)"
     },
     {
      "name": "server_type",
      "in": "query",
      "deprecated": true,
      "schema": {
       "type": "string"
      },
      "description": "Deprecated alias of plan (legacy type code)"
     },
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 100,
       "default": 100
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Products",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Product"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/locations": {
   "get": {
    "tags": [
     "Catalog"
    ],
    "operationId": "listLocations",
    "summary": "List locations with orderable products",
    "x-summary-tr": "Sipariş verilebilen lokasyonları listele",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Locations",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Location"
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/images": {
   "get": {
    "tags": [
     "Catalog"
    ],
    "operationId": "listImages",
    "summary": "List operating system images",
    "x-summary-tr": "İşletim sistemi imajlarını listele",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Images",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Image"
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/ssh-keys": {
   "get": {
    "tags": [
     "SSH keys"
    ],
    "operationId": "listSshKeys",
    "summary": "List SSH keys",
    "x-summary-tr": "SSH anahtarlarını listele",
    "x-scope": "cloud_read",
    "parameters": [
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "$ref": "#/components/parameters/Limit"
     }
    ],
    "responses": {
     "200": {
      "description": "SSH keys",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/SshKey"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   },
   "post": {
    "tags": [
     "SSH keys"
    ],
    "operationId": "createSshKey",
    "summary": "Add an SSH key",
    "x-summary-tr": "SSH anahtarı ekle",
    "description": "Accepts ssh-ed25519, ecdsa-sha2-nistp256/384/521, sk-ssh-ed25519 and ssh-rsa (2048 bit or more). At most 50 keys per account; fingerprints are unique per account.",
    "x-description-tr": "ssh-ed25519, ecdsa-sha2-nistp256/384/521, sk-ssh-ed25519 ve ssh-rsa (en az 2048 bit) kabul edilir. Hesap başına en fazla 50 anahtar; parmak izi hesapta benzersizdir.",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "name",
         "public_key"
        ],
        "properties": {
         "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64,
          "example": "laptop"
         },
         "public_key": {
          "type": "string",
          "example": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaA... me@laptop"
         }
        }
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SshKey"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/ssh-keys/{id}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "SSH keys"
    ],
    "operationId": "getSshKey",
    "summary": "Get an SSH key",
    "x-summary-tr": "SSH anahtarını getir",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "SSH key",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/SshKey"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "delete": {
    "tags": [
     "SSH keys"
    ],
    "operationId": "deleteSshKey",
    "summary": "Delete an SSH key",
    "x-summary-tr": "SSH anahtarını sil",
    "description": "Removes the key from your account. Servers that already have it keep it.",
    "x-description-tr": "Anahtarı hesabınızdan siler. Anahtarın kurulu olduğu sunucularda anahtar kalır.",
    "x-scope": "cloud_write",
    "responses": {
     "200": {
      "description": "Deleted",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "deleted": {
             "type": "boolean"
            },
            "id": {
             "type": "integer"
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/servers": {
   "get": {
    "tags": [
     "Servers"
    ],
    "operationId": "listServers",
    "summary": "List cloud servers",
    "x-summary-tr": "Bulut sunucuları listele",
    "x-scope": "cloud_read",
    "parameters": [
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string",
       "enum": [
        "active",
        "waiting",
        "inprocess",
        "suspended",
        "cancelled"
       ]
      }
     },
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 100,
       "default": 25
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Servers (without live state)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Server"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   },
   "post": {
    "tags": [
     "Servers"
    ],
    "operationId": "createServer",
    "summary": "Create (order) a cloud server",
    "x-summary-tr": "Bulut sunucu oluştur (sipariş)",
    "description": "Places an order and pays it **from your account balance** (never from a stored card).\nSafety rules:\n* send `\"dry_run\": true` first to get a price quote; nothing is created;\n* a real order needs `\"confirm\": true` **and** an `Idempotency-Key` header — retrying with the\n  same key and body returns the first answer (`Idempotency-Replayed: true`) instead of a second order;\n* the operator may cap the number of servers per account (`409 server_limit`).\nProvisioning is asynchronous (typically under a minute): poll `GET /cloud/servers/{id}` until\n`status` is `active` and `live.power_state` is `running`.\n",
    "x-description-tr": "Sipariş oluşturur ve **hesap bakiyenizden** öder (kayıtlı karttan asla çekmez).\nGüvenlik kuralları:\n* önce `\"dry_run\": true` ile fiyat teklifi alın; hiçbir şey oluşturulmaz;\n* gerçek sipariş için `\"confirm\": true` **ve** `Idempotency-Key` başlığı zorunludur — aynı anahtar ve\n  gövdeyle tekrar denemek ikinci sipariş yerine ilk yanıtı döndürür (`Idempotency-Replayed: true`);\n* yönetici hesap başına sunucu sınırı koyabilir (`409 server_limit`).\nKurulum eşzamansızdır (genellikle bir dakikadan kısa): `status` `active` ve `live.power_state`\n`running` olana kadar `GET /cloud/servers/{id}` ile sorgulayın.\n",
    "x-scope": "cloud_order",
    "parameters": [
     {
      "$ref": "#/components/parameters/IdempotencyKey"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/CreateServerRequest"
       },
       "example": {
        "product_id": 723,
        "cycle": "monthly",
        "image": "debian-12",
        "ssh_keys": [
         12
        ],
        "hostname": "web-1.example.com",
        "confirm": true
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Dry-run quote (nothing created)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "dry_run": {
             "type": "boolean",
             "const": true
            },
            "quote": {
             "$ref": "#/components/schemas/Quote"
            }
           }
          }
         }
        }
       }
      }
     },
     "202": {
      "description": "Order placed and paid; the server is being provisioned",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/CreateServerResult"
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "402": {
      "$ref": "#/components/responses/PaymentRequired"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Servers"
    ],
    "operationId": "getServer",
    "summary": "Get a server with its live state",
    "x-summary-tr": "Sunucuyu canlı durumuyla getir",
    "description": "`live` is read from the platform (cached for 15 seconds) and is `null` while the server is not active.",
    "x-description-tr": "`live` platformdan okunur (15 saniye önbellek) ve sunucu etkin değilken `null` olur.",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Server",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ServerDetail"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "patch": {
    "tags": [
     "Servers"
    ],
    "operationId": "updateServer",
    "summary": "Rename a server or switch auto-renew",
    "x-summary-tr": "Sunucu adını değiştir veya otomatik yenilemeyi aç/kapat",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "hostname": {
          "type": "string",
          "description": "Fully qualified host name (max 63 characters)",
          "example": "web-1.example.com"
         },
         "auto_renew": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated server",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ServerDetail"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "delete": {
    "tags": [
     "Servers"
    ],
    "operationId": "deleteServer",
    "summary": "Delete (cancel) a server",
    "x-summary-tr": "Sunucuyu sil (iptal)",
    "description": "Requires `confirm=true` (query or body). Two modes:\n* default: files a **cancellation request** (`status: cancellation_requested`). The server keeps running and billing\n  continues until the request is processed by the panel's automation (daily, business hours);\n* `immediate=true`: cancels **now** (`status: cancelling`, becomes `cancelled` within about a minute) - billing stops, the server is powered off at once and destroyed with\n  its data after the grace period (3 days). Same effect as an approved \"cancel now\" request in the panel. The operator can disable this.\nCalling it again is safe.\n",
    "x-description-tr": "`confirm=true` (sorgu veya gövde) zorunludur. İki biçim:\n* varsayılan: **iptal talebi** açar (`status: cancellation_requested`); talep panel otomasyonuyla işlenene kadar (günlük,\n  mesai saatleri) sunucu çalışır ve faturalama sürer;\n* `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\n  verisiyle silinir. Paneldeki onaylanmış \"hemen iptal\" ile aynı etki. Yönetici kapatabilir.\nTekrar çağırmak güvenlidir.\n",
    "x-scope": "cloud_delete",
    "parameters": [
     {
      "name": "confirm",
      "in": "query",
      "required": true,
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "immediate",
      "in": "query",
      "required": false,
      "schema": {
       "type": "boolean",
       "default": false
      },
      "description": "true = cancel now instead of filing a request"
     }
    ],
    "responses": {
     "202": {
      "description": "Cancellation requested (default) or cancelled (immediate)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "status": {
             "type": "string",
             "enum": [
              "cancellation_requested",
              "cancelling",
              "cancelled"
             ]
            },
            "server_id": {
             "type": "integer"
            },
            "destroy_after_days": {
             "type": "integer"
            },
            "note": {
             "type": "string"
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/actions/{action}": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    },
    {
     "name": "action",
     "in": "path",
     "required": true,
     "schema": {
      "type": "string",
      "enum": [
       "poweron",
       "shutdown",
       "reboot",
       "poweroff",
       "reset",
       "rebuild",
       "reset_password",
       "enable_rescue",
       "disable_rescue"
      ]
     },
     "description": "`shutdown` = graceful (ACPI), `poweroff` = hard power cut, `reset` = hard reset (needs confirm),\n`rebuild` = reinstall from `image` (needs confirm, **wipes the disk**), `reset_password` / `enable_rescue`\nreturn a one-time `root_password`.\n"
    }
   ],
   "post": {
    "tags": [
     "Server actions"
    ],
    "operationId": "serverAction",
    "summary": "Run a server action",
    "x-summary-tr": "Sunucu işlemi çalıştır",
    "description": "Heavy actions (rebuild, reset, rescue, snapshot restore, password reset) are limited per server per day.\nA one-time `root_password` is returned only when the request has **no** `Idempotency-Key`\n(idempotent answers are stored for replay, secrets never are; you then get `root_password_withheld: true`).\n",
    "x-description-tr": "Ağır işlemler (yeniden kurulum, reset, kurtarma, snapshot'tan dönüş, parola sıfırlama) sunucu başına günlük sınırlıdır.\nTek seferlik `root_password` yalnız istekte `Idempotency-Key` **yoksa** döner (tekrar için saklanan yanıtlara sır yazılmaz;\nbu durumda `root_password_withheld: true` görürsünüz).\n",
    "x-scope": "cloud_write",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "image": {
          "type": "string",
          "description": "rebuild only: image slug from /cloud/images",
          "example": "ubuntu-24.04"
         },
         "confirm": {
          "type": "boolean",
          "description": "required for reset and rebuild"
         }
        }
       }
      }
     }
    },
    "responses": {
     "202": {
      "description": "Accepted",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ActionResult"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/snapshots": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Snapshots and backups"
    ],
    "operationId": "listSnapshots",
    "summary": "List snapshots and the snapshot quota",
    "x-summary-tr": "Snapshot'ları ve kotayı listele",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Snapshots",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "items": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/Snapshot"
             }
            },
            "quota_gb": {
             "type": "integer",
             "description": "Snapshot space bought as an add-on (0 = none)"
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "post": {
    "tags": [
     "Snapshots and backups"
    ],
    "operationId": "createSnapshot",
    "summary": "Take a snapshot",
    "x-summary-tr": "Snapshot al",
    "x-scope": "cloud_write",
    "responses": {
     "202": {
      "description": "Snapshot is being created (poll the list until status is available)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "status": {
             "type": "string",
             "const": "accepted"
            },
            "server_id": {
             "type": "integer"
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/snapshots/{sid}/restore": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    },
    {
     "name": "sid",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "post": {
    "tags": [
     "Snapshots and backups"
    ],
    "operationId": "restoreSnapshot",
    "summary": "Restore a snapshot onto the server (overwrites the disk)",
    "x-summary-tr": "Snapshot'ı sunucuya geri yükle (diski ezer)",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "confirm"
        ],
        "properties": {
         "confirm": {
          "type": "boolean",
          "const": true
         }
        }
       }
      }
     }
    },
    "responses": {
     "202": {
      "description": "Accepted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/snapshots/{sid}": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    },
    {
     "name": "sid",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "delete": {
    "tags": [
     "Snapshots and backups"
    ],
    "operationId": "deleteSnapshot",
    "summary": "Delete a snapshot",
    "x-summary-tr": "Snapshot sil",
    "x-scope": "cloud_write",
    "responses": {
     "202": {
      "description": "Accepted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/servers/{id}/backups": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Snapshots and backups"
    ],
    "operationId": "listBackups",
    "summary": "List automatic backups",
    "x-summary-tr": "Otomatik yedekleri listele",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Backups (enabled=false when the backup add-on is not active)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "enabled": {
             "type": "boolean"
            },
            "items": {
             "type": "array",
             "items": {
              "$ref": "#/components/schemas/Snapshot"
             }
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "post": {
    "tags": [
     "Snapshots and backups"
    ],
    "operationId": "createBackup",
    "summary": "Take a manual backup (backup add-on required)",
    "x-summary-tr": "Elle yedek al (yedekleme ek hizmeti gerekir)",
    "x-scope": "cloud_write",
    "responses": {
     "202": {
      "description": "Accepted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/metrics": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Monitoring"
    ],
    "operationId": "getMetrics",
    "summary": "CPU, disk and network time series",
    "x-summary-tr": "CPU, disk ve ağ zaman serileri",
    "x-scope": "cloud_read",
    "parameters": [
     {
      "name": "period",
      "in": "query",
      "schema": {
       "type": "string",
       "enum": [
        "24h",
        "7d",
        "30d"
       ],
       "default": "24h"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Metrics; each line is a list of [unix_time, value]",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Metrics"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/servers/{id}/activity": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Monitoring"
    ],
    "operationId": "serverActivity",
    "summary": "Recent platform actions on the server",
    "x-summary-tr": "Sunucudaki son platform işlemleri",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Actions (newest first, max 50)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "command": {
              "type": "string",
              "example": "rebuild_server"
             },
             "status": {
              "type": "string",
              "enum": [
               "success",
               "failed",
               "pending"
              ]
             },
             "started_at": {
              "type": "string",
              "format": "date-time"
             }
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/servers/{id}/rdns": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Networking"
    ],
    "operationId": "listRdns",
    "summary": "List reverse DNS entries",
    "x-summary-tr": "Ters DNS kayıtlarını listele",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "PTR records of the server's addresses",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/RdnsEntry"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "put": {
    "tags": [
     "Networking"
    ],
    "operationId": "setRdns",
    "summary": "Set (or reset) the PTR record of one address",
    "x-summary-tr": "Bir adresin PTR kaydını ayarla (veya sıfırla)",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "ip"
        ],
        "properties": {
         "ip": {
          "type": "string",
          "description": "An address of this server (IPv6 addresses inside the server's /64 are allowed)"
         },
         "hostname": {
          "type": "string",
          "description": "FQDN; empty string resets to the default"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated list",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/RdnsEntry"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/firewall": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "Networking"
    ],
    "operationId": "getFirewall",
    "summary": "Inbound firewall rules",
    "x-summary-tr": "Gelen trafik güvenlik duvarı kuralları",
    "description": "Read-only in v1. An empty list means no Gyro firewall is applied (all inbound traffic reaches the server).",
    "x-description-tr": "v1'de salt okunur. Boş liste Gyro güvenlik duvarı uygulanmadığı (tüm gelen trafiğin sunucuya ulaştığı) anlamına gelir.",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Rules",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/FirewallRule"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/invoices": {
   "get": {
    "tags": [
     "Billing"
    ],
    "operationId": "listInvoices",
    "summary": "List invoices",
    "x-summary-tr": "Faturaları listele",
    "x-scope": "Invoices/GetInvoices",
    "parameters": [
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "unpaid, paid, cancelled, refund"
     },
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 100,
       "default": 25
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Invoices",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Invoice"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/invoices/{id}": {
   "get": {
    "tags": [
     "Billing"
    ],
    "operationId": "getInvoice",
    "summary": "Get an invoice",
    "x-summary-tr": "Faturayı getir",
    "x-scope": "Invoices/GetInvoice",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Invoice with lines",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Invoice"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/balance": {
   "get": {
    "tags": [
     "Billing"
    ],
    "operationId": "getBalance",
    "summary": "Account balance",
    "x-summary-tr": "Hesap bakiyesi",
    "x-scope": "Balance/GetBalance",
    "responses": {
     "200": {
      "description": "Balance",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "balance": {
             "$ref": "#/components/schemas/Money"
            },
            "low_balance": {
             "type": "boolean"
            }
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/balance/transactions": {
   "get": {
    "tags": [
     "Billing"
    ],
    "operationId": "listBalanceTransactions",
    "summary": "Balance ledger",
    "x-summary-tr": "Bakiye hareketleri",
    "x-scope": "Balance/GetBalanceTransactions",
    "parameters": [
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "$ref": "#/components/parameters/Limit"
     }
    ],
    "responses": {
     "200": {
      "description": "Ledger entries",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/services": {
   "get": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "listServices",
    "summary": "List services of every product line",
    "x-summary-tr": "Tüm ürün hatlarındaki hizmetleri listele",
    "x-scope": "services_read",
    "parameters": [
     {
      "name": "product_line",
      "in": "query",
      "schema": {
       "type": "string",
       "enum": [
        "cloud_server",
        "vds",
        "dedicated_server",
        "mail",
        "monitor",
        "storage",
        "license",
        "app"
       ]
      }
     },
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "customer_id",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Reseller main key only"
     },
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "$ref": "#/components/parameters/Limit"
     }
    ],
    "responses": {
     "200": {
      "description": "Services",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Service"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/services/{id}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "getService",
    "summary": "Get a service (renewal, cancellation, access details)",
    "x-summary-tr": "Hizmeti getir (yenileme, iptal, erişim bilgileri)",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Service",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Service"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/services/{id}/tools": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "listServiceTools",
    "summary": "Discover tools, actions and safety policy of a service",
    "x-summary-tr": "Hizmetin araçlarını, eylemlerini ve güvenlik politikasını keşfet",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Tools",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ServiceTools"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     }
    }
   }
  },
  "/cloud/services/{id}/tools/{tool}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    },
    {
     "name": "tool",
     "in": "path",
     "required": true,
     "schema": {
      "type": "string",
      "example": "mailboxes"
     }
    }
   ],
   "get": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "getServiceToolData",
    "summary": "Read a tool (list mailboxes, snapshots, DNS records, ...)",
    "x-summary-tr": "Bir aracı oku (posta kutuları, snapshot'lar, DNS kayıtları, ...)",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Tool data (module specific)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/services/{id}/tools/{tool}/{action}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    },
    {
     "name": "tool",
     "in": "path",
     "required": true,
     "schema": {
      "type": "string",
      "example": "mailboxes"
     }
    },
    {
     "name": "action",
     "in": "path",
     "required": true,
     "schema": {
      "type": "string",
      "example": "create"
     }
    }
   ],
   "post": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "runServiceToolAction",
    "summary": "Run a tool action (create a mailbox, restore a snapshot, ...)",
    "x-summary-tr": "Bir araç eylemi çalıştır (posta kutusu oluştur, snapshot'tan dön, ...)",
    "description": "Body fields are the tool's own fields (see the tool data and the per-module table in the guide). Actions flagged `confirm` in the discovery answer need `\"confirm\": true`.",
    "x-description-tr": "Gövde alanları aracın kendi alanlarıdır (araç verisine ve rehberdeki modül tablosuna bakın). Keşif yanıtında `confirm` işaretli eylemler `\"confirm\": true` ister.",
    "x-scope": "services_write",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       },
       "example": {
        "email": "info@example.com",
        "password": "S3cure-pass!",
        "quota": 2048
       }
      }
     }
    },
    "responses": {
     "202": {
      "description": "Accepted",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/services/{id}/methods/{method}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    },
    {
     "name": "method",
     "in": "path",
     "required": true,
     "schema": {
      "type": "string",
      "example": "change_ip"
     }
    }
   ],
   "post": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "callServiceMethod",
    "summary": "Call a client-callable module method (e.g. license change_ip)",
    "x-summary-tr": "Müşteri-çağrılabilir modül metodunu çağır (örn. lisans change_ip)",
    "x-scope": "services_write",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true
       },
       "example": {
        "ip": "203.0.113.10"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/services/{id}/label": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     },
     "description": "Service id"
    }
   ],
   "get": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "getServiceLabel",
    "summary": "Get the nickname and tags of a service",
    "x-summary-tr": "Hizmetin takma adını ve etiketlerini getir",
    "description": "Customer-defined nickname and colour tags of one of your services (any product line). A service without a label answers `\"nickname\": null` and `\"tags\": []`. Labels are private to the service owner; after a transfer the old owner's label is not shown.",
    "x-description-tr": "Hizmetlerinizden birinin (her ürün hattı) müşteri tanımlı takma adı ve renkli etiketleri. Etiketsiz hizmet `\"nickname\": null` ve `\"tags\": []` döner. Etiketler yalnız hizmet sahibine görünür; devirden sonra eski sahibin etiketi gösterilmez.",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Label",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ServiceLabel"
          }
         }
        },
        "example": {
         "data": {
          "service_id": 17488,
          "nickname": "Accounting server",
          "tags": [
           {
            "name": "production",
            "color": "green"
           },
           {
            "name": "customer-A",
            "color": "blue"
           }
          ],
          "updated_at": "2026-11-10T02:30:00+03:00",
          "colors": [
           "gray",
           "blue",
           "green",
           "red",
           "orange",
           "yellow",
           "purple",
           "pink",
           "teal",
           "indigo"
          ]
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     }
    }
   },
   "put": {
    "tags": [
     "Services (all products)"
    ],
    "operationId": "updateServiceLabel",
    "summary": "Set the nickname and/or tags of a service",
    "x-summary-tr": "Hizmetin takma adını ve/veya etiketlerini ayarla",
    "description": "Send `nickname`, `tags` or both; a field that is not sent stays unchanged. `nickname` \"\" or null clears it; `tags` replaces all tags and `[]` clears them. A tag is `\"name\"` or `{\"name\", \"color\"}`; an unknown or missing colour gets a stable default. Duplicate names (case-insensitive) are merged. Limit: 30 label writes per minute per key (429 `rate_limited`). Sub-account keys need the `label:edit` action. Errors: 422 `nothing_to_update`, `invalid_nickname`, `invalid_tags`; 404 `service_not_found` (also for services of other accounts) or `feature_unavailable`.",
    "x-description-tr": "`nickname`, `tags` ya da ikisini gönderin; gönderilmeyen alan değişmez. `nickname` \"\" veya null temizler; `tags` tüm etiketlerin yerine geçer, `[]` temizler. Etiket `\"ad\"` ya da `{\"name\", \"color\"}`; bilinmeyen/eksik renk için sabit varsayılan atanır. Aynı adlı (büyük/küçük harf duyarsız) etiketler birleştirilir. Sınır: anahtar başına dakikada 30 etiket yazması (429 `rate_limited`). Alt hesap anahtarı `label:edit` eylemi ister. Hatalar: 422 `nothing_to_update`, `invalid_nickname`, `invalid_tags`; 404 `service_not_found` (başka hesabın hizmeti dahil) veya `feature_unavailable`.",
    "x-scope": "services_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ServiceLabelUpdate"
       },
       "example": {
        "nickname": "Accounting server",
        "tags": [
         {
          "name": "production",
          "color": "green"
         },
         "customer-A"
        ]
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Saved label",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ServiceLabel"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     },
     "429": {
      "$ref": "#/components/responses/RateLimited"
     }
    }
   }
  },
  "/cloud/servers/{id}/firewall/rules": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "post": {
    "tags": [
     "Networking"
    ],
    "operationId": "addFirewallRule",
    "summary": "Add an inbound firewall rule",
    "x-summary-tr": "Gelen trafik kuralı ekle",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/FirewallRuleInput"
       },
       "example": {
        "protocol": "tcp",
        "port": "22",
        "source_ips": [
         "203.0.113.0/24"
        ]
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "All rules after the change",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/FirewallRule"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/firewall/rules/{n}": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    },
    {
     "name": "n",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer",
      "minimum": 1
     },
     "description": "1-based position from GET /firewall"
    }
   ],
   "delete": {
    "tags": [
     "Networking"
    ],
    "operationId": "deleteFirewallRule",
    "summary": "Remove a firewall rule (the last one needs confirm)",
    "x-summary-tr": "Güvenlik duvarı kuralı sil (son kural confirm ister)",
    "x-scope": "cloud_write",
    "parameters": [
     {
      "name": "confirm",
      "in": "query",
      "schema": {
       "type": "boolean"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Remaining rules",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/FirewallRule"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/servers/{id}/console": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "post": {
    "tags": [
     "Server actions"
    ],
    "operationId": "openConsole",
    "summary": "Open a one-time VNC console ticket",
    "x-summary-tr": "Tek seferlik VNC konsol bileti al",
    "description": "Returns a websocket URL and password valid for about a minute. Never send an Idempotency-Key here (400).",
    "x-description-tr": "Yaklaşık bir dakika geçerli websocket adresi ve parola döner. Idempotency-Key göndermeyin (400).",
    "x-scope": "cloud_write",
    "responses": {
     "201": {
      "description": "Ticket",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "server_id": {
             "type": "integer"
            },
            "wss_url": {
             "type": "string"
            },
            "password": {
             "type": "string"
            },
            "protocol": {
             "type": "string"
            },
            "expires_in": {
             "type": "integer"
            }
           }
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     }
    }
   }
  },
  "/cloud/bulk": {
   "post": {
    "tags": [
     "Server actions"
    ],
    "operationId": "bulkServerAction",
    "summary": "Run one action on up to 50 servers",
    "x-summary-tr": "Bir eylemi 50 sunucuya kadar toplu çalıştır",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "action",
         "server_ids"
        ],
        "properties": {
         "action": {
          "type": "string",
          "enum": [
           "poweron",
           "shutdown",
           "reboot",
           "poweroff",
           "reset",
           "rebuild",
           "disable_rescue"
          ]
         },
         "server_ids": {
          "type": "array",
          "items": {
           "type": "integer"
          },
          "maxItems": 50
         },
         "image": {
          "type": "string"
         },
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "responses": {
     "207": {
      "description": "Per-target results",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/BulkResult"
          }
         }
        }
       }
      }
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/webhooks": {
   "get": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "listWebhooks",
    "summary": "List webhooks",
    "x-summary-tr": "Webhook'ları listele",
    "x-scope": "webhooks",
    "responses": {
     "200": {
      "description": "Webhooks",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/Webhook"
           }
          }
         }
        }
       }
      }
     }
    }
   },
   "post": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "createWebhook",
    "summary": "Create a webhook (secret returned once)",
    "x-summary-tr": "Webhook oluştur (gizli anahtar bir kez döner)",
    "description": "Deliveries are `POST` JSON with headers `X-Gyro-Event`, `X-Gyro-Delivery`, `X-Gyro-Timestamp` and\n`X-Gyro-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)` (white-label resellers: `X-Webhook-*`).\nReject requests whose timestamp is older than 5 minutes. Retries: exponential back-off, 8 attempts; 20 consecutive failures disable the webhook.\n",
    "x-description-tr": "Teslimler `POST` JSON'dur; başlıklar `X-Gyro-Event`, `X-Gyro-Delivery`, `X-Gyro-Timestamp` ve\n`X-Gyro-Signature: sha256=HMAC_SHA256(secret, timestamp + \".\" + body)` (beyaz etiketli bayi: `X-Webhook-*`).\nZaman damgası 5 dakikadan eskiyse reddedin. Tekrar: üstel geri çekilme, 8 deneme; 20 ardışık hata webhook'u kapatır.\n",
    "x-scope": "webhooks",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "url"
        ],
        "properties": {
         "url": {
          "type": "string",
          "format": "uri"
         },
         "events": {
          "type": "array",
          "items": {
           "$ref": "#/components/schemas/WebhookEvent"
          },
          "description": "empty = all"
         },
         "description": {
          "type": "string"
         },
         "customer_id": {
          "type": "integer",
          "description": "Reseller main key only"
         }
        }
       },
       "example": {
        "url": "https://hooks.example.com/gyro",
        "events": [
         "service.active",
         "invoice.paid"
        ]
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created (includes secret)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "allOf": [
            {
             "$ref": "#/components/schemas/Webhook"
            },
            {
             "type": "object",
             "properties": {
              "secret": {
               "type": "string"
              }
             }
            }
           ]
          }
         }
        }
       }
      }
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/webhooks/{id}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "getWebhook",
    "summary": "Get a webhook",
    "x-summary-tr": "Webhook'u getir",
    "x-scope": "webhooks",
    "responses": {
     "200": {
      "description": "Webhook",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Webhook"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "patch": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "updateWebhook",
    "summary": "Update url, events, description or status",
    "x-summary-tr": "Adres, olay, açıklama ya da durumu güncelle",
    "x-scope": "webhooks",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string"
         },
         "events": {
          "type": "array",
          "items": {
           "$ref": "#/components/schemas/WebhookEvent"
          }
         },
         "description": {
          "type": "string"
         },
         "status": {
          "type": "string",
          "enum": [
           "active",
           "disabled"
          ]
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Webhook",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/Webhook"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "delete": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "deleteWebhook",
    "summary": "Delete a webhook",
    "x-summary-tr": "Webhook'u sil",
    "x-scope": "webhooks",
    "responses": {
     "200": {
      "description": "Deleted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/webhooks/{id}/test": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "post": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "testWebhook",
    "summary": "Send an api.test event now",
    "x-summary-tr": "Şimdi bir api.test olayı gönder",
    "x-scope": "webhooks",
    "responses": {
     "200": {
      "description": "Result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "delivered": {
             "type": "boolean"
            },
            "delivery_id": {
             "type": "string"
            },
            "http_code": {
             "type": [
              "integer",
              "null"
             ]
            },
            "error": {
             "type": [
              "string",
              "null"
             ]
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/webhooks/{id}/deliveries": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Webhooks"
    ],
    "operationId": "listWebhookDeliveries",
    "summary": "Last 100 deliveries",
    "x-summary-tr": "Son 100 teslim",
    "x-scope": "webhooks",
    "responses": {
     "200": {
      "description": "Deliveries",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/WebhookDelivery"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/keys": {
   "get": {
    "tags": [
     "API keys"
    ],
    "operationId": "listApiKeys",
    "summary": "List sub-account keys (never shows tokens)",
    "x-summary-tr": "Alt hesap anahtarlarını listele (token göstermez)",
    "x-scope": "keys",
    "responses": {
     "200": {
      "description": "Keys",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/ApiKey"
           }
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "post": {
    "tags": [
     "API keys"
    ],
    "operationId": "createApiKey",
    "summary": "Create a sub-account key (token returned once)",
    "x-summary-tr": "Alt hesap anahtarı oluştur (token bir kez döner)",
    "x-scope": "keys",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ApiKeyInput"
       },
       "example": {
        "name": "ci-reboot-only",
        "scopes": [
         "cloud_read",
         "cloud_write"
        ],
        "services": [
         47466
        ],
        "actions": [
         "reboot",
         "poweron"
        ],
        "ips": [
         "203.0.113.10"
        ],
        "rate_limit": 30
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "allOf": [
            {
             "$ref": "#/components/schemas/ApiKey"
            },
            {
             "type": "object",
             "properties": {
              "token": {
               "type": "string"
              }
             }
            }
           ]
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/keys/{id}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "delete": {
    "tags": [
     "API keys"
    ],
    "operationId": "deleteApiKey",
    "summary": "Delete a sub-account key",
    "x-summary-tr": "Alt hesap anahtarını sil",
    "x-scope": "keys",
    "responses": {
     "200": {
      "description": "Deleted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/invoices/{id}/pay": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "post": {
    "tags": [
     "Billing"
    ],
    "operationId": "payInvoiceFromBalance",
    "summary": "Pay an invoice from the account balance",
    "x-summary-tr": "Faturayı hesap bakiyesinden öde",
    "description": "Balance only (never a card). Requires `\"confirm\": true` and an `Idempotency-Key` header.",
    "x-description-tr": "Yalnız bakiye (kart asla). `\"confirm\": true` ve `Idempotency-Key` başlığı zorunlu.",
    "x-scope": "billing_pay",
    "parameters": [
     {
      "$ref": "#/components/parameters/IdempotencyKey"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "confirm"
        ],
        "properties": {
         "confirm": {
          "type": "boolean",
          "const": true
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Paid",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "402": {
      "$ref": "#/components/responses/PaymentRequired"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/reseller/settings": {
   "get": {
    "tags": [
     "Reseller"
    ],
    "operationId": "getResellerSettings",
    "summary": "Reseller settings",
    "x-summary-tr": "Bayi ayarları",
    "x-scope": "reseller",
    "responses": {
     "200": {
      "description": "Settings",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ResellerSettings"
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "put": {
    "tags": [
     "Reseller"
    ],
    "operationId": "saveResellerSettings",
    "summary": "Save reseller settings (white label)",
    "x-summary-tr": "Bayi ayarlarını kaydet (beyaz etiket)",
    "x-scope": "reseller",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "white_label": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Settings",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ResellerSettings"
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/cloud/reseller/report": {
   "get": {
    "tags": [
     "Reseller"
    ],
    "operationId": "resellerReport",
    "summary": "Usage and billing report per end-customer",
    "x-summary-tr": "Uç-müşteri başına kullanım ve fatura raporu",
    "x-scope": "reseller",
    "parameters": [
     {
      "name": "from",
      "in": "query",
      "schema": {
       "type": "string",
       "format": "date"
      }
     },
     {
      "name": "to",
      "in": "query",
      "schema": {
       "type": "string",
       "format": "date"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Report",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/ResellerReport"
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/cloud/reseller/assign": {
   "post": {
    "tags": [
     "Reseller"
    ],
    "operationId": "assignService",
    "summary": "Assign a service to an end-customer (customer_id 0 = unassign)",
    "x-summary-tr": "Hizmeti uç-müşteriye ata (customer_id 0 = atamayı kaldır)",
    "x-scope": "reseller",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "service_id",
         "customer_id"
        ],
        "properties": {
         "service_id": {
          "type": "integer"
         },
         "customer_id": {
          "type": "integer"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Assignment",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "service_id": {
             "type": "integer"
            },
            "customer_id": {
             "type": [
              "integer",
              "null"
             ]
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/reseller/customers": {
   "get": {
    "tags": [
     "Reseller"
    ],
    "operationId": "listResellerCustomers",
    "summary": "List end-customers",
    "x-summary-tr": "Uç-müşterileri listele",
    "x-scope": "reseller",
    "parameters": [
     {
      "name": "external_ref",
      "in": "query",
      "schema": {
       "type": "string"
      }
     },
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "$ref": "#/components/parameters/Limit"
     }
    ],
    "responses": {
     "200": {
      "description": "Customers",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/EndCustomer"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "post": {
    "tags": [
     "Reseller"
    ],
    "operationId": "createResellerCustomer",
    "summary": "Create an end-customer",
    "x-summary-tr": "Uç-müşteri oluştur",
    "x-scope": "reseller",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/EndCustomerInput"
       },
       "example": {
        "name": "Acme Ltd",
        "external_ref": "acme-001",
        "allow_order": false
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/EndCustomer"
          }
         }
        }
       }
      }
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/reseller/customers/{id}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Reseller"
    ],
    "operationId": "getResellerCustomer",
    "summary": "Get an end-customer",
    "x-summary-tr": "Uç-müşteriyi getir",
    "x-scope": "reseller",
    "responses": {
     "200": {
      "description": "Customer",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/EndCustomer"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "patch": {
    "tags": [
     "Reseller"
    ],
    "operationId": "updateResellerCustomer",
    "summary": "Update an end-customer (suspend = its keys stop working)",
    "x-summary-tr": "Uç-müşteriyi güncelle (askıya alma = anahtarları çalışmaz)",
    "x-scope": "reseller",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/EndCustomerInput"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Customer",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/EndCustomer"
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "delete": {
    "tags": [
     "Reseller"
    ],
    "operationId": "deleteResellerCustomer",
    "summary": "Delete an end-customer (revokes keys and webhooks, unassigns services)",
    "x-summary-tr": "Uç-müşteriyi sil (anahtarlar ve webhook'lar iptal, hizmet ataması kalkar)",
    "x-scope": "reseller",
    "parameters": [
     {
      "name": "confirm",
      "in": "query",
      "required": true,
      "schema": {
       "type": "boolean"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Deleted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/reseller/customers/{id}/keys": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Reseller"
    ],
    "operationId": "listResellerCustomerKeys",
    "summary": "List an end-customer's keys",
    "x-summary-tr": "Uç-müşterinin anahtarlarını listele",
    "x-scope": "reseller",
    "responses": {
     "200": {
      "description": "Keys",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/ApiKey"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "post": {
    "tags": [
     "Reseller"
    ],
    "operationId": "createResellerCustomerKey",
    "summary": "Mint a key for an end-customer (token returned once)",
    "x-summary-tr": "Uç-müşteri için anahtar üret (token bir kez döner)",
    "x-scope": "reseller",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/ApiKeyInput"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "allOf": [
            {
             "$ref": "#/components/schemas/ApiKey"
            },
            {
             "type": "object",
             "properties": {
              "token": {
               "type": "string"
              }
             }
            }
           ]
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/reseller/customers/{id}/keys/{kid}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    },
    {
     "name": "kid",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "delete": {
    "tags": [
     "Reseller"
    ],
    "operationId": "deleteResellerCustomerKey",
    "summary": "Revoke an end-customer key",
    "x-summary-tr": "Uç-müşteri anahtarını iptal et",
    "x-scope": "reseller",
    "responses": {
     "200": {
      "description": "Deleted"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/apps": {
   "get": {
    "tags": [
     "One-click apps"
    ],
    "operationId": "listApps",
    "summary": "List installable apps",
    "x-summary-tr": "Kurulabilir uygulamaları listele",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Apps",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "id": {
              "type": "string"
             },
             "name": {
              "type": "string"
             },
             "category": {
              "type": "string"
             },
             "os": {
              "type": "array",
              "items": {
               "type": "string"
              }
             },
             "needs_domain": {
              "type": "boolean"
             }
            }
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/servers/{id}/app": {
   "parameters": [
    {
     "$ref": "#/components/parameters/ServerId"
    }
   ],
   "get": {
    "tags": [
     "One-click apps"
    ],
    "operationId": "getAppInstall",
    "summary": "App install status (credentials shown once when ready)",
    "x-summary-tr": "Uygulama kurulum durumu (hazır olunca kimlik bir kez)",
    "x-scope": "cloud_read",
    "responses": {
     "200": {
      "description": "Status",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "post": {
    "tags": [
     "One-click apps"
    ],
    "operationId": "installApp",
    "summary": "Install an app (rebuilds the disk; confirm required; 3 per server per day)",
    "x-summary-tr": "Uygulama kur (diski yeniden kurar; confirm zorunlu; sunucu başına günde 3)",
    "x-scope": "cloud_write",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "app",
         "confirm"
        ],
        "properties": {
         "app": {
          "type": "string"
         },
         "os": {
          "type": "string"
         },
         "domain": {
          "type": "string"
         },
         "email": {
          "type": "string"
         },
         "confirm": {
          "type": "boolean",
          "const": true
         }
        }
       },
       "example": {
        "app": "wordpress",
        "domain": "blog.example.com",
        "email": "admin@example.com",
        "confirm": true
       }
      }
     }
    },
    "responses": {
     "202": {
      "description": "Started"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     },
     "429": {
      "description": "install_limit"
     }
    }
   }
  },
  "/cloud/invoices/{id}/pdf": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Billing"
    ],
    "operationId": "getInvoicePdf",
    "summary": "Invoice PDF (base64 in JSON)",
    "x-summary-tr": "Fatura PDF (JSON içinde base64)",
    "x-scope": "billing_read",
    "responses": {
     "200": {
      "description": "PDF",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "invoice_id": {
             "type": "integer"
            },
            "filename": {
             "type": "string"
            },
            "content_type": {
             "type": "string"
            },
            "size": {
             "type": "integer"
            },
            "sha256": {
             "type": "string"
            },
            "content_base64": {
             "type": "string"
            }
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/cloud/balance/top-up": {
   "post": {
    "tags": [
     "Billing"
    ],
    "operationId": "balanceTopUp",
    "summary": "Create a balance top-up invoice and get its payment link",
    "x-summary-tr": "Bakiye yükleme faturası oluştur, ödeme linkini al",
    "x-scope": "billing_pay",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "amount"
        ],
        "properties": {
         "amount": {
          "type": "number",
          "minimum": 50
         }
        }
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Invoice + pay_url",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "properties": {
            "invoice_id": {
             "type": "integer"
            },
            "amount": {
             "$ref": "#/components/schemas/Money"
            },
            "pay_url": {
             "type": "string"
            }
           }
          }
         }
        }
       }
      }
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/services/{id}/resize-options": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Plan changes and add-ons"
    ],
    "operationId": "getResizeOptions",
    "summary": "Products this service can be upgraded to, with prices",
    "x-summary-tr": "Hizmetin yükseltilebileceği ürünler ve fiyatları",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Options",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/services/{id}/resize": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "post": {
    "tags": [
     "Plan changes and add-ons"
    ],
    "operationId": "resizeService",
    "summary": "Upgrade the plan (paid from balance)",
    "x-summary-tr": "Paketi yükselt (bakiyeden ödenir)",
    "x-scope": "cloud_order",
    "description": "dry_run returns the price; a real change needs `\"confirm\": true` + Idempotency-Key. Creates the upgrade invoice and pays it from the balance; if the balance does not cover it the answer is `awaiting_payment` with a pay_url. Plan changes that would re-create the server are refused (`recreate_required`).",
    "x-description-tr": "dry_run fiyatı döndürür; gerçek değişiklik `\"confirm\": true` + Idempotency-Key ister. Yükseltme faturası oluşturulur ve bakiyeden ödenir; bakiye yetmezse `awaiting_payment` ve pay_url döner. Sunucuyu yeniden kuracak değişiklikler reddedilir (`recreate_required`).",
    "parameters": [
     {
      "$ref": "#/components/parameters/IdempotencyKey"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "product_id"
        ],
        "properties": {
         "product_id": {
          "type": "integer"
         },
         "price_id": {
          "type": "integer"
         },
         "dry_run": {
          "type": "boolean"
         },
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "responses": {
     "202": {
      "description": "Accepted / awaiting_payment (200 for dry_run)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/services/{id}/addons/available": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "get": {
    "tags": [
     "Plan changes and add-ons"
    ],
    "operationId": "listAvailableAddons",
    "summary": "Add-ons offered for this service (with options and prices)",
    "x-summary-tr": "Bu hizmete alınabilecek ek hizmetler",
    "x-scope": "services_read",
    "responses": {
     "200": {
      "description": "Add-ons",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/services/{id}/addons": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "post": {
    "tags": [
     "Plan changes and add-ons"
    ],
    "operationId": "buyAddon",
    "summary": "Buy an add-on (paid from balance)",
    "x-summary-tr": "Ek hizmet satın al (bakiyeden ödenir)",
    "x-scope": "cloud_order",
    "parameters": [
     {
      "$ref": "#/components/parameters/IdempotencyKey"
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "addon_id",
         "option_id"
        ],
        "properties": {
         "addon_id": {
          "type": "integer"
         },
         "option_id": {
          "type": "integer"
         },
         "quantity": {
          "type": "integer",
          "minimum": 1
         },
         "dry_run": {
          "type": "boolean"
         },
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "responses": {
     "202": {
      "description": "Accepted / awaiting_payment (200 for dry_run)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/users": {
   "get": {
    "tags": [
     "Panel users"
    ],
    "operationId": "listPanelUsers",
    "summary": "List sub-users",
    "x-summary-tr": "Alt kullanıcıları listele",
    "x-scope": "users",
    "responses": {
     "200": {
      "description": "Users",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Panel users"
    ],
    "operationId": "createPanelUser",
    "summary": "Invite a sub-user",
    "x-summary-tr": "Alt kullanıcı davet et",
    "x-scope": "users",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "email"
        ],
        "properties": {
         "email": {
          "type": "string"
         },
         "label": {
          "type": "string"
         },
         "permissions": {
          "type": "array",
          "items": {
           "type": "string"
          },
          "description": "e.g. view_services, view_invoices, pay_invoices, view_tickets, open_tickets ..."
         },
         "send_invite": {
          "type": "boolean",
          "default": true
         }
        }
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Created",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/users/{id}": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "patch": {
    "tags": [
     "Panel users"
    ],
    "operationId": "updatePanelUser",
    "summary": "Update a sub-user (label, status, permissions)",
    "x-summary-tr": "Alt kullanıcıyı güncelle",
    "x-scope": "users",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "label": {
          "type": "string"
         },
         "status": {
          "type": "string",
          "enum": [
           "active",
           "inactive"
          ]
         },
         "permissions": {
          "type": "array",
          "items": {
           "type": "string"
          }
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "Updated",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "delete": {
    "tags": [
     "Panel users"
    ],
    "operationId": "deletePanelUser",
    "summary": "Remove a sub-user",
    "x-summary-tr": "Alt kullanıcıyı sil",
    "x-scope": "users",
    "responses": {
     "200": {
      "description": "Deleted",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/users/{id}/resend-invite": {
   "parameters": [
    {
     "name": "id",
     "in": "path",
     "required": true,
     "schema": {
      "type": "integer"
     }
    }
   ],
   "post": {
    "tags": [
     "Panel users"
    ],
    "operationId": "resendPanelUserInvite",
    "summary": "Resend the invitation e-mail",
    "x-summary-tr": "Daveti yeniden gönder",
    "x-scope": "users",
    "responses": {
     "200": {
      "description": "Sent",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/load-balancer-types": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "listLoadBalancerTypes",
    "summary": "List load balancer sizes and prices",
    "x-summary-tr": "Yük dengeleyici boyutları ve fiyatları",
    "x-scope": "cloud_read",
    "x-cli": {
     "command": "lb types"
    },
    "description": "Orderable sizes (small/medium/large) with limits, regions and EUR prices per cycle (excl. VAT); `list_amount` is the strike-through list price.",
    "x-description-tr": "Sipariş edilebilir boyutlar, sınırlar, bölgeler ve dönem başına EUR fiyatlar (KDV hariç); `list_amount` üstü çizili liste fiyatıdır.",
    "responses": {
     "200": {
      "description": "Sizes",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "product_id": {
              "type": "integer"
             },
             "size": {
              "type": "string"
             },
             "name": {
              "type": "string"
             },
             "limits": {
              "type": "object",
              "additionalProperties": true
             },
             "regions": {
              "type": "array",
              "items": {
               "type": "string"
              }
             },
             "prices": {
              "type": "array",
              "items": {
               "type": "object",
               "additionalProperties": true
              }
             }
            }
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/cloud/load-balancers": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "listLoadBalancers",
    "summary": "List load balancers",
    "x-summary-tr": "Yük dengeleyicileri listele",
    "x-scope": "cloud_read",
    "x-cli": {
     "command": "lb list"
    },
    "parameters": [
     {
      "$ref": "#/components/parameters/Page"
     },
     {
      "$ref": "#/components/parameters/Limit"
     },
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Load balancers",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "$ref": "#/components/schemas/LoadBalancer"
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   },
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "createLoadBalancer",
    "summary": "Order a load balancer",
    "x-summary-tr": "Yük dengeleyici sipariş et",
    "x-scope": "cloud_order",
    "x-cli": {
     "command": "lb create",
     "money": true
    },
    "description": "Orders and pays from the account balance (same money rules as servers): `\"confirm\": true`, an `Idempotency-Key` header, `dry_run` for a quote. Ready in about a minute; then add services and targets.",
    "x-description-tr": "Bakiyeden sipariş + ödeme (sunucularla aynı para kuralları): `\"confirm\": true`, `Idempotency-Key` başlığı, teklif için `dry_run`. Yaklaşık bir dakikada hazır; sonra servis ve hedef ekleyin.",
    "parameters": [
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": false,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "size": {
          "type": "string",
          "enum": [
           "small",
           "medium",
           "large"
          ]
         },
         "product_id": {
          "type": "integer"
         },
         "region": {
          "type": "string",
          "enum": [
           "eu-de-1",
           "eu-de-2",
           "eu-fi-1"
          ],
          "default": "eu-de-1"
         },
         "cycle": {
          "type": "string",
          "default": "monthly"
         },
         "end_customer_id": {
          "type": "integer"
         },
         "dry_run": {
          "type": "boolean"
         },
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Ordered",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "200": {
      "description": "Quote (dry_run)",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/load-balancers/{id}": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "getLoadBalancer",
    "summary": "Get a load balancer",
    "x-summary-tr": "Yük dengeleyiciyi getir",
    "x-scope": "cloud_read",
    "x-cli": {
     "command": "lb get"
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Load balancer",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "$ref": "#/components/schemas/LoadBalancer"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   },
   "delete": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "deleteLoadBalancer",
    "summary": "Delete (cancel) a load balancer",
    "x-summary-tr": "Yük dengeleyiciyi sil (iptal)",
    "x-scope": "cloud_delete",
    "x-cli": {
     "command": "lb delete",
     "confirm": true
    },
    "description": "`confirm=true` required. `immediate=true` cancels now: traffic and billing stop, the load balancer and its certificates are destroyed after the grace period (3 days). Without immediate a cancellation request is filed.",
    "x-description-tr": "`confirm=true` gerekir. `immediate=true` hemen iptal eder: trafik ve faturalama durur, yük dengeleyici ve sertifikaları bekleme süresinden (3 gün) sonra silinir. immediate yoksa iptal talebi açılır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "confirm",
      "in": "query",
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "immediate",
      "in": "query",
      "schema": {
       "type": "boolean"
      }
     }
    ],
    "responses": {
     "202": {
      "description": "Cancelling",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/mailboxes": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__mailboxes",
    "summary": "GET mailboxes (GyroMail)",
    "x-summary-tr": "mailboxes (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `mailboxes`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `mailboxes`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_post_mail__id__mailboxes",
    "summary": "POST mailboxes:create (GyroMail)",
    "x-summary-tr": "mailboxes:create (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `mailboxes`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `mailboxes`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/mailboxes/{local}": {
   "patch": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_patch_mail__id__mailboxes__local",
    "summary": "PATCH mailboxes:edit (GyroMail)",
    "x-summary-tr": "mailboxes:edit (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `mailboxes`, action `edit`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `mailboxes`, eylem `edit`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "local",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Mailbox local part (before @)"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_delete_mail__id__mailboxes__local",
    "summary": "DELETE mailboxes:delete (GyroMail)",
    "x-summary-tr": "mailboxes:delete (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `mailboxes`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `mailboxes`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "local",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Mailbox local part (before @)"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/mailboxes/{local}/password": {
   "post": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_post_mail__id__mailboxes__local__password",
    "summary": "POST mailboxes:password (GyroMail)",
    "x-summary-tr": "mailboxes:password (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `mailboxes`, action `password`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `mailboxes`, eylem `password`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "local",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Mailbox local part (before @)"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/aliases": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__aliases",
    "summary": "GET aliases (GyroMail)",
    "x-summary-tr": "aliases (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `aliases`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `aliases`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_post_mail__id__aliases",
    "summary": "POST aliases:create (GyroMail)",
    "x-summary-tr": "aliases:create (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `aliases`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `aliases`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/aliases/{aid}": {
   "patch": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_patch_mail__id__aliases__aid",
    "summary": "PATCH aliases:edit (GyroMail)",
    "x-summary-tr": "aliases:edit (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `aliases`, action `edit`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `aliases`, eylem `edit`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "aid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_delete_mail__id__aliases__aid",
    "summary": "DELETE aliases:delete (GyroMail)",
    "x-summary-tr": "aliases:delete (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `aliases`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `aliases`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "aid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/catch-all": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__catch_all",
    "summary": "GET catch-all (GyroMail)",
    "x-summary-tr": "catch-all (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `catch-all`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `catch-all`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "put": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_put_mail__id__catch_all",
    "summary": "PUT catch-all:edit (GyroMail)",
    "x-summary-tr": "catch-all:edit (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `catch-all`, action `edit`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `catch-all`, eylem `edit`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/autoresponders": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__autoresponders",
    "summary": "GET autoresponder (GyroMail)",
    "x-summary-tr": "autoresponder (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `autoresponder`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `autoresponder`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/autoresponders/{local}": {
   "put": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_put_mail__id__autoresponders__local",
    "summary": "PUT autoresponder:edit (GyroMail)",
    "x-summary-tr": "autoresponder:edit (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `autoresponder`, action `edit`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `autoresponder`, eylem `edit`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "local",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Mailbox local part (before @)"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_delete_mail__id__autoresponders__local",
    "summary": "DELETE autoresponder:delete (GyroMail)",
    "x-summary-tr": "autoresponder:delete (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `autoresponder`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `autoresponder`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "local",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Mailbox local part (before @)"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/migrations": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__migrations",
    "summary": "GET sync-jobs (GyroMail)",
    "x-summary-tr": "sync-jobs (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `sync-jobs`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `sync-jobs`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_post_mail__id__migrations",
    "summary": "POST sync-jobs:create (GyroMail)",
    "x-summary-tr": "sync-jobs:create (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `sync-jobs`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `sync-jobs`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/migrations/{jid}/run": {
   "post": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_post_mail__id__migrations__jid__run",
    "summary": "POST sync-jobs:run (GyroMail)",
    "x-summary-tr": "sync-jobs:run (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `sync-jobs`, action `run`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `sync-jobs`, eylem `run`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "jid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/migrations/{jid}": {
   "delete": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_delete_mail__id__migrations__jid",
    "summary": "DELETE sync-jobs:delete (GyroMail)",
    "x-summary-tr": "sync-jobs:delete (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `sync-jobs`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `sync-jobs`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "jid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/dns": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__dns",
    "summary": "GET dns-setup (GyroMail)",
    "x-summary-tr": "dns-setup (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `dns-setup`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `dns-setup`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/dns/verify": {
   "post": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_post_mail__id__dns_verify",
    "summary": "POST dns-setup:verify (GyroMail)",
    "x-summary-tr": "dns-setup:verify (GyroMail)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `dns-setup`, action `verify`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `dns-setup`, eylem `verify`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/mail/{id}/spam-filter": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__spam_filter",
    "summary": "GET spam-filter (GyroMail)",
    "x-summary-tr": "spam-filter (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `spam-filter`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `spam-filter`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/delivery-log": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__delivery_log",
    "summary": "GET delivery-log (GyroMail)",
    "x-summary-tr": "delivery-log (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `delivery-log`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `delivery-log`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/quarantine": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__quarantine",
    "summary": "GET quarantine (GyroMail)",
    "x-summary-tr": "quarantine (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `quarantine`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `quarantine`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/deleted": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__deleted",
    "summary": "GET deleted-mail (GyroMail)",
    "x-summary-tr": "deleted-mail (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `deleted-mail`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `deleted-mail`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/archive": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__archive",
    "summary": "GET archive (GyroMail)",
    "x-summary-tr": "archive (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `archive`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `archive`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/two-factor": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__two_factor",
    "summary": "GET two-factor (GyroMail)",
    "x-summary-tr": "two-factor (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `two-factor`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `two-factor`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/mail/{id}/plan": {
   "get": {
    "tags": [
     "Mail"
    ],
    "operationId": "typed_get_mail__id__plan",
    "summary": "GET plan-size (GyroMail)",
    "x-summary-tr": "plan-size (GyroMail)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `plan-size`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `plan-size`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/storage/{id}/buckets": {
   "get": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_get_storage__id__buckets",
    "summary": "GET buckets (GyroDepolama)",
    "x-summary-tr": "buckets (GyroDepolama)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `buckets`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `buckets`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__buckets",
    "summary": "POST buckets:create (GyroDepolama)",
    "x-summary-tr": "buckets:create (GyroDepolama)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `buckets`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `buckets`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}": {
   "delete": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_delete_storage__id__buckets__bucket",
    "summary": "DELETE buckets:delete (GyroDepolama)",
    "x-summary-tr": "buckets:delete (GyroDepolama)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `buckets`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `buckets`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/storage/{id}/keys": {
   "get": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_get_storage__id__keys",
    "summary": "GET access-keys (GyroDepolama)",
    "x-summary-tr": "access-keys (GyroDepolama)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `access-keys`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `access-keys`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__keys",
    "summary": "POST access-keys:create (GyroDepolama)",
    "x-summary-tr": "access-keys:create (GyroDepolama)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `access-keys`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `access-keys`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/storage/{id}/keys/{key}/rotate": {
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__keys__key__rotate",
    "summary": "POST access-keys:rotate (GyroDepolama)",
    "x-summary-tr": "access-keys:rotate (GyroDepolama)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `access-keys`, action `rotate`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `access-keys`, eylem `rotate`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "key",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/storage/{id}/keys/{key}": {
   "delete": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_delete_storage__id__keys__key",
    "summary": "DELETE access-keys:delete (GyroDepolama)",
    "x-summary-tr": "access-keys:delete (GyroDepolama)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `access-keys`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `access-keys`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "key",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/storage/{id}/usage": {
   "get": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_get_storage__id__usage",
    "summary": "GET usage (GyroDepolama)",
    "x-summary-tr": "usage (GyroDepolama)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `usage`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `usage`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/rename": {
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__buckets__bucket__rename",
    "summary": "Rename a bucket",
    "x-summary-tr": "Kova adını değiştir",
    "x-scope": "services_write",
    "description": "Bucket names are private to the service (other customers may use the same name). Data is not moved. S3 access by the old name stops at once; the website moves to `<new>-<service code>.web.gyro-s3.com` and the old website address redirects (301) for 40 days; share links keep working. Max 5 renames per bucket per day; the old name cannot be reused inside the service for 40 days. Needs `\"confirm\": true`.",
    "x-description-tr": "Kova adları hizmete özeldir (aynı adı başka müşteriler de kullanabilir). Veri taşınmaz. Eski adla S3 erişimi hemen durur; web sitesi `<yeni>-<hizmet kodu>.web.gyro-s3.com` olur, eski web adresi 40 gün 301 ile yönlendirilir; paylaşım bağlantıları çalışır. Kova başına günde en çok 5; eski ad 40 gün bu hizmette yeniden kullanılamaz. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "new_name": {
          "type": "string"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "new_name"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "storage bucket rename",
     "confirm": true
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/objects": {
   "get": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_get_storage__id__buckets__bucket__objects",
    "summary": "List objects in a bucket folder",
    "x-summary-tr": "Kova klasöründeki nesneleri listele",
    "x-scope": "services_read",
    "description": "One page (200) of a folder: `folders` (common prefixes) and `files` (key, size, modified). Pass `next` from the previous page to continue.",
    "x-description-tr": "Bir klasörün bir sayfası (200): `folders` ve `files` (anahtar, boyut, tarih). Devam için önceki sayfanın `next` değerini verin.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     },
     {
      "name": "prefix",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Folder, ends with / (empty = root)"
     },
     {
      "name": "search",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Name prefix inside the folder"
     },
     {
      "name": "next",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Continuation token"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "storage object list",
     "confirm": false
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/objects/upload-url": {
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__buckets__bucket__objects_upload_url",
    "summary": "Presigned upload URLs",
    "x-summary-tr": "İmzalı yükleme adresleri",
    "x-scope": "services_write",
    "description": "Up to 100 files per call, max 5 GiB each. PUT the file body to each `url` within 15 minutes; data never passes through the API. Larger files: any S3 client (multipart).",
    "x-description-tr": "Çağrı başına en çok 100 dosya, dosya başına 5 GiB. Dosyayı 15 dakika içinde her `url` adresine PUT edin; veri API'den geçmez. Büyük dosyalar: herhangi bir S3 istemcisi (multipart).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "prefix": {
          "type": "string",
          "description": "Target folder (ends with /)"
         },
         "items": {
          "type": "array",
          "items": {
           "type": "object",
           "properties": {
            "name": {
             "type": "string"
            },
            "size": {
             "type": "integer"
            }
           },
           "required": [
            "name",
            "size"
           ]
          }
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "items"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "storage object upload-url",
     "confirm": false
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/objects/download-url": {
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__buckets__bucket__objects_download_url",
    "summary": "Presigned download URL",
    "x-summary-tr": "İmzalı indirme adresi",
    "x-scope": "services_write",
    "description": "Returns a 15-minute GET URL (Content-Disposition: attachment). Downloads count toward the service's monthly traffic.",
    "x-description-tr": "15 dakikalık GET adresi döner (Content-Disposition: attachment). İndirmeler hizmetin aylık trafiğinden düşer.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "key": {
          "type": "string",
          "description": "Object key"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "key"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "storage object download-url",
     "confirm": false
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/objects/delete": {
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__buckets__bucket__objects_delete",
    "summary": "Delete objects",
    "x-summary-tr": "Nesneleri sil",
    "x-scope": "services_write",
    "description": "Deletes up to 1000 keys in one call. Needs `\"confirm\": true`.",
    "x-description-tr": "Tek çağrıda en çok 1000 anahtar siler. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "keys": {
          "type": "array",
          "items": {
           "type": "string"
          }
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "keys"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "storage object delete",
     "confirm": true
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/folders": {
   "post": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_post_storage__id__buckets__bucket__folders",
    "summary": "Create a folder",
    "x-summary-tr": "Klasör oluştur",
    "x-scope": "services_write",
    "description": "Creates an empty folder marker `prefix + name + /`.",
    "x-description-tr": "Boş klasör işareti `prefix + name + /` oluşturur.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "prefix": {
          "type": "string"
         },
         "name": {
          "type": "string"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "name"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "storage folder create",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_delete_storage__id__buckets__bucket__folders",
    "summary": "Delete a folder with its contents",
    "x-summary-tr": "Klasörü içindekilerle sil",
    "x-scope": "services_write",
    "description": "Deletes every object under `prefix` (query). Large folders are deleted in batches: repeat while `more` is true. Needs `\"confirm\": true`.",
    "x-description-tr": "`prefix` (sorgu) altındaki tüm nesneleri siler. Büyük klasörler parça parça silinir: `more` true olduğu sürece tekrarlayın. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     },
     {
      "name": "prefix",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Folder, ends with /"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        },
        "required": []
       }
      }
     }
    },
    "x-cli": {
     "command": "storage folder delete",
     "confirm": true
    }
   }
  },
  "/cloud/storage/{id}/buckets/{bucket}/folders/count": {
   "get": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_get_storage__id__buckets__bucket__folders_count",
    "summary": "Count objects in a folder",
    "x-summary-tr": "Klasördeki nesneleri say",
    "x-scope": "services_read",
    "description": "Number of objects under `prefix` (`more` = over 100000 or time limit).",
    "x-description-tr": "`prefix` altındaki nesne sayısı (`more` = 100000 üstü ya da süre sınırı).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "bucket",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     },
     {
      "name": "prefix",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Folder, ends with /"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "storage folder count",
     "confirm": false
    }
   }
  },
  "/cloud/storage/{id}/connect": {
   "get": {
    "tags": [
     "Object storage"
    ],
    "operationId": "typed_get_storage__id__connect",
    "summary": "GET connect (GyroDepolama)",
    "x-summary-tr": "connect (GyroDepolama)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `connect`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `connect`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/monitors/{id}/monitors": {
   "get": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_get_monitors__id__monitors",
    "summary": "GET monitors (GyroMonitor)",
    "x-summary-tr": "monitors (GyroMonitor)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `monitors`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `monitors`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_post_monitors__id__monitors",
    "summary": "POST monitors:create (GyroMonitor)",
    "x-summary-tr": "monitors:create (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `monitors`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `monitors`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/monitors/{mid}": {
   "patch": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_patch_monitors__id__monitors__mid",
    "summary": "PATCH monitors:edit (GyroMonitor)",
    "x-summary-tr": "monitors:edit (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `monitors`, action `edit`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `monitors`, eylem `edit`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "mid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_delete_monitors__id__monitors__mid",
    "summary": "DELETE monitors:delete (GyroMonitor)",
    "x-summary-tr": "monitors:delete (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `monitors`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `monitors`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "mid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/monitors/{mid}/pause": {
   "post": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_post_monitors__id__monitors__mid__pause",
    "summary": "POST monitors:pause (GyroMonitor)",
    "x-summary-tr": "monitors:pause (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `monitors`, action `pause`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `monitors`, eylem `pause`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "mid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/monitors/{mid}/resume": {
   "post": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_post_monitors__id__monitors__mid__resume",
    "summary": "POST monitors:resume (GyroMonitor)",
    "x-summary-tr": "monitors:resume (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `monitors`, action `resume`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `monitors`, eylem `resume`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "mid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": ""
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/channels": {
   "get": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_get_monitors__id__channels",
    "summary": "GET channels (GyroMonitor)",
    "x-summary-tr": "channels (GyroMonitor)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `channels`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `channels`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_post_monitors__id__channels",
    "summary": "POST channels:create (GyroMonitor)",
    "x-summary-tr": "channels:create (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `channels`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `channels`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/channels/{cid}": {
   "delete": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_delete_monitors__id__channels__cid",
    "summary": "DELETE channels:delete (GyroMonitor)",
    "x-summary-tr": "channels:delete (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `channels`, action `delete`. Body fields are the tool's own fields. Needs `\"confirm\": true`.",
    "x-description-tr": "Genel köprünün kısayolu: araç `channels`, eylem `delete`. Gövde alanları aracın kendi alanlarıdır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "cid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Certificate id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/heartbeats": {
   "get": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_get_monitors__id__heartbeats",
    "summary": "GET heartbeats (GyroMonitor)",
    "x-summary-tr": "heartbeats (GyroMonitor)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `heartbeats`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `heartbeats`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   },
   "post": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_post_monitors__id__heartbeats",
    "summary": "POST heartbeats:create (GyroMonitor)",
    "x-summary-tr": "heartbeats:create (GyroMonitor)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `heartbeats`, action `create`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `heartbeats`, eylem `create`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/cloud/monitors/{id}/status-pages": {
   "get": {
    "tags": [
     "Monitoring (uptime)"
    ],
    "operationId": "typed_get_monitors__id__status_pages",
    "summary": "GET status-pages (GyroMonitor)",
    "x-summary-tr": "status-pages (GyroMonitor)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `status-pages`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `status-pages`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/load-balancers/{id}/services": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_get_load_balancers__id__services",
    "summary": "List services (ports) of a load balancer",
    "x-summary-tr": "Yük dengeleyicinin servislerini (portlarını) listele",
    "x-scope": "services_read",
    "description": "Services with health check and HTTP options, plus the certificates of this load balancer and its limits.",
    "x-description-tr": "Servisler, sağlık kontrolü ve HTTP seçenekleriyle; ayrıca sertifikalar ve sınırlar.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "lb service list",
     "confirm": false
    }
   },
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_post_load_balancers__id__services",
    "summary": "Add a service",
    "x-summary-tr": "Servis ekle",
    "x-scope": "services_write",
    "description": "Adds a listener. HTTPS needs at least one certificate of this load balancer; TLS ends at the load balancer and targets get HTTP. Use TCP 443 for passthrough.",
    "x-description-tr": "Dinleyici ekler. HTTPS en az bir sertifika ister; TLS yük dengeleyicide sonlanır, hedeflere HTTP gider. Şifreli geçiş için TCP 443.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "protocol": {
          "type": "string",
          "enum": [
           "tcp",
           "http",
           "https"
          ]
         },
         "listen_port": {
          "type": "integer",
          "description": "Port the load balancer listens on"
         },
         "destination_port": {
          "type": "integer",
          "description": "Port on the targets"
         },
         "proxyprotocol": {
          "type": "boolean",
          "description": "Send PROXY protocol header to targets"
         },
         "hc_protocol": {
          "type": "string",
          "enum": [
           "tcp",
           "http"
          ],
          "description": "Health check type"
         },
         "hc_port": {
          "type": "integer"
         },
         "hc_interval": {
          "type": "integer",
          "description": "3-60 s"
         },
         "hc_timeout": {
          "type": "integer",
          "description": "1-30 s, below interval"
         },
         "hc_retries": {
          "type": "integer",
          "description": "0-5"
         },
         "hc_path": {
          "type": "string",
          "description": "HTTP check path (starts with /)"
         },
         "hc_domain": {
          "type": "string",
          "description": "HTTP check Host header"
         },
         "hc_status_codes": {
          "type": "string",
          "description": "Comma separated, e.g. 2??,3??"
         },
         "hc_tls": {
          "type": "boolean",
          "description": "HTTP check over TLS"
         },
         "sticky": {
          "type": "boolean",
          "description": "Sticky sessions (cookie)"
         },
         "cookie_name": {
          "type": "string"
         },
         "cookie_lifetime": {
          "type": "integer"
         },
         "idle_timeout": {
          "type": "integer",
          "description": "Idle timeout (s)"
         },
         "certificates": {
          "type": "string",
          "description": "HTTPS: comma separated certificate ids of this load balancer"
         },
         "redirect_http": {
          "type": "boolean",
          "description": "HTTPS: redirect port 80 to HTTPS (port 80 must be free)"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "protocol",
         "listen_port",
         "destination_port"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb service add",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/services/{port}": {
   "patch": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_patch_load_balancers__id__services__port",
    "summary": "Update a service",
    "x-summary-tr": "Servisi güncelle",
    "x-scope": "services_write",
    "description": "Changes options of the service on {port}. The protocol cannot change (delete and add).",
    "x-description-tr": "{port} servisinin seçeneklerini değiştirir. Protokol değişmez (silip ekleyin).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "port",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Listen port"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "destination_port": {
          "type": "integer",
          "description": "Port on the targets"
         },
         "proxyprotocol": {
          "type": "boolean",
          "description": "Send PROXY protocol header to targets"
         },
         "hc_protocol": {
          "type": "string",
          "enum": [
           "tcp",
           "http"
          ],
          "description": "Health check type"
         },
         "hc_port": {
          "type": "integer"
         },
         "hc_interval": {
          "type": "integer",
          "description": "3-60 s"
         },
         "hc_timeout": {
          "type": "integer",
          "description": "1-30 s, below interval"
         },
         "hc_retries": {
          "type": "integer",
          "description": "0-5"
         },
         "hc_path": {
          "type": "string",
          "description": "HTTP check path (starts with /)"
         },
         "hc_domain": {
          "type": "string",
          "description": "HTTP check Host header"
         },
         "hc_status_codes": {
          "type": "string",
          "description": "Comma separated, e.g. 2??,3??"
         },
         "hc_tls": {
          "type": "boolean",
          "description": "HTTP check over TLS"
         },
         "sticky": {
          "type": "boolean",
          "description": "Sticky sessions (cookie)"
         },
         "cookie_name": {
          "type": "string"
         },
         "cookie_lifetime": {
          "type": "integer"
         },
         "idle_timeout": {
          "type": "integer",
          "description": "Idle timeout (s)"
         },
         "certificates": {
          "type": "string",
          "description": "HTTPS: comma separated certificate ids of this load balancer"
         },
         "redirect_http": {
          "type": "boolean",
          "description": "HTTPS: redirect port 80 to HTTPS (port 80 must be free)"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": []
       }
      }
     }
    },
    "x-cli": {
     "command": "lb service update",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_delete_load_balancers__id__services__port",
    "summary": "Delete a service",
    "x-summary-tr": "Servisi sil",
    "x-scope": "services_write",
    "description": "Stops listening on {port}. Needs `\"confirm\": true`.",
    "x-description-tr": "{port} portundaki dinlemeyi durdurur. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "port",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Listen port"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "lb service delete",
     "confirm": true
    }
   }
  },
  "/cloud/load-balancers/{id}/targets": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_get_load_balancers__id__targets",
    "summary": "List targets with health",
    "x-summary-tr": "Hedefleri sağlık durumuyla listele",
    "x-scope": "services_read",
    "description": "Targets, per-service health (healthy/unhealthy/unknown), and the cloud servers / dedicated IPs that can be added.",
    "x-description-tr": "Hedefler, servis başına sağlık durumu ve eklenebilecek bulut sunucular / fiziksel sunucu IP'leri.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "lb target list",
     "confirm": false
    }
   },
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_post_load_balancers__id__targets",
    "summary": "Add a target",
    "x-summary-tr": "Hedef ekle",
    "x-scope": "services_write",
    "description": "type=server (server = your cloud server id, same region), type=all (all your cloud servers, new ones join automatically) or type=ip (your dedicated server IP). use_private_ip needs a private network attached.",
    "x-description-tr": "type=server (server = bulut sunucu hizmet no, aynı bölge), type=all (tüm bulut sunucularınız, yeniler otomatik) ya da type=ip (fiziksel sunucu IP'niz). use_private_ip için özel ağ bağlı olmalı.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "enum": [
           "server",
           "all",
           "ip"
          ]
         },
         "server": {
          "type": "integer",
          "description": "Cloud server id (type=server)"
         },
         "ip": {
          "type": "string",
          "description": "Dedicated server IP (type=ip)"
         },
         "use_private_ip": {
          "type": "boolean"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "type"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb target add",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_delete_load_balancers__id__targets",
    "summary": "Remove a target",
    "x-summary-tr": "Hedefi çıkar",
    "x-scope": "services_write",
    "description": "Same fields as add, in the query string (?type=server&server=123&confirm=true) or the JSON body. Needs `\"confirm\": true`.",
    "x-description-tr": "Eklemedeki alanlar; sorguda (?type=server&server=123&confirm=true) ya da JSON gövdede. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "type",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "server | all | ip"
     },
     {
      "name": "server",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Cloud server id"
     },
     {
      "name": "ip",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Dedicated server IP"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string"
         },
         "server": {
          "type": "integer"
         },
         "ip": {
          "type": "string"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": []
       }
      }
     }
    },
    "x-cli": {
     "command": "lb target remove",
     "confirm": true
    }
   }
  },
  "/cloud/load-balancers/{id}/certificates": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_get_load_balancers__id__certificates",
    "summary": "List certificates",
    "x-summary-tr": "Sertifikaları listele",
    "x-scope": "services_read",
    "description": "Uploaded and Let's Encrypt certificates (Let's Encrypt ones renew automatically), a pending Let's Encrypt request and the validation redirect base URL.",
    "x-description-tr": "Yüklenen ve Let's Encrypt sertifikaları (Let's Encrypt kendiliğinden yenilenir), bekleyen istek ve doğrulama yönlendirme adresi.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "lb cert list",
     "confirm": false
    }
   },
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_post_load_balancers__id__certificates",
    "summary": "Upload a certificate",
    "x-summary-tr": "Sertifika yükle",
    "x-scope": "services_write",
    "description": "PEM certificate chain + unencrypted private key. The key is sent to the load balancer only; it is never stored or logged by the panel.",
    "x-description-tr": "PEM sertifika zinciri + şifresiz özel anahtar. Anahtar yalnız yük dengeleyiciye gönderilir; panelde saklanmaz, loglanmaz.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string"
         },
         "certificate": {
          "type": "string",
          "description": "PEM chain"
         },
         "private_key": {
          "type": "string",
          "description": "PEM key (unencrypted)"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "certificate",
         "private_key"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb cert upload",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/certificates/letsencrypt": {
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_post_load_balancers__id__certificates_letsencrypt",
    "summary": "Request a free Let's Encrypt certificate",
    "x-summary-tr": "Ücretsiz Let's Encrypt sertifikası iste",
    "x-scope": "services_write",
    "description": "Up to 10 names whose A record points to this load balancer. Your targets must redirect /.well-known/acme-challenge/<token> to the redirect base shown in GET certificates; answer `acme=waiting` lists the per-name check, fix the redirect and call verify.",
    "x-description-tr": "A kaydı bu yük dengeleyiciye yönlenmiş en çok 10 ad. Hedefleriniz /.well-known/acme-challenge/<token> isteklerini GET certificates'taki adrese yönlendirmeli; `acme=waiting` yanıtı ad başına kontrolü verir, yönlendirmeyi düzeltip verify çağırın.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "domains": {
          "type": "string",
          "description": "Comma separated names"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "domains"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb cert letsencrypt",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_delete_load_balancers__id__certificates_letsencrypt",
    "summary": "Cancel a pending Let's Encrypt request",
    "x-summary-tr": "Bekleyen Let's Encrypt isteğini iptal et",
    "x-scope": "services_write",
    "description": "Drops the pending order. Needs `\"confirm\": true`.",
    "x-description-tr": "Bekleyen isteği bırakır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "lb cert cancel",
     "confirm": true
    }
   }
  },
  "/cloud/load-balancers/{id}/certificates/letsencrypt/verify": {
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_post_load_balancers__id__certificates_letsencrypt_verify",
    "summary": "Continue a pending Let's Encrypt request",
    "x-summary-tr": "Bekleyen Let's Encrypt isteğini sürdür",
    "x-scope": "services_write",
    "description": "Re-checks the redirect, lets the CA validate and uploads the certificate (`acme=issued`).",
    "x-description-tr": "Yönlendirmeyi yeniden dener, doğrulatır ve sertifikayı yükler (`acme=issued`).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "lb cert verify",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/certificates/{cid}": {
   "delete": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_delete_load_balancers__id__certificates__cid",
    "summary": "Delete a certificate",
    "x-summary-tr": "Sertifikayı sil",
    "x-scope": "services_write",
    "description": "Only certificates not used by a service. Needs `\"confirm\": true`.",
    "x-description-tr": "Yalnız bir serviste kullanılmayan sertifikalar. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "cid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Certificate id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "lb cert delete",
     "confirm": true
    }
   }
  },
  "/cloud/load-balancers/{id}/settings": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_get_load_balancers__id__settings",
    "summary": "Algorithm, reverse DNS, private network",
    "x-summary-tr": "Algoritma, ters DNS, özel ağ",
    "x-scope": "services_read",
    "description": "Current algorithm, PTR records, your private networks in the same region (attached or not) and limits.",
    "x-description-tr": "Algoritma, PTR kayıtları, aynı bölgedeki özel ağlarınız ve sınırlar.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "lb settings",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/algorithm": {
   "put": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_put_load_balancers__id__algorithm",
    "summary": "Change the balancing algorithm",
    "x-summary-tr": "Dağıtım algoritmasını değiştir",
    "x-scope": "services_write",
    "description": "round_robin or least_connections.",
    "x-description-tr": "round_robin ya da least_connections.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "algorithm": {
          "type": "string",
          "enum": [
           "round_robin",
           "least_connections"
          ]
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "algorithm"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb algorithm set",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/rdns": {
   "put": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_put_load_balancers__id__rdns",
    "summary": "Set reverse DNS",
    "x-summary-tr": "Ters DNS ayarla",
    "x-scope": "services_write",
    "description": "PTR for one of the load balancer's IPs; empty ptr restores the default.",
    "x-description-tr": "Yük dengeleyici IP'lerinden biri için PTR; boş değer varsayılana döndürür.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "ip": {
          "type": "string"
         },
         "ptr": {
          "type": "string"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "ip"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb rdns set",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/network": {
   "post": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_post_load_balancers__id__network",
    "summary": "Attach to a private network",
    "x-summary-tr": "Özel ağa bağla",
    "x-scope": "services_write",
    "description": "One of your private networks in the same region (GET settings).",
    "x-description-tr": "Aynı bölgedeki özel ağlarınızdan biri (GET settings).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "network": {
          "type": "integer"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "network"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "lb network attach",
     "confirm": false
    }
   }
  },
  "/cloud/load-balancers/{id}/network/{nid}": {
   "delete": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_delete_load_balancers__id__network__nid",
    "summary": "Detach from a private network",
    "x-summary-tr": "Özel ağdan ayır",
    "x-scope": "services_write",
    "description": "Targets that use private IPs must be removed first. Needs `\"confirm\": true`.",
    "x-description-tr": "Özel IP kullanan hedefler önce çıkarılmalı. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "nid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Private network id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "lb network detach",
     "confirm": true
    }
   }
  },
  "/cloud/load-balancers/{id}/metrics": {
   "get": {
    "tags": [
     "Load balancers"
    ],
    "operationId": "typed_get_load_balancers__id__metrics",
    "summary": "Load balancer metrics",
    "x-summary-tr": "Yük dengeleyici ölçümleri",
    "x-scope": "services_read",
    "description": "Open connections, new connections/s, requests/s, bandwidth in/out (Mbit/s).",
    "x-description-tr": "Açık bağlantı, yeni bağlantı/sn, istek/sn, bant genişliği (Mbit/s).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "period",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "24h | 7d | 30d"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "lb metrics",
     "confirm": false
    }
   }
  },
  "/cloud/dns/{id}/zones": {
   "get": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_get_dns__id__zones",
    "summary": "List DNS zones",
    "x-summary-tr": "DNS zone'larını listele",
    "x-scope": "services_read",
    "description": "Zones of this DNS service (`items`, state active|pending with the TXT verification token), read-only zones copied from your cPanel hosting (`cpanel`), plan limits and our name servers.",
    "x-description-tr": "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.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "dns zone list",
     "confirm": false
    }
   },
   "post": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_post_dns__id__zones",
    "summary": "Add a zone",
    "x-summary-tr": "Zone ekle",
    "x-scope": "services_write",
    "description": "Claims a domain. It is published on ns1/ns2.gyrodns.net after ownership is verified: delegation to our name servers (immediate when already delegated) or the TXT record `_gyrodns-dogrulama.<zone>` = `txt_value` at your current DNS. Optional `bind` (zone file) is imported on activation (SOA and apex NS are ignored).",
    "x-description-tr": "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).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "Zone name (IDN allowed)"
         },
         "bind": {
          "type": "string",
          "description": "Optional BIND zone file (max 2 MB)"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "name"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "dns zone create",
     "confirm": false
    }
   }
  },
  "/cloud/dns/{id}/zones/{zone}": {
   "get": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_get_dns__id__zones__zone",
    "summary": "Get a zone with its records",
    "x-summary-tr": "Zone'u kayıtlarıyla getir",
    "x-scope": "services_read",
    "description": "Zone state, serial, DNSSEC flag (+DS) and all record sets. Pending zones return the verification details.",
    "x-description-tr": "Zone durumu, seri, DNSSEC (+DS) ve tüm kayıt kümeleri. Bekleyen zone'larda doğrulama bilgisi döner.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "dns zone get",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_delete_dns__id__zones__zone",
    "summary": "Delete a zone",
    "x-summary-tr": "Zone'u sil",
    "x-scope": "services_write",
    "description": "Removes the zone and its health checks from our name servers at once. Needs `\"confirm\": true`.",
    "x-description-tr": "Zone'u ve sağlık kontrollerini ad sunucularımızdan hemen kaldırır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "dns zone delete",
     "confirm": true
    }
   }
  },
  "/cloud/dns/{id}/zones/{zone}/verify": {
   "post": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_post_dns__id__zones__zone__verify",
    "summary": "Verify ownership now",
    "x-summary-tr": "Sahipliği şimdi doğrula",
    "x-scope": "services_write",
    "description": "Checks delegation / TXT now (the system also re-checks automatically for 14 days).",
    "x-description-tr": "Devri / TXT'yi şimdi kontrol eder (sistem 14 gün boyunca kendiliğinden de kontrol eder).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "dns zone verify",
     "confirm": false
    }
   }
  },
  "/cloud/dns/{id}/zones/{zone}/import": {
   "post": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_post_dns__id__zones__zone__import",
    "summary": "Import a BIND zone file",
    "x-summary-tr": "BIND zone dosyası içe aktar",
    "x-scope": "services_write",
    "description": "`merge` replaces record sets present in the file and keeps the others; `replace` also deletes record sets not in the file. SOA and apex NS are ignored; unsupported types are listed in `skipped`. Needs `\"confirm\": true`.",
    "x-description-tr": "`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.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "bind": {
          "type": "string"
         },
         "mode": {
          "type": "string",
          "enum": [
           "merge",
           "replace"
          ],
          "default": "merge"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "bind"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "dns zone import",
     "confirm": true
    }
   }
  },
  "/cloud/dns/{id}/zones/{zone}/export": {
   "get": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_get_dns__id__zones__zone__export",
    "summary": "Export the zone file",
    "x-summary-tr": "Zone dosyasını dışa aktar",
    "x-scope": "services_read",
    "description": "Returns the zone in BIND format (`bind`).",
    "x-description-tr": "Zone'u BIND biçiminde döner (`bind`).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "dns zone export",
     "confirm": false
    }
   }
  },
  "/cloud/dns/{id}/zones/{zone}/records": {
   "get": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_get_dns__id__zones__zone__records",
    "summary": "List record sets",
    "x-summary-tr": "Kayıt kümelerini listele",
    "x-scope": "services_read",
    "description": "All record sets (`rrsets`: name, type, ttl, records, read_only, health_check). `source=cpanel` reads a zone of your cPanel hosting (read only).",
    "x-description-tr": "Tüm kayıt kümeleri (`rrsets`). `source=cpanel` cPanel hosting zone'unuzu okur (salt okunur).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     },
     {
      "name": "source",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "gyrodns (default) | cpanel"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "dns rrset list",
     "confirm": false
    }
   },
   "put": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_put_dns__id__zones__zone__records",
    "summary": "Create or replace a record set",
    "x-summary-tr": "Kayıt kümesi oluştur ya da değiştir",
    "x-scope": "services_write",
    "description": "Upserts one record set (name + type). CNAME and ALIAS take one value; no CNAME at the apex (use ALIAS); apex NS and SOA are managed by us.",
    "x-description-tr": "Bir kayıt kümesini (ad + tip) yazar. CNAME ve ALIAS tek değer alır; kökte CNAME olmaz (ALIAS kullanın); kök NS ve SOA bizde.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "Record name relative to the zone (@ = apex, * = wildcard) or FQDN with trailing dot"
         },
         "type": {
          "type": "string",
          "enum": [
           "A",
           "AAAA",
           "CNAME",
           "MX",
           "TXT",
           "SRV",
           "CAA",
           "ALIAS",
           "NS",
           "PTR"
          ]
         },
         "ttl": {
          "type": "integer",
          "description": "60-86400 s"
         },
         "records": {
          "type": "array",
          "items": {
           "type": "string"
          },
          "description": "Values in zone file syntax, one per item (TXT quotes optional)"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "name",
         "type",
         "records"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "dns rrset set",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_delete_dns__id__zones__zone__records",
    "summary": "Delete a record set",
    "x-summary-tr": "Kayıt kümesini sil",
    "x-scope": "services_write",
    "description": "Deletes the record set given by `name` and `type` (query). Needs `\"confirm\": true`.",
    "x-description-tr": "`name` ve `type` (sorgu) ile verilen kayıt kümesini siler. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     },
     {
      "name": "name",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Record name"
     },
     {
      "name": "type",
      "in": "query",
      "required": false,
      "schema": {
       "type": "string"
      },
      "description": "Record type"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        },
        "required": []
       }
      }
     }
    },
    "x-cli": {
     "command": "dns rrset delete",
     "confirm": true
    }
   }
  },
  "/cloud/dns/{id}/zones/{zone}/dnssec": {
   "get": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_get_dns__id__zones__zone__dnssec",
    "summary": "DNSSEC status and DS records",
    "x-summary-tr": "DNSSEC durumu ve DS kayıtları",
    "x-scope": "services_read",
    "description": "`dnssec` flag and `ds` (enter at your registrar).",
    "x-description-tr": "`dnssec` ve `ds` (kayıt firmasına girilecek).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "dns dnssec status",
     "confirm": false
    }
   },
   "post": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_post_dns__id__zones__zone__dnssec",
    "summary": "Enable DNSSEC",
    "x-summary-tr": "DNSSEC aç",
    "x-scope": "services_write",
    "description": "Signs the zone (ECDSA P-256) and returns the DS records. No effect until the DS is at the registrar. Not with ALIAS records.",
    "x-description-tr": "Zone'u imzalar (ECDSA P-256), DS kayıtlarını döner. DS kayıt firmasına girilene kadar etkisizdir. ALIAS ile kullanılamaz.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    },
    "x-cli": {
     "command": "dns dnssec enable",
     "confirm": false
    }
   },
   "delete": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_delete_dns__id__zones__zone__dnssec",
    "summary": "Disable DNSSEC",
    "x-summary-tr": "DNSSEC kapat",
    "x-scope": "services_write",
    "description": "Remove the DS at your registrar and wait for its TTL first, otherwise validating resolvers fail. Needs `\"confirm\": true`.",
    "x-description-tr": "Önce kayıt firmasındaki DS'yi silip TTL kadar bekleyin, yoksa doğrulayan çözümleyiciler hata verir. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "zone",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Zone name"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        },
        "required": []
       }
      }
     }
    },
    "x-cli": {
     "command": "dns dnssec disable",
     "confirm": true
    }
   }
  },
  "/cloud/dns/{id}/health-checks": {
   "get": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_get_dns__id__health_checks",
    "summary": "List health-checked records",
    "x-summary-tr": "Sağlık kontrollü kayıtları listele",
    "x-scope": "services_read",
    "description": "Checks with primary/backup IP, which one is active and the last state (gmon majority of 3 locations).",
    "x-description-tr": "Ana/yedek IP, etkin olan ve son durum (3 lokasyon çoğunluğu).",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "x-cli": {
     "command": "dns health list",
     "confirm": false
    }
   },
   "post": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_post_dns__id__health_checks",
    "summary": "Create a health-checked record",
    "x-summary-tr": "Sağlık kontrollü kayıt oluştur",
    "x-scope": "services_write",
    "description": "Points `name` (A/AAAA) to `primary`; when the check fails from the majority of locations the record switches to `backup`, and back after 3 good passes. Uses one health-check add-on unit.",
    "x-description-tr": "`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.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "zone": {
          "type": "string"
         },
         "name": {
          "type": "string"
         },
         "type": {
          "type": "string",
          "enum": [
           "A",
           "AAAA"
          ]
         },
         "primary": {
          "type": "string"
         },
         "backup": {
          "type": "string"
         },
         "check": {
          "type": "string",
          "enum": [
           "http",
           "https",
           "tcp",
           "ping"
          ]
         },
         "port": {
          "type": "integer"
         },
         "path": {
          "type": "string"
         },
         "ttl": {
          "type": "integer",
          "description": "30-300 s"
         },
         "confirm": {
          "type": "boolean"
         }
        },
        "required": [
         "zone",
         "name",
         "type",
         "primary",
         "backup",
         "check"
        ]
       }
      }
     }
    },
    "x-cli": {
     "command": "dns health create",
     "confirm": false
    }
   }
  },
  "/cloud/dns/{id}/health-checks/{hid}": {
   "delete": {
    "tags": [
     "Managed DNS"
    ],
    "operationId": "typed_delete_dns__id__health_checks__hid",
    "summary": "Delete a health check",
    "x-summary-tr": "Sağlık kontrolünü sil",
    "x-scope": "services_write",
    "description": "Stops checking; the record keeps its current value. Needs `\"confirm\": true`.",
    "x-description-tr": "Kontrol durur; kayıt mevcut değerinde kalır. `\"confirm\": true` gerekir.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     },
     {
      "name": "hid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "Health check id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        },
        "required": []
       }
      }
     }
    },
    "x-cli": {
     "command": "dns health delete",
     "confirm": true
    }
   }
  },
  "/cloud/licenses/{id}": {
   "get": {
    "tags": [
     "Licenses"
    ],
    "operationId": "typed_get_licenses__id",
    "summary": "GET method license_status (LisansAPP)",
    "x-summary-tr": "method license_status (LisansAPP)",
    "x-scope": "services_read",
    "description": "Typed shortcut of the generic bridge: tool `license_status`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `license_status`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "200": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    }
   }
  },
  "/cloud/licenses/{id}/change-ip": {
   "post": {
    "tags": [
     "Licenses"
    ],
    "operationId": "typed_post_licenses__id__change_ip",
    "summary": "POST method change_ip (LisansAPP)",
    "x-summary-tr": "method change_ip (LisansAPP)",
    "x-scope": "services_write",
    "description": "Typed shortcut of the generic bridge: tool `change_ip`. Body fields are the tool's own fields.",
    "x-description-tr": "Genel köprünün kısayolu: araç `change_ip`. Gövde alanları aracın kendi alanlarıdır.",
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      },
      "description": "Service id"
     }
    ],
    "responses": {
     "202": {
      "description": "Tool data / result",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "409": {
      "$ref": "#/components/responses/Conflict"
     },
     "422": {
      "$ref": "#/components/responses/Validation"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
         "confirm": {
          "type": "boolean"
         }
        }
       }
      }
     }
    }
   }
  },
  "/ping": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "corePing",
    "summary": "Ping",
    "x-summary-tr": "Ping",
    "x-scope": "System/Ping",
    "x-generated": "core-catalog",
    "description": "Ping. \n\nCore WISECP client endpoint.",
    "x-description-tr": "",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/reference/countries": {
   "get": {
    "tags": [
     "Reference data"
    ],
    "operationId": "coreGetCountries",
    "summary": "List countries",
    "x-summary-tr": "Get countries",
    "x-scope": "Reference/GetCountries",
    "x-generated": "core-catalog",
    "description": "List countries. \n\nCore WISECP client endpoint.",
    "x-description-tr": "",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/reference/countries/{code}/states": {
   "get": {
    "tags": [
     "Reference data"
    ],
    "operationId": "coreGetStates",
    "summary": "List states (path: {code})",
    "x-summary-tr": "Get states",
    "x-scope": "Reference/GetStates",
    "x-generated": "core-catalog",
    "description": "List states (path: {code}). \n\nCore WISECP client endpoint.",
    "x-description-tr": "",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    },
    "parameters": [
     {
      "name": "code",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/reference/states/{id}/cities": {
   "get": {
    "tags": [
     "Reference data"
    ],
    "operationId": "coreGetCities",
    "summary": "List cities (path: {id})",
    "x-summary-tr": "Get cities",
    "x-scope": "Reference/GetCities",
    "x-generated": "core-catalog",
    "description": "List cities (path: {id}). \n\nCore WISECP client endpoint.",
    "x-description-tr": "",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/me": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "coreGetMe",
    "summary": "Get me",
    "x-summary-tr": "Profili Okuma",
    "x-scope": "Account/GetMe",
    "x-generated": "core-catalog",
    "description": "Get me. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/anahtarin-hesabi).",
    "x-description-tr": "Anahtarın sahibi olan müşterinin profilini döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    }
   },
   "patch": {
    "tags": [
     "Account"
    ],
    "operationId": "coreUpdateMe",
    "summary": "Update me",
    "x-summary-tr": "Profili Güncelleme",
    "x-scope": "Account/UpdateMe",
    "x-generated": "core-catalog",
    "description": "Update me. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/anahtarin-hesabi).",
    "x-description-tr": "Gönderdiğiniz profil alanlarını değiştirir. — operatör kapısı",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "avatar_url_not_allowed, birthday_required, company_name_required, company_requires_corporate, custom_field_required, field_not_editable, field_too_long, kind_invalid, language_invalid, name_required, nothing_to_update",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "Adı. Boşaltılamaz."
         },
         "surname": {
          "type": "string",
          "description": "Soyadı. Boşaltılamaz."
         },
         "kind": {
          "type": "string",
          "description": "Hesap türü. Bireysele geçmek şirket bilgilerini temizler."
         },
         "company": {
          "type": "object",
          "description": "Şirket bilgileri. Hesabın kurumsal olmasını gerektirir."
         },
         "birthday": {
          "type": "string",
          "description": "Doğum tarihi."
         },
         "identity": {
          "type": "string",
          "description": "Kimlik numarası."
         },
         "landline_phone": {
          "type": "string",
          "description": "Sabit telefon."
         },
         "language": {
          "type": "string",
          "description": "Dil kodu. Kurulumda bulunmalıdır."
         },
         "country": {
          "type": "string",
          "description": "Ülke kodu."
         },
         "currency": {
          "type": "string",
          "description": "Görüntü para birimi kodu."
         },
         "timezone": {
          "type": "string",
          "description": "Saat dilimi. Boş göndermek hesabın kendi seçimini siler."
         },
         "date_format": {
          "type": "string",
          "description": "Tarih biçimi. Boş göndermek hesabın kendi seçimini siler."
         },
         "custom_fields": {
          "type": "object",
          "description": "Ek alanların değerleri. Kutu tipli alanlar dizi alır."
         },
         "avatar": {
          "type": "string",
          "description": "Profil görseli. Yalnız kodlanmış içerik kabul edilir; adres reddedilir."
         },
         "email": {
          "type": "string",
          "description": ""
         },
         "phone": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    }
   }
  },
  "/me/security": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "coreGetSecurity",
    "summary": "Get security",
    "x-summary-tr": "Güvenlik Özetini Okuma",
    "x-scope": "Account/GetSecurity",
    "x-generated": "core-catalog",
    "description": "Get security. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/anahtarin-hesabi).",
    "x-description-tr": "Doğrulama durumunu, iki adımlı girişi ve son oturumları döndürür. — değiştirilemez",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/me/notifications": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "coreGetNotifications",
    "summary": "Get notifications",
    "x-summary-tr": "Bildirim Tercihlerini Okuma",
    "x-scope": "Account/GetNotifications",
    "x-generated": "core-catalog",
    "description": "Get notifications. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/anahtarin-hesabi).",
    "x-description-tr": "Hesabın hangi bildirimleri hangi kanaldan aldığını döndürür.",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "put": {
    "tags": [
     "Account"
    ],
    "operationId": "coreUpdateNotifications",
    "summary": "Update notifications",
    "x-summary-tr": "Bildirim Tercihlerini Yazma",
    "x-scope": "Account/UpdateNotifications",
    "x-generated": "core-catalog",
    "description": "Update notifications. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/anahtarin-hesabi).",
    "x-description-tr": "Bildirim tercihlerinin tamamını yeniden yazar. — tam değiştirme",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "invoices": {
          "type": "object",
          "description": "Fatura bildirimleri. E-posta ve kısa mesaj kanallarını taşır; eksik kanal kapalı sayılır."
         },
         "support": {
          "type": "object",
          "description": "Destek bildirimleri."
         },
         "product": {
          "type": "object",
          "description": "Ürün ve hizmet bildirimleri."
         },
         "domain": {
          "type": "object",
          "description": "Alan adı bildirimleri."
         },
         "marketing": {
          "type": "object",
          "description": "Pazarlama bildirimleri."
         },
         "general": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    }
   }
  },
  "/addresses": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "coreGetAddresses",
    "summary": "List addresses",
    "x-summary-tr": "Adresleri Listeleme",
    "x-scope": "Addresses/GetAddresses",
    "x-generated": "core-catalog",
    "description": "List addresses. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/adres-defteri).",
    "x-description-tr": "Hesabın fatura profillerini döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "post": {
    "tags": [
     "Account"
    ],
    "operationId": "coreCreateAddress",
    "summary": "Create address",
    "x-summary-tr": "Adres Ekleme",
    "x-scope": "Addresses/CreateAddress",
    "x-generated": "core-catalog",
    "description": "Create address. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/adres-defteri).",
    "x-description-tr": "Hesaba yeni bir fatura profili ekler. — fatura profili",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "company_name_required, contact_rejected, field_too_long, name_required, notifications_invalid",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "address_add_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "İlgili kişinin adı."
         },
         "surname": {
          "type": "string",
          "description": "Soyadı."
         },
         "email": {
          "type": "string",
          "description": "Geçerli bir e-posta."
         },
         "country": {
          "type": "string",
          "description": "Ülke kodu. Başvuru ucundan alınır."
         },
         "state": {
          "type": "string",
          "description": "İl. Listeden numara, liste boşsa serbest metin."
         },
         "city": {
          "type": "string",
          "description": "Şehir. Listeden numara, liste boşsa serbest metin."
         },
         "address": {
          "type": "string",
          "description": "Açık adres."
         },
         "zipcode": {
          "type": "string",
          "description": "Posta kodu. En çok yirmi karakter."
         },
         "kind": {
          "type": "string",
          "description": "Kişi türü. Öntanımlı olarak bireysel."
         },
         "company": {
          "type": "object",
          "description": "Şirket bilgileri. Kurumsal kişide ad zorunludur."
         },
         "label": {
          "type": "string",
          "description": "Serbest etiket."
         },
         "phone": {
          "type": "string",
          "description": "Kişinin telefonu."
         },
         "identity": {
          "type": "string",
          "description": "Kimlik numarası."
         },
         "notifications": {
          "type": "object",
          "description": "Kanal matrisi. Tam değiştirmedir; hiç gönderilmezse hepsi açılır."
         },
         "is_default": {
          "type": "boolean",
          "description": "Bunu varsayılan profil yap."
         },
         "overwrite_invoices": {
          "type": "boolean",
          "description": "Açık faturaları bu adrese yeniden yaz."
         }
        },
        "required": [
         "address",
         "city",
         "country",
         "email",
         "name",
         "state",
         "surname",
         "zipcode"
        ]
       }
      }
     }
    }
   }
  },
  "/addresses/{id}": {
   "get": {
    "tags": [
     "Account"
    ],
    "operationId": "coreGetAddress",
    "summary": "Get address (path: {id})",
    "x-summary-tr": "Tek Adresi Okuma",
    "x-scope": "Addresses/GetAddress",
    "x-generated": "core-catalog",
    "description": "Get address (path: {id}). \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/adres-defteri).",
    "x-description-tr": "Hesabın adreslerinden birini döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   },
   "put": {
    "tags": [
     "Account"
    ],
    "operationId": "coreUpdateAddress",
    "summary": "Update address (path: {id})",
    "x-summary-tr": "Adresi Güncelleme",
    "x-scope": "Addresses/UpdateAddress",
    "x-generated": "core-catalog",
    "description": "Update address (path: {id}). \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/adres-defteri).",
    "x-description-tr": "Adresin tamamını yeniden yazar. — tam gövde",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "company_name_required, contact_rejected, field_too_long, name_required",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "İlgili kişinin adı."
         },
         "surname": {
          "type": "string",
          "description": "Soyadı."
         },
         "email": {
          "type": "string",
          "description": "Geçerli bir e-posta."
         },
         "country": {
          "type": "string",
          "description": "Ülke kodu. Başvuru ucundan alınır."
         },
         "state": {
          "type": "string",
          "description": "İl. Listeden numara, liste boşsa serbest metin."
         },
         "city": {
          "type": "string",
          "description": "Şehir. Listeden numara, liste boşsa serbest metin."
         },
         "address": {
          "type": "string",
          "description": "Açık adres."
         },
         "zipcode": {
          "type": "string",
          "description": "Posta kodu. En çok yirmi karakter."
         },
         "kind": {
          "type": "string",
          "description": "Kişi türü. Öntanımlı olarak bireysel."
         },
         "company": {
          "type": "object",
          "description": "Şirket bilgileri. Kurumsal kişide ad zorunludur."
         },
         "label": {
          "type": "string",
          "description": "Serbest etiket."
         },
         "phone": {
          "type": "string",
          "description": "Kişinin telefonu."
         },
         "identity": {
          "type": "string",
          "description": "Kimlik numarası."
         },
         "notifications": {
          "type": "object",
          "description": "Kanal matrisi. Tam değiştirmedir; hiç gönderilmezse hepsi açılır."
         },
         "is_default": {
          "type": "boolean",
          "description": "Bunu varsayılan profil yap."
         },
         "overwrite_invoices": {
          "type": "boolean",
          "description": "Açık faturaları bu adrese yeniden yaz."
         }
        },
        "required": [
         "address",
         "city",
         "country",
         "email",
         "name",
         "state",
         "surname",
         "zipcode"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Account"
    ],
    "operationId": "coreDeleteAddress",
    "summary": "Delete address (path: {id})",
    "x-summary-tr": "Adresi Silme",
    "x-scope": "Addresses/DeleteAddress",
    "x-generated": "core-catalog",
    "description": "Delete address (path: {id}). \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/adres-defteri).",
    "x-description-tr": "Adresi siler ve gerekiyorsa varsayılanı devreder. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/addresses/{id}/default": {
   "post": {
    "tags": [
     "Account"
    ],
    "operationId": "coreSetDefaultAddress",
    "summary": "Set default address (path: {id})",
    "x-summary-tr": "Varsayılanı Taşıma",
    "x-scope": "Addresses/SetDefaultAddress",
    "x-generated": "core-catalog",
    "description": "Set default address (path: {id}). \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/adres-defteri).",
    "x-description-tr": "Bu adresi varsayılan fatura profili yapar. — hesabın ülkesi izler",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServices",
    "summary": "List services",
    "x-summary-tr": "Hizmetleri Listeleme",
    "x-scope": "Services/GetServices",
    "x-generated": "core-catalog",
    "description": "List services. Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Hesabın sahip olduğu hizmetleri döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     },
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Durum süzgeci. Rozet gruplarını alır: bekleyen hem kurulumdakini hem işlemdekini kapsar, iptal ise tamamlananı da içerir."
     },
     {
      "name": "type",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Ürün türü süzgeci."
     },
     {
      "name": "search",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Hizmet adında ve bağlı alan adında arar."
     }
    ]
   }
  },
  "/services/{id}": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetService",
    "summary": "Get service (path: {id})",
    "x-summary-tr": "Hizmeti Okuma",
    "x-scope": "Services/GetService",
    "x-generated": "core-catalog",
    "description": "Get service (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Hizmetin ayarlarını, erişim bilgilerini ve yenileme durumunu döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   },
   "patch": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreUpdateService",
    "summary": "Update service (path: {id})",
    "x-summary-tr": "Hizmet Tercihlerini Değiştirme",
    "x-scope": "Services/UpdateService",
    "x-generated": "core-catalog",
    "description": "Update service (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Otomatik yenilemeyi ve fatura profilini değiştirir. — iki alan",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "autorenew_locked, no_auto_pay_source, not_actionable, nothing_to_update",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "auto_renew": {
          "type": "boolean",
          "description": "Hizmet bazlı otomatik yenileme. Hesap geneli otomatik ödeme açıkken değiştirilemez."
         },
         "billing_profile_id": {
          "type": "integer",
          "description": "Fatura profilinin numarası. Sıfır hesabın varsayılanına döner."
         }
        }
       }
      }
     }
    }
   }
  },
  "/services/{id}/renew": {
   "post": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreRenewService",
    "summary": "Renew service (path: {id})",
    "x-summary-tr": "Yenileme Faturası Kesme",
    "x-scope": "Services/RenewService",
    "x-generated": "core-catalog",
    "description": "Renew service (path: {id}). Service of the calling account (any product line).\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Hizmet için bir yenileme faturası keser. — fatura üretir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "already_invoiced, cycle_invalid, not_renewable, renew_blocked_subscription, renew_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "cycle": {
          "type": "string",
          "description": "Yenileme döngüsü. Hizmet detayındaki döngü listesinden seçilir; verilmezse mevcut döngü kullanılır."
         }
        }
       }
      }
     }
    }
   }
  },
  "/services/{id}/invoices": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceInvoices",
    "summary": "List service invoices (path: {id})",
    "x-summary-tr": "Hizmetin Faturalarını Okuma",
    "x-scope": "Services/GetServiceInvoices",
    "x-generated": "core-catalog",
    "description": "List service invoices (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Bu hizmeti faturalayan belgeleri döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "En çok satır. En çok 100."
     },
     {
      "$ref": "#/components/parameters/Page"
     }
    ]
   }
  },
  "/services/{id}/addons": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceAddons",
    "summary": "List service addons (path: {id})",
    "x-summary-tr": "Hizmet Eklentilerini Okuma",
    "x-scope": "Services/GetServiceAddons",
    "x-generated": "core-catalog",
    "description": "List service addons (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Hizmete bağlı ek hizmetleri döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services/{id}/cancellation": {
   "post": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreCreateCancellation",
    "summary": "Create cancellation (path: {id})",
    "x-summary-tr": "İptal Talebi Açma",
    "x-scope": "Services/CreateCancellation",
    "x-generated": "core-catalog",
    "description": "Create cancellation (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Hizmetin iptali için bir talep açar. — aynı anda tek talep",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "cancellation_exists, not_actionable, one_time_service, reason_detail_required",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "urgency": {
          "type": "string",
          "description": "Ne zaman iptal edilsin: hemen ya da dönem sonunda."
         },
         "reason": {
          "type": "string",
          "description": "Gerekçe. Beş değerden biri: gerek kalmadı, pahalı, başka yere geçiliyor, özellik eksik ya da diğer."
         },
         "reason_detail": {
          "type": "string",
          "description": "Serbest açıklama. Gerekçe diğer ise zorunludur."
         },
         "note": {
          "type": "string",
          "description": "Operatöre not."
         }
        },
        "required": [
         "reason",
         "urgency"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreRevokeCancellation",
    "summary": "Revoke cancellation (path: {id})",
    "x-summary-tr": "İptal Talebini Geri Çekme",
    "x-scope": "Services/RevokeCancellation",
    "x-generated": "core-catalog",
    "description": "Revoke cancellation (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Açık bir iptal talebini geri çeker. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services/{id}/metrics": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceMetrics",
    "summary": "Get service metrics (path: {id})",
    "x-summary-tr": "Ölçümleri Okuma",
    "x-scope": "Services/GetServiceMetrics",
    "x-generated": "core-catalog",
    "description": "Get service metrics (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Kullanıma göre ücretlenen ölçümleri ve tahmini bedeli döndürür. — kullanıma göre ücret",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services/{id}/metrics/billing": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceMetricBilling",
    "summary": "List service metric billing (path: {id})",
    "x-summary-tr": "Kullanım Fatura Geçmişi",
    "x-scope": "Services/GetServiceMetricBilling",
    "x-generated": "core-catalog",
    "description": "List service metric billing (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Ölçümlerin dönem dönem faturalanmış kullanımını döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     },
     {
      "name": "metric",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Tek bir ölçüme daraltır."
     }
    ]
   }
  },
  "/services/{id}/metrics/{key}": {
   "patch": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreUpdateServiceMetric",
    "summary": "Update service metric (path: {id}, {key})",
    "x-summary-tr": "Ölçümü Açma ve Kapatma",
    "x-scope": "Services/UpdateServiceMetric",
    "x-generated": "core-catalog",
    "description": "Update service metric (path: {id}, {key}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).",
    "x-description-tr": "Bir ölçümü açar ya da kapatır. — ödenmemiş fatura kilitler",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "enabled_invalid, metric_module_rejected, metric_not_priced, metric_unpaid_lock, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "key",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "enabled": {
          "type": "boolean",
          "description": "İstenen durum."
         }
        },
        "required": [
         "enabled"
        ]
       }
      }
     }
    }
   }
  },
  "/services/{id}/dashboard": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceDashboard",
    "summary": "Get service dashboard (path: {id})",
    "x-summary-tr": "Panel Özetini Okuma",
    "x-scope": "Services/GetServiceDashboard",
    "x-generated": "core-catalog",
    "description": "Get service dashboard (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Hizmetin arkasındaki panelin özetini ve yeteneklerini döndürür. — modüle canlı sorar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "module_unavailable, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services/{id}/tools": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceTools",
    "summary": "Get service tools (path: {id})",
    "x-summary-tr": "Araçları Listeleme",
    "x-scope": "Services/GetServiceTools",
    "x-generated": "core-catalog",
    "description": "Get service tools (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Hizmet üzerinde kullanılabilecek panel araçlarını döndürür. — modüle canlı sorar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "tools_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services/{id}/tools/{tool}": {
   "get": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceToolData",
    "summary": "Get service tool data (path: {id}, {tool})",
    "x-summary-tr": "Araç Verisini Okuma",
    "x-scope": "Services/GetServiceToolData",
    "x-generated": "core-catalog",
    "description": "Get service tool data (path: {id}, {tool}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Bir aracın listelediği veriyi panelden çeker. — modüle canlı sorar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "tool_rejected, tools_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "tool_data_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "tool",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "action",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Okuma eylemi. Verilmezse aracın varsayılan listesi alınır."
     }
    ]
   }
  },
  "/services/{id}/tools/{tool}/{action}": {
   "post": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreRunServiceToolAction",
    "summary": "Run service tool action (path: {id}, {tool}, {action})",
    "x-summary-tr": "Araç Eylemi Çalıştırma",
    "x-scope": "Services/RunServiceToolAction",
    "x-generated": "core-catalog",
    "description": "Run service tool action (path: {id}, {tool}, {action}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Bir araç üzerinde oluşturma, düzenleme ya da silme çalıştırır. DNS kaydı düzenlemesi (`dns-zone-editor/edit`) yalnız gönderdiğinizi değiştirir: gönderilmeyen ad, TTL ya da öncelik kaydın mevcut değerini korur. — sunucuda değişiklik",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "tool_action_failed, tool_rejected, tools_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "tool_action_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "tool",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "action",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "current_path": {
          "type": "string",
          "description": ""
         },
         "file": {
          "type": "string",
          "description": ""
         },
         "name": {
          "type": "string",
          "description": ""
         },
         "new_name": {
          "type": "string",
          "description": ""
         },
         "items": {
          "type": "string",
          "description": ""
         }
        }
       }
      }
     }
    }
   }
  },
  "/services/{id}/module-method": {
   "post": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreUseServiceModuleMethod",
    "summary": "Use service module method (path: {id})",
    "x-summary-tr": "Modül Metodu Çalıştırma",
    "x-scope": "Services/UseServiceModuleMethod",
    "x-generated": "core-catalog",
    "description": "Use service module method (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Modülün müşteriye açtığı bir metodu çalıştırır. — beyanlı metotlar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "invalid_method, method_required, module_unavailable, tool_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "module_method_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "method": {
          "type": "string",
          "description": "Çalıştırılacak metot. Panel özetindeki metot listesinden alınır."
         }
        },
        "required": [
         "method"
        ]
       }
      }
     }
    }
   }
  },
  "/services/{id}/sso": {
   "post": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreGetServiceSso",
    "summary": "Get service sso (path: {id})",
    "x-summary-tr": "Panele Tek Oturum Açma",
    "x-scope": "Services/GetServiceSso",
    "x-generated": "core-catalog",
    "description": "Get service sso (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Panele parolasız giriş için tek kullanımlık bir adres üretir. — kısa ömürlü adres",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "sso_not_supported, tool_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "sso_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/services/{id}/password": {
   "post": {
    "tags": [
     "Services (core)"
    ],
    "operationId": "coreChangeServicePassword",
    "summary": "Change service password (path: {id})",
    "x-summary-tr": "Panel Parolasını Değiştirme",
    "x-scope": "Services/ChangeServicePassword",
    "x-generated": "core-catalog",
    "description": "Change service password (path: {id}). Service of the calling account (any product line).\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).",
    "x-description-tr": "Hizmetin panel parolasını değiştirir. — barındırma ve sunucu",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "password_change_failed, password_not_supported, password_too_short",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "password": {
          "type": "string",
          "description": "Yeni panel parolası. Operatörün asgari uzunluğunu karşılamalıdır."
         }
        },
        "required": [
         "password"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/tlds": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetTlds",
    "summary": "List tlds",
    "x-summary-tr": "Uzantı Fiyatlarını Okuma",
    "x-scope": "Domains/GetTlds",
    "x-generated": "core-catalog",
    "description": "List tlds. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Satıştaki uzantıları süreleri ve fiyatlarıyla döndürür. — cüzdan para birimi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "domains_not_offered",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "tld",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Tek bir uzantı. Listeyi daraltır ve süre başına fiyat tablosunu ekler."
     }
    ]
   }
  },
  "/domains/check": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreCheckDomain",
    "summary": "Check domain",
    "x-summary-tr": "Alan Adının Boş Olup Olmadığını Sorma",
    "x-scope": "Domains/CheckDomain",
    "x-generated": "core-catalog",
    "description": "Check domain. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Bir alan adının alınabilirliğini canlı sorar. — kayıt kuruluşuna sorar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "domain_check_throttled, domain_invalid, domain_required, domains_not_offered, tld_not_offered",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "domain": {
          "type": "string",
          "description": "Sorulacak tam alan adı."
         }
        },
        "required": [
         "domain"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/register": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreRegisterDomain",
    "summary": "Register domain",
    "x-summary-tr": "Alan Adı Kaydetme",
    "x-scope": "Domains/RegisterDomain",
    "x-generated": "core-catalog",
    "description": "Register domain. Domain operations run against the registrar module of the domain.\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Yeni bir alan adı sipariş eder ve tahsil eder. — bakiye ya da kayıtlı kart",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_not_offered, contact_field_invalid, contact_field_required, domains_not_offered, insufficient_balance, nameservers_invalid, terms_required, tld_not_offered, verification_required, years_invalid",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "terms": {
          "type": "boolean",
          "description": "Şartların kabulü. Doğru gönderilmelidir."
         },
         "domain": {
          "type": "string",
          "description": "Tam alan adı."
         },
         "years": {
          "type": "integer",
          "description": "Kayıt süresi. Uzantının penceresi içinde olmalı; özel fiyatlı adlar ne gönderilirse gönderilsin bir yıl kaydedilir."
         },
         "accept_premium": {
          "type": "boolean",
          "description": "Özel fiyatlı adın fiyatını kabul. Böyle bir adda zorunludur."
         },
         "addons": {
          "type": "string",
          "description": "Birlikte alınacak ek hizmetler. Alan adı yönetimi, kayıt gizliliği ve yönlendirme; yalnız uzantı sunuyorsa."
         },
         "nameservers": {
          "type": "string",
          "description": "Ad sunucuları. İkiden dörde; verilmezse hesabın varsayılanları uygulanır."
         },
         "whois_profile_id": {
          "type": "integer",
          "description": "Kayıtlı kayıt sahibi profili. Dört rolü birden doldurur."
         },
         "contacts": {
          "type": "object",
          "description": "Rol bazında kişiler. Her rol ya kayıtlı bir profil numarası ya da satır içi bir kişi taşır ve o rol için profili ezer."
         },
         "coupons": {
          "type": "string",
          "description": "Kupon kodları."
         },
         "billing_profile_id": {
          "type": "integer",
          "description": "Fatura profilinin numarası."
         },
         "notes": {
          "type": "string",
          "description": "Sipariş notu."
         },
         "payment": {
          "type": "object",
          "description": "Ödeme kaynağı. Hesap bakiyesi ya da kayıtlı kart."
         },
         "auth_code": {
          "type": "string",
          "description": ""
         },
         "method": {
          "type": "string",
          "description": ""
         },
         "card_id": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "domain",
         "terms"
        ]
       }
      }
     }
    },
    "parameters": [
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ]
   }
  },
  "/domains/transfer": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreTransferDomain",
    "summary": "Transfer domain",
    "x-summary-tr": "Alan Adı Transferi",
    "x-scope": "Domains/TransferDomain",
    "x-generated": "core-catalog",
    "description": "Transfer domain. Domain operations run against the registrar module of the domain.\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Başka bir sağlayıcıdaki alan adını buraya taşır. — kod gerekebilir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "auth_code_required, checkout_blocked, domain_not_registered, domain_transfer_locked, domains_not_offered, terms_required, transfer_not_offered",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "terms": {
          "type": "boolean",
          "description": "Şartların kabulü. Doğru gönderilmelidir."
         },
         "domain": {
          "type": "string",
          "description": "Tam alan adı."
         },
         "auth_code": {
          "type": "string",
          "description": "Mevcut sağlayıcıdan alınan transfer kodu. Uzantı işaretliyse zorunludur ve her durumda hizmete yazılır."
         },
         "addons": {
          "type": "string",
          "description": "Birlikte alınacak ek hizmetler. Alan adı yönetimi, kayıt gizliliği ve yönlendirme; yalnız uzantı sunuyorsa."
         },
         "nameservers": {
          "type": "string",
          "description": "Ad sunucuları. İkiden dörde; verilmezse hesabın varsayılanları uygulanır."
         },
         "whois_profile_id": {
          "type": "integer",
          "description": "Kayıtlı kayıt sahibi profili. Dört rolü birden doldurur."
         },
         "contacts": {
          "type": "object",
          "description": "Rol bazında kişiler. Her rol ya kayıtlı bir profil numarası ya da satır içi bir kişi taşır ve o rol için profili ezer."
         },
         "coupons": {
          "type": "string",
          "description": "Kupon kodları."
         },
         "billing_profile_id": {
          "type": "integer",
          "description": "Fatura profilinin numarası."
         },
         "notes": {
          "type": "string",
          "description": "Sipariş notu."
         },
         "payment": {
          "type": "object",
          "description": "Ödeme kaynağı. Hesap bakiyesi ya da kayıtlı kart."
         },
         "years": {
          "type": "string",
          "description": ""
         },
         "accept_premium": {
          "type": "string",
          "description": ""
         },
         "method": {
          "type": "string",
          "description": ""
         },
         "card_id": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "domain",
         "terms"
        ]
       }
      }
     }
    },
    "parameters": [
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ]
   }
  },
  "/domains/whois-profiles": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetWhoisProfiles",
    "summary": "List whois profiles",
    "x-summary-tr": "Kayıtlı Profilleri Listeleme",
    "x-scope": "Domains/GetWhoisProfiles",
    "x-generated": "core-catalog",
    "description": "List whois profiles. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Hesabın kayıtlı kişi profillerini döndürür. — hesap geneli",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreCreateWhoisProfile",
    "summary": "Create whois profile",
    "x-summary-tr": "Profil Oluşturma",
    "x-scope": "Domains/CreateWhoisProfile",
    "x-generated": "core-catalog",
    "description": "Create whois profile. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Yeniden kullanılabilir bir kişi profili kaydeder. — hesap geneli",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "contact_email_invalid, contact_field_invalid, contact_field_required, contact_name_required, name_required, profile_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "profile_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "Profilin etiketi."
         },
         "contact": {
          "type": "object",
          "description": "contactKaydedilecek kişi. İl burada zorunlu değildir."
         },
         "first_name": {
          "type": "string",
          "description": "Kişinin adı."
         },
         "last_name": {
          "type": "string",
          "description": "Kişinin soyadı."
         },
         "company": {
          "type": "string",
          "description": "Kurum adı. Tek isteğe bağlı alandır."
         },
         "email": {
          "type": "string",
          "description": "Geçerli bir e-posta."
         },
         "phone": {
          "type": "string",
          "description": "Telefon."
         },
         "address": {
          "type": "string",
          "description": "Adres satırı."
         },
         "address2": {
          "type": "string",
          "description": "İkinci adres satırı. İsteğe bağlı; anahtar yoksa boş satır kaydedilir."
         },
         "city": {
          "type": "string",
          "description": "Şehir."
         },
         "state": {
          "type": "string",
          "description": "İl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir."
         },
         "zip": {
          "type": "string",
          "description": "Posta kodu."
         },
         "country": {
          "type": "string",
          "description": "Ülke kodu. Büyük harfe çevrilir."
         },
         "postal_code": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "address",
         "city",
         "contact",
         "country",
         "email",
         "first_name",
         "last_name",
         "name",
         "phone",
         "zip"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/whois-profiles/{pid}": {
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateWhoisProfile",
    "summary": "Update whois profile (path: {pid})",
    "x-summary-tr": "Profili Güncelleme",
    "x-scope": "Domains/UpdateWhoisProfile",
    "x-generated": "core-catalog",
    "description": "Update whois profile (path: {pid}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Kayıtlı bir profili yeniden yazar. — tam kişi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "contact_email_invalid, contact_field_invalid, contact_field_required, contact_name_required, name_required, profile_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "pid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string",
          "description": "Yeni etiket."
         },
         "contact": {
          "type": "object",
          "description": "contactTam kişi. Kayıtlı kişi bütünüyle değiştirilir."
         },
         "first_name": {
          "type": "string",
          "description": "Kişinin adı."
         },
         "last_name": {
          "type": "string",
          "description": "Kişinin soyadı."
         },
         "company": {
          "type": "string",
          "description": "Kurum adı. Tek isteğe bağlı alandır."
         },
         "email": {
          "type": "string",
          "description": "Geçerli bir e-posta."
         },
         "phone": {
          "type": "string",
          "description": "Telefon."
         },
         "address": {
          "type": "string",
          "description": "Adres satırı."
         },
         "address2": {
          "type": "string",
          "description": "İkinci adres satırı. Profil bütün olarak değiştirilir; anahtar yoksa boş satır kaydedilir."
         },
         "city": {
          "type": "string",
          "description": "Şehir."
         },
         "state": {
          "type": "string",
          "description": "İl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir."
         },
         "zip": {
          "type": "string",
          "description": "Posta kodu."
         },
         "country": {
          "type": "string",
          "description": "Ülke kodu. Büyük harfe çevrilir."
         },
         "postal_code": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "address",
         "city",
         "contact",
         "country",
         "email",
         "first_name",
         "last_name",
         "name",
         "phone",
         "zip"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreDeleteWhoisProfile",
    "summary": "Delete whois profile (path: {pid})",
    "x-summary-tr": "Profili Silme",
    "x-scope": "Domains/DeleteWhoisProfile",
    "x-generated": "core-catalog",
    "description": "Delete whois profile (path: {pid}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Kayıtlı bir kişi profilini siler. — hesap geneli",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "pid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/domains/whois-profiles/{pid}/default": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreSetDefaultWhoisProfile",
    "summary": "Set default whois profile (path: {pid})",
    "x-summary-tr": "Profili Varsayılan Yapma",
    "x-scope": "Domains/SetDefaultWhoisProfile",
    "x-generated": "core-catalog",
    "description": "Set default whois profile (path: {pid}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Yeni kayıtlarda kendiliğinden uygulanacak profili belirler. — hesap geneli",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "pid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/domains/default-nameservers": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetDefaultNameservers",
    "summary": "Get default nameservers",
    "x-summary-tr": "Varsayılan Ad Sunucularını Okuma",
    "x-scope": "Domains/GetDefaultNameservers",
    "x-generated": "core-catalog",
    "description": "Get default nameservers. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Hesabın yeni alan adlarına uygulanan varsayılan setini döndürür. — hesap geneli",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateDefaultNameservers",
    "summary": "Update default nameservers",
    "x-summary-tr": "Varsayılan Ad Sunucularını Kaydetme",
    "x-scope": "Domains/UpdateDefaultNameservers",
    "x-generated": "core-catalog",
    "description": "Update default nameservers. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Yeni alan adlarına uygulanacak varsayılan seti kaydeder. — hesap geneli",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "nameservers_invalid",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "nameservers": {
          "type": "string",
          "description": "Varsayılan set. İkiden dörde kadar geçerli sunucu adı; boşluklar kırpılır ve küçük harfe çevrilir."
         }
        },
        "required": [
         "nameservers"
        ]
       }
      }
     }
    }
   }
  },
  "/domains": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetDomains",
    "summary": "List domains",
    "x-summary-tr": "Alan Adlarını Listeleme",
    "x-scope": "Domains/GetDomains",
    "x-generated": "core-catalog",
    "description": "List domains. Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-alan-adlari).",
    "x-description-tr": "Hesabın alan adlarını döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     },
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Durum süzgeci. Rozet gruplarını alır."
     },
     {
      "name": "tld",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Yalnız bu uzantının alan adları."
     },
     {
      "name": "search",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Alan adında arar."
     }
    ]
   }
  },
  "/domains/{domain}": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetDomain",
    "summary": "Get domain (path: {domain})",
    "x-summary-tr": "Alan Adını Okuma",
    "x-scope": "Domains/GetDomain",
    "x-generated": "core-catalog",
    "description": "Get domain (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-alan-adlari).",
    "x-description-tr": "Alan adını, sağlayıcının yeteneklerini ve yenileme seçeneklerini döndürür. — yetenek sondası",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "patch": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateDomain",
    "summary": "Update domain (path: {domain})",
    "x-summary-tr": "Alan Adı Tercihlerini Değiştirme",
    "x-scope": "Domains/UpdateDomain",
    "x-generated": "core-catalog",
    "description": "Update domain (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-alan-adlari).",
    "x-description-tr": "Otomatik yenilemeyi ve fatura profilini değiştirir. — iki alan",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "auto_renew_invalid, autorenew_locked, billing_profile_rejected, no_auto_pay_source, not_actionable, nothing_to_update",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "auto_renew": {
          "type": "boolean",
          "description": "Alan adı bazlı otomatik yenileme. Yalnız etkin alan adlarında ve gerçek bir mantıksal değerle."
         },
         "billing_profile_id": {
          "type": "integer",
          "description": "Fatura profilinin numarası. Sıfır hesabın varsayılanına döner."
         }
        }
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/renew": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreRenewDomain",
    "summary": "Renew domain (path: {domain})",
    "x-summary-tr": "Yenileme Faturası Kesme",
    "x-scope": "Domains/RenewDomain",
    "x-generated": "core-catalog",
    "description": "Renew domain (path: {domain}). Domain operations run against the registrar module of the domain.\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-alan-adlari).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Alan adı için istenen yıl sayısı kadar yenileme faturası keser. — fatura üretir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "not_renewable, years_invalid",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "years": {
          "type": "integer",
          "description": "Yenileme süresi. Detaydaki fiyatlı süre satırlarından biri olmalıdır."
         }
        },
        "required": [
         "years"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/transfer-status": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetTransferStatus",
    "summary": "Get transfer status (path: {domain})",
    "x-summary-tr": "Transferin Nerede Olduğunu Sorma",
    "x-scope": "Domains/GetTransferStatus",
    "x-generated": "core-catalog",
    "description": "Get transfer status (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Devam eden bir transferin durumunu sağlayıcıdan okur. — canlı sorar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "not_a_transfer",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/domains/{domain}/nameservers": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetNameservers",
    "summary": "Get nameservers (path: {domain})",
    "x-summary-tr": "Ad Sunucularını Okuma",
    "x-scope": "Domains/GetNameservers",
    "x-generated": "core-catalog",
    "description": "Get nameservers (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının ad sunucularını ve hesabın varsayılan setini döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateNameservers",
    "summary": "Update nameservers (path: {domain})",
    "x-summary-tr": "Ad Sunucularını Değiştirme",
    "x-scope": "Domains/UpdateNameservers",
    "x-generated": "core-catalog",
    "description": "Update nameservers (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının ad sunucularını sağlayıcıda değiştirir. — siteyi taşır",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "nameservers_failed, nameservers_invalid, nameservers_not_supported, nameservers_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "nameservers_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "nameservers": {
          "type": "string",
          "description": "Yeni set. İkiden dörde kadar geçerli sunucu adı; boş girişler sayımdan önce düşer."
         }
        },
        "required": [
         "nameservers"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/child-nameservers": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetChildNameservers",
    "summary": "Get child nameservers (path: {domain})",
    "x-summary-tr": "Kendi Ad Sunucularını Listeleme",
    "x-scope": "Domains/GetChildNameservers",
    "x-generated": "core-catalog",
    "description": "Get child nameservers (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının altında tanımlı ad sunucularını döndürür. — sağlayıcıdan okur",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "child_ns_failed, child_ns_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "child_ns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreCreateChildNameserver",
    "summary": "Create child nameserver (path: {domain})",
    "x-summary-tr": "Kendi Ad Sunucusunu Tanımlama",
    "x-scope": "Domains/CreateChildNameserver",
    "x-generated": "core-catalog",
    "description": "Create child nameserver (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının altında bir ad sunucusu tanımlar. — sicile yazar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "child_ns_failed, child_ns_fields, child_ns_host_invalid, child_ns_ip_invalid, child_ns_not_supported, child_ns_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "child_ns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "host": {
          "type": "string",
          "description": "Sunucunun tam adı. Küçük harfe çevrilir."
         },
         "ip": {
          "type": "string",
          "description": "Sunucunun adresi. Biçimi doğrulanır."
         },
         "ns": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "host",
         "ip"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreDeleteChildNameserver",
    "summary": "Delete child nameserver (path: {domain})",
    "x-summary-tr": "Kendi Ad Sunucusunu Kaldırma",
    "x-scope": "Domains/DeleteChildNameserver",
    "x-generated": "core-catalog",
    "description": "Delete child nameserver (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının altındaki bir ad sunucusu tanımını kaldırır. — sicile yazar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "child_ns_failed, child_ns_fields, child_ns_not_supported, child_ns_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "child_ns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/domains/{domain}/transfer-lock": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetTransferLock",
    "summary": "Get transfer lock (path: {domain})",
    "x-summary-tr": "Transfer Kilidini Okuma",
    "x-scope": "Domains/GetTransferLock",
    "x-generated": "core-catalog",
    "description": "Get transfer lock (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Alan adının transfere kapalı olup olmadığını sağlayıcıdan okur. — canlı okur",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateTransferLock",
    "summary": "Update transfer lock (path: {domain})",
    "x-summary-tr": "Transfer Kilidini Değiştirme",
    "x-scope": "Domains/UpdateTransferLock",
    "x-generated": "core-catalog",
    "description": "Update transfer lock (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Alan adını transfere kapatır ya da açar. — sağlayıcıya yazar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "lock_failed, lock_not_supported, lock_rejected, locked_invalid, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "lock_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "locked": {
          "type": "boolean",
          "description": "Yeni kilit durumu. Gerçek bir mantıksal değer olmalıdır; metin ve sayı reddedilir."
         }
        },
        "required": [
         "locked"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/auth-code": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreSendAuthCode",
    "summary": "Send auth code (path: {domain})",
    "x-summary-tr": "Transfer Kodunu İsteme",
    "x-scope": "Domains/SendAuthCode",
    "x-generated": "core-catalog",
    "description": "Send auth code (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Transfer kodunu alan adı sahibinin e-postasına gönderir. — yanıtta kod yok",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "auth_code_failed, auth_code_not_supported, auth_code_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "auth_code_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreSaveAuthCode",
    "summary": "Save auth code (path: {domain})",
    "x-summary-tr": "Gelen Transfer Kodunu Kaydetme",
    "x-scope": "Domains/SaveAuthCode",
    "x-generated": "core-catalog",
    "description": "Save auth code (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-edinme).",
    "x-description-tr": "Devam eden bir transfer için kodu günceller. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "code_required, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "code": {
          "type": "string",
          "description": "Yeni transfer kodu. İşaretleme ayıklanır ve boşluklar kırpılır."
         }
        },
        "required": [
         "code"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/dns-records": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetDnsRecords",
    "summary": "List dns records (path: {domain})",
    "x-summary-tr": "DNS Kayıtlarını Listeleme",
    "x-scope": "Domains/GetDnsRecords",
    "x-generated": "core-catalog",
    "description": "List dns records (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının DNS kayıtlarını sağlayıcıdan okur. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_pending, addon_required, dns_failed, dns_not_supported, dns_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreCreateDnsRecord",
    "summary": "Create dns record (path: {domain})",
    "x-summary-tr": "DNS Kaydı Ekleme",
    "x-scope": "Domains/CreateDnsRecord",
    "x-generated": "core-catalog",
    "description": "Create dns record (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adına yeni bir DNS kaydı ekler. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, dns_failed, dns_fields, dns_not_supported, dns_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "description": "Kayıt türü."
         },
         "name": {
          "type": "string",
          "description": "Kaydın yanıtlayacağı ad. Kabul edilen biçim sağlayıcıya göre değişir."
         },
         "value": {
          "type": "string",
          "description": "Kaydın içeriği."
         },
         "ttl": {
          "type": "integer",
          "description": "Yaşam süresi. Verilmezse sağlayıcının varsayılanı kullanılır."
         },
         "priority": {
          "type": "integer",
          "description": "Öncelik. Posta ve hizmet kayıtları dışında yok sayılır."
         },
         "identity": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "name",
         "type",
         "value"
        ]
       }
      }
     }
    }
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateDnsRecord",
    "summary": "Update dns record (path: {domain})",
    "x-summary-tr": "DNS Kaydını Düzenleme",
    "x-scope": "Domains/UpdateDnsRecord",
    "x-generated": "core-catalog",
    "description": "Update dns record (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Var olan bir DNS kaydını değiştirir. — numara ile eşleşir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, dns_edit_not_supported, dns_failed, dns_fields, dns_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "identity": {
          "type": "string",
          "description": "Listeden gelen kayıt numarası. Liste bir numara döndürdüyse mutlaka gönderin."
         },
         "type": {
          "type": "string",
          "description": "Kayıt türü."
         },
         "name": {
          "type": "string",
          "description": "Kaydın adı."
         },
         "value": {
          "type": "string",
          "description": "Yeni içerik."
         },
         "ttl": {
          "type": "integer",
          "description": "Yaşam süresi. Verilmezse kayıt mevcut yaşam süresini korur."
         },
         "priority": {
          "type": "integer",
          "description": "Öncelik. Verilmezse kayıt, türü değişmediği sürece mevcut önceliğini korur."
         }
        },
        "required": [
         "name",
         "type",
         "value"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreDeleteDnsRecord",
    "summary": "Delete dns record (path: {domain})",
    "x-summary-tr": "DNS Kaydını Silme",
    "x-scope": "Domains/DeleteDnsRecord",
    "x-generated": "core-catalog",
    "description": "Delete dns record (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Bir DNS kaydını kaldırır. — eşleşme daraltılır",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, dns_failed, dns_fields, dns_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dns_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/domains/{domain}/dnssec": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetDnssecRecords",
    "summary": "List dnssec records (path: {domain})",
    "x-summary-tr": "İmza Kayıtlarını Listeleme",
    "x-scope": "Domains/GetDnssecRecords",
    "x-generated": "core-catalog",
    "description": "List dnssec records (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adının imza doğrulama kayıtlarını döndürür. — sağlayıcıdan okur",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "dnssec_failed, dnssec_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dnssec_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreCreateDnssecRecord",
    "summary": "Create dnssec record (path: {domain})",
    "x-summary-tr": "İmza Kaydı Ekleme",
    "x-scope": "Domains/CreateDnssecRecord",
    "x-generated": "core-catalog",
    "description": "Create dnssec record (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Alan adına bir imza doğrulama kaydı ekler. — algoritma denetlenir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "dnssec_algorithm_invalid, dnssec_digest_type_invalid, dnssec_failed, dnssec_fields, dnssec_not_supported, dnssec_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dnssec_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "key_tag": {
          "type": "integer",
          "description": "Anahtarın etiketi. `dnskey-keytag-flags`'te anahtar bayrağını taşır."
         },
         "algorithm": {
          "type": "integer",
          "description": "Anahtar algoritmasının numarası. Modülün bildirdiği kümede olmalıdır."
         },
         "digest_type": {
          "type": "integer",
          "description": "Özet algoritmasının numarası ya da `meta.dnssec_fields`'in adlandırdığı anahtar bayrağı veya protokol. Modülün bildirdiği kümede olmalıdır."
         },
         "digest": {
          "type": "string",
          "description": "İmza özeti. DNSKEY isteyen servis sağlayıcı burada açık anahtarı (base64) alır."
         }
        },
        "required": [
         "algorithm",
         "digest",
         "digest_type",
         "key_tag"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreDeleteDnssecRecord",
    "summary": "Delete dnssec record (path: {domain})",
    "x-summary-tr": "İmza Kaydını Silme",
    "x-scope": "Domains/DeleteDnssecRecord",
    "x-generated": "core-catalog",
    "description": "Delete dnssec record (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/ad-sunuculari-ve-kayitlar).",
    "x-description-tr": "Bir imza doğrulama kaydını kaldırır. — siteyi kırabilir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "dnssec_failed, dnssec_fields, dnssec_not_supported, dnssec_rejected, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "dnssec_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/domains/{domain}/whois": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetWhoisContacts",
    "summary": "Get whois contacts (path: {domain})",
    "x-summary-tr": "Alan Adı Kişilerini Okuma",
    "x-scope": "Domains/GetWhoisContacts",
    "x-generated": "core-catalog",
    "description": "Get whois contacts (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Alan adının dört rolündeki kişi bilgilerini döndürür. — sağlayıcıdan okur",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "whois_not_supported, whois_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateWhoisContacts",
    "summary": "Update whois contacts (path: {domain})",
    "x-summary-tr": "Alan Adı Kişilerini Yazma",
    "x-scope": "Domains/UpdateWhoisContacts",
    "x-generated": "core-catalog",
    "description": "Update whois contacts (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Bir kişiyi seçilen role ya da dört role birden yazar. — sicile yazar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "contact_email_invalid, contact_field_invalid, contact_field_required, contact_name_required, not_actionable, role_invalid, whois_failed, whois_not_supported, whois_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "whois_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "role": {
          "type": "string",
          "description": "Hangi rollere yazılacağı. Verilmezse dört rolün hepsine yazılır."
         },
         "contact": {
          "type": "object",
          "description": "contactYazılacak kişi."
         },
         "first_name": {
          "type": "string",
          "description": "Kişinin adı."
         },
         "last_name": {
          "type": "string",
          "description": "Kişinin soyadı."
         },
         "company": {
          "type": "string",
          "description": "Kurum adı. Tek isteğe bağlı alandır."
         },
         "email": {
          "type": "string",
          "description": "Geçerli bir e-posta."
         },
         "phone": {
          "type": "string",
          "description": "Telefon."
         },
         "address": {
          "type": "string",
          "description": "Adres satırı."
         },
         "address2": {
          "type": "string",
          "description": "İkinci adres satırı (daire, kat, blok). Anahtar gönderilmezse sağlayıcıdaki satır korunur; boş metin satırı siler."
         },
         "city": {
          "type": "string",
          "description": "Şehir."
         },
         "state": {
          "type": "string",
          "description": "İl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir."
         },
         "zip": {
          "type": "string",
          "description": "Posta kodu."
         },
         "country": {
          "type": "string",
          "description": "Ülke kodu. Büyük harfe çevrilir."
         },
         "postal_code": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "address",
         "city",
         "contact",
         "country",
         "email",
         "first_name",
         "last_name",
         "phone",
         "zip"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/whois/apply": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreApplyWhoisProfile",
    "summary": "Apply whois profile (path: {domain})",
    "x-summary-tr": "Kayıtlı Profili Uygulama",
    "x-scope": "Domains/ApplyWhoisProfile",
    "x-generated": "core-catalog",
    "description": "Apply whois profile (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Kayıtlı bir kişi profilini alan adının dört rolüne birden yazar. — dört rolü doldurur",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "not_actionable, whois_failed, whois_not_supported, whois_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "whois_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "profile_id": {
          "type": "integer",
          "description": "Uygulanacak profilin numarası."
         }
        },
        "required": [
         "profile_id"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/whois-privacy": {
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateWhoisPrivacy",
    "summary": "Update whois privacy (path: {domain})",
    "x-summary-tr": "Kayıt Gizliliğini Değiştirme",
    "x-scope": "Domains/UpdateWhoisPrivacy",
    "x-generated": "core-catalog",
    "description": "Update whois privacy (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/alan-adi-kisileri-ve-gizlilik).",
    "x-description-tr": "Kişi bilgilerinin herkese açık sorguda gizlenmesini açar ya da kapatır. — ücretli olabilir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, enabled_invalid, not_actionable, privacy_failed, privacy_not_supported, privacy_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "privacy_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "enabled": {
          "type": "boolean",
          "description": "Gizlilik açık mı. Gerçek bir mantıksal değer olmalıdır."
         }
        },
        "required": [
         "enabled"
        ]
       }
      }
     }
    }
   }
  },
  "/domains/{domain}/email-forwards": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetEmailForwards",
    "summary": "List email forwards (path: {domain})",
    "x-summary-tr": "E-posta Yönlendirmelerini Listeleme",
    "x-scope": "Domains/GetEmailForwards",
    "x-generated": "core-catalog",
    "description": "List email forwards (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/yonlendirme-kurma).",
    "x-description-tr": "Alan adında tanımlı e-posta yönlendirmelerini döndürür. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_pending, addon_required, email_forwarding_failed, email_forwarding_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "email_forwarding_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreCreateEmailForward",
    "summary": "Create email forward (path: {domain})",
    "x-summary-tr": "E-posta Yönlendirmesi Ekleme",
    "x-scope": "Domains/CreateEmailForward",
    "x-generated": "core-catalog",
    "description": "Create email forward (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/yonlendirme-kurma).",
    "x-description-tr": "Alan adına gelen postayı başka bir kutuya taşıyan bir kural ekler. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, email_forward_fields, email_forward_rejected, email_forward_target_invalid, email_forwarding_failed, email_forwarding_not_supported, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "email_forwarding_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "prefix": {
          "type": "string",
          "description": "Alan adındaki yerel kısım. Yönlendirme bu kısım ile alan adının birleşimine yanıt verir."
         },
         "target": {
          "type": "string",
          "description": "Hedef posta kutusu. Geçerli bir e-posta adresi olmalıdır."
         }
        },
        "required": [
         "prefix",
         "target"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreDeleteEmailForward",
    "summary": "Delete email forward (path: {domain})",
    "x-summary-tr": "E-posta Yönlendirmesini Silme",
    "x-scope": "Domains/DeleteEmailForward",
    "x-generated": "core-catalog",
    "description": "Delete email forward (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/yonlendirme-kurma).",
    "x-description-tr": "Bir e-posta yönlendirme kuralını kaldırır. — eşleşme daraltılır",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, email_forward_fields, email_forwarding_failed, email_forwarding_not_supported, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "email_forwarding_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/domains/{domain}/forwarding": {
   "get": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreGetUrlForwarding",
    "summary": "Get url forwarding (path: {domain})",
    "x-summary-tr": "Adres Yönlendirmesini Okuma",
    "x-scope": "Domains/GetUrlForwarding",
    "x-generated": "core-catalog",
    "description": "Get url forwarding (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/yonlendirme-kurma).",
    "x-description-tr": "Alan adının başka bir adrese yönlendirilip yönlendirilmediğini döndürür. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_pending, addon_required, url_forwarding_failed, url_forwarding_not_supported",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "url_forwarding_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   },
   "put": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreUpdateUrlForwarding",
    "summary": "Update url forwarding (path: {domain})",
    "x-summary-tr": "Adres Yönlendirmesi Kurma",
    "x-scope": "Domains/UpdateUrlForwarding",
    "x-generated": "core-catalog",
    "description": "Update url forwarding (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/yonlendirme-kurma).",
    "x-description-tr": "Alan adına gelen ziyaretçiyi başka bir adrese gönderir. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, not_actionable, url_forwarding_failed, url_forwarding_not_supported, url_forwarding_rejected, url_required",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "url_forwarding_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "Tam hedef adres. Şeması yönlendirmenin şeması olur; yazılmazsa güvensiz şema kullanılır."
         },
         "method": {
          "type": "integer",
          "description": "Yönlendirme türü. Kalıcı olan varsayılandır; başka bir değer ona düşer."
         }
        },
        "required": [
         "url"
        ]
       }
      }
     }
    }
   },
   "delete": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreDeleteUrlForwarding",
    "summary": "Delete url forwarding (path: {domain})",
    "x-summary-tr": "Adres Yönlendirmesini Kaldırma",
    "x-scope": "Domains/DeleteUrlForwarding",
    "x-generated": "core-catalog",
    "description": "Delete url forwarding (path: {domain}). Domain operations run against the registrar module of the domain.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/yonlendirme-kurma).",
    "x-description-tr": "Alan adının adres yönlendirmesini kaldırır. — ek hizmet gerekir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_required, not_actionable, url_forwarding_failed, url_forwarding_not_supported, url_forwarding_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "url_forwarding_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/domains/{domain}/addons/{key}": {
   "post": {
    "tags": [
     "Domains and DNS"
    ],
    "operationId": "coreBuyDomainAddon",
    "summary": "Buy domain addon (path: {domain}, {key})",
    "x-summary-tr": "Alan Adı Ek Hizmeti Alma",
    "x-scope": "Domains/BuyDomainAddon",
    "x-generated": "core-catalog",
    "description": "Buy domain addon (path: {domain}, {key}). Domain operations run against the registrar module of the domain.\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-alan-adlari).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Alan adı yönetimi, gizlilik ya da yönlendirme ek hizmetini satın alır. — oranlı ilk dönem",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "addon_active, addon_free, addon_not_offered, addon_not_supported, addon_pending, addon_rejected, addon_term_invalid, not_actionable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "addon_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "key",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ]
   }
  },
  "/products": {
   "get": {
    "tags": [
     "Catalog"
    ],
    "operationId": "coreGetProducts",
    "summary": "List products",
    "x-summary-tr": "Ürünleri Listeleme",
    "x-scope": "Products/GetProducts",
    "x-generated": "core-catalog",
    "description": "List products. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satistaki-urunler).",
    "x-description-tr": "Sipariş edilebilecek ürünleri vitrin sırasıyla döndürür. — cüzdan para birimi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "type_invalid",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     },
     {
      "name": "type",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Tek bir ürün türü. Bilinmeyen tür reddedilir ve geçerli liste yanıtın ayrıntısında gelir."
     },
     {
      "name": "category",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kategori numarası. Ana kategoriyle de ek atamalarla da eşleşir."
     },
     {
      "name": "search",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Ürün başlığında arar."
     }
    ]
   }
  },
  "/products/categories": {
   "get": {
    "tags": [
     "Catalog"
    ],
    "operationId": "coreGetProductCategories",
    "summary": "List product categories",
    "x-summary-tr": "Kategorileri Listeleme",
    "x-scope": "Products/GetProductCategories",
    "x-generated": "core-catalog",
    "description": "List product categories. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satistaki-urunler).",
    "x-description-tr": "Vitrinde görünen ürün kategorilerini düz bir liste olarak döndürür. — sayfalama yok",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    },
    "parameters": [
     {
      "name": "type",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Yalnız bu türün kategorileri. Bilinmeyen değer boş liste verir, hata değil."
     }
    ]
   }
  },
  "/products/{id}": {
   "get": {
    "tags": [
     "Catalog"
    ],
    "operationId": "coreGetProduct",
    "summary": "Get product (path: {id})",
    "x-summary-tr": "Ürün Detayı ve Sipariş Şeması",
    "x-scope": "Products/GetProduct",
    "x-generated": "core-catalog",
    "description": "Get product (path: {id}). \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satistaki-urunler).",
    "x-description-tr": "Bir ürünü, sipariş gövdesini kurmak için gereken her şeyle döndürür. — sipariş girdisi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/orders": {
   "get": {
    "tags": [
     "Orders"
    ],
    "operationId": "coreGetOrders",
    "summary": "List orders",
    "x-summary-tr": "Siparişleri Listeleme",
    "x-scope": "Orders/GetOrders",
    "x-generated": "core-catalog",
    "description": "List orders. Orders of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).",
    "x-description-tr": "Hesabın siparişlerini en yeniden başlayarak döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "status_invalid",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     },
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Durum süzgeci: bekliyor, işlemde, etkin ya da iptal."
     }
    ]
   },
   "post": {
    "tags": [
     "Orders"
    ],
    "operationId": "coreCreateOrder",
    "summary": "Create order",
    "x-summary-tr": "Sipariş Verme",
    "x-scope": "Orders/CreateOrder",
    "x-generated": "core-catalog",
    "description": "Create order. Orders of the calling account.\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Siparişi verir ve aynı çağrıda tahsil eder. — bakiye ya da kayıtlı kart",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "card_not_chargeable, checkout_blocked, insufficient_balance, no_stored_card, payment_method_restricted, terms_required, verification_required",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "terms": {
          "type": "boolean",
          "description": "Şartların kabulü. Doğru gönderilmelidir."
         },
         "items": {
          "type": "string",
          "description": "items[]Sipariş satırları. Birden yirmiye kadar."
         },
         "product_id": {
          "type": "integer",
          "description": "Sipariş edilecek ürünün numarası."
         },
         "cycle": {
          "type": "string",
          "description": "Ödeme döngüsü. Ürünün fiyatlı döngülerinden biri olmalıdır."
         },
         "quantity": {
          "type": "integer",
          "description": "Adet. Yalnız ürün çoklu alıma izin veriyorsa dikkate alınır."
         },
         "addons": {
          "type": "object",
          "description": "Seçilen ek hizmetler. Ek hizmet numarasını seçenek numarasına eşler. Ürünün ilk dönemi ücretsiz dahil ettiği ek hizmet gönderilmese de siparişe eklenir. İlk dönem tutarı 0 olur, yenilemeler ek hizmet fiyatından faturalanır ve siparişten çıkarılamaz."
         },
         "addons_qty": {
          "type": "object",
          "description": "Adetli ek hizmetlerin sayısı."
         },
         "requirements": {
          "type": "object",
          "description": "Ürünün sorduğu alanların yanıtları. Zorunlu işaretlenen her alan gönderilmelidir."
         },
         "requirement_files": {
          "type": "object",
          "description": "Dosya isteyen alanların içeriği. Kodlanmış içerik olarak gönderilir; adres kabul edilmez."
         },
         "metrics": {
          "type": "string",
          "description": "Açılacak ölçümlerin numaraları."
         },
         "domain": {
          "type": "object",
          "description": "Satırın alan adı ekseni. Seçim, ad, alt alan adı kökü ve lisans alanlarını taşır."
         },
         "coupons": {
          "type": "string",
          "description": "Kupon kodları. Operatörün kendiliğinden uygulanan kuponları da katılır."
         },
         "billing_profile_id": {
          "type": "integer",
          "description": "Fatura profilinin numarası."
         },
         "notes": {
          "type": "string",
          "description": "Sipariş notu. Bin karakterden uzunu kırpılır."
         },
         "payment": {
          "type": "object",
          "description": "paymentÖdeme kaynağı. Toplam sıfırın üstündeyse zorunludur."
         },
         "method": {
          "type": "string",
          "description": "Ödeme yolu: hesap bakiyesi ya da kayıtlı kart."
         },
         "card_id": {
          "type": "integer",
          "description": "Çekilecek kartın numarası. Verilmezse hesabın varsayılan kartı çekilir."
         }
        },
        "required": [
         "cycle",
         "items",
         "product_id",
         "terms"
        ]
       }
      }
     }
    },
    "parameters": [
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ]
   }
  },
  "/orders/preview": {
   "post": {
    "tags": [
     "Orders"
    ],
    "operationId": "corePreviewOrder",
    "summary": "Preview order",
    "x-summary-tr": "Siparişi Fiyatlandırma",
    "x-scope": "Orders/PreviewOrder",
    "x-generated": "core-catalog",
    "description": "Preview order. Orders of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).",
    "x-description-tr": "Sipariş gövdesini fiyatlandırır ve tek satır bile yazmaz. — hiçbir şey yazılmaz",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "coupon_invalid, cycle_invalid, domain_acquisition_not_here, items_required, product_not_orderable, requirement_missing",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "items": {
          "type": "string",
          "description": "items[]Sipariş satırları. Birden yirmiye kadar; şekli sipariş ucuyla aynıdır."
         },
         "product_id": {
          "type": "integer",
          "description": "Sipariş edilecek ürünün numarası."
         },
         "cycle": {
          "type": "string",
          "description": "Ödeme döngüsü. Ürünün fiyatlı döngülerinden biri olmalıdır."
         },
         "quantity": {
          "type": "integer",
          "description": "Adet. Yalnız ürün çoklu alıma izin veriyorsa dikkate alınır."
         },
         "addons": {
          "type": "object",
          "description": "Seçilen ek hizmetler. Ek hizmet numarasını seçenek numarasına eşler. Ürünün ilk dönemi ücretsiz dahil ettiği ek hizmet gönderilmese de siparişe eklenir. İlk dönem tutarı 0 olur, yenilemeler ek hizmet fiyatından faturalanır ve siparişten çıkarılamaz."
         },
         "addons_qty": {
          "type": "object",
          "description": "Adetli ek hizmetlerin sayısı."
         },
         "requirements": {
          "type": "object",
          "description": "Ürünün sorduğu alanların yanıtları. Zorunlu işaretlenen her alan gönderilmelidir."
         },
         "requirement_files": {
          "type": "object",
          "description": "Dosya isteyen alanların içeriği. Kodlanmış içerik olarak gönderilir; adres kabul edilmez."
         },
         "metrics": {
          "type": "string",
          "description": "Açılacak ölçümlerin numaraları."
         },
         "domain": {
          "type": "object",
          "description": "Satırın alan adı ekseni. Seçim, ad, alt alan adı kökü ve lisans alanlarını taşır."
         },
         "coupons": {
          "type": "string",
          "description": "Denenecek kupon kodları."
         },
         "billing_profile_id": {
          "type": "integer",
          "description": "Fatura profilinin numarası. Vergi bağlamını belirler; verilmezse varsayılan profil, hesapta kayıtlı profil yoksa hesabın ülkesi kullanılır."
         },
         "payment": {
          "type": "object",
          "description": "Ödeme bloğu. Verilirse yöntemin komisyonu toplama eklenir; bakiye yeterliliği burada denetlenmez."
         },
         "method": {
          "type": "string",
          "description": ""
         },
         "card_id": {
          "type": "string",
          "description": ""
         }
        },
        "required": [
         "cycle",
         "items",
         "product_id"
        ]
       }
      }
     }
    }
   }
  },
  "/orders/{id}": {
   "get": {
    "tags": [
     "Orders"
    ],
    "operationId": "coreGetOrder",
    "summary": "Get order (path: {id})",
    "x-summary-tr": "Sipariş Detayını Okuma",
    "x-scope": "Orders/GetOrder",
    "x-generated": "core-catalog",
    "description": "Get order (path: {id}). Orders of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).",
    "x-description-tr": "Siparişin satırlarını, doğan hizmetlerini ve faturasını döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/invoices/{id}/pay": {
   "post": {
    "tags": [
     "Billing"
    ],
    "operationId": "corePayInvoice",
    "summary": "Pay invoice (path: {id})",
    "x-summary-tr": "Faturayı Ödeme",
    "x-scope": "Invoices/PayInvoice",
    "x-generated": "core-catalog",
    "description": "Pay invoice (path: {id}). Invoices of the calling account.\n\n**Spends money / creates an invoice.** Money rules apply (AK-40): `\"confirm\": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/fatura-odeme-api).",
    "x-description-tr": "**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `\"confirm\": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Açık bir faturayı bakiyeyle ya da kayıtlı kartla kapatır. — bakiye ya da kayıtlı kart",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "balance_not_allowed, card_expired, card_not_chargeable, insufficient_balance, invoice_not_payable, no_stored_card, payment_method_invalid, subscription_collects",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
       "type": "string",
       "minLength": 8,
       "maxLength": 191
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "payment": {
          "type": "object",
          "description": "paymentÖdeme kaynağı."
         },
         "method": {
          "type": "string",
          "description": "Ödeme yolu: hesap bakiyesi ya da kayıtlı kart."
         },
         "card_id": {
          "type": "integer",
          "description": "Çekilecek kartın numarası. Verilmezse hesabın varsayılan kartı çekilir."
         }
        },
        "required": [
         "method",
         "payment"
        ]
       }
      }
     }
    }
   }
  },
  "/invoices/{id}/coupon": {
   "post": {
    "tags": [
     "Billing"
    ],
    "operationId": "coreApplyInvoiceCoupon",
    "summary": "Apply invoice coupon (path: {id})",
    "x-summary-tr": "Faturaya Kupon Uygulama",
    "x-scope": "Invoices/ApplyInvoiceCoupon",
    "x-generated": "core-catalog",
    "description": "Apply invoice coupon (path: {id}). Invoices of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/fatura-odeme-api).",
    "x-description-tr": "Açık bir faturaya kupon uygular ve belgeyi yeniden fiyatlar. — belge başına tek kupon",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "coupon_code_required, coupon_invalid, coupon_not_invoice, coupon_rejected, coupon_scope, coupon_used, invoice_not_payable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "code": {
          "type": "string",
          "description": "Kupon kodu."
         }
        },
        "required": [
         "code"
        ]
       }
      }
     }
    }
   }
  },
  "/tickets/departments": {
   "get": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreGetTicketDepartments",
    "summary": "List ticket departments",
    "x-summary-tr": "Departmanları Listeleme",
    "x-scope": "Tickets/GetTicketDepartments",
    "x-generated": "core-catalog",
    "description": "List ticket departments. Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Talep açılabilecek departmanları kendi alan şemalarıyla döndürür. — açılış şeması",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    }
   }
  },
  "/tickets/access-groups": {
   "get": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreGetTicketAccessGroups",
    "summary": "List ticket access groups",
    "x-summary-tr": "Erişim Gruplarını Listeleme",
    "x-scope": "Tickets/GetTicketAccessGroups",
    "x-generated": "core-catalog",
    "description": "List ticket access groups. Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Mesaja eklenebilecek erişim bilgisi gruplarını şemalarıyla döndürür. — şifreli alanlar",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    }
   }
  },
  "/tickets": {
   "get": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreGetTickets",
    "summary": "List tickets",
    "x-summary-tr": "Talepleri Listeleme",
    "x-scope": "Tickets/GetTickets",
    "x-generated": "core-catalog",
    "description": "List tickets. Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Hesabın destek taleplerini durum sırasıyla döndürür. — durum sırası",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "status_invalid, ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     },
     {
      "name": "status",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Durum süzgeci. Müşteriye gösterilen durum sözlüğünü kabul eder."
     },
     {
      "name": "department",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Departman süzgeci."
     },
     {
      "name": "search",
      "in": "query",
      "schema": {
       "type": "string"
      },
      "description": "Konu, referans ve departman adında arar."
     }
    ]
   },
   "post": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreCreateTicket",
    "summary": "Create ticket",
    "x-summary-tr": "Talep Açma",
    "x-scope": "Tickets/CreateTicket",
    "x-generated": "core-catalog",
    "description": "Create ticket. Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Yeni bir destek talebi açar. — ek kabul eder",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "access_group_invalid, attachment_invalid, credential_field_required, custom_field_required, department_invalid, message_too_short, subject_required, ticket_rejected, ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "department_id": {
          "type": "integer",
          "description": "Departmanın numarası."
         },
         "subject": {
          "type": "string",
          "description": "Konu."
         },
         "message": {
          "type": "string",
          "description": "Açılış mesajı. En az beş karakter; düz metindir ve işaretleme ayıklanır."
         },
         "priority": {
          "type": "integer",
          "description": "Öncelik. Verilmezse orta alınır."
         },
         "service_id": {
          "type": "integer",
          "description": "Talebi bir hizmete bağlar."
         },
         "custom_fields": {
          "type": "object",
          "description": "Departman alanlarının yanıtları. Alan numarasını değere eşler; kutu tipli alanlar dizi alır."
         },
         "credentials": {
          "type": "string",
          "description": "Erişim bilgileri. Her satır bir grup numarası ve alan haritası taşır; mesaja şifreli işlenir."
         },
         "attachments": {
          "type": "array",
          "description": "Ekler. Kodlanmış içerik olarak gönderilir; adres reddedilir."
         },
         "encrypt_message": {
          "type": "boolean",
          "description": "Mesaj gövdesi şifreli saklansın mı."
         }
        },
        "required": [
         "department_id",
         "message",
         "subject"
        ]
       }
      }
     }
    }
   }
  },
  "/tickets/{id}": {
   "get": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreGetTicket",
    "summary": "Get ticket (path: {id})",
    "x-summary-tr": "Talebi ve Mesajları Okuma",
    "x-scope": "Tickets/GetTicket",
    "x-generated": "core-catalog",
    "description": "Get ticket (path: {id}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Talebin üst bilgilerini ve bütün mesaj dizisini döndürür. — okundu işaretler",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/tickets/{id}/reply": {
   "post": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreReplyTicket",
    "summary": "Reply ticket (path: {id})",
    "x-summary-tr": "Yanıt Yazma",
    "x-scope": "Tickets/ReplyTicket",
    "x-generated": "core-catalog",
    "description": "Reply ticket (path: {id}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Açık bir talebe yanıt ekler. — ek kabul eder",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "access_group_invalid, attachment_invalid, message_too_short, reply_rejected, ticket_not_open, ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "message": {
          "type": "string",
          "description": "Yanıt metni. En az beş karakter."
         },
         "credentials": {
          "type": "string",
          "description": "Erişim bilgileri."
         },
         "attachments": {
          "type": "array",
          "description": "Ekler."
         },
         "encrypt_message": {
          "type": "boolean",
          "description": "Gövde şifreli saklansın mı."
         }
        },
        "required": [
         "message"
        ]
       }
      }
     }
    }
   }
  },
  "/tickets/{id}/close": {
   "post": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreCloseTicket",
    "summary": "Close ticket (path: {id})",
    "x-summary-tr": "Talebi Kapatma",
    "x-scope": "Tickets/CloseTicket",
    "x-generated": "core-catalog",
    "description": "Close ticket (path: {id}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Talebi çözüldü olarak kapatır. — puan verilebilir",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "rating": {
          "type": "integer",
          "description": "Kapatırken verilen puan. Yalnız talep henüz puansızken işlenir."
         }
        }
       }
      }
     }
    }
   }
  },
  "/tickets/{id}/reopen": {
   "post": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreReopenTicket",
    "summary": "Reopen ticket (path: {id})",
    "x-summary-tr": "Talebi Yeniden Açma",
    "x-scope": "Tickets/ReopenTicket",
    "x-generated": "core-catalog",
    "description": "Reopen ticket (path: {id}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Kapalı bir talebi yeniden açar. — kilitliyse olmaz",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "ticket_locked, ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/tickets/{id}/rating": {
   "post": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreRateTicket",
    "summary": "Rate ticket (path: {id})",
    "x-summary-tr": "Talebi Puanlama",
    "x-scope": "Tickets/RateTicket",
    "x-generated": "core-catalog",
    "description": "Rate ticket (path: {id}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Talebe bir ile beş arasında puan verir. — bir kez",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "already_rated, rating_invalid, ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "rating": {
          "type": "integer",
          "description": "Verilen puan. Birden beşe."
         }
        },
        "required": [
         "rating"
        ]
       }
      }
     }
    }
   }
  },
  "/tickets/{id}/replies/{rid}/rating": {
   "post": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreRateTicketReply",
    "summary": "Rate ticket reply (path: {id}, {rid})",
    "x-summary-tr": "Personel Yanıtını Puanlama",
    "x-scope": "Tickets/RateTicketReply",
    "x-generated": "core-catalog",
    "description": "Rate ticket reply (path: {id}, {rid}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Tek bir personel yanıtına puan verir. — bir kez",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "already_rated, rating_invalid, ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "rid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "rating": {
          "type": "integer",
          "description": "Verilen puan. Birden beşe."
         }
        },
        "required": [
         "rating"
        ]
       }
      }
     }
    }
   }
  },
  "/tickets/{id}/attachments/{aid}": {
   "get": {
    "tags": [
     "Support tickets"
    ],
    "operationId": "coreGetTicketAttachment",
    "summary": "Get ticket attachment (path: {id}, {aid})",
    "x-summary-tr": "Eki İndirme",
    "x-scope": "Tickets/GetTicketAttachment",
    "x-generated": "core-catalog",
    "description": "Get ticket attachment (path: {id}, {aid}). Support ticket of the calling account.\n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).",
    "x-description-tr": "Bir mesaj ekini içeriğiyle birlikte döndürür. — kodlanmış içerik",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "ticket_system_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "aid",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/sms/senders": {
   "get": {
    "tags": [
     "SMS"
    ],
    "operationId": "coreGetSmsSenders",
    "summary": "List sms senders",
    "x-summary-tr": "Başlıkları Listeleme",
    "x-scope": "Sms/GetSmsSenders",
    "x-generated": "core-catalog",
    "description": "List sms senders. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/mesaj-gonderme).",
    "x-description-tr": "Gönderimde kullanılabilecek başlıkları ve ülke kayıtlarını döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "sms_api_disabled, sms_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    }
   }
  },
  "/sms/quote": {
   "post": {
    "tags": [
     "SMS"
    ],
    "operationId": "coreQuoteSms",
    "summary": "Quote sms",
    "x-summary-tr": "Fiyat Alma",
    "x-scope": "Sms/QuoteSms",
    "x-generated": "core-catalog",
    "description": "Quote sms. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/mesaj-gonderme).",
    "x-description-tr": "Gönderimin ne kadar tutacağını ve neyin eleneceğini söyler. — gönderim yok",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "message_required, numbers_required, sender_invalid, sms_api_disabled, sms_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "sender": {
          "type": "string",
          "description": "Gönderen başlığı. Hesabın etkin başlıklarından biri olmalıdır."
         },
         "message": {
          "type": "string",
          "description": "Mesaj metni. Parça tavanını aşan metin kırpılır ve kırpıldığı bildirilir."
         },
         "numbers": {
          "type": "array",
          "description": "Alıcı numaralar. Uluslararası biçimde; tek bir metin olarak gönderilirse satır, virgül ve noktalı virgülden bölünür."
         }
        },
        "required": [
         "message",
         "numbers",
         "sender"
        ]
       }
      }
     }
    }
   }
  },
  "/sms/send": {
   "post": {
    "tags": [
     "SMS"
    ],
    "operationId": "coreSendSms",
    "summary": "Send sms",
    "x-summary-tr": "Toplu Gönderim",
    "x-scope": "Sms/SendSms",
    "x-generated": "core-catalog",
    "description": "Send sms. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/mesaj-gonderme).",
    "x-description-tr": "Mesajı gönderir ve tutarı cüzdandan keser. — cüzdandan keser",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "insufficient_balance, no_recipients, price_unavailable, send_rejected, sender_invalid, sms_api_disabled, sms_disabled, sms_module_unavailable",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "500": {
      "description": "send_failed",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "sender": {
          "type": "string",
          "description": "Gönderen başlığı. Hesabın etkin başlıklarından biri olmalıdır."
         },
         "message": {
          "type": "string",
          "description": "Mesaj metni. Parça tavanını aşan metin kırpılır ve kırpıldığı bildirilir."
         },
         "numbers": {
          "type": "array",
          "description": "Alıcı numaralar. Uluslararası biçimde; tek bir metin olarak gönderilirse satır, virgül ve noktalı virgülden bölünür."
         }
        },
        "required": [
         "message",
         "numbers",
         "sender"
        ]
       }
      }
     }
    }
   }
  },
  "/sms/messages": {
   "get": {
    "tags": [
     "SMS"
    ],
    "operationId": "coreGetSmsMessages",
    "summary": "List sms messages",
    "x-summary-tr": "Gönderim Geçmişi",
    "x-scope": "Sms/GetSmsMessages",
    "x-generated": "core-catalog",
    "description": "List sms messages. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/mesaj-gonderme).",
    "x-description-tr": "Yapılmış gönderimleri en yeniden başlayarak döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "sms_api_disabled, sms_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     }
    ]
   }
  },
  "/sms/messages/{id}": {
   "get": {
    "tags": [
     "SMS"
    ],
    "operationId": "coreGetSmsMessage",
    "summary": "Get sms message (path: {id})",
    "x-summary-tr": "Tek Gönderimi Okuma",
    "x-scope": "Sms/GetSmsMessage",
    "x-generated": "core-catalog",
    "description": "Get sms message (path: {id}). \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/mesaj-gonderme).",
    "x-description-tr": "Bir gönderimi alıcı numaralarıyla birlikte döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "sms_api_disabled, sms_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ]
   }
  },
  "/balance/settings": {
   "patch": {
    "tags": [
     "Billing"
    ],
    "operationId": "coreUpdateBalanceSettings",
    "summary": "Update balance settings",
    "x-summary-tr": "Cüzdan Ayarlarını Değiştirme",
    "x-scope": "Balance/UpdateBalanceSettings",
    "x-generated": "core-catalog",
    "description": "Update balance settings. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hesap-bakiyesi-api).",
    "x-description-tr": "Otomatik ödemeyi ve düşük bakiye uyarısını ayarlar. — faturaları etkiler",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "description": "not_found",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     },
     "422": {
      "description": "alert_invalid, auto_pay_invalid, card_expired, nothing_to_update",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "auto_pay_from_balance": {
          "type": "boolean",
          "description": "Yenilemeler cüzdandan tahsil edilsin mi. Bu değiştiğinde açık yenileme faturaları yeni tercihe göre yeniden ele alınır."
         },
         "backup_card_id": {
          "type": "integer",
          "description": "Cüzdan yetmediğinde çekilecek kart. Sıfır göndermek kart zincirini tümüyle kaldırır."
         },
         "alert": {
          "type": "object",
          "description": "Uyarı bloğu. Açık ve eşik alanlarını taşır; açarken pozitif bir eşik gerekir."
         },
         "alert_recipients": {
          "type": "string",
          "description": "Uyarıyı alacak fatura adresi numaraları. Liste yerine geçer; hesabın sahibi burada yer almaz, her zaman alır."
         }
        }
       }
      }
     }
    }
   }
  },
  "/affiliate": {
   "get": {
    "tags": [
     "Affiliate"
    ],
    "operationId": "coreGetAffiliate",
    "summary": "Get affiliate",
    "x-summary-tr": "Program Durumunu Okuma",
    "x-scope": "Affiliate/GetAffiliate",
    "x-generated": "core-catalog",
    "description": "Get affiliate. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satis-ortakligi-kazanci).",
    "x-description-tr": "Programı, kazancı ve ödeme durumunu tek çağrıda döndürür. — olgunlaşanı taşır",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "affiliate_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    }
   }
  },
  "/affiliate/commissions": {
   "get": {
    "tags": [
     "Affiliate"
    ],
    "operationId": "coreGetAffiliateCommissions",
    "summary": "List affiliate commissions",
    "x-summary-tr": "Komisyonları Listeleme",
    "x-scope": "Affiliate/GetAffiliateCommissions",
    "x-generated": "core-catalog",
    "description": "List affiliate commissions. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satis-ortakligi-kazanci).",
    "x-description-tr": "Kazanılan komisyonları en yeniden başlayarak döndürür. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "array",
           "items": {
            "type": "object",
            "additionalProperties": true
           }
          },
          "meta": {
           "$ref": "#/components/schemas/PageMeta"
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "affiliate_disabled, not_enrolled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "page",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Kaçıncı sayfa."
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer"
      },
      "description": "Sayfa başına satır. En çok 100."
     }
    ]
   }
  },
  "/affiliate/enroll": {
   "post": {
    "tags": [
     "Affiliate"
    ],
    "operationId": "coreEnrollAffiliate",
    "summary": "Enroll affiliate",
    "x-summary-tr": "Programa Katılma",
    "x-scope": "Affiliate/EnrollAffiliate",
    "x-generated": "core-catalog",
    "description": "Enroll affiliate. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satis-ortakligi-kazanci).",
    "x-description-tr": "Hesabı satış ortaklığı programına kaydeder. — hesabın para birimi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "affiliate_disabled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    }
   }
  },
  "/affiliate/withdraw": {
   "post": {
    "tags": [
     "Affiliate"
    ],
    "operationId": "coreWithdrawAffiliate",
    "summary": "Withdraw affiliate",
    "x-summary-tr": "Ödeme Talebi Açma",
    "x-scope": "Affiliate/WithdrawAffiliate",
    "x-generated": "core-catalog",
    "description": "Withdraw affiliate. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satis-ortakligi-kazanci).",
    "x-description-tr": "Kullanılabilir kazancın ödenmesini ister. — aynı anda tek talep",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "affiliate_disabled, affiliate_disabled_account, amount_invalid, below_minimum, gateway_info_required, gateway_invalid, not_enrolled, withdrawal_pending, withdrawal_rejected",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "amount": {
          "type": "number",
          "description": "İstenen tutar. Alt sınır ile kullanılabilir bakiye arasında olmalıdır."
         },
         "gateway": {
          "type": "string",
          "description": "Ödeme yolu. Operatörün sunduklarından biri olmalıdır."
         },
         "gateway_info": {
          "type": "string",
          "description": "Hedef bilgisi. Kayıtlı bir hedef varsa atlanabilir."
         },
         "save_default": {
          "type": "boolean",
          "description": "Bu hedefi sonraki talepler için kaydet."
         }
        },
        "required": [
         "amount",
         "gateway"
        ]
       }
      }
     }
    }
   }
  },
  "/affiliate/payment-method": {
   "put": {
    "tags": [
     "Affiliate"
    ],
    "operationId": "coreSaveAffiliatePayoutMethod",
    "summary": "Save affiliate payout method",
    "x-summary-tr": "Ödeme Hedefini Kaydetme",
    "x-scope": "Affiliate/SaveAffiliatePayoutMethod",
    "x-generated": "core-catalog",
    "description": "Save affiliate payout method. \n\nCore WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satis-ortakligi-kazanci).",
    "x-description-tr": "Bir ödeme yolunun hedef bilgisini kaydeder ya da siler. — anahtarın sahibi",
    "responses": {
     "200": {
      "description": "Success",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "data": {
           "type": "object",
           "additionalProperties": true
          }
         }
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "422": {
      "description": "affiliate_disabled, gateway_invalid, not_enrolled",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Error"
        }
       }
      }
     }
    },
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "gateway": {
          "type": "string",
          "description": "Ödeme yolu."
         },
         "info": {
          "type": "string",
          "description": "Hedef bilgisi. Boş göndermek kaydı siler."
         }
        },
        "required": [
         "gateway"
        ]
       }
      }
     }
    }
   }
  }
 },
 "components": {
  "securitySchemes": {
   "bearerAuth": {
    "type": "http",
    "scheme": "bearer",
    "bearerFormat": "wck_ + 32 characters",
    "description": "Client API key. Scopes: `Module:Addons/GyroAPI/cloud_read`, `.../cloud_write`, `.../cloud_order` (spends balance),\n`.../cloud_delete`, plus core scopes such as `Invoices/GetInvoices`, `Balance/GetBalance`. Optional IP allow list per key.\nDefault limit 60 requests per minute per key (`X-RateLimit-*` headers, `429` with `Retry-After`).\n v2 scopes: `services_read`, `services_write`, `webhooks`, `keys`, `reseller`, `billing_pay`, `billing_read`, `users` (all under `Module:Addons/GyroAPI/`)."
   }
  },
  "parameters": {
   "ServerId": {
    "name": "id",
    "in": "path",
    "required": true,
    "schema": {
     "type": "integer"
    },
    "description": "Server id (= service id in the client area)"
   },
   "Page": {
    "name": "page",
    "in": "query",
    "schema": {
     "type": "integer",
     "minimum": 1,
     "default": 1
    }
   },
   "Limit": {
    "name": "limit",
    "in": "query",
    "schema": {
     "type": "integer",
     "minimum": 1,
     "maximum": 100,
     "default": 50
    }
   },
   "IdempotencyKey": {
    "name": "Idempotency-Key",
    "in": "header",
    "required": true,
    "schema": {
     "type": "string",
     "minLength": 8,
     "maxLength": 191
    },
    "description": "Unique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer."
   }
  },
  "responses": {
   "BadRequest": {
    "description": "Malformed request (e.g. missing Idempotency-Key)",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Unauthorized": {
    "description": "Missing, invalid or revoked key",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "PaymentRequired": {
    "description": "Account balance does not cover the order (`insufficient_balance`)",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Forbidden": {
    "description": "Key lacks the scope, IP not allowed, or feature disabled",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "NotFound": {
    "description": "Not found — also returned for objects owned by someone else",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Conflict": {
    "description": "State conflict (`server_locked`, `not_actionable`, `ssh_key_exists`, `server_limit`, `idempotency_in_flight`)",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "Validation": {
    "description": "Validation or business rule failure (`confirm_required`, `invalid_image`, `tool_action_failed` ...)",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   },
   "RateLimited": {
    "description": "Too many requests (`rate_limited`); see the `Retry-After` and `X-RateLimit-*` headers",
    "headers": {
     "Retry-After": {
      "description": "Seconds to wait",
      "schema": {
       "type": "integer"
      }
     }
    },
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/Error"
      }
     }
    }
   }
  },
  "schemas": {
   "Error": {
    "type": "object",
    "required": [
     "error"
    ],
    "properties": {
     "error": {
      "type": "object",
      "required": [
       "code",
       "message"
      ],
      "properties": {
       "code": {
        "type": "string",
        "example": "server_not_found"
       },
       "message": {
        "type": "string"
       },
       "details": {
        "type": "object",
        "additionalProperties": true
       }
      }
     }
    }
   },
   "PageMeta": {
    "type": "object",
    "properties": {
     "total": {
      "type": "integer"
     },
     "page": {
      "type": "integer"
     },
     "limit": {
      "type": "integer"
     },
     "next_page": {
      "type": "integer",
      "description": "0 when this is the last page"
     }
    }
   },
   "Money": {
    "type": "object",
    "properties": {
     "amount": {
      "type": "number"
     },
     "currency": {
      "type": [
       "string",
       "null"
      ],
      "example": "TRY"
     }
    }
   },
   "Price": {
    "type": "object",
    "properties": {
     "cycle": {
      "type": "string",
      "example": "monthly"
     },
     "amount": {
      "type": "number"
     },
     "setup": {
      "type": "number"
     },
     "currency": {
      "type": "string"
     }
    }
   },
   "Product": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "example": 723
     },
     "name": {
      "type": "string",
      "example": "Gyro Bulut Standart 2-4"
     },
     "plan": {
      "type": "string",
      "example": "standart-2-4",
      "description": "Plan name (use it with region when ordering)"
     },
     "region": {
      "type": "string",
      "example": "eu-de-1",
      "description": "Gyro region"
     },
     "server_type": {
      "type": "string",
      "deprecated": true,
      "description": "Legacy type code (kept for backward compatibility; use plan)"
     },
     "location": {
      "type": "string",
      "deprecated": true,
      "description": "Legacy location code (kept for backward compatibility; use region)"
     },
     "cores": {
      "type": [
       "integer",
       "null"
      ]
     },
     "memory_gb": {
      "type": [
       "number",
       "null"
      ]
     },
     "disk_gb": {
      "type": [
       "integer",
       "null"
      ]
     },
     "cpu_type": {
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "shared",
       "dedicated",
       null
      ]
     },
     "architecture": {
      "type": [
       "string",
       "null"
      ],
      "example": "x86"
     },
     "traffic_tb": {
      "type": [
       "number",
       "null"
      ]
     },
     "ipv4": {
      "type": "boolean"
     },
     "ipv6": {
      "type": "boolean"
     },
     "available": {
      "type": "boolean"
     },
     "prices": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Price"
      }
     },
     "product_line": {
      "type": "string",
      "enum": [
       "cloud_server",
       "vds"
      ],
      "description": "cloud_server (global cloud) or vds (Istanbul VDS)"
     }
    }
   },
   "Location": {
    "type": "object",
    "properties": {
     "region": {
      "type": "string",
      "example": "eu-de-1",
      "description": "Gyro region name"
     },
     "code": {
      "type": "string",
      "deprecated": true,
      "description": "Legacy location code (use region)"
     },
     "city": {
      "type": "string",
      "example": "Falkenstein"
     },
     "country": {
      "type": "string",
      "example": "DE"
     },
     "zone": {
      "type": "string",
      "example": "eu-central"
     },
     "products": {
      "type": "integer"
     }
    }
   },
   "Image": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string",
      "example": "debian-12"
     },
     "name": {
      "type": "string",
      "example": "Debian 12"
     },
     "os_flavor": {
      "type": "string",
      "example": "debian"
     }
    }
   },
   "SshKey": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "name": {
      "type": "string"
     },
     "fingerprint": {
      "type": "string",
      "example": "SHA256:d2FI8h473Y+uh+dzu6cIeVKqX0Ckx7WUeXp5mII515A"
     },
     "public_key": {
      "type": "string"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     }
    }
   },
   "Server": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "example": 47466
     },
     "name": {
      "type": "string",
      "description": "Product name"
     },
     "hostname": {
      "type": [
       "string",
       "null"
      ]
     },
     "status": {
      "type": "string",
      "enum": [
       "waiting",
       "inprocess",
       "active",
       "suspended",
       "cancelled"
      ],
      "description": "Billing / service status"
     },
     "product_id": {
      "type": "integer"
     },
     "plan": {
      "type": [
       "string",
       "null"
      ],
      "example": "standart-2-4"
     },
     "region": {
      "type": [
       "string",
       "null"
      ],
      "example": "eu-de-1"
     },
     "server_type": {
      "type": [
       "string",
       "null"
      ],
      "deprecated": true,
      "description": "Legacy type code (use plan)"
     },
     "location": {
      "type": [
       "string",
       "null"
      ],
      "deprecated": true,
      "description": "Legacy location code (use region)"
     },
     "ipv4": {
      "type": [
       "string",
       "null"
      ]
     },
     "ipv6": {
      "type": [
       "string",
       "null"
      ],
      "description": "IPv6 network (/64)"
     },
     "provisioned": {
      "type": "boolean",
      "description": "true once the machine exists"
     },
     "cycle": {
      "type": "string",
      "example": "monthly"
     },
     "price": {
      "$ref": "#/components/schemas/Money"
     },
     "auto_renew": {
      "type": "boolean"
     },
     "created_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "due_date": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "cancellation": {
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "pending",
       "approved",
       null
      ]
     },
     "customer_id": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Reseller end-customer (main key only)"
     },
     "product_line": {
      "type": "string",
      "enum": [
       "cloud_server",
       "vds"
      ]
     }
    }
   },
   "ServerLive": {
    "type": [
     "object",
     "null"
    ],
    "properties": {
     "power_state": {
      "type": "string",
      "enum": [
       "running",
       "stopped",
       "starting",
       "stopping",
       "suspended",
       "deleting",
       "unknown"
      ]
     },
     "locked": {
      "type": "boolean",
      "description": "An action is running; writes return 409 server_locked"
     },
     "rescue_enabled": {
      "type": "boolean"
     },
     "backups_enabled": {
      "type": "boolean"
     },
     "ipv4": {
      "type": [
       "string",
       "null"
      ]
     },
     "ipv6_network": {
      "type": [
       "string",
       "null"
      ]
     },
     "cores": {
      "type": "integer"
     },
     "memory_gb": {
      "type": "number"
     },
     "disk_gb": {
      "type": "integer"
     },
     "image": {
      "type": [
       "string",
       "null"
      ],
      "description": "System image slug (null after a snapshot restore)"
     },
     "image_name": {
      "type": [
       "string",
       "null"
      ]
     },
     "region": {
      "type": [
       "string",
       "null"
      ],
      "example": "eu-de-1"
     },
     "location": {
      "type": [
       "string",
       "null"
      ],
      "deprecated": true,
      "description": "Legacy location code (use region)"
     },
     "traffic": {
      "type": "object",
      "properties": {
       "outgoing_bytes": {
        "type": "integer"
       },
       "included_bytes": {
        "type": "integer"
       }
      }
     },
     "checked_at": {
      "type": "string",
      "format": "date-time"
     }
    }
   },
   "ServerDetail": {
    "allOf": [
     {
      "$ref": "#/components/schemas/Server"
     },
     {
      "type": "object",
      "properties": {
       "live": {
        "$ref": "#/components/schemas/ServerLive"
       }
      }
     }
    ]
   },
   "CreateServerRequest": {
    "type": "object",
    "properties": {
     "product_id": {
      "type": "integer",
      "description": "From GET /cloud/products (or give plan + region)"
     },
     "plan": {
      "type": "string",
      "example": "standart-2-4",
      "description": "Plan name from GET /cloud/products"
     },
     "region": {
      "type": "string",
      "example": "eu-de-1",
      "description": "Region from GET /cloud/locations"
     },
     "server_type": {
      "type": "string",
      "deprecated": true,
      "description": "Deprecated alias of plan"
     },
     "location": {
      "type": "string",
      "deprecated": true,
      "description": "Deprecated alias of region"
     },
     "cycle": {
      "type": "string",
      "default": "monthly",
      "enum": [
       "monthly",
       "quarterly",
       "semiannually",
       "annually"
      ]
     },
     "image": {
      "type": "string",
      "example": "debian-12"
     },
     "ssh_keys": {
      "type": "array",
      "items": {
       "type": "integer"
      },
      "maxItems": 1,
      "description": "Ids from /cloud/ssh-keys (one key at creation in v1)"
     },
     "hostname": {
      "type": "string",
      "example": "web-1.example.com"
     },
     "user_data": {
      "type": "string",
      "maxLength": 32768,
      "description": "cloud-init user data"
     },
     "dry_run": {
      "type": "boolean",
      "default": false
     },
     "confirm": {
      "type": "boolean",
      "description": "Must be true to place a paid order"
     },
     "end_customer_id": {
      "type": "integer",
      "description": "Reseller main key: assign the new server to this end-customer"
     }
    }
   },
   "Quote": {
    "type": "object",
    "properties": {
     "product_id": {
      "type": "integer"
     },
     "cycle": {
      "type": "string"
     },
     "total": {
      "$ref": "#/components/schemas/Money"
     },
     "tax": {
      "$ref": "#/components/schemas/Money"
     },
     "balance": {
      "$ref": "#/components/schemas/Money"
     }
    }
   },
   "CreateServerResult": {
    "type": "object",
    "properties": {
     "server": {
      "$ref": "#/components/schemas/Server"
     },
     "order": {
      "type": "object",
      "properties": {
       "id": {
        "type": "integer"
       },
       "number": {
        "type": "string"
       },
       "status": {
        "type": "string"
       },
       "total": {
        "$ref": "#/components/schemas/Money"
       }
      }
     },
     "payment": {
      "type": "object",
      "properties": {
       "method": {
        "type": "string",
        "const": "balance"
       },
       "status": {
        "type": "string",
        "enum": [
         "paid",
         "failed",
         "unpaid"
        ]
       },
       "error": {
        "type": "string"
       }
      }
     },
     "invoice": {
      "$ref": "#/components/schemas/Invoice"
     },
     "end_customer_id": {
      "type": [
       "integer",
       "null"
      ]
     }
    }
   },
   "ActionResult": {
    "type": "object",
    "properties": {
     "action": {
      "type": "string"
     },
     "status": {
      "type": "string",
      "const": "accepted"
     },
     "server_id": {
      "type": "integer"
     },
     "message": {
      "type": "string",
      "description": "Human readable, in the account language"
     },
     "root_password": {
      "type": "string",
      "description": "One-time secret (rebuild without SSH key, reset_password, enable_rescue)"
     },
     "root_password_withheld": {
      "type": "boolean"
     }
    }
   },
   "Snapshot": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "description": {
      "type": "string"
     },
     "status": {
      "type": "string",
      "enum": [
       "creating",
       "available"
      ]
     },
     "size_bytes": {
      "type": "integer"
     },
     "created_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "type": {
      "type": [
       "string",
       "null"
      ],
      "enum": [
       "manual",
       "auto",
       null
      ]
     }
    }
   },
   "Metrics": {
    "type": "object",
    "properties": {
     "period": {
      "type": "string"
     },
     "series": {
      "type": "object",
      "additionalProperties": {
       "type": "object",
       "properties": {
        "unit": {
         "type": "string"
        },
        "lines": {
         "type": "object",
         "additionalProperties": {
          "type": "array",
          "items": {
           "type": "array",
           "prefixItems": [
            {
             "type": "integer"
            },
            {
             "type": "number"
            }
           ],
           "minItems": 2,
           "maxItems": 2
          }
         }
        }
       }
      }
     }
    }
   },
   "RdnsEntry": {
    "type": "object",
    "properties": {
     "ip": {
      "type": "string"
     },
     "hostname": {
      "type": [
       "string",
       "null"
      ]
     },
     "version": {
      "type": "string",
      "enum": [
       "ipv4",
       "ipv6"
      ]
     }
    }
   },
   "FirewallRule": {
    "type": "object",
    "properties": {
     "direction": {
      "type": "string",
      "const": "in"
     },
     "protocol": {
      "type": "string",
      "example": "tcp"
     },
     "port": {
      "type": [
       "string",
       "null"
      ],
      "example": "22"
     },
     "source_ips": {
      "type": "array",
      "items": {
       "type": "string"
      }
     }
    }
   },
   "Invoice": {
    "type": "object",
    "additionalProperties": true,
    "properties": {
     "invoice_id": {
      "type": "integer"
     },
     "number": {
      "type": "string"
     },
     "status": {
      "type": "string"
     },
     "state": {
      "type": "string",
      "enum": [
       "paid",
       "unpaid",
       "overdue",
       "refunded",
       "cancelled",
       "waiting"
      ]
     },
     "total": {
      "$ref": "#/components/schemas/Money"
     },
     "created_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "paid_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "due_date": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     }
    }
   },
   "ActivityEntry": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "method": {
      "type": "string"
     },
     "path": {
      "type": "string"
     },
     "scope": {
      "type": "string",
      "enum": [
       "cloud_read",
       "cloud_write",
       "cloud_order",
       "cloud_delete"
      ]
     },
     "object": {
      "type": [
       "object",
       "null"
      ],
      "properties": {
       "type": {
        "type": "string"
       },
       "id": {
        "type": "integer"
       }
      }
     },
     "status_code": {
      "type": "integer"
     },
     "ip": {
      "type": "string"
     },
     "key_id": {
      "type": "integer"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "customer_id": {
      "type": [
       "integer",
       "null"
      ]
     }
    }
   },
   "Service": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "type": {
      "type": "string",
      "example": "server"
     },
     "product_line": {
      "type": "string",
      "example": "mail"
     },
     "module": {
      "type": [
       "string",
       "null"
      ],
      "description": "Omitted for white-label resellers"
     },
     "name": {
      "type": "string"
     },
     "status": {
      "type": "string"
     },
     "product_id": {
      "type": "integer"
     },
     "host": {
      "type": [
       "string",
       "null"
      ]
     },
     "ip": {
      "type": [
       "string",
       "null"
      ]
     },
     "cycle": {
      "type": "string"
     },
     "price": {
      "$ref": "#/components/schemas/Money"
     },
     "auto_renew": {
      "type": "boolean"
     },
     "due_date": {
      "type": [
       "string",
       "null"
      ],
      "format": "date"
     },
     "customer_id": {
      "type": [
       "integer",
       "null"
      ],
      "description": "Reseller end-customer the service is assigned to"
     },
     "nickname": {
      "type": [
       "string",
       "null"
      ],
      "description": "Customer-defined nickname (see `/cloud/services/{id}/label`); null when not set"
     },
     "tags": {
      "type": "array",
      "description": "Customer-defined colour tags (see `/cloud/services/{id}/label`); empty when not set",
      "items": {
       "$ref": "#/components/schemas/ServiceLabelTag"
      }
     }
    }
   },
   "ServiceLabelTag": {
    "type": "object",
    "required": [
     "name"
    ],
    "properties": {
     "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 24,
      "description": "Letter or digit first; then letters, digits, space and . _ - / + # &",
      "example": "production"
     },
     "color": {
      "type": "string",
      "enum": [
       "gray",
       "blue",
       "green",
       "red",
       "orange",
       "yellow",
       "purple",
       "pink",
       "teal",
       "indigo"
      ],
      "example": "green"
     }
    }
   },
   "ServiceLabel": {
    "type": "object",
    "properties": {
     "service_id": {
      "type": "integer"
     },
     "nickname": {
      "type": [
       "string",
       "null"
      ],
      "maxLength": 60,
      "description": "Shown next to the product name in the client area"
     },
     "tags": {
      "type": "array",
      "maxItems": 10,
      "items": {
       "$ref": "#/components/schemas/ServiceLabelTag"
      }
     },
     "updated_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     },
     "colors": {
      "type": "array",
      "description": "Allowed colour keys (palette)",
      "items": {
       "type": "string"
      }
     }
    }
   },
   "ServiceLabelUpdate": {
    "type": "object",
    "minProperties": 1,
    "properties": {
     "nickname": {
      "type": [
       "string",
       "null"
      ],
      "maxLength": 60,
      "description": "\"\" or null clears the nickname. No control characters.",
      "x-description-tr": "\"\" veya null takma adı temizler. Kontrol karakteri içeremez."
     },
     "tags": {
      "type": [
       "array",
       "null"
      ],
      "maxItems": 10,
      "description": "Replaces all tags; [] or null clears them. Item: a tag name, or {\"name\", \"color\"} (CLI: use --data for colours).",
      "x-description-tr": "Tüm etiketlerin yerine geçer; [] veya null temizler. Öğe: etiket adı ya da {\"name\", \"color\"} (CLI: renk için --data kullanın).",
      "items": {
       "oneOf": [
        {
         "type": "string",
         "minLength": 1,
         "maxLength": 24
        },
        {
         "$ref": "#/components/schemas/ServiceLabelTag"
        }
       ]
      }
     }
    }
   },
   "ServiceTools": {
    "type": "object",
    "properties": {
     "service_id": {
      "type": "integer"
     },
     "product_line": {
      "type": "string"
     },
     "tools": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "tool": {
         "type": "string",
         "example": "snapshots"
        },
        "group": {
         "type": "string"
        },
        "label": {
         "type": "string"
        },
        "actions": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "action": {
            "type": "string"
           },
           "read": {
            "type": "boolean"
           },
           "confirm": {
            "type": "boolean"
           },
           "secret": {
            "type": "boolean"
           }
          }
         }
        }
       }
      }
     },
     "methods": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "method": {
         "type": "string"
        },
        "confirm": {
         "type": "boolean"
        }
       }
      }
     }
    }
   },
   "FirewallRuleInput": {
    "type": "object",
    "required": [
     "protocol"
    ],
    "properties": {
     "protocol": {
      "type": "string",
      "enum": [
       "tcp",
       "udp",
       "icmp"
      ]
     },
     "port": {
      "type": "string",
      "description": "N or N-M (empty = all ports)",
      "example": "22"
     },
     "source_ips": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "maxItems": 20,
      "description": "CIDRs (default any)"
     }
    }
   },
   "BulkResult": {
    "type": "object",
    "properties": {
     "action": {
      "type": "string"
     },
     "succeeded": {
      "type": "integer"
     },
     "failed": {
      "type": "integer"
     },
     "results": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "server_id": {
         "type": "integer"
        },
        "ok": {
         "type": "boolean"
        },
        "status": {
         "type": "string"
        },
        "error": {
         "type": "object",
         "properties": {
          "code": {
           "type": "string"
          },
          "message": {
           "type": "string"
          }
         }
        }
       }
      }
     }
    }
   },
   "WebhookEvent": {
    "type": "string",
    "enum": [
     "service.created",
     "service.active",
     "service.suspended",
     "service.unsuspended",
     "service.cancelled",
     "service.status_changed",
     "invoice.created",
     "invoice.paid",
     "order.created",
     "ticket.replied",
     "ticket.status_changed",
     "api.test"
    ]
   },
   "Webhook": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "url": {
      "type": "string"
     },
     "events": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/WebhookEvent"
      }
     },
     "description": {
      "type": [
       "string",
       "null"
      ]
     },
     "customer_id": {
      "type": [
       "integer",
       "null"
      ]
     },
     "status": {
      "type": "string",
      "enum": [
       "active",
       "disabled"
      ]
     },
     "consecutive_failures": {
      "type": "integer"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     }
    }
   },
   "WebhookDelivery": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "delivery_id": {
      "type": "string"
     },
     "event": {
      "type": "string"
     },
     "status": {
      "type": "string",
      "enum": [
       "pending",
       "sent",
       "failed"
      ]
     },
     "attempts": {
      "type": "integer"
     },
     "http_code": {
      "type": [
       "integer",
       "null"
      ]
     },
     "error": {
      "type": [
       "string",
       "null"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "sent_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     }
    }
   },
   "ApiKeyInput": {
    "type": "object",
    "required": [
     "name"
    ],
    "properties": {
     "name": {
      "type": "string",
      "maxLength": 48
     },
     "scopes": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "cloud_read",
        "cloud_write",
        "cloud_order",
        "cloud_delete",
        "services_read",
        "services_write",
        "webhooks"
       ]
      },
      "default": [
       "cloud_read"
      ]
     },
     "services": {
      "type": "array",
      "items": {
       "type": "integer"
      },
      "description": "Optional service allow list"
     },
     "actions": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Optional action allow list: server actions (reboot) or tool:action / tool:* / method:name"
     },
     "ips": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "rate_limit": {
      "type": "integer",
      "description": "Requests per minute (<= your own limit; 0 = default)"
     }
    }
   },
   "ApiKey": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "name": {
      "type": "string"
     },
     "token_prefix": {
      "type": "string"
     },
     "customer_id": {
      "type": [
       "integer",
       "null"
      ]
     },
     "scopes": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "services": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "type": "integer"
      }
     },
     "actions": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "type": "string"
      }
     },
     "ips": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "rate_limit": {
      "type": [
       "integer",
       "null"
      ]
     },
     "status": {
      "type": "string",
      "enum": [
       "active",
       "revoked"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "last_used_at": {
      "type": [
       "string",
       "null"
      ],
      "format": "date-time"
     }
    }
   },
   "EndCustomerInput": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string",
      "maxLength": 128
     },
     "email": {
      "type": "string"
     },
     "external_ref": {
      "type": "string",
      "maxLength": 64,
      "description": "Your own customer id (unique per reseller)"
     },
     "note": {
      "type": "string",
      "maxLength": 500
     },
     "status": {
      "type": "string",
      "enum": [
       "active",
       "suspended"
      ]
     },
     "allow_order": {
      "type": "boolean",
      "description": "May this customer's keys order servers (paid from YOUR balance)?"
     }
    }
   },
   "EndCustomer": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "name": {
      "type": "string"
     },
     "email": {
      "type": [
       "string",
       "null"
      ]
     },
     "external_ref": {
      "type": [
       "string",
       "null"
      ]
     },
     "note": {
      "type": [
       "string",
       "null"
      ]
     },
     "status": {
      "type": "string"
     },
     "allow_order": {
      "type": "boolean"
     },
     "services": {
      "type": "integer"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     }
    }
   },
   "ResellerSettings": {
    "type": "object",
    "properties": {
     "white_label": {
      "type": "boolean"
     },
     "is_reseller": {
      "type": "boolean"
     }
    }
   },
   "ResellerReport": {
    "type": "object",
    "properties": {
     "from": {
      "type": "string",
      "format": "date"
     },
     "to": {
      "type": "string",
      "format": "date"
     },
     "customers": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "customer_id": {
         "type": [
          "integer",
          "null"
         ]
        },
        "services": {
         "type": "integer"
        },
        "by_status": {
         "type": "object",
         "additionalProperties": {
          "type": "integer"
         }
        },
        "recurring": {
         "type": "object",
         "additionalProperties": {
          "type": "number"
         },
         "description": "\"<cycle> <currency>\" -> amount"
        },
        "paid_in_period": {
         "type": "object",
         "additionalProperties": {
          "type": "number"
         },
         "description": "currency -> amount"
        }
       }
      }
     }
    }
   },
   "LoadBalancer": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer"
     },
     "name": {
      "type": "string"
     },
     "status": {
      "type": "string"
     },
     "product_id": {
      "type": "integer"
     },
     "cycle": {
      "type": "string"
     },
     "price": {
      "type": "object",
      "properties": {
       "amount": {
        "type": "number"
       },
       "currency": {
        "type": [
         "string",
         "null"
        ]
       }
      }
     },
     "due_date": {
      "type": [
       "string",
       "null"
      ]
     },
     "nickname": {
      "type": [
       "string",
       "null"
      ]
     },
     "load_balancer": {
      "type": [
       "object",
       "null"
      ],
      "description": "Live state (detail only)",
      "properties": {
       "name": {
        "type": "string"
       },
       "status": {
        "type": "string",
        "enum": [
         "running",
         "stopped",
         "suspended",
         "deleting"
        ]
       },
       "size": {
        "type": [
         "string",
         "null"
        ],
        "enum": [
         "small",
         "medium",
         "large",
         null
        ]
       },
       "region": {
        "type": "string"
       },
       "location": {
        "type": "string"
       },
       "ipv4": {
        "type": [
         "string",
         "null"
        ]
       },
       "ipv6": {
        "type": [
         "string",
         "null"
        ]
       },
       "algorithm": {
        "type": "string"
       },
       "limits": {
        "type": "object",
        "additionalProperties": true
       },
       "traffic": {
        "type": "object",
        "additionalProperties": true
       },
       "services": {
        "type": "array",
        "items": {
         "type": "object",
         "additionalProperties": true
        }
       },
       "targets": {
        "type": "array",
        "items": {
         "type": "object",
         "additionalProperties": true
        }
       },
       "certificates": {
        "type": "array",
        "items": {
         "type": "object",
         "additionalProperties": true
        }
       },
       "private_network": {
        "type": "boolean"
       }
      }
     }
    }
   }
  }
 }
}