Hizmet Ayarları ve Sunucu
Hizmetin erişim bilgilerini, limitlerini, sunucusunu ve bilgi bloklarını yöneten dört uç.
Genel Bakış
Bu dört uç hizmetin ayarlarına dokunur. Hizmet uçlarındaki güncelleme faturalama ve tarih alanlarını yönetir; buradakiler ise hizmete nasıl erişildiğini, hangi sunucuda durduğunu ve müşterinin sayfasında ne yazdığını belirler.
Yönetim formu hizmet tipine göre farklı davranır: erişim bilgileri ve limitler barındırma, sunucu ve özel ürünlerde işlenir, lisans alanları ise yalnız yazılım hizmetlerinde. Yanlış tipe gönderilen alan sessizce yok sayılır.
Referans
Yönetim Formunu Kaydetme
Hizmetin erişim bilgilerini, kaynak limitlerini ve lisans alanlarını kaydeder.
options alanından doğrulayın.curl -X PATCH 'https://panel.ornek.com/api/v1/admin/services/506/management' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"access":{"username":"john"},"override_product_limits":true,"limits":{"disk_limit":50}}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/management', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
access: { username: 'john' },
override_product_limits: true,
limits: { disk_limit: 50 },
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/management');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'access' => ['username' => 'john'],
'override_product_limits' => true,
'limits' => ['disk_limit' => 50],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Limit gondermek yetmez: once override bayragini acin, yoksa urun limitleri gecerli kalir.
$response = Api::Services()->UpdateServiceManagement([
'id' => 506,
'override_product_limits' => true,
'limits' => ['disk_limit' => 50, 'bandwidth_limit' => 500],
]);Sunucu Değiştirme
Hizmetin kaydını başka bir sunucuya bağlar ve modülü hedefe göre günceller.
none.curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/506/server' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"server_id":5}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/server', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ server_id: 5 }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/server');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['server_id' => 5]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bu uc yalniz KAYDI tasir; hesabi yeni sunucuda kurmak ayri bir istir.
$response = Api::Services()->SetServiceServer([
'id' => 506,
'server_id' => 5,
]);
$module = $response['data']['module'];{
"data": {
"server_id": 5,
"module": "Mailcow",
"id": 506
}
}{
"error": {
"code": "same_server",
"message": "Service is already on this server."
}
}Bilgi Bloklarını Yazma
Müşteriye hizmet sayfasında gösterilen serbest metin bloklarını yazar.
blocks bir dizi değil.curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/506/blocks' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"blocks":[{"title":"Connection","description":"Connect over SSH on port 22."}]}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/blocks', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
blocks: [
{ title: 'Connection', description: 'Connect over SSH on port 22.' },
],
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/blocks');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'blocks' => [
['title' => 'Connection', 'description' => 'Connect over SSH on port 22.'],
],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Blok EKLEMEK icin mevcut listeyi de gonderin: gonderdiginiz liste yeni gercektir.
$service = Api::Services()->GetService(['id' => 506])['data'];
$blocks = $service['options']['blocks'] ?? [];
$blocks[] = ['title' => 'Backups', 'description' => 'Nightly, kept for 7 days.'];
Api::Services()->SetServiceBlocks(['id' => 506, 'blocks' => $blocks]);Durum Mesajını Temizleme
Modülün bıraktığı kalıcı durum mesajını siler.
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/506/clear-status-message' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/clear-status-message', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/clear-status-message');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Mesaji silmek sebebini gidermez: modul ayni hatayi yeniden yazabilir.
$response = Api::Services()->ClearServiceStatusMessage(['id' => 506]);Tuzaklar
Bu uç yalnız kaydı yeni sunucuya bağlar ve modülü hedefe göre değiştirir. Hesap eski sunucuda olduğu gibi durur, yenisinde ise hiç kurulmaz. Gerçek taşıma ayrı bir iştir; bu çağrı ondan sonra kaydı hizalamak içindir.
Kaynak limitlerini göndermek tek başına yetmez: override_product_limits açık değilse ürünün limitleri geçerli kalır ve gönderdiğiniz değerler uygulanmaz. Hata da alınmaz, o yüzden yazdıktan sonra hizmet detayından okuyup doğrulayın.
Gönderdiğiniz liste yeni gerçektir: içinde olmayan bloklar silinir. Tek bir blok eklemek için önce mevcut listeyi okuyun, üzerine ekleyin ve tamamını geri gönderin. Başlığı ve açıklaması birlikte boş olan bloklar sessizce atlanır.
Durum mesajı modülün bıraktığı bir izdir. Temizlemek yalnız metni kaldırır; aynı hata sürüyorsa modül bir sonraki işleminde mesajı yeniden yazar. Mesajı gizlemeden önce neden yazıldığına bakın.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.