Servisin config option'larini yukselt (upgrade)
POST/services/:id/upgrade
Servisin configurable option'larini (RAM/CPU/disk gibi resource rolu
gruplar) yeni degerlere yukseltir. WHMCS UpgradeProduct action'i
type=configoptions ile cagirilir; prorata farki WHMCS tarafinda
hesaplanir.
Iki mod:
quote_only=true→ WHMCScalconly=1ile SADECE fiyat teklifi doner (order/invoice olusmaz,quote=true).quote_only=false(default) → gercek upgrade uygulanir. Fark faturasi olusur, bayi kredisi otomatik uygulanir (OrderService ApplyCredit deseniyle ayni:pending_provision/pending_payment/payment_failed).
Kilit bekci: Yalniz role=resource gruplari (RAM/CPU/disk) upgrade ile
degistirilebilir. Diger gruplar (fixed, eski location veya metadata'si
olmayan → guvenli varsayilan kilitli) DEGISTIRILEMEZ; bu gruplardaki bir
secim degistirilirse 422 location_locked doner. Ayni degerde birakmak
gecerlidir.
Tam config (merge): WHMCS'e her zaman TAM config gonderilir (servisin mevcut tum secimleri + bayinin delta'lari). WHMCS gonderilmeyen bir config option'i urunun default (1.) degerine cektigi icin (yanlis lokasyon + yanlis prorata olurdu), lokasyon dahil hicbir secim resetlenmez.
Downgrade yasak: WHMCS negatif prorata (kredi/iade) donerse
409 downgrade_not_allowed doner.
Cakisma: Servis icin odenmemis onceki bir upgrade faturasi varsa
veya WHMCS upgradeinprogress bildirirse 409 upgrade_conflict.
Idempotency-Key: ZORUNLU (POST — 24h replay korumasi).
Rate limit: services_changes bucket (120 rpm).
Body: config_options = { "<whmcs_config_option_id>": <secim_id_veya_adet> }
(bos olamaz, int=>int). quote_only opsiyonel bool (default false).
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 409
- 422
- 429
- 502
Upgrade uygulandi veya teklif dondu (quote_only'e gore)
Response Headers
Bu key icin tanimli dakika basi limit
Mevcut window'da kalan istek sayisi
Sonraki window basinin Unix epoch'u (UTC saniye)
Gecersiz upgrade istegi (invalid_upgrade_request) veya Idempotency-Key eksik
Kimlik dogrulama basarisiz — eksik header, hatali credential, IP whitelist disi veya revoke edilmis key. Detay sizdirilmaz; tum durumlar tek mesaj.
Response Headers
RFC 7617 Basic Auth challenge
Yetki yetersiz — bayi baska bir bayinin service_id'sine erismeye calisti veya admin scope gerektiren endpoint icin yetersiz scope. Mesaj generic tutulur (ServiceOwnershipMiddleware sizinti onler).
Servis bulunamadi
Downgrade yasak (downgrade_not_allowed) veya upgrade cakismasi (upgrade_conflict)
Kilitli config option grubu degistirilemez (location_locked)
Dakika basina limit asildi
Response Headers
429 sonrasi tekrar denemeden once beklenmesi gereken saniye (RFC 7231 §7.1.3)
Bu key icin tanimli dakika basi limit
Sonraki window basinin Unix epoch'u (UTC saniye)
WHMCS API upstream hatasi (whmcs_upstream_error)