Ana içeriğe geç

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 → WHMCS calconly=1 ile 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

Upgrade uygulandi veya teklif dondu (quote_only'e gore)

Response Headers
    X-RateLimit-Limit

    Bu key icin tanimli dakika basi limit

    X-RateLimit-Remaining

    Mevcut window'da kalan istek sayisi

    X-RateLimit-Reset

    Sonraki window basinin Unix epoch'u (UTC saniye)