تخطَّ إلى المحتوى
Core Cloud cloud.core.gen.tr

للمطوّرين

C2 Cloud API

كل ما يمكن سؤاله أو طلبه من أجهزتك وأقراصك وشبكاتك وسجلات DNS واشتراكاتك عبر HTTP. تُنشأ هذه الصفحة من الوصف نفسه الذي يقرأه مولّد العملاء، فلا يمكنها أن تذكر شيئًا لا تفعله الواجهة البرمجية.

العنوان الأساسي
https://cloud.core.gen.tr/api/v1
الإصدار
1.0.0
العمليات
227
في هذه الصفحة

01 نظرة عامة

ما هذه الواجهة البرمجية

واجهة API الخاصة بعملاء السحابة على https://cloud.core.gen.tr.

يجري التحقق من الهوية برمز وصول شخصي يُنشأ في اللوحة ضمن الإعدادات ← رموز API، ويُرسل في الترويسة Authorization: Bearer <token>.

يحمل كل رمز مجموعة من الصلاحيات. ويُرفض بالرمز 403 كل طلب لا يحمل رمزه الصلاحية التي تشترطها نقطة النهاية، بصرف النظر عما يُسمح لمالك الرمز بفعله خلاف ذلك.

الأخطاء هي تفاصيل مشكلات وفق RFC 9457 بنوع الوسائط application/problem+json.

الوصف الذي أُنشئت منه هذه الصفحة منشور أيضًا، فيمكنك توليد عميلك بدلًا من كتابته يدويًا: OpenAPI بصيغة YAML · OpenAPI بصيغة JSON

استخدمها من مساعد

كل ما يلي هو HTTP، موجّه لبرنامج تكتبه أنت. أما إن كنت تريد أن تسأل مساعدًا بكلماتك — Claude Code أو Claude Desktop أو المساعد الموجود في لوحتك أصلًا — فالسحابة نفسها متاحة عبر Model Context Protocol، بالرموز نفسها والفحوص نفسها.

استخدمه من Claude

02 المصادقة

الرمز، وما الذي يصل إليه

أنشئ رمز وصول شخصيًا من لوحة التحكم في الإعدادات ← رموز API، وأرسله مع كل طلب:

curl 'https://cloud.core.gen.tr/api/v1/me' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

يصل الرمز إلى الأضيق من حدّين

الصلاحية تقول ما أُنشئ الرمز لفعله. أمّا صلاحية حسابك فتقول ما يُسمح لك بفعله اليوم. يُفحص كل طلب في ضوء الاثنين معًا، فلا يمنح الرمز صاحبه شيئًا لا يسمح به حسابه أصلًا — ومن ضُيّقت صلاحياته بعد إنشاء رمزه لا يمكنه الاستمرار بالمستوى القديم من خلاله.

كلا الرفضين يعيد 403، والسبب مذكور في حقل detail من مستند الخطأ. اسأل GET /me عن الصلاحيات التي يحملها الرمز فعلًا، بدل تجريب نقاط النهاية وجمع الرفض.

الصلاحيات التي قد يحملها الرمز

الصلاحية ما الذي تتيحه صلاحية الحساب نقاط النهاية التي يفتحها
cloud:read يقرأ سحابتك — الأجهزة الافتراضية ووحدات التخزين ولقطاتها وملفات ISO والقوالب وقواعد جدار الحماية وعناوين IP العامة وVPN ومجموعات التقارب والعروض التي تقوم عليها، وسجلات استخدامك. كما يكشف كلمة المرور المحفوظة للجهاز. cloud: view GET /affinity-groups GET /compute-offerings GET /disk-offerings GET /egress-rules GET /ingress-rules GET /instances GET /instances/{instance} GET /instances/{instance}/annotations GET /instances/{instance}/events GET /instances/{instance}/networks GET /instances/{instance}/password GET /instances/{instance}/schedules GET /instances/{instance}/vm-snapshots GET /isos GET /isos/{iso} GET /networks GET /networks/{network} GET /public-ip-addresses GET /public-ip-addresses/{publicIPAddress} GET /public-ip-addresses/{publicIPAddress}/move-plan GET /templates GET /templates/{template} GET /usage GET /volumes GET /volumes/{volume} GET /volumes/{volume}/snapshot-policies GET /volumes/{volume}/snapshots GET /volumes/{volume}/snapshots/{snapshot} GET /vpn GET /vpn/users
cloud:write يشغّل أجهزتك ويوقفها ويعيد تشغيلها ويعيد تسميتها، ويعيد ضبط كلمة المرور ويفتح وحدة تحكم، ويربط ملفات ISO ووحدات التخزين ويفصلها، ويأخذ لقطات للأقراص، ويدير قواعد جدار الحماية ومستخدمي VPN ومجموعات التقارب. cloud: manage POST /affinity-groups DELETE /affinity-groups/{affinityGroup} PATCH /affinity-groups/{affinityGroup} POST /egress-rules DELETE /egress-rules/{egressRule} POST /ingress-rules DELETE /ingress-rules/{ingressRule} PATCH /ingress-rules/{ingressRule} PATCH /instances/{instance} POST /instances/{instance}/actions/attach-iso POST /instances/{instance}/actions/detach-iso POST /instances/{instance}/actions/reset-password POST /instances/{instance}/actions/restart POST /instances/{instance}/actions/start POST /instances/{instance}/actions/stop POST /instances/{instance}/annotations DELETE /instances/{instance}/annotations/{annotation} GET /instances/{instance}/console POST /instances/{instance}/networks/{network}/actions/attach POST /instances/{instance}/networks/{network}/actions/change-ip POST /instances/{instance}/networks/{network}/actions/detach POST /instances/{instance}/networks/{network}/actions/make-primary POST /instances/{instance}/networks/{network}/actions/move POST /instances/{instance}/schedules DELETE /instances/{instance}/schedules/{schedule} PATCH /instances/{instance}/schedules/{schedule} POST /instances/{instance}/vm-snapshots DELETE /instances/{instance}/vm-snapshots/{vmSnapshot} POST /instances/{instance}/vm-snapshots/{vmSnapshot}/actions/revert POST /isos/uploads DELETE /isos/uploads/{upload} GET /isos/uploads/{upload} POST /isos/uploads/{upload}/actions/complete POST /isos/uploads/{upload}/chunks DELETE /isos/{iso} PATCH /isos/{iso} DELETE /networks/{network} PATCH /networks/{network} POST /public-ip-addresses/{publicIPAddress}/actions/move PATCH /volumes/{volume} POST /volumes/{volume}/actions/attach POST /volumes/{volume}/actions/detach POST /volumes/{volume}/snapshot-policies POST /volumes/{volume}/snapshots DELETE /volumes/{volume}/snapshots/{snapshot} POST /volumes/{volume}/snapshots/{snapshot}/actions/restore PATCH /vpn POST /vpn/users DELETE /vpn/users/{vpnUser}
dns:read يقرأ نطاقات DNS الخاصة بك وكل سجل فيها. dns: view GET /dns-zones GET /dns-zones/{zone} GET /dns-zones/{zone}/records
dns:write ينشئ نطاقات DNS ويحذفها، ويضيف السجلات ويعدّلها ويزيلها، ويضبط سجل DNS العكسي لعنوان IP عام. dns: manage POST /dns-zones DELETE /dns-zones/{zone} POST /dns-zones/{zone}/records DELETE /dns-zones/{zone}/records/{record} PATCH /dns-zones/{zone}/records/{record} PATCH /public-ip-addresses/{publicIPAddress}
billing:read يقرأ اشتراكاتك وطلباتك ومدفوعاتك والمبالغ المستردة والبطاقات المحفوظة ورصيد حسابك وكتالوج المنتجات. billing: view GET /billing/account GET /billing/credits GET /credit-cards GET /domain-name-products GET /domain-name-products/{domainNameProduct} GET /ip-address-products GET /ip-address-products/{ipAddressProduct} GET /network-products GET /network-products/{networkProduct} GET /payments GET /payments/{payment} GET /payments/{payment}/invoice GET /payments/{payment}/proforma GET /refunds GET /service-products GET /service-products/{serviceProduct} GET /subscriptions GET /subscriptions/{subscription} GET /subscriptions/{subscription}/resize-quote GET /virtual-machine-products GET /virtual-machine-products/{virtualMachineProduct} GET /volume-products GET /volume-products/{volumeProduct}
billing:write يدفع فاتورة مفتوحة ببطاقة محفوظة، ويطلب استردادًا ضمن مهلة الاسترداد، ويؤكد الموافقة على إلغاء فاتورة شركتك، ويحذف بطاقة محفوظة. الدفع يخصم من البطاقة دون أي تأكيد إضافي؛ والبطاقة التي تحتاج إلى 3-D Secure تُعاد إلى اللوحة. وتبقى إضافة البطاقة في اللوحة. billing: manage DELETE /credit-cards/{creditCard} POST /invoice-refund-requests/{invoiceRefundRequest}/actions/confirm POST /payments/{payment}/actions/pay POST /subscriptions/{subscription}/actions/refund
order:write يضع الطلبات ويغيّر حجم الاشتراكات ويلغيها. والطلب وتغيير الحجم ينفقان مالًا — إذ يُنفَّذان دون تأكيد إضافي، وتُدفع الفاتورة المستحقة من اللوحة أو باستخدام billing:write. لا تمنح هذه الصلاحية إلا لعميل تثق به في مالك. shop: manage POST /orders POST /subscriptions/{subscription}/actions/cancel POST /subscriptions/{subscription}/actions/cancel-resize POST /subscriptions/{subscription}/actions/resize
account:read يقرأ ملفك الشخصي وبيانات الاتصال الخاصة بك وصلاحيات الرمز المستخدم. account: view GET /account/billing-information GET /activity-log GET /me GET /me/settings
account:write يغيّر ملفك الشخصي وإعدادات الإشعارات الخاصة بك وبيانات الفوترة الخاصة بالحساب. account: manage PATCH /account/billing-information PATCH /me PATCH /me/settings
tickets:read يقرأ تذاكر الدعم الخاصة بك والردود عليها. tickets: view GET /tickets GET /tickets/{ticket}
tickets:write يفتح تذاكر الدعم ويردّ عليها ويغلقها — ويصل كلٌّ منها إلى فريق الدعم باسمك. tickets: manage POST /tickets POST /tickets/{ticket}/actions/close POST /tickets/{ticket}/comments
ai:read يقرأ مفاتيح بوابة الذكاء الاصطناعي الخاصة بك، والحدود التي وضعها فريقنا عليها، وما أنفقته. ai: view GET /ai/keys GET /ai/usage
ai:write ينشئ مفتاحًا لبوابة الذكاء الاصطناعي يُعرض سرّه مرة واحدة، ويلغي مفتاحًا. أما حدود المفاتيح فيضعها فريقنا ولا يمكن تغييرها من هنا. ai: manage POST /ai/keys DELETE /ai/keys/{aiKey}
admin:read admin يقرأ حساب أي عميل وأجهزته ونطاقات DNS واشتراكاته وسجلات التدقيق. يتطلب أيضًا دور المسؤول — لا يمنح الرمز أبدًا صلاحية لا يملكها صاحبه. — GET /admin/ai/prompts GET /admin/audit-logs GET /admin/audit-logs/{auditLog} GET /admin/customers GET /admin/customers/{user} GET /admin/customers/{user}/dns-zones GET /admin/customers/{user}/instances GET /admin/customers/{user}/subscriptions GET /admin/failed-jobs GET /admin/failed-jobs/{failedJob} GET /admin/health GET /admin/horizon GET /admin/jobs GET /admin/news GET /admin/news/{news} GET /admin/staged-actions GET /admin/staged-actions/{stagedAction} GET /admin/support-assignments GET /admin/work-queues
admin:write admin يشغّل جهاز أي عميل ويوقفه ويعيد تشغيله، ويربط عليه ملف ISO أو يفصله، ويكتب مسودات الأخبار والأسئلة الشائعة والوثائق القانونية، ويرد على تذاكر الدعم ويسندها، ويدير الدعوات وإسنادات الدعم وتعليقات الاحتفاظ. أما النشر ومنح الرصيد وحظر تسجيل الدخول وكل إجراء آخر موجّه إلى الخارج فلا يفعل سوى وضعه في قائمة انتظار الموافقات، حيث يقرر فيه مسؤول من اللوحة. يتطلب أيضًا دور المسؤول — لا يمنح الرمز أبدًا صلاحية لا يملكها صاحبه. — POST /admin/ai/prompts POST /admin/customers/{user}/instances/{instance}/actions/attach-iso POST /admin/customers/{user}/instances/{instance}/actions/detach-iso POST /admin/customers/{user}/instances/{instance}/actions/restart POST /admin/customers/{user}/instances/{instance}/actions/start POST /admin/customers/{user}/instances/{instance}/actions/stop POST /admin/news POST /admin/news/{news} POST /admin/news/{news}/publish POST /admin/tickets/{ticket}/assignment POST /admin/tickets/{ticket}/close POST /admin/tickets/{ticket}/comments
support:read support يقرأ حسابات العملاء المسندين إليك ومواردهم وسجلات التدقيق الخاصة بهم. يتطلب أيضًا دور الدعم، ويمرّ بنفس فحوصات الإسناد الموجودة في اللوحة. — GET /support/customers GET /support/customers/{user} GET /support/customers/{user}/audit-logs GET /support/customers/{user}/dns-zones GET /support/customers/{user}/instances GET /support/customers/{user}/subscriptions GET /support/customers/{user}/subscriptions/{subscription}/resize-quote GET /support/staged-actions/{stagedAction}
support:write support ينفّذ إجراءات على العملاء المسندين إليك كما تفعل لوحة الدعم — أجهزتهم وشبكاتهم وشبكة VPN واللقطات وDNS وتذاكر الدعم والملف الشخصي وبيانات الفوترة والأعضاء، وإجراءات الفوترة المتاحة للدعم — كلٌّ منها فقط حيث يتيح لك إسنادك الإدارة. أما رصيد الحساب فلا يكون إلا طلبًا يوافق عليه مدير. يتطلب أيضًا دور الدعم. — POST /support/customers/{user}/billing-information POST /support/customers/{user}/billing/bill-notices POST /support/customers/{user}/billing/refunds-block POST /support/customers/{user}/billing/shop-block POST /support/customers/{user}/credits POST /support/customers/{user}/credits/{creditGrant}/actions/adjust POST /support/customers/{user}/credits/{creditGrant}/actions/remove POST /support/customers/{user}/dns-zones POST /support/customers/{user}/dns-zones/{zone}/actions/delete POST /support/customers/{user}/dns-zones/{zone}/records POST /support/customers/{user}/dns-zones/{zone}/records/{record} POST /support/customers/{user}/dns-zones/{zone}/records/{record}/actions/delete POST /support/customers/{user}/instances/{instance}/actions/rename POST /support/customers/{user}/instances/{instance}/actions/restart POST /support/customers/{user}/instances/{instance}/actions/start POST /support/customers/{user}/instances/{instance}/actions/stop GET /support/customers/{user}/instances/{instance}/console POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/attach POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/change-ip POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/detach POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/make-primary POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/move POST /support/customers/{user}/instances/{instance}/vm-snapshots POST /support/customers/{user}/instances/{instance}/vm-snapshots/{vmSnapshot}/actions/delete POST /support/customers/{user}/instances/{instance}/vm-snapshots/{vmSnapshot}/actions/revert POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/confirm POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/decline POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/resolve POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/retry POST /support/customers/{user}/members/{member} POST /support/customers/{user}/members/{member}/actions/remove POST /support/customers/{user}/networks/{network}/actions/release POST /support/customers/{user}/password POST /support/customers/{user}/payments/{payment}/chargebacks POST /support/customers/{user}/profile POST /support/customers/{user}/public-ip-addresses/{publicIPAddress}/networks/{network}/actions/move POST /support/customers/{user}/social-accounts/{socialAccount}/actions/unlink POST /support/customers/{user}/subscriptions/{subscription}/actions/cancel POST /support/customers/{user}/subscriptions/{subscription}/actions/force-refund POST /support/customers/{user}/subscriptions/{subscription}/actions/lift-suspension POST /support/customers/{user}/subscriptions/{subscription}/actions/lock POST /support/customers/{user}/subscriptions/{subscription}/actions/request-invoice-cancellation POST /support/customers/{user}/subscriptions/{subscription}/actions/unlock POST /support/customers/{user}/subscriptions/{subscription}/actions/unstage-resize POST /support/customers/{user}/tickets/{ticket}/actions/close POST /support/customers/{user}/tickets/{ticket}/comments POST /support/customers/{user}/volumes/{volume}/snapshot-policies POST /support/customers/{user}/volumes/{volume}/snapshots POST /support/customers/{user}/volumes/{volume}/snapshots/{snapshot}/actions/delete POST /support/customers/{user}/volumes/{volume}/snapshots/{snapshot}/actions/restore POST /support/customers/{user}/vpn POST /support/customers/{user}/vpn/users POST /support/customers/{user}/vpn/users/{vpnUser}/actions/delete

03 القواعد المشتركة

ما تفعله كل نقطة نهاية بالطريقة نفسها

الطلبات والاستجابات

أرسل JSON واطلب JSON. يعود المورد المفرد تحت المفتاح data، وتعود القائمة تحت data ومعها meta وlinks. تتطلب كل عملية كتابة أن يكون بريد الحساب مُوثّقًا، تمامًا كما في لوحة التحكم.

التصفّح

تقبل القوائم page وper_page. القيمة الافتراضية لـ per_page هي 25، وكل قيمة فوق 100 تُخفَّض إلى 100. تحمل meta الإجماليات، ويحمل links الصفحات المجاورة.

حدود المعدّل

تُحسب الحدود لكل رمز لا لكل حساب، فلا يستهلك تكامل مبرمَج نصيب غيره. القراءات 120 في الدقيقة، والكتابات 60، وقراءة موظّف لبيانات عميل آخر 30، والطلب 5، والقراءة التي تُزامِن مع السحابة (refresh=true) 10 — وهذه الأخيرة تصل إلى السحابة نفسها فلا تُستخدم للاستطلاع المتكرر.

تحمل كل استجابة الترويسات RateLimit-Limit وRateLimit-Remaining وRateLimit-Reset، والأخيرة بالثواني. وعند تجاوز الحد تكون الاستجابة 429 مع Retry-After.

إعادة المحاولة بأمان

يتطلب الطلب ترويسة Idempotency-Key من اختيارك. يُحجز المفتاح قبل تنفيذ الطلب، فتحصل المحاولة المكرّرة أثناء تنفيذ الأولى على 409 بدل خصم ثانٍ، وتكرار طلب مكتمل يعيد الاستجابة الأولى بدل تنفيذ طلب جديد.

الأخطاء

شكل خطأ واحد للواجهة كلها — تفاصيل مشكلة وفق RFC 9457 تُقدَّم بنوع application/problem+json — فلا يحتاج أي عميل إلى التفريع بين صيغتين. فرّع على الحقل type، وهو معرّف ثابت واحد لكل رمز حالة. ولا تحمل أخطاء الخادم أي تفاصيل داخلية في بيئة التشغيل.

الحقل النوع الوصف
type string معرّف URI ثابت يحدد صنف الخطأ. واحد لكل رمز حالة.
title string ملخص قصير ثابت لصنف الخطأ — النص نفسه لكل حدوث لقيمة `type` واحدة، فيمكن عرضه أو المطابقة عليه بأمان. أما ما حدث هذه المرة فيحمله `detail`.
status integer رمز حالة HTTP، مكرَّرًا في الجسم.
detail string شرح مقروء للبشر لهذه الحالة بعينها. وفي استجابات 5xx يكون نصًا ثابتًا غير محدَّد في بيئة الإنتاج — إذ تُسجَّل التفاصيل الداخلية في السجلات ولا تُقدَّم أبدًا.
instance string مسار الطلب الذي أخفق.
errors اختياري object لا يظهر إلا في 422. يربط اسم الحقل بقائمة الرسائل.
{
    "type": "https://cloud.core.gen.tr/api/errors/validation-failed",
    "title": "Validation failed",
    "status": 422,
    "detail": "The name field is required.",
    "instance": "/api/v1/me"
}

العمليات

Identity

لمن يعود الرمز المُقدَّم.

GET /me #

الهوية الكامنة خلف الرمز المميز المقدَّم

account:read api.read

يعيد المستخدم المُوثَّق مع الصلاحيات التي يحملها الرمز المميز المستخدم في هذا الطلب. استدعِ هذه العملية لمعرفة ما يجوز للرمز المميز فعله، بدلًا من استكشاف نقاط النهاية وجمع ردود 403.

الاستجابات

  • 200 المستخدم المُوثَّق.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/me' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /activity-log #

قراءة سجل نشاطك

account:read api.read

كل سجل تدقيق يخصّك، الأحدث أولًا — وهو سجل النشاط في اللوحة. ولا تُنشر أبدًا سلسلة السلامة ولا التغييرات المسجَّلة ولا سياق الطلب.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
domain اختياري query string one of cloud, billing, dns, tickets, account, auth, shop, privacy, partner, system

الاستجابات

  • 200 صفحة من سجلات التدقيق.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/activity-log' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Account

ملفك الشخصي وإعدادات الإشعارات الخاصة بك، وبيانات الفوترة الخاصة بالحساب — account:read للقراءة وaccount:write للتغيير. أما كلمات المرور وطرق الدخول ومفتاحا الأمان واتفاقية الترخيص فتبقى في اللوحة.

PATCH /me #

تغيير ملفك الشخصي

account:write api.read api.write

نموذج الملف الشخصي في اللوحة، حقلًا بحقل وبالقواعد نفسها: اسمك الكامل، وتاريخ ميلادك، ورقم هويتك (أو، للعميل الذي لغته ليست التركية، القيمة البديلة 22222222222 ورقم جواز سفر)، ورقم هاتفك، ولغتك. ويُحكم على وثيقة الهوية بلغتك أنت، كما تفعل اللوحة. ويُتحقق من رقم الهوية التركي مقابل سجل السكان حيث يفعل النظام ذلك، ويكون الرفض 422 على الحقل identity_number. ولا تُعاد وثائق الهوية أبدًا.

يتطلب account:write، ويجب أن يملك صاحبه account: manage — وهذا أشد من اللوحة، حيث يعدّل كل عضو ملفه الشخصي.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسمك الكامل — كلمتان على الأقل.
birthdate مطلوب string تاريخ ميلادك؛ يجب ألا يقل عمرك عن 18 عامًا.
identity_number مطلوب string رقم هويتك التركية، أو `22222222222` مع رقم جواز السفر.
passport_number اختياري string رقم جواز سفرك — مطلوب ما دامت لغتك ليست التركية ولا يوجد رقم محفوظ.
phone مطلوب string رقم هاتفك بالصيغة الدولية، يبدأ بـ `+`.
language مطلوب string اللغة التي تقرأ بها اللوحة وإشعاراتك.

الاستجابات

  • 200 ملفك الشخصي بعد حفظه.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/me' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Ayşe Yılmaz",
    "birthdate": "string",
    "identity_number": "string",
    "phone": "+90 532 000 00 00",
    "language": "tr-TR"
}'
GET /me/settings #

إعدادات الإشعارات الخاصة بك

account:read api.read

مفاتيح الإشعارات الخاصة بك، ومفتاحا الأمان اللذان لا يُغيَّران إلا من اللوحة.

الاستجابات

  • 200 إعداداتك.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/me/settings' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /me/settings #

تغيير إعدادات الإشعارات

account:write api.read api.write

يشغّل الإشعارات عبر البريد الإلكتروني والهاتف أو يوقفها؛ والحقل الذي لا ترسله يحتفظ بقيمته. ولا يُقبل هنا مفتاح الدخول بخطوتين عبر Telegram ولا مفتاح إلغاء رموز API — فلكلٍّ منهما بابه المُثبَت في اللوحة، والرمز هو بالضبط بيانات الاعتماد التي ستستعملها جلسة مسروقة لإضعافهما. ويُسجَّل كل تغيير في سجل التدقيق.

جسم الطلب مطلوب

الحقل النوع الوصف
enable_email_notifications اختياري boolean الإشعارات عبر البريد الإلكتروني.
enable_phone_notifications اختياري boolean الإشعارات عبر الهاتف (Telegram).

الاستجابات

  • 200 إعداداتك بعد حفظها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/me/settings' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "enable_email_notifications": true,
    "enable_phone_notifications": true
}'
GET /account/billing-information #

بيانات الفوترة الخاصة بالحساب

account:read api.read

الجهة التي تُصدَر لها كل فاتورة وفاتورة مبدئية للحساب، والعملة التي تُحصَّل بها فواتيره.

الاستجابات

  • 200 بيانات الفوترة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/account/billing-information' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /account/billing-information #

تغيير بيانات الفوترة الخاصة بالحساب

account:write api.read api.write

نموذج الفوترة في اللوحة، بالقواعد نفسها. تجعل corporate: true اسم الشركة والرقم الضريبي والمكتب الضريبي حقولًا مطلوبة. ويبقى حساب الشريك مؤسسيًا أيًّا كانت قيمة corporate: فالطلب الذي يتركه بلا اسم شركة ولا رقم ضريبي يُرفض بالرمز 422 على الحقل corporate. ويحدد البلدُ العملةَ التي تُحصَّل بها الفواتير (تركيا: الليرة التركية، وأي مكان آخر: الدولار)، ولذلك يُرفض بالرمز 422 على الحقل country كل تغيير ينقل العملة ما دامت هناك فواتير مفتوحة — سدِّدها أولًا. والاسم على الفاتورة هو دائمًا اسم مالك الحساب.

يتطلب account:write، ويجب أن يملك صاحبه account: manage — وهو باب اللوحة نفسه.

جسم الطلب مطلوب

الحقل النوع الوصف
corporate اختياري boolean فاتورة مؤسسية. إن غاب أو كان false فهي فاتورة شخصية — إلا في حساب الشريك، الذي يبقى مؤسسيًا أيًّا كانت قيمة هذا الحقل.
company_name اختياري string اسم الشركة؛ مطلوب للفاتورة المؤسسية.
tax_number اختياري string الرقم الضريبي للشركة (أرقام)؛ مطلوب للفاتورة المؤسسية.
tax_office اختياري string المكتب الضريبي للشركة؛ مطلوب للفاتورة المؤسسية.
address مطلوب string عنوان الشارع.
city مطلوب string المدينة.
postal_code مطلوب string الرمز البريدي.
country مطلوب string بلد الفوترة — رمز ISO 3166 (`TR`، `792`) أو اسمه.

الاستجابات

  • 200 بيانات الفوترة بعد حفظها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/account/billing-information' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "address": "string",
    "city": "string",
    "postal_code": "string",
    "country": "TR"
}'

العمليات

AI gateway

مفاتيح الحساب لبوابة الذكاء الاصطناعي — اعرضها واعرض ما أنفقته (ai:read)، وأنشئ مفتاحًا وألغِه (ai:write). أما حدود المفاتيح فيضعها فريقنا. وتجيب كل المسارات بـ 403 ما دامت البوابة معطَّلة.

GET /ai/keys #

عرض مفاتيح بوابة الذكاء الاصطناعي الخاصة بالحساب

ai:read api.read

كل مفتاح في الحساب، ساريًا كان أو ملغًى، الأحدث أولًا — دون أي سرّ أبدًا. ويحمل meta الحد الأقصى لمفاتيح الحساب، وعدد المفاتيح السارية، وعنوان البوابة الذي يتجه إليه برنامجك. وما دامت بوابة الذكاء الاصطناعي معطَّلة في النظام تجيب كل المسارات هنا بـ 403.

الاستجابات

  • 200 المفاتيح.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/ai/keys' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /ai/keys #

إنشاء مفتاح لبوابة الذكاء الاصطناعي

ai:write api.read api.order

يُنشئ مفتاحًا على ميزانية البوابة الخاصة بالحساب ويجيب بـ 201 مع secret. السرّ موجود في هذه الاستجابة وحدها — لا يُحفظ في أي مكان، ويُستبدل السرّ المفقود بإنشاء مفتاح جديد. ويُحتسب المفتاح ضمن max_keys للحساب؛ فعند بلوغ الحد، أو أثناء إنشاء مفتاح آخر للحساب، أو ما دام المستخدم أو الحساب محظورًا، يُرفض الطلب بـ 409 ولا يُنشأ شيء. أما الحدود التي تقيّد المفتاح (الميزانية، والطلبات والرموز في الدقيقة، والنماذج المسموح بها) فيضعها فريقنا ولا يمكن تغييرها من هنا. ويُسجَّل كل مفتاح يُنشأ في سجل التدقيق.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string الاسم الذي تعطيه للمفتاح — به تميّزه حين يجب إلغاء أحدها.
expires_at اختياري string الوقت الذي يتوقف فيه المفتاح عن العمل من تلقاء نفسه؛ ويجب أن يكون في المستقبل. أغفله ليبقى بلا انتهاء.

الاستجابات

  • 201 المفتاح مع سرّه — يُعرض هذه المرة فقط.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 409 بلغ الحساب حد المفاتيح، أو يجري إنشاء مفتاح آخر، أو المستخدم أو الحساب محظور. لم يُنشأ شيء.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/ai/keys' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "ci runner"
}'
DELETE /ai/keys/{aiKey} #

إلغاء مفتاح لبوابة الذكاء الاصطناعي

ai:write api.read api.write

يطلب من البوابة التوقف عن قبول المفتاح، ثم يسجّل الإلغاء — لا بالعكس أبدًا، فالمفتاح الذي يظهر ملغًى يكون ميتًا فعلًا. ويجوز لكل عضو يدير مفاتيح الذكاء الاصطناعي للحساب أن يلغي مفتاحًا أنشأه زميل. متكافئ التكرار: إلغاء مفتاح ملغًى أصلًا يجيب بـ 200 معه. ومفتاح حساب آخر يجيب بـ 404.

المعاملات

الاسم الموضع النوع الوصف
aiKey مطلوب path integer معرّف المفتاح.

الاستجابات

  • 200 المفتاح بعد إلغائه.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/ai/keys/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /ai/usage #

حدود بوابة الذكاء الاصطناعي والإنفاق

ai:read api.read

الحدود التي وضعها فريقنا على فريق البوابة الخاص بالحساب — الميزانية، والطلبات والرموز في الدقيقة، والنماذج التي يجوز للمفاتيح استدعاؤها — وما أنفقه الفريق، مقروءًا مباشرة من البوابة. والحدود هنا للقراءة فقط: فاللوحة أيضًا لا توفر بابًا لتغييرها. وحين لا تجيب البوابة تظل الحدود مقروءة ويذكر spend.error سبب غياب الرقم. وكلاهما null قبل أول مفتاح للحساب.

الاستجابات

  • 200 الحدود والإنفاق.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/ai/usage' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Compute

الأجهزة الافتراضية.

GET /instances #

سرد الأجهزة الافتراضية

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true للمطابقة مع المزوّد أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من الأجهزة الافتراضية.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance} #

قراءة جهاز افتراضي واحد

cloud:read api.read

لا يوجد DELETE للجهاز عن قصد: فالجهاز اشتراك مدفوع، ويُزال بإلغاء ذلك الاشتراك — POST /subscriptions/{subscription}/actions/cancel، والمعرّف هو اشتراك هذا الجهاز في GET /subscriptions. ويوقف الإلغاءُ الفوترةَ ويسلّم الجهاز إلى طابور الاحتفاظ، وهو المسار نفسه الذي يسلكه زر الإلغاء في اللوحة.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 الجهاز الافتراضي.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /instances/{instance} #

إعادة تسمية جهاز افتراضي

cloud:write api.read api.write

السمة الوحيدة القابلة للتعديل. أما تغيير الحجم فهو حدث فوترة (POST /orders)، وتغييرات دورة الحياة فعمليات.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string

الاستجابات

  • 200 الجهاز الافتراضي بعد التحديث.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/instances/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
GET /instances/{instance}/networks #

سرد شبكات جهاز

cloud:read api.read

الشبكات التي عليها هذا الجهاز — واجهاته، مقروءةً من السحابة مباشرة — وشبكات الطالب التي يمكنه الانضمام إليها. ولا يُطابَق شيء: فالواجهة على شبكة لا يسمّيها أي سجل مخزّن بعد تُرجِع id: null. للقراءة فقط؛ لا يكتب شيئًا ولا يحذف شيئًا.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 شبكات الجهاز.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/networks' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance}/vm-snapshots #

سرد اللقطات الحية لجهاز

cloud:read api.read

نسخ الجهاز كاملًا، للجهاز الذي تتضمنها خطته. يُجاب من قاعدة البيانات؛ ومرّر refresh=true للمطابقة مع السحابة أولًا (بحدّ أضيق، وهي تحذف السجلات المحلية التي لم تعد السحابة تُدرجها). ولا تُدرج النسخ المنتظرة في طابور الاحتفاظ.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من اللقطات الحية.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/vm-snapshots' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/vm-snapshots #

أخذ لقطة حية لجهاز

cloud:write api.read api.write

يبدأ نسخة من الجهاز كاملًا (مع ذاكرته إذا كانت with_memory صحيحة). ويُرفض بـ 409 ما دامت اللقطات الحية مُعطَّلة، أو إذا كانت خطة الجهاز لا تتضمنها أو استُنفد رصيدها، أو أثناء تغيير حجم الجهاز.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string
description اختياري string
with_memory اختياري boolean

الاستجابات

  • 201 اللقطة، ويجري أخذها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/vm-snapshots' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
DELETE /instances/{instance}/vm-snapshots/{vmSnapshot} #

حذف لقطة حية

cloud:write api.read api.write

يحذف النسخة في السحابة. ولا يمكن التراجع عنه. والنسخة التي ما زال يجري أخذها تُرجِع 409.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
vmSnapshot مطلوب path integer

الاستجابات

  • 204 حُذفت.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/instances/1/vm-snapshots/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/vm-snapshots/{vmSnapshot}/actions/revert #

إعادة جهاز إلى لقطة حية

cloud:write api.read api.write

يعيد الجهاز إلى هذه النسخة في مكانه — فيضيع كل ما جرى بعدها. ويجب أن يكون الجهاز متوقفًا. وتُرفض النسخة التي تتضمن الذاكرة ما دام طلب استرداد يحتجز الجهاز. وكل رفض 409 يقول السبب.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
vmSnapshot مطلوب path integer

الاستجابات

  • 200 الجهاز بعد الإعادة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/vm-snapshots/1/actions/revert' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance}/schedules #

سرد جداول تشغيل جهاز

cloud:read api.read

جداول تشغيل الجهاز وإيقافه وإعادة تشغيله كما هي مخزّنة. ويسمّي paused_by الاحتجاز (التعليق، الاحتفاظ) الذي أوقف جدول تشغيل.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الجداول.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/schedules' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/schedules #

إضافة جدول تشغيل

cloud:write api.read api.write

جدول cron تنفّذه السحابة بنفسها. ولا يمكن إعطاء جهاز معلَّق جدولًا؛ ويُرفض جدول التشغيل بـ 409 ما دام طلب استرداد يحتجز الجهاز.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
action مطلوب string
name اختياري string
description اختياري string
cron_expression مطلوب string
timezone مطلوب string
enabled اختياري boolean
start_at اختياري string
end_at اختياري string

الاستجابات

  • 201 الجدول.
  • 202 أُنشئ، ولم تُدرجه السحابة بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/schedules' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "action": "start",
    "cron_expression": "0 8 * * 1-5",
    "timezone": "Europe/Istanbul"
}'
PATCH /instances/{instance}/schedules/{schedule} #

تعديل جدول تشغيل أو تبديله

cloud:write api.read api.write

يغيّر الجدول؛ وأرسل enabled لتشغيله أو إيقافه. وتشغيل جدول التشغيل تشغيلٌ للجهاز، فيُرفض على جهاز معلَّق، وبـ 409 ما دام طلب استرداد يحتجزه. والتبديل الصريح يمسح paused_by.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
schedule مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name اختياري string
description اختياري string
cron_expression مطلوب string
timezone مطلوب string
enabled اختياري boolean
start_at اختياري string
end_at اختياري string

الاستجابات

  • 200 الجدول.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/instances/1/schedules/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "cron_expression": "0 8 * * 1-5",
    "timezone": "Europe/Istanbul"
}'
DELETE /instances/{instance}/schedules/{schedule} #

حذف جدول تشغيل

cloud:write api.read api.write

يحذف الجدول في السحابة وهنا.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
schedule مطلوب path integer

الاستجابات

  • 204 حُذف.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/instances/1/schedules/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance}/annotations #

سرد ملاحظات جهاز

cloud:read api.read

الملاحظات المحفوظة على الجهاز، مقروءةً من السحابة مباشرة. لا يكتب شيئًا ولا يحذف شيئًا.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الملاحظات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/annotations' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/annotations #

إضافة ملاحظة إلى جهاز

cloud:write api.read api.write

يضيف ملاحظة إلى الجهاز.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
annotation مطلوب string

الاستجابات

  • 201 الملاحظة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/annotations' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "annotation": "string"
}'
DELETE /instances/{instance}/annotations/{annotation} #

حذف ملاحظة

cloud:write api.read api.write

يحذف إحدى ملاحظات هذا الجهاز؛ والملاحظة على جهاز آخر تُرجِع 404.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
annotation مطلوب path string

الاستجابات

  • 204 حُذفت.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/instances/1/annotations/annotation' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance}/events #

سرد أحداث جهاز

cloud:read api.read

ما جرى للجهاز — التشغيل والإيقاف والاستعادة — مقروءًا من سجل أحداث السحابة مباشرة. لا يكتب شيئًا ولا يحذف شيئًا.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الأحداث.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/events' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/networks/{network}/actions/attach #

إضافة جهاز إلى شبكة أخرى

cloud:write api.read api.write

يضيف {network} إلى الجهاز بوصفها شبكة إضافية، مع إبقاء الشبكات التي عليها الجهاز في مكانها — وهو زر الإضافة في اللوحة. ويجب أن يكون الجهاز والشبكة كلاهما للطالب (وما يعود لحساب آخر يُرجِع 404). والجهاز المقفل، أو رفض السحابة، يُرجِع 409 يقول الحقل detail فيه السبب.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
network مطلوب path integer

الاستجابات

  • 200 الجهاز كما هو مخزّن بعد التغيير.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/networks/1/actions/attach' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/networks/{network}/actions/detach #

إزالة جهاز من شبكة

cloud:write api.read api.write

يزيل الجهاز من {network} — وهو زر الفصل في اللوحة. ويُرفض بـ 409 إذا كانت الشبكة الوحيدة للجهاز أو شبكته الأساسية، أو إذا ما زالت قواعد تُوجِّه إليه هناك.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
network مطلوب path integer

الاستجابات

  • 200 الجهاز كما هو مخزّن بعد التغيير.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/networks/1/actions/detach' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/networks/{network}/actions/make-primary #

جعل شبكة الشبكةَ الأساسية للجهاز

cloud:write api.read api.write

ينقل المسار الافتراضي للجهاز إلى {network}، التي يجب أن يكون عليها أصلًا. ويُوقَف الجهاز لذلك ولا يُعاد تشغيله.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
network مطلوب path integer

الاستجابات

  • 200 الجهاز كما هو مخزّن بعد التغيير.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/networks/1/actions/make-primary' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/networks/{network}/actions/move #

نقل جهاز إلى شبكة أخرى

cloud:write api.read api.write

ينقل الجهاز من from_network_id إلى {network} في خطوة واحدة — وهو زر النقل في اللوحة. ويُوقَف الجهاز لذلك. ويُرفض بـ 409 إذا تعذّر على الجهاز مغادرة الشبكة التي هو عليها.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
network مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
from_network_id مطلوب integer الشبكة التي يغادرها الجهاز (إحدى `GET /networks`).

الاستجابات

  • 200 الجهاز كما هو مخزّن بعد التغيير.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/networks/1/actions/move' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "from_network_id": 1
}'
POST /instances/{instance}/networks/{network}/actions/change-ip #

تغيير العنوان الخاص للجهاز على شبكة

cloud:write api.read api.write

يمنح الجهاز العنوان الخاص ip_address على {network}. ويُوقَف الجهاز لذلك. والعنوان نفسه الذي يحمله أصلًا يُرجِع 422؛ أما العنوان خارج الشبكة أو المحجوز فيُرجِع 409 يقول ذلك.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer
network مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
ip_address مطلوب string

الاستجابات

  • 200 الجهاز كما هو مخزّن بعد التغيير.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/networks/1/actions/change-ip' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "ip_address": "10.1.1.20"
}'
POST /instances/{instance}/actions/start #

تشغيل جهاز افتراضي

cloud:write api.read api.write

متكافئة التكرار (idempotent): تشغيل جهاز افتراضي يعمل أصلًا يعيد 200 فورًا دون الاتصال بالسحابة. فأدوات مثل Terraform وما شابهها تطابق الحالة المرغوبة بدل إصدار الأوامر، ولذلك يجب ألّا يؤدي طلب حالة يكون الجهاز الافتراضي فيها أصلًا إلى خطأ أبدًا.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي بعد تشغيله (أو وهو يعمل أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/actions/start' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/actions/stop #

إيقاف جهاز افتراضي

cloud:write api.read api.write

متكافئة التكرار (idempotent): إيقاف جهاز افتراضي متوقف أصلًا يعيد 200 فورًا دون الاتصال بالسحابة، للسبب نفسه المذكور في start.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي بعد إيقافه (أو وهو متوقف أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/actions/stop' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/actions/restart #

إعادة تشغيل جهاز افتراضي

cloud:write api.read api.write

غير متكافئة التكرار (idempotent) — فخلافًا لـstart/stop لا توجد حالة هدف تُقارَن بها، ولذلك يصل هذا الطلب إلى السحابة دائمًا مهما كانت حالة الجهاز الافتراضي الراهنة.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي بعد إعادة التشغيل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/actions/restart' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/actions/reset-password #

إعادة تعيين كلمة مرور جهاز افتراضي

cloud:write api.read api.write

غير متكافئة التكرار (idempotent): كل استدعاء يولّد كلمة مرور جديدة تمامًا ويحفظها، فتحلّ محل السابقة. اجلب النتيجة بعد ذلك من GET /instances/{instance}/password أو من data في هذه الاستجابة — أما كلمة المرور نفسها فلا تُدرج هنا أبدًا (انظر Instance).

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي بعد إعادة تعيين كلمة المرور.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/actions/reset-password' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance}/password #

قراءة كلمة مرور جهاز افتراضي

cloud:read api.read

يُجاب من قاعدة البيانات؛ ولا يتصل بالسحابة إطلاقًا. ويعيد null بدلًا من 403 عندما يكون الاشتراك المالك مقفلًا ولم يكن الطالب من الموظفين — فالجهاز الافتراضي مرئي، وكلمة مروره وحدها ليست كذلك.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 كلمة مرور الجهاز الافتراضي.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/password' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /instances/{instance}/console #

فتح جلسة كونسول لجهاز افتراضي

cloud:write api.read api.write

يُنشئ في كل استدعاء جلسة كونسول جديدة لمرة واحدة في السحابة — وهي عملية على المزوّد لا قراءة من قاعدة البيانات، ولهذا تتطلب cloud:write لا cloud:read وتخضع لحد المعدل نفسه المطبَّق على عمليات دورة الحياة.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 عنوان URL لجلسة الكونسول.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/instances/1/console' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /instances/{instance}/actions/attach-iso #

إرفاق صورة ISO بجهاز افتراضي

cloud:write api.read api.write

متكافئة التكرار (idempotent): إرفاق صورة ISO مركّبة أصلًا على هذا الجهاز الافتراضي يعيد 200 فورًا دون الاتصال بالسحابة.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
iso_id مطلوب integer يجب أن يشير إلى صورة ISO يراها المستدعي (عامة أو خاصة به). والمعرّف الخاص بغيره أو غير الموجود يفشل في التحقق (422) لا بـ404 — فالمورد المخاطَب هو الجهاز الافتراضي، لا صورة ISO.

الاستجابات

  • 200 الجهاز الافتراضي بعد إرفاق صورة ISO (أو وهي مرفقة أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/actions/attach-iso' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "iso_id": 5
}'
POST /instances/{instance}/actions/detach-iso #

فصل صورة ISO المركّبة على جهاز افتراضي

cloud:write api.read api.write

متكافئة التكرار (idempotent): فصل صورة ISO عن جهاز افتراضي لا صورة مرفقة به يعيد 200 فورًا دون الاتصال بالسحابة.

المعاملات

الاسم الموضع النوع الوصف
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي بعد فصل صورة ISO عنه (أو وهي مفصولة أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/instances/1/actions/detach-iso' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /isos/{iso} #

إعادة تسمية إحدى صور ISO الخاصة بك

cloud:write api.read api.write

يغيّر اسم صورة رفعتها ووصفها وعلامة قابلية الإقلاع — وهو نموذج التعديل في اللوحة، بحقوله الثلاثة. وتُرفض الصورة العامة أو صورة حساب آخر.

المعاملات

الاسم الموضع النوع الوصف
iso مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string
description مطلوب string
bootable مطلوب boolean

الاستجابات

  • 200 صورة ISO.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/isos/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "description": "string",
    "bootable": true
}'
DELETE /isos/{iso} #

حذف إحدى صور ISO الخاصة بك

cloud:write api.read api.write

يحذف صورة رفعتها، في السحابة وهنا. ولا يمكن التراجع عنه. وتُرفض الصورة العامة أو صورة حساب آخر.

المعاملات

الاسم الموضع النوع الوصف
iso مطلوب path integer

الاستجابات

  • 204 حُذفت.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/isos/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /isos/uploads #

بدء رفع ISO على أجزاء

cloud:write api.read api.write

يفتح رفعًا لصورة حجمها size بايت (4 GiB على الأكثر). أرسلها أجزاءً حجم كلٍّ منها chunk_size بايت (16 MiB؛ وقد يكون الأخير أقصر) عبر POST /isos/uploads/{upload}/chunks، بأي ترتيب ومن جديد بعد أي إخفاق، ثم POST …/actions/complete. ويجوز أن يكون للحساب ثلاث عمليات رفع مفتوحة في آن واحد؛ والرابعة تُرجِع 422. وتُحذف عمليات الرفع الخاملة ست ساعات.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string
description مطلوب string
bootable مطلوب boolean
filename مطلوب string اسم الملف؛ ويجب أن ينتهي بـ `.iso` أو `.img`.
size مطلوب integer

الاستجابات

  • 201 عملية الرفع المفتوحة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/isos/uploads' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "description": "string",
    "bootable": true,
    "filename": "string",
    "size": 1
}'
GET /isos/uploads/{upload} #

قراءة عملية رفع مفتوحة

cloud:write api.read

عملية الرفع وأرقام الأجزاء المستلمة، فيرسل العميل الذي فقد موضعه ما ينقص فقط. وعملية رفع حساب آخر تُرجِع 404.

المعاملات

الاسم الموضع النوع الوصف
upload مطلوب path string

الاستجابات

  • 200 عملية الرفع المفتوحة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/isos/uploads/upload' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
DELETE /isos/uploads/{upload} #

إلغاء عملية رفع

cloud:write api.read api.write

يتخلى عن عملية الرفع ويحذف أجزاءها فورًا.

المعاملات

الاسم الموضع النوع الوصف
upload مطلوب path string

الاستجابات

  • 204 أُلغيت.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/isos/uploads/upload' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /isos/uploads/{upload}/chunks #

إرسال جزء من عملية رفع

cloud:write api.read api.write

جزء واحد بصيغة multipart/form-data: index (يبدأ من 0) وfile. ويجب أن يكون كل جزء عدا الأخير chunk_size بايت تمامًا؛ والجزء ذو الحجم الخاطئ، أو الرقم خارج عملية الرفع، يُرجِع 422. وإرسال الجزء مرة أخرى يستبدله.

المعاملات

الاسم الموضع النوع الوصف
upload مطلوب path string

الاستجابات

  • 200 عملية الرفع وقد استُلم هذا الجزء.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/isos/uploads/upload/chunks' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /isos/uploads/{upload}/actions/complete #

إكمال عملية رفع وتسجيل ISO

cloud:write api.read api.write

يجمع الأجزاء ويسجّل الصورة لدى السحابة. 201 مع ISO؛ و202 حين تستلم السحابة الصورة ولم تُدرجها بعد — فتظهر في GET /isos حين تفعل. والجزء الناقص يُرجِع 422. وتزول عملية الرفع بعد ذلك في الحالتين.

المعاملات

الاسم الموضع النوع الوصف
upload مطلوب path string

الاستجابات

  • 201 ISO المسجَّلة.
  • 202 سُجِّلت، ولم تُدرجها السحابة بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/isos/uploads/upload/actions/complete' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Storage

وحدات التخزين وملفات ISO.

GET /volumes #

سرد الأقراص

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true للمطابقة مع المزوّد أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من الأقراص.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volumes' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /volumes/{volume} #

قراءة قرص واحد

cloud:read api.read

لا يوجد DELETE للقرص عن قصد: فالقرص الإضافي اشتراك مدفوع، ويُزال بإلغاء ذلك الاشتراك — POST /subscriptions/{subscription}/actions/cancel، والمعرّف هو اشتراك هذا القرص في GET /subscriptions. أما القرص الجذري للجهاز فيذهب مع الجهاز.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 القرص.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volumes/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /volumes/{volume} #

إعادة تسمية قرص

cloud:write api.read api.write

هذه هي الخاصية الوحيدة القابلة للتعديل. أما الربط والفصل فهما إجراءان، وتغيير الحجم حدث فوترة (POST /orders).

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string

الاستجابات

  • 200 القرص بعد التحديث.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/volumes/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
POST /volumes/{volume}/actions/attach #

ربط قرص بأحد الأجهزة الافتراضية للمستدعي

cloud:write api.read api.write

متكافئة التكرار (idempotent): فربط قرص مرتبط أصلًا بالجهاز الافتراضي المذكور يُرجِع 200 فورًا دون الاتصال بالسحابة.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
instance_id مطلوب integer يجب أن يشير إلى جهاز افتراضي يملكه المستدعي. أما المعرّف العائد لغيره أو غير الموجود فيُخفق في التحقق (422) لا بـ 404 — لأن المورد المقصود هو القرص لا الجهاز الافتراضي.

الاستجابات

  • 200 القرص بعد ربطه (أو وهو مرتبط أصلًا بالجهاز الافتراضي المذكور).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/volumes/1/actions/attach' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "instance_id": 17
}'
POST /volumes/{volume}/actions/detach #

فصل قرص عن الجهاز الافتراضي المرتبط به

cloud:write api.read api.write

متكافئة التكرار (idempotent): ففصل قرص مفصول أصلًا يُرجِع 200 فورًا دون الاتصال بالسحابة.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer

الاستجابات

  • 200 القرص بعد فصله (أو وهو مفصول أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/volumes/1/actions/detach' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /volumes/{volume}/snapshots #

سرد لقطات قرص

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true لمطابقة لقطات القرص مع السحابة أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير، ولا يجوز استخدامها للاستطلاع الدوري، وتحذف سجلات اللقطات المحلية التي لم تعد السحابة تسردها. واللقطة المنقولة إلى طابور الاحتفاظ (بعد إسقاط اللقطات من خطة القرص) لا تُسرد.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من لقطات القرص، الأحدث أولًا.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshots' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /volumes/{volume}/snapshots #

أخذ لقطة يدوية لقرص

cloud:write api.read api.write

تُؤخذ اللقطة في الخلفية: ويحملها الجواب في الحالة Creating. وتُحتسب اللقطة اليدوية ضمن حدّ اللقطات. ويُعاد 409 عند بلوغ الحدّ (لا تُحتسب إلا اللقطات اليدوية)، أو إذا لم تتضمّن خطة القرص لقطات، أو أثناء تغيير حجم القرص أو الجهاز الذي يتبعه؛ ويبيّن الحقل detail في الجسم أيّها. وتُحذف اللقطة عبر DELETE /volumes/{volume}/snapshots/{snapshot}، وتُستعاد إلى قرص جديد عبر POST …/{snapshot}/actions/restore، وتُجدوَل عبر /volumes/{volume}/snapshot-policies.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer

جسم الطلب اختياري

الحقل النوع الوصف
name اختياري string تسمية اختيارية للّقطة.

الاستجابات

  • 201 اللقطة، وقد طُلبت ويجري أخذها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshots' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "before-upgrade"
}'
GET /volumes/{volume}/snapshots/{snapshot} #

قراءة لقطة واحدة لقرص

cloud:read api.read

يُجاب من قاعدة البيانات. وتُرجِع لقطةُ قرص آخر، واللقطة المحتجزة في طابور الاحتفاظ، والمعرّف غير الموجود كلها 404.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer
snapshot مطلوب path integer

الاستجابات

  • 200 اللقطة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshots/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
DELETE /volumes/{volume}/snapshots/{snapshot} #

حذف لقطة

cloud:write api.read api.write

يحذف اللقطة في السحابة، وهو الفعل نفسه الذي يؤديه زر الحذف في اللوحة. ولا يمكن التراجع عنه. أما اللقطة المحتجزة في طابور الاحتفاظ فليس حذفها لك، ويُرجِع طلبها 404.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer
snapshot مطلوب path integer

الاستجابات

  • 204 حُذفت.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshots/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /volumes/{volume}/snapshots/{snapshot}/actions/restore #

استعادة لقطة إلى قرص جديد

cloud:write api.read api.write

يُنشئ قرصًا جديدًا باسم name من اللقطة — ولا يُرجع القرص الذي أُخذت منه إلى الوراء في مكانه أبدًا. ويُحتسب القرص الجديد ضمن max_vols، ولا تُستعاد اللقطة الواحدة إلا عددًا محدودًا من المرات؛ ويسمّي 409 الحدّ الذي بُلغ، أو يقول إن استعادة أخرى تبدأ الآن على الحساب. وتجري الاستعادة في الخلفية: فيظهر القرص الجديد في GET /volumes حين تُبلغ عنه السحابة، ويحمل الجواب اللقطة وقد تحرّك restore_count فيها.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer
snapshot مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسم القرص الجديد.

الاستجابات

  • 202 بدأت الاستعادة؛ واللقطة التي بدأت منها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshots/1/actions/restore' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "restored-data"
}'
GET /volumes/{volume}/snapshot-policies #

سرد جداول الاحتفاظ لقرص

cloud:read api.read

الجداول التي تحتفظ بها السحابة لهذا القرص — "احتفظ بـ7 يومية و4 أسبوعية". وتأخذ السحابة كل لقطة وفق جدولها وتحذف الأقدم بعد تجاوز العدد. يُجاب من قاعدة البيانات.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer

الاستجابات

  • 200 جداول الاحتفاظ الخاصة بالقرص.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshot-policies' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /volumes/{volume}/snapshot-policies #

إضافة جدول احتفاظ إلى قرص

cloud:write api.read api.write

نموذج الاحتفاظ في اللوحة: فاصل زمني وعدد اللقطات المحتفَظ بها. وتشغّل السحابة الجدول في وقت خارج الذروة بتوقيت UTC. ويحدّ max_snaps حدُّ لقطات الحساب — وعلى قرص الإقلاع لجهاز، خطةُ الجهاز — ويقول 409 ذلك إذا كانت الخطة لا تتضمن لقطات أقراص أصلًا. ولا يوجد حذف: فاللوحة لا تتيحه كذلك.

المعاملات

الاسم الموضع النوع الوصف
volume مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
interval_type مطلوب string
max_snaps مطلوب integer عدد اللقطات المحتفَظ بها من هذا الجدول.

الاستجابات

  • 201 الجدول.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/volumes/1/snapshot-policies' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "interval_type": "HOURLY",
    "max_snaps": 1
}'
GET /isos #

سرد سجلات ISO

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true للمطابقة مع المزوّد أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري.

يشمل كل سجل ISO مرئي للطالب: سجلاته الخاصة، إضافةً إلى كل سجل ISO يعلّمه المزوّد بأنه عام.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من سجلات ISO.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/isos' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /isos/{iso} #

قراءة سجل ISO واحد

cloud:read api.read

يكون مرئيًا إن كان عامًا أو إن كان مملوكًا للطالب. أما سجل ISO خاص يعود لعميل آخر فيجيب بـ 404، دون تمييز له عن سجل غير موجود أصلًا.

المعاملات

الاسم الموضع النوع الوصف
iso مطلوب path integer
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 سجل ISO.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/isos/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Catalogue

القوالب والعروض — كتالوج المنتجات العالمي القابل للبيع الذي يُبنى منه كل جهاز افتراضي وكل وحدة تخزين. للقراءة فقط: راجع وصف كل نقطة نهاية لمعرفة سبب عدم إتاحة المزامنة هنا إطلاقًا.

GET /templates #

سرد القوالب

cloud:read api.read

مطابقة الكتالوج مع المزوّد عملية إدارية شاملة قد تُزيل منتجات قابلة للبيع، ولذلك لا تُتاح هنا عن قصد. وتقدّم هذه النقطة دائمًا ما تعرفه اللوحة بالفعل.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من القوالب.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/templates' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /templates/{template} #

قراءة قالب واحد

cloud:read api.read

مطابقة الكتالوج مع المزوّد عملية إدارية شاملة قد تُزيل منتجات قابلة للبيع، ولذلك لا تُتاح هنا عن قصد. وتقدّم هذه النقطة دائمًا ما تعرفه اللوحة بالفعل.

المعاملات

الاسم الموضع النوع الوصف
template مطلوب path integer

الاستجابات

  • 200 القالب.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/templates/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /compute-offerings #

سرد عروض الحوسبة

cloud:read api.read

مطابقة الكتالوج مع المزوّد عملية إدارية شاملة قد تُزيل منتجات قابلة للبيع، ولذلك لا تُتاح هنا عن قصد. وتقدّم هذه النقطة دائمًا ما تعرفه اللوحة بالفعل.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من عروض الحوسبة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/compute-offerings' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /disk-offerings #

سرد عروض الأقراص

cloud:read api.read

مطابقة الكتالوج مع المزوّد عملية إدارية شاملة قد تُزيل منتجات قابلة للبيع، ولذلك لا تُتاح هنا عن قصد. وتقدّم هذه النقطة دائمًا ما تعرفه اللوحة بالفعل.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من عروض الأقراص.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/disk-offerings' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Network

قواعد جدار الحماية وعناوين IP العامة وشبكات VPN ومجموعات التقارب. راجع وصف كل نقطة نهاية جماعية لمعرفة النظير المُزامِن الذي وُجدت لإبقائه خارج مسار الطلب — فموارد الشبكة هي الموضع الذي تتراكم فيه هذه المزامنة أشدّ ما يكون، إذ إن قراءة قواعد جدار الحماية قد تُزامن الأجهزة الافتراضية أيضًا.

GET /ingress-rules #

سرد قواعد جدار الحماية للدخول

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true للمطابقة مع المزوّد أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري. وهي أيضًا القراءة الأشد تدميرًا في هذه الواجهة: فطريقة المطابقة التي تستدعيها تحذف قواعد جدار الحماية المحلية التي تغفلها قائمة المزوّد، كما يطابق فرع الإنشاء فيها أجهزة المستدعي الافتراضية أيضًا، فيحذف منها كل ما تغفله القائمة.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من قواعد الدخول.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/ingress-rules' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /ingress-rules #

إنشاء قاعدة جدار حماية للدخول

cloud:write api.read api.write

يحوّل تركيبة عنوان IP عام ومنفذ عام إلى منفذ خاص على أحد أجهزة المستدعي الافتراضية. يجب أن يشير public_ip_address إلى أحد عناوين IP العامة المحفوظة للمستدعي، وinstance_id إلى أحد أجهزته الافتراضية؛ وإخفاق أيٍّ منهما في التحليل يعطي 422 لا 404 — فالمورد المخاطَب هو نقطة المجموعة هذه.

جسم الطلب مطلوب

الحقل النوع الوصف
public_ip_address مطلوب string
protocol مطلوب string
public_port_start مطلوب integer
public_port_end مطلوب integer يجب أن يكون أكبر من `public_port_start` أو مساويًا له.
private_port_start مطلوب integer
private_port_end مطلوب integer يجب أن يكون أكبر من `private_port_start` أو مساويًا له.
instance_id مطلوب integer

الاستجابات

  • 201 قاعدة الدخول الجديدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/ingress-rules' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "public_ip_address": "203.0.113.10",
    "protocol": "tcp",
    "public_port_start": 1,
    "public_port_end": 1,
    "private_port_start": 1,
    "private_port_end": 1,
    "instance_id": 17
}'
PATCH /ingress-rules/{ingressRule} #

إعادة توجيه قاعدة جدار حماية للدخول

cloud:write api.read api.write

السمات القابلة للتعديل فقط: المنافذ الخاصة التي تُحوِّل إليها القاعدة، وأيّ جهاز افتراضي من أجهزة المستدعي تُحوِّل إليه. يجب أن يشير instance_id إلى جهاز افتراضي يملكه المستدعي؛ والمعرّف الغريب أو غير الموجود يفشل في التحقق (422) لا بـ404 — فالمورد المخاطَب هو القاعدة، وقد حُلّت وتأكّدت ملكيتها قبل تنفيذ هذا الطلب.

المعاملات

الاسم الموضع النوع الوصف
ingressRule مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
private_port_start مطلوب integer
private_port_end مطلوب integer يجب أن يكون أكبر من `private_port_start` أو مساويًا له.
instance_id مطلوب integer

الاستجابات

  • 200 قاعدة الدخول بعد التحديث.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/ingress-rules/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "private_port_start": 1,
    "private_port_end": 1,
    "instance_id": 17
}'
DELETE /ingress-rules/{ingressRule} #

حذف قاعدة جدار حماية للدخول

cloud:write api.read api.write

الاستثناء الموثَّق الوحيد لقاعدة «كل تعديل يعيد التمثيل الحالي»: فلا يبقى شيء يُعاد بعد الحذف، ولذلك تُجيب هذه العملية بالرمز 204 بجسم فارغ بدل 200 مع المورد المحذوف.

المعاملات

الاسم الموضع النوع الوصف
ingressRule مطلوب path integer

الاستجابات

  • 204 تم حذف القاعدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/ingress-rules/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /egress-rules #

سرد قواعد جدار الحماية للخروج

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true للمطابقة مع المزوّد أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من قواعد الخروج.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/egress-rules' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /egress-rules #

إنشاء قاعدة جدار حماية للخروج

cloud:write api.read api.write

يسمح بمرور حركة البيانات من source_cidr نحو destination_cidr. ويجب أن يكون كلاهما كتلة CIDR صحيحة التكوين — فوصول CIDR مشوَّه إلى السحابة من نقطة خاصة بجدار الحماية عيبٌ أمني، لا مجرد تدقيق شكلي.

جسم الطلب مطلوب

الحقل النوع الوصف
source_cidr مطلوب string
destination_cidr مطلوب string
protocol مطلوب string
port_start مطلوب integer
port_end مطلوب integer يجب أن يكون أكبر من `port_start` أو مساويًا له.

الاستجابات

  • 201 قاعدة الخروج الجديدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/egress-rules' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "source_cidr": "10.0.0.0/24",
    "destination_cidr": "0.0.0.0/0",
    "protocol": "tcp",
    "port_start": 1,
    "port_end": 1
}'
DELETE /egress-rules/{egressRule} #

حذف قاعدة جدار حماية للخروج

cloud:write api.read api.write

الاستثناء الموثَّق الوحيد لقاعدة «كل تعديل يعيد التمثيل الحالي»: فلا يبقى شيء يُعاد بعد الحذف، ولذلك تُجيب هذه العملية بالرمز 204 بجسم فارغ بدل 200 مع المورد المحذوف.

المعاملات

الاسم الموضع النوع الوصف
egressRule مطلوب path integer

الاستجابات

  • 204 تم حذف القاعدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/egress-rules/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /networks #

سرد الشبكات

cloud:read api.read

شبكات الطالب المعزولة الخاصة به، والمجانية أولًا. يُجاب من قاعدة البيانات ولا يُطابَق مع المزوّد أبدًا — فلا يوجد معامل refresh، لأن القراءة المُطابِقة تحذف السجلات المحلية. استخدم قيمة id من هنا بوصفها network_id في سطر الطلب.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الشبكات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/networks' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /networks/{network} #

قراءة شبكة

cloud:read api.read

إحدى شبكات الطالب. وشبكة حساب آخر تُرجِع 404، تمامًا كمعرّف غير موجود.

المعاملات

الاسم الموضع النوع الوصف
network مطلوب path integer

الاستجابات

  • 200 الشبكة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/networks/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /networks/{network} #

تسمية شبكة

cloud:write api.read api.write

يعيّن اسم الطالب الخاص للشبكة — وهو وسم لا تراه السحابة أبدًا. وتعيده القيمة null أو النص الفارغ إلى الاسم المولَّد.

المعاملات

الاسم الموضع النوع الوصف
network مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
label اختياري string

الاستجابات

  • 200 الشبكة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/networks/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "label": "string"
}'
DELETE /networks/{network} #

تحرير شبكة

cloud:write api.read api.write

يعيد شبكة فارغة إلى السحابة مع العنوان العام الذي تحمله. ويُقرَّر إن كان يجوز تحرير هذه الشبكة لحظةَ التحرير: فأي شيء ما زال عليها — جهاز أو عنوان مشترى أو اشتراكها — يرفضه بـ 409 يقول ما هو. ولا يمكن التراجع عنه.

المعاملات

الاسم الموضع النوع الوصف
network مطلوب path integer

الاستجابات

  • 204 حُرِّرت.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/networks/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /public-ip-addresses #

سرد عناوين IP العامة

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true للمطابقة مع المزوّد أولًا — فهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري. وهي تحذف السجلات المحلية التي لا تتضمنها قائمة المزوّد.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من عناوين IP العامة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/public-ip-addresses' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /public-ip-addresses/{publicIPAddress} #

قراءة عنوان IP عام

cloud:read api.read

يُجاب من قاعدة البيانات افتراضيًا. مرّر refresh=true لمطابقة مجموعة عناوين الطالب كاملةً مع المزوّد أولًا ثم انتقاء هذا العنوان منها قبل الرد — إذ لا يوجد لدى المزوّد استعلام عن عنوان مفرد. وهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري، وهي، مثل نقطة نهاية المجموعة، تحذف السجلات المحلية التي لا تتضمنها قائمة المزوّد.

المعاملات

الاسم الموضع النوع الوصف
publicIPAddress مطلوب path integer
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 عنوان IP العام.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/public-ip-addresses/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /public-ip-addresses/{publicIPAddress} #

ضبط سجل DNS العكسي لعنوان IP عام

dns:write api.read api.write

يكتب سجل PTR عبر خدمة DNS ويكتب السجل المحلي. ولا يغيّر شيئًا في السحابة، ولذلك يتطلب dns:write لا cloud:write، لكنه يتحقق أولًا من أن العنوان ما زال تابعًا لهذا الحساب في القائمة الحية للسحابة: يُرجع 422 إن لم يكن كذلك، و502 إن تعذّرت قراءة القائمة. انظر DNSUserService::updatePublicIPAddress().

المعاملات

الاسم الموضع النوع الوصف
publicIPAddress مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
reverse_record مطلوب string اسم مضيف DNS صالح.

الاستجابات

  • 200 عنوان IP العام بعد التحديث.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/public-ip-addresses/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "reverse_record": "host.example.com"
}'
POST /public-ip-addresses/{publicIPAddress}/actions/move #

نقل عنوان عام إلى شبكة أخرى

cloud:write api.read api.write

ينقل عنوانًا مشترى إلى شبكة أخرى من شبكات الطالب. ولا تستطيع السحابة نقل العنوان، فتُحرِّره هذه العملية وتحجز عنوانًا جديدًا على الشبكة الهدف: فيتغيّر العنوان ولا يمكن التراجع. ولا يُحصَّل شيء. ويُرفض كلٌّ من عنوان source NAT الخاص بالشبكة، والعنوان الذي عليه قواعد توجيه أو VPN، والشبكة الهدف التي لا يعمل عليها شيء بعد، بـ 409 يقول ذلك.

المعاملات

الاسم الموضع النوع الوصف
publicIPAddress مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
network_id مطلوب integer الشبكة الهدف (إحدى `GET /networks`).

الاستجابات

  • 200 العنوان الجديد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/public-ip-addresses/1/actions/move' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "network_id": 1
}'
GET /public-ip-addresses/{publicIPAddress}/move-plan #

قراءة أين يمكن نقل عنوان

cloud:read api.read

هل يمكن نقل هذا العنوان وإلى أي شبكات الطالب، مع السبب إن تعذّر. يُجاب من الشبكات المخزّنة؛ ولا يُطابَق شيء.

المعاملات

الاسم الموضع النوع الوصف
publicIPAddress مطلوب path integer

الاستجابات

  • 200 الخطة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/public-ip-addresses/1/move-plan' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /vpn #

سرد شبكات VPN الخاصة بالمستدعي

cloud:read api.read

مجموعة لا كائن واحد: فقد لا يكون لحساب العميل أي شبكة VPN مُهيَّأة، وقد يكون له من حيث المبدأ أكثر من واحدة. يعتمد على قاعدة البيانات افتراضيًا؛ ومرِّر refresh=true لمطابقة البيانات مع المزوّد أولًا — وهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري، وهي تحذف الصفوف المحلية التي لا ترد في قائمة المزوّد.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من شبكات VPN.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/vpn' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
PATCH /vpn #

تشغيل بوابة VPN أو إيقافها

cloud:write api.read api.write

يشغّل بوابة VPN للوصول عن بُعد على أحد عناوين الطالب العامة أو يوقفها — وهو المفتاح في اللوحة. وتظهر البوابة في GET /vpn?refresh=true حين تُبلغ عنها السحابة. والتبديل الذي لم تُنفّذه السحابة يُرجِع 409 يقول ذلك؛ ويُدار المستخدمون عبر /vpn/users.

جسم الطلب مطلوب

الحقل النوع الوصف
public_ip_address_id مطلوب integer
enabled مطلوب boolean

الاستجابات

  • 204 تم التبديل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/vpn' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "public_ip_address_id": 1,
    "enabled": true
}'
GET /vpn/users #

سرد مستخدمي VPN

cloud:read api.read

يُجاب من قاعدة البيانات؛ ولا يتصل بالسحابة إطلاقًا. لا يوجد معامل refresh — فبخلاف عناوين IP العامة وشبكات VPN، ليس لهذه النقطة نظير مُطابِق متاح عبر واجهة البرمجة.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من مستخدمي VPN.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/vpn/users' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /vpn/users #

إنشاء مستخدم VPN

cloud:write api.read api.write

يُنشئ مستخدم VPN في السحابة تحت حساب المستدعي. ويجب أن يكون username غير مستخدَم بين مستخدمي VPN الخاصين بالمستدعي؛ أما الاسم الذي يستخدمه عميل آخر فلا يُعدّ تعارضًا.

يُتحقَّق من الحقلين وفق قاعدة مزوّد السحابة نفسه لا وفق قاعدة أوسع من عندنا: فكلٌّ منهما يجب أن يبدأ بحرف أو رقم، ثم يجوز أن يستخدم الحروف والأرقام ومجموعة صغيرة من علامات الترقيم — @ . - _ لاسم المستخدم، و@ + = . - _ لكلمة المرور. وأي قيمة خارج ذلك تُجاب هنا بـ 422. وكانت القيمة تُقبل سابقًا ثم يرفضها المزوّد بعد ذلك، فيصل ذلك إلى المستدعي على هيئة 502 يذكر نظامًا لا يملك أي وصول إليه.

جسم الطلب مطلوب

الحقل النوع الوصف
username مطلوب string
password مطلوب string

الاستجابات

  • 201 مستخدم VPN الجديد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/vpn/users' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "jdoe",
    "password": "string"
}'
DELETE /vpn/users/{vpnUser} #

حذف مستخدم VPN

cloud:write api.read api.write

الاستثناء الموثَّق الوحيد لقاعدة «كل تعديل يعيد التمثيل الحالي»: فلا يبقى شيء يُعاد بعد الحذف، ولذلك تُجيب هذه العملية بالرمز 204 بجسم فارغ بدل 200 مع المورد المحذوف.

المعاملات

الاسم الموضع النوع الوصف
vpnUser مطلوب path integer

الاستجابات

  • 204 حُذف مستخدم VPN.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/vpn/users/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /affinity-groups #

سرد مجموعات التقارب

cloud:read api.read

يُجاب من قاعدة البيانات؛ ولا يتصل بالسحابة إطلاقًا. ولا يوجد معامل refresh: فالنسخة التي تُجري المطابقة لهذه النقطة مدمِّرة على نحو لا يماثله شيء آخر في هذه الواجهة البرمجية — إذ تحذف مجموعات التقارب المحلية التي تغفلها قائمة المزوّد، وتحذف معها صفوف عضوية الأجهزة — ولذلك لا تُكشف هنا أبدًا.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من مجموعات التقارب.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/affinity-groups' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /affinity-groups #

إنشاء مجموعة تقارب

cloud:write api.read api.write

يجب أن يكون name فريدًا بين مجموعات تقارب جميع العملاء — فالمزوّد لا يفصل أسماء مجموعات التقارب بحسب الحساب. ويجب أن يشير كل عنصر في instances.* إلى أحد أجهزة المستدعي نفسه؛ والمعرّف العائد لغيره أو غير الموجود يعطي 422 لا 404.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string
description اختياري string
affinity_type مطلوب string
instances اختياري array of integer

الاستجابات

  • 201 مجموعة التقارب الجديدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/affinity-groups' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "web-tier",
    "affinity_type": "Host Affinity"
}'
PATCH /affinity-groups/{affinityGroup} #

إعادة تحديد عضوية مجموعة تقارب

cloud:write api.read api.write

السمة الوحيدة القابلة للتعديل: أيّ أجهزة المستدعي الافتراضية تنتمي إلى المجموعة. ولا يدعم المزوّد إعادة تسمية مجموعة تقارب أو تغيير نوعها بعد إنشائها. ويجب أن يشير كل عنصر في instances.* إلى أحد أجهزة المستدعي نفسه؛ والمعرّف العائد لغيره أو غير الموجود يعطي 422 لا 404 — فالمورد المُخاطَب هو المجموعة، وقد جرى تحليلها والتحقق من ملكيتها قبل تنفيذ هذا الطلب. والمصفوفة الفارغة تمسح عضوية المجموعة.

المعاملات

الاسم الموضع النوع الوصف
affinityGroup مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
instances مطلوب array of integer

الاستجابات

  • 200 مجموعة التقارب بعد تحديثها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/affinity-groups/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "instances": [
        17
    ]
}'
DELETE /affinity-groups/{affinityGroup} #

حذف مجموعة تقارب

cloud:write api.read api.write

الاستثناء الموثَّق الوحيد لقاعدة «كل تعديل يعيد التمثيل الحالي»: فلا يبقى شيء يُعاد بعد الحذف، ولذلك تُجيب هذه العملية بالرمز 204 بجسم فارغ بدل 200 مع المورد المحذوف.

المعاملات

الاسم الموضع النوع الوصف
affinityGroup مطلوب path integer

الاستجابات

  • 204 حُذفت مجموعة التقارب.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/affinity-groups/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

DNS

المناطق والسجلات في تكامل DNS الخاص باللوحة. استخدام refresh=true في أي قراءة هنا هو أوسع مزامنة أثرًا في واجهة API بأسرها — فلا توجد عملية أولية لمزامنة منطقة واحدة، ولذلك يُعاد دائمًا مزامنة حساب DNS الخاص بالمُستدعي بالكامل، لا المورد الذي يخاطبه الطلب فحسب.

GET /dns-zones #

سرد مناطق DNS

dns:read api.read

يُجاب من قاعدة البيانات افتراضيًا. أرسل refresh=true للمطابقة مع خدمة DNS أولًا — هذا الشكل محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري. وخلافًا للمعامل نفسه في /instances أو /volumes، تطابق مطابقة DNS حساب DNS بالكامل للمستدعي، لا هذه القائمة وحدها: إذ لا توجد في الخدمة الأساسية وسيلة أرخص لمطابقة منطقة واحدة. كما تحذف المناطق المحلية (وسجلاتها تبعًا لها) التي لم تعد قائمة خدمة DNS تتضمنها.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من مناطق DNS.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/dns-zones' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /dns-zones #

إنشاء منطقة DNS

dns:write api.read api.write

يتطلب أن يكون واحد على الأقل من اشتراكات المستدعي في حالة النشر، ويرفض المنطقة السادسة — ويُتحقَّق من الأمرين قبل إنشاء المنطقة في خدمة DNS، فلا يترك الطلب المرفوض أبدًا منطقة يتيمة لدى المزوّد.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسم النطاق الخاص بالمنطقة، دون نقطة في آخره.

الاستجابات

  • 201 منطقة DNS الجديدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/dns-zones' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "example.com"
}'
GET /dns-zones/{zone} #

قراءة منطقة DNS

dns:read api.read

يُجاب من قاعدة البيانات افتراضيًا. أرسل refresh=true للمطابقة قبل الاستجابة — وكما في نقطة المجموعة، تطابق هذه العملية حساب DNS بالكامل للمستدعي (إذ لا توجد عملية مطابقة لمنطقة واحدة)، ثم تختار هذه المنطقة من النتيجة. وهذا الشكل محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري.

المعاملات

الاسم الموضع النوع الوصف
zone مطلوب path integer
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 منطقة DNS.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/dns-zones/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
DELETE /dns-zones/{zone} #

حذف منطقة DNS

dns:write api.read api.write

يحذف المنطقة في خدمة DNS وصفَّها المحلي، ومعها الصفوف المحلية لجميع سجلاتها. وهو الاستثناء الموثَّق الوحيد لقاعدة «كل تعديل يعيد التمثيل الحالي»: فلا يبقى شيء يُعاد، ولذلك تُجيب هذه العملية بالرمز 204 بجسم فارغ بدل 200 مع المورد المحذوف.

المعاملات

الاسم الموضع النوع الوصف
zone مطلوب path integer

الاستجابات

  • 204 تم حذف المنطقة (وسجلاتها).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/dns-zones/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /dns-zones/{zone}/records #

سرد سجلات منطقة DNS

dns:read api.read

يقرأ من قاعدة البيانات افتراضيًا: قراءة بسيطة لسجلات المنطقة نفسها، دون أي استدعاء للمزوّد (يجب أن تكون المنطقة نفسها مملوكة للمستدعي — تُحلّ ويُردّ 404 قبل البحث عن أي سجل). أرسل refresh=true للمطابقة أولًا — وكما في نقاط المنطقة، تطابق هذه العملية حساب DNS بالكامل للمستدعي، لا هذه المنطقة وحدها، وهي محدودة المعدل بصرامة أكبر بكثير.

المعاملات

الاسم الموضع النوع الوصف
zone مطلوب path integer
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من سجلات DNS الخاصة بالمنطقة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/dns-zones/1/records' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /dns-zones/{zone}/records #

إنشاء سجل DNS

dns:write api.read api.write

يتطلب أن يكون واحد على الأقل من اشتراكات المستدعي في حالة النشر، ويرفض السجل الـ256 في هذه المنطقة — ويُتحقَّق من الأمرين قبل إنشاء السجل في خدمة DNS. كما يؤدي إنشاء السجل إلى مطابقة حساب DNS بالكامل للمستدعي، كأثر جانبي لإعادة قراءة السجل الجديد — إذ لا توجد وسيلة أرخص للحصول على صفّه المحلي، لأن استدعاء المزوّد الأساسي لا يعيده. وتُرفض القيمة الموجودة بالفعل للاسم والنوع نفسيهما بالرمز 422 على الحقل data قبل كتابة أي شيء: القيمة الواحدة سجل واحد.

المعاملات

الاسم الموضع النوع الوصف
zone مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string القيمة النسبية (مثل `www`) تُستكمل تلقائيًا باسم المنطقة نفسها؛ أما القيمة المؤهَّلة بالكامل (المنتهية بنقطة) فتُستخدم كما هي.
type مطلوب string
data مطلوب string

الاستجابات

  • 201 سجل DNS الجديد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/dns-zones/1/records' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "www",
    "type": "A",
    "data": "203.0.113.5"
}'
PATCH /dns-zones/{zone}/records/{record} #

تحديث سجل DNS

dns:write api.read api.write

السمتان القابلتان للتعديل فقط: type وdata. يُحدِّث السجل في خدمة DNS وفي الصف المحلي مباشرة، مع الحفاظ على id السجل — فالخدمة الأساسية لا تحفظ التغيير محليًا من تلقاء نفسها، والمطابقة عبر المزامنة الشاملة للحساب بدلًا من ذلك كانت ستحذف هذا السجل وتُنشئ آخر بمعرّف مختلف. ويُرفض type وdata جديدان يحملهما سجل آخر بهذا الاسم بالفعل بالرمز 422 على الحقل data قبل كتابة أي شيء؛ أما إرسال القيمة الحالية للسجل نفسه فمقبول ولا يغيّر شيئًا.

المعاملات

الاسم الموضع النوع الوصف
zone مطلوب path integer
record مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
type مطلوب string
data مطلوب string

الاستجابات

  • 200 سجل DNS بعد التحديث.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X PATCH 'https://cloud.core.gen.tr/api/v1/dns-zones/1/records/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "A",
    "data": "203.0.113.6"
}'
DELETE /dns-zones/{zone}/records/{record} #

حذف سجل DNS

dns:write api.read api.write

يحذف السجل في خدمة DNS وصفَّه المحلي. وهو الاستثناء الموثَّق الوحيد لقاعدة «كل تعديل يعيد التمثيل الحالي»: فلا يبقى شيء يُعاد، ولذلك تُجيب هذه العملية بالرمز 204 بجسم فارغ بدل 200 مع المورد المحذوف. وإذا لم تعد خدمة DNS تحتفظ بقيمة هذا السجل، تُجيب العملية بالرمز 409 وتُبقي الصف المحلي، ويُزامنه refresh=true في قائمة سجلات النطاق.

المعاملات

الاسم الموضع النوع الوصف
zone مطلوب path integer
record مطلوب path integer

الاستجابات

  • 204 تم حذف السجل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/dns-zones/1/records/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Billing

الكتالوج القابل للبيع، والاشتراكات وإلغاؤها، والمدفوعات، وبطاقات الائتمان المحفوظة، والاستردادات، ورصيد الحساب، وتقديم الطلبات. تدفع POST /orders من رصيد الحساب فقط. ومع billing:write يمكن دفع فاتورة مفتوحة ببطاقة محفوظة اجتازت 3-D Secure — أما البطاقة التي لم تجتزه فتُعاد إلى اللوحة مع approval_url، لأن تحقق البنك يحتاج إلى شخص في المتصفح — ويمكن طلب استرداد وحذف بطاقة محفوظة؛ وتبقى إضافة البطاقة في اللوحة. وراجع وصف كل نقطة نهاية لمعرفة النظير المُزامِن — إن وُجد — الذي تُبقيه عمدًا خارج مسار الطلب.

GET /virtual-machine-products #

سرد منتجات الأجهزة الافتراضية

billing:read api.read

كتالوج الأجهزة الافتراضية القابلة للبيع. لا يوجد معامل refresh: فهذه النقطة تُبنى من قاعدة البيانات بحكم تصميمها — ولا يُطابَق أي شيء هنا مع السحابة، بخلاف التعريفات التي بُنيت منها. ولا تُرجَع إلا المنتجات المنشورة، مطابقةً لـ VirtualMachineProductPolicy::view().

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من منتجات الأجهزة الافتراضية.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/virtual-machine-products' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /virtual-machine-products/{virtualMachineProduct} #

قراءة منتج جهاز افتراضي واحد

billing:read api.read

يُرجِع 404 للمنتج غير المنشور، مطابقةً لـ VirtualMachineProductPolicy::view() — وقد أُعيد إنتاج القاعدة هنا كقيد على الاستعلام، تمامًا كما يُعيد GET /isos/{iso} إنتاج قاعدة الظهور في IsoPolicy::view، لا كفحص سياسة كان سيُرجِع 403 بدلًا من ذلك.

المعاملات

الاسم الموضع النوع الوصف
virtualMachineProduct مطلوب path integer

الاستجابات

  • 200 منتج الجهاز الافتراضي.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/virtual-machine-products/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /volume-products #

سرد منتجات الأقراص

billing:read api.read

كتالوج الأقراص القابلة للبيع. لا يوجد معامل refresh للسبب نفسه المذكور في GET /virtual-machine-products. ولا تُرجَع إلا المنتجات المنشورة.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من منتجات الأقراص.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volume-products' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /volume-products/{volumeProduct} #

قراءة منتج قرص واحد

billing:read api.read

يُرجِع 404 للمنتج غير المنشور، مطابقةً لـ VolumeProductPolicy::view() — وقد أُعيد إنتاج القاعدة كقيد على الاستعلام لا كفحص سياسة.

المعاملات

الاسم الموضع النوع الوصف
volumeProduct مطلوب path integer

الاستجابات

  • 200 منتج القرص.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/volume-products/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /ip-address-products #

سرد منتجات عناوين IP العامة

billing:read api.read

كتالوج عناوين IPv4 العامة القابلة للبيع. ولا تُرجَع إلا المنتجات المنشورة والمسعَّرة معًا — وهي القاعدة نفسها التي تبيع بها POST /orders. اطلبها بسطر من نوع ip_address.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من منتجات عناوين IP العامة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/ip-address-products' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /ip-address-products/{ipAddressProduct} #

قراءة منتج عنوان IP عام واحد

billing:read api.read

يُرجِع 404 للمنتج غير المنشور أو الذي لا خطة دفع له، وهو الرد نفسه الذي يتلقاه معرّف غير موجود.

المعاملات

الاسم الموضع النوع الوصف
ipAddressProduct مطلوب path integer

الاستجابات

  • 200 منتج عنوان IP العام.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/ip-address-products/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /network-products #

سرد منتجات الشبكات

billing:read api.read

كتالوج الشبكات الإضافية القابلة للبيع. ولا تُرجَع إلا المنتجات المنشورة والمسعَّرة معًا. اطلبها بسطر من نوع network؛ ولكل حساب شبكة مجانية واحدة أصلًا، تحسبها max_networks.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من منتجات الشبكات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/network-products' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /network-products/{networkProduct} #

قراءة منتج شبكة واحد

billing:read api.read

يُرجِع 404 للمنتج غير المنشور أو الذي لا خطة دفع له.

المعاملات

الاسم الموضع النوع الوصف
networkProduct مطلوب path integer

الاستجابات

  • 200 منتج الشبكة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/network-products/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /service-products #

سرد منتجات الخدمات

billing:read api.read

الخدمات التي تُقدَّم مرة واحدة ويبيعها المتجر — للقراءة فقط هنا. تُشترى الخدمة من اللوحة، لا عبر POST /orders أبدًا: فشراؤها يُلزم شخصًا بإنجاز العمل. ولا تُرجَع إلا الخدمات التي يستطيع العميل شراءها فعلًا (منشورة ومسعَّرة ومعروضة إما بحرية أو إلى جانب قالب واحد على الأقل).

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من منتجات الخدمات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/service-products' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /service-products/{serviceProduct} #

قراءة منتج خدمة واحد

billing:read api.read

يُرجِع 404 للخدمة التي لا يستطيع العميل شراءها — غير المنشورة، أو غير المسعَّرة، أو غير المعروضة لأي شيء، أو تدريب الشراكة.

المعاملات

الاسم الموضع النوع الوصف
serviceProduct مطلوب path integer

الاستجابات

  • 200 منتج الخدمة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/service-products/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /domain-name-products #

سرد منتجات أسماء النطاقات

billing:read api.read

كتالوج أسماء النطاقات — للقراءة فقط، ولا يُتاح إلا عند تفعيل إعادة بيع النطاقات؛ وإلا فالرد 404. ويُشترى النطاق من اللوحة، حيث يُسأل السجل عمّا إذا كان الاسم متاحًا.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من منتجات أسماء النطاقات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/domain-name-products' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /domain-name-products/{domainNameProduct} #

قراءة منتج اسم نطاق واحد

billing:read api.read

يُرجِع 404 ما دامت إعادة بيع النطاقات مُعطَّلة، وللمنتج غير المنشور أو غير المسعَّر.

المعاملات

الاسم الموضع النوع الوصف
domainNameProduct مطلوب path integer

الاستجابات

  • 200 منتج اسم النطاق.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/domain-name-products/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /subscriptions #

سرد الاشتراكات

billing:read api.read

يُجاب من قاعدة البيانات فقط — ولا يوجد معامل refresh. فخلافًا للأقراص أو الأجهزة الافتراضية، ليست النسخة التي تُجري المطابقة هنا (BillingUserService::listSubscriptions()) «سؤال المزوّد عمّا هو موجود»: بل هي عملية إصلاح إدارية ترفع كل اشتراك دون deployed إلى deployed (حتى إن مجرد السرد كان سيَعُدّ تجهيز مزوّد Terraform منتهيًا)، وتُنهي الاشتراكات التي انتقل جهازها الافتراضي، وتحذف اشتراكات أقراص ROOT مع دفعاتها، وتتصل بالسحابة. وهي لا تنتمي خلف طلب GET لعميل مهما كان حدّ المعدّل.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الاشتراكات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/subscriptions' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /subscriptions/{subscription} #

قراءة اشتراك واحد

billing:read api.read

تُفرض الملكية بوصفها قيدًا على الاستعلام لا فحصًا للسياسة: فاشتراك عميل آخر يجيب هنا بـ 404، بينما كان مسار اللوحة نفسه (الربط الضمني مع SubscriptionPolicy) سيجيب بـ 403. ولا يوجد معامل refresh، للسبب نفسه المذكور في GET /subscriptions.

المعاملات

الاسم الموضع النوع الوصف
subscription مطلوب path integer

الاستجابات

  • 200 الاشتراك.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/subscriptions/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /subscriptions/{subscription}/actions/cancel #

إلغاء اشتراك

order:write api.read api.write

يُنهي الاشتراك. ويتطلب order:write لا billing:read: فالإلغاء يُنهي أصلًا مدفوعًا، ولذلك يقع خلف الموافقة المتعمدة نفسها على الكتابة التجارية التي يقع خلفها الطلب، وإن كان لا شيء هنا يسحب من بطاقة — وتوثيق الصنف TokenAbility صريح في أن شبكة القراءة/الكتابة ليس المقصود «إكمالها» بصلاحية billing:write مخصصة.

وهو متكافئ التكرار (idempotent) على اشتراك مُنهىً سلفًا: فتكرار الاستدعاء يعيد 200 مع التمثيل الحالي (المُنهى سلفًا) بدلًا من 409 الذي كان إلغاء ثانٍ سيُنتجه، فلا يفشل أمر Terraform destroy الذي يعيد المحاولة بعد انتهاء المهلة.

ويرفض إلغاء أي شيء ليس في حالة deployed حاليًا — جهاز افتراضي ما يزال يعمل، أو قرص ما يزال موصولًا، أو جهاز افتراضي/قرص مفقود — فيجيب بـ 409، لأن كلًّا من هذه الحالات حالة تعارض على الطالب حلّها أولًا (أوقف الجهاز الافتراضي، افصل القرص)، لا طلبًا مُشوَّه البنية.

المعاملات

الاسم الموضع النوع الوصف
subscription مطلوب path integer

الاستجابات

  • 200 الاشتراك بعد إنهائه (أو المُنهى سلفًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/subscriptions/1/actions/cancel' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /subscriptions/{subscription}/resize-quote #

تسعير تغيير الحجم

billing:read api.read

يسعّر نقل هذا الجهاز أو القرص أو الشبكة إلى product_id — وهو منتج من النوع نفسه — دون تغيير أي شيء. ويُرفض بـ 409 بكلمات الخدمة نفسها ما دام الشراء قابلًا للاسترداد (فلا يُتاح تغيير الحجم داخل مهلة الاسترداد)، أو ما دامت فاتورة مفتوحة، أو لأي سبب آخر كانت اللوحة سترفضه من أجله.

المعاملات

الاسم الموضع النوع الوصف
subscription مطلوب path integer
product_id مطلوب query integer

الاستجابات

  • 200 عرض السعر.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/subscriptions/1/resize-quote' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /subscriptions/{subscription}/actions/resize #

تغيير حجم جهاز أو قرص أو شبكة

order:write api.read api.order

ينفّذ تغيير الحجم الذي سعّره GET /subscriptions/{subscription}/resize-quote، باللحظة التي سُعِّر فيها: أرسل token الخاص به بوصفه quote_token، ويُرفض تغيير الحجم بـ 409 إذا تغيّر السعر منذئذ (تدوم عروض الأسعار خمس دقائق).

ويكتمل التصغير، أو الانتقال إلى السعر نفسه، فورًا: فيُعيد التصغير الجزء غير المستهلك من الفترة — إلى البطاقة التي دفعت متى أمكن، وإلى رصيد الحساب متى تعذّر — ويقول refunds أين ذهب كل جزء. أما التكبير فيُهيَّأ وتُترك فاتورته ليدفعها شخص على payment_url (202)، تمامًا كما في POST /orders: فأول سحب من البطاقة يتطلب خطوة 3-D Secure تفاعلية. ويبقى الجهاز بحجمه ويبقى الاشتراك scaling حتى تُدفع تلك الفاتورة؛ ودفعها يُتمّ تغيير الحجم. ويتراجع POST …/actions/cancel-resize على الاشتراك الجديد عن تغيير حجم مُهيَّأ. وإذا بقيت فاتورة تغيير حجم مُهيَّأ دون دفع ثلاثة أيام، يُتراجَع عنه تلقائيًا: يعود الاشتراك إلى حجمه الحالي وإلى فوترته المعتادة، وتُسحب الفاتورة، ولا تتحرك أي أموال، ويُبلَّغ الحساب. ولا تُسحب أبدًا فاتورة مدفوعة.

يتطلب order:write وصلاحية إدارة الفوترة. ويلزم Idempotency-Key.

المعاملات

الاسم الموضع النوع الوصف
subscription مطلوب path integer
Idempotency-Key مطلوب header string مفتاح يختاره المستدعي ويجعل تكرار هذا الطلب آمنًا. يُحجز المفتاح قبل تنفيذ الطلب: فالتكرار الذي يصل والطلب الأول ما زال قيد التنفيذ يجيب بـ `409` بدل تحصيل ثانٍ، وتكرار طلب اكتمل بالفعل يعيد الاستجابة الأصلية مع الترويسة `Idempotent-Replay: true` بدل الطلب من جديد. المفاتيح خاصة بالمستدعي وتُحترم لمدة 24 ساعة. وإعادة استخدام مفتاح مع جسم مختلف تجيب بـ `409`.

جسم الطلب مطلوب

الحقل النوع الوصف
product_id مطلوب integer
quote_token مطلوب string

الاستجابات

  • 200 اكتمل تغيير الحجم (تصغير، أو انتقال لا يكلّف شيئًا).
  • 202 هُيِّئ التكبير؛ وتنتظر فاتورته على `payment_url` ثلاثة أيام، يُتراجَع بعدها عن تغيير الحجم غير المدفوع.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/subscriptions/1/actions/resize' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: a-key-you-choose' \
  -H 'Content-Type: application/json' \
  -d '{
    "product_id": 1,
    "quote_token": "string"
}'
POST /subscriptions/{subscription}/actions/cancel-resize #

التراجع عن تغيير حجم مُهيَّأ

order:write api.read api.write

على الاشتراك الجديد الذي هيّأه تغيير الحجم (حالته scaling): تُحذف فاتورته غير المدفوعة، ويُستعاد الاشتراك الذي حلّ محله، ولا يتحرك مال. ويُرفض بـ 409 تغيير الحجم الذي دُفعت فاتورته. ويُعيد الاشتراك المستعاد.

المعاملات

الاسم الموضع النوع الوصف
subscription مطلوب path integer

الاستجابات

  • 200 الاشتراك المستعاد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/subscriptions/1/actions/cancel-resize' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /subscriptions/{subscription}/actions/refund #

طلب استرداد

billing:write api.read api.order

زر الاسترداد في اللوحة، يعمل بالشيفرة نفسها. داخل مهلة الاسترداد (سبعة أيام من الشراء) يعود المال إلى البطاقة التي دفعت وينتهي الشراء؛ ويجب إيقاف الجهاز أولًا، ويُرفض الجهاز الذي اشتُريت له خدمة سارية حتى تُسترد الخدمة.

وحين تكون هناك فاتورة صادرة للشراء، يجب إلغاؤها قبل أن يعود أي مال: فتكون الإجابة حينها 202 مع outcome: invoice_cancellation_requested، ويُفتح طلب إلغاء فاتورة مع تذكرة دعم، ويُوقف الجهاز فورًا. وتؤكد الشركة الإلغاء عبر POST /invoice-refund-requests/{invoiceRefundRequest}/actions/confirm. ويُرفض الطلب من جديد ما دام ذلك الطلب قائمًا؛ أما الطلب من جديد بعد أن يلغي الفريق الفاتورة فيعيد محاولة الاسترداد المستحق.

200 مع outcome: refunded عند إتمام الاسترداد؛ و202 مع outcome: refund_pending بينما يسوّيه البنك. وكل رفض هو 409 يحمل جملة اللوحة: انقضت المهلة، أو الاستردادات محظورة على الحساب، أو غُيِّر حجم الشراء، أو ما زال طلب سابق مفتوحًا، وما إلى ذلك. واشتراك حساب آخر يجيب بـ 404.

يتطلب billing:write، ويجب أن يملك صاحبه billing: manage — وهو باب اللوحة نفسه.

المعاملات

الاسم الموضع النوع الوصف
subscription مطلوب path integer معرّف الاشتراك.

الاستجابات

  • 200 تم الاسترداد.
  • 202 الاسترداد قيد التسوية، أو يقوم مقامه طلب لإلغاء الفاتورة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 رُفض الاسترداد؛ ويحمل `detail` جملة اللوحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/subscriptions/1/actions/refund' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /payments #

سرد الدفعات

billing:read api.read

يُجاب من قاعدة البيانات افتراضيًا. وتكون الحقول amount/subtotal/taxes/discount/applied_balance/taxable_base/list_total/ catalogue_discount بقيمة null في أي دفعة لم يُعَد احتسابها قط — فإعادة الاحتساب عملية كتابة، ولذلك لا يُطلقها طلب GET عادي أبدًا. مرّر refresh=true لإعادة احتساب كل دفعة في الصفحة المُعادة؛ وهذه الصيغة محدودة المعدّل بصرامة أكبر بكثير ولا يجوز استخدامها للاستطلاع الدوري.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من الدفعات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/payments' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /payments/{payment} #

قراءة دفعة واحدة

billing:read api.read

تُفرض الملكية بوصفها قيدًا على الاستعلام: فدفعة عميل آخر تجيب بـ 404. مرّر refresh=true لفرض إعادة احتساب amount والحقول الشقيقة له قبل الرد — وانظر وصف GET /payments لتعرف لماذا لا تفعل القراءة العادية ذلك أبدًا. ويُنشر رد المبالغ الذي أجراه مصرف العميل في chargebacks — مبلغه وتاريخه، ولا يُنشر سببه ولا مرجع المصرف أبدًا.

المعاملات

الاسم الموضع النوع الوصف
payment مطلوب path integer
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 الدفعة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/payments/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /payments/{payment}/invoice #

تنزيل فاتورة دفعة

billing:read api.read

مستند الفاتورة الذي أصدره محاسبنا لهذه الدفعة بصيغة PDF. ويُرجِع 404 حتى يُحفظ مستند.

المعاملات

الاسم الموضع النوع الوصف
payment مطلوب path integer

الاستجابات

  • 200 الفاتورة بصيغة PDF.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/payments/1/invoice' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /payments/{payment}/proforma #

تنزيل الفاتورة المبدئية لدفعة

billing:read api.read

الفاتورة المبدئية لهذه الدفعة بصيغة PDF — مستند اللوحة، باللغة التركية.

المعاملات

الاسم الموضع النوع الوصف
payment مطلوب path integer

الاستجابات

  • 200 الفاتورة المبدئية بصيغة PDF.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/payments/1/proforma' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /payments/{payment}/actions/pay #

دفع فاتورة مفتوحة ببطاقة محفوظة

billing:write api.read api.order

يخصم من إحدى بطاقاتك المحفوظة لفاتورة مفتوحة، تمامًا كما يفعل زر الدفع في اللوحة: يُطبَّق رصيد الحساب الممنوح أولًا، ويُخصم الباقي من البطاقة دون أي تأكيد إضافي، ويُستكمل ما اشترته الفاتورة — تجديدًا كان أو تغييرًا للحجم أو جهازًا. هذه العملية تنفق المال.

لا يمكن الخصم من بطاقة لم تجتز 3-D Secure دون شخص: فتكون الإجابة حينها 409 يحمل مستند مشكلتها code: three_d_secure_required وapproval_url — وهي صفحة الفاتورة في اللوحة حيث يُكمل شخص تحقق البنك. ولا يبدأ هنا أي تحقق. وكما في اللوحة تُسجَّل المحاولة على الفاتورة، فتظهر فاشلة حتى تُدفع.

ويُرفض بالرمز 409 وبجملة اللوحة: فاتورة مدفوعة أو مستردة أو ملغاة أصلًا، وفاتورة أُدمجت في دفعة واحدة لكل ما على الحساب، وفاتورة طلب لا يبيعه المتجر اليوم. والبطاقة التي ليست لك تُرفض بـ 422 على credit_card_id. وفاتورة حساب آخر تجيب بـ 404.

متكافئة التكرار (idempotent). ترويسة Idempotency-Key مطلوبة: فإعادة المحاولة بعد انتهاء المهلة لا تخصم مرتين أبدًا.

يتطلب billing:write، ويجب أن يملك صاحبه billing: manage — وهو باب اللوحة نفسه.

المعاملات

الاسم الموضع النوع الوصف
payment مطلوب path integer معرّف الفاتورة.
Idempotency-Key مطلوب header string مفتاح يختاره المستدعي ويجعل تكرار هذا الطلب آمنًا. يُحجز المفتاح قبل تنفيذ الطلب: فالتكرار الذي يصل والطلب الأول ما زال قيد التنفيذ يجيب بـ `409` بدل تحصيل ثانٍ، وتكرار طلب اكتمل بالفعل يعيد الاستجابة الأصلية مع الترويسة `Idempotent-Replay: true` بدل الطلب من جديد. المفاتيح خاصة بالمستدعي وتُحترم لمدة 24 ساعة. وإعادة استخدام مفتاح مع جسم مختلف تجيب بـ `409`.

جسم الطلب مطلوب

الحقل النوع الوصف
credit_card_id مطلوب integer إحدى بطاقاتك المحفوظة، كما تعرضها `GET /credit-cards`.

الاستجابات

  • 200 الفاتورة بعد دفعها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 لا يمكن الخصم لهذه الفاتورة على حالها — أو أن البطاقة تحتاج إلى 3-D Secure، وحينها يحمل المستند `code: three_d_secure_required` و`approval_url`.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/payments/1/actions/pay' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: a-key-you-choose' \
  -H 'Content-Type: application/json' \
  -d '{
    "credit_card_id": 1
}'
GET /credit-cards #

سرد بطاقات الائتمان المحفوظة

billing:read api.read

يُجاب من قاعدة البيانات افتراضيًا. يبقى تسجيل البطاقة في اللوحة، وهي محمية أصلًا بجلسة وبالمصادقة الثنائية — لا تقبل هذه الواجهة رقم البطاقة (PAN) أبدًا، ولذلك لا يوجد POST هنا.

يسأل refresh=true بوابة الدفع مباشرة عمّا إذا كانت لا تزال تعرف كل بطاقة، باستدعاء واحد لكل بطاقة، ويحذف الصف المحلي لأي بطاقة لم تعد البوابة تحتفظ بها — وهذا ليس استدعاءً مجانيًا «للتحقق من الحالة»، بل مطابقة مدمِّرة يختارها المستدعي عن قصد. وهو محدود المعدل بصرامة أكبر بكثير من قراءة عادية.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
refresh اختياري query boolean default false المطابقة مع المزوّد قبل الإجابة بدل القراءة من قاعدة البيانات المحلية. يخضع لحدّ معدّل أضيق بكثير؛ لا تستخدمه للاستطلاع الدوري.

الاستجابات

  • 200 صفحة من بطاقات الائتمان المحفوظة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/credit-cards' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
DELETE /credit-cards/{creditCard} #

حذف بطاقة محفوظة

billing:write api.read api.write

يزيل إحدى بطاقاتك المحفوظة، تمامًا كما تفعل اللوحة: يُفصل عنها كل اشتراك كان يتجدد بها (فتنتظر فاتورته التالية بطاقة أو تُرسل إليك)، وتُحذف البطاقة من بوابة الدفع أيضًا. والبطاقة التي حفظها مستخدم آخر — ولو في الحساب نفسه — تجيب بـ 404: فالبطاقات ملك للمستخدم الذي حفظها. أما إضافة بطاقة فتتطلب خطوة 3-D Secure لدى البنك وتبقى في اللوحة.

يتطلب billing:write، ويجب أن يملك صاحبه billing: manage — وهو باب اللوحة نفسه.

المعاملات

الاسم الموضع النوع الوصف
creditCard مطلوب path integer معرّف البطاقة، كما تعرضه `GET /credit-cards`.

الاستجابات

  • 204 حُذفت البطاقة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X DELETE 'https://cloud.core.gen.tr/api/v1/credit-cards/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /refunds #

سرد الاستردادات

billing:read api.read

استردادات الطالب وحده. ولا يوجد معامل refresh: فالاسترداد سجل لأمر وقع فعلًا (أو ما يزال معلقًا)، لا مورد حي لدى المزوّد تجري مطابقته.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الاستردادات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/refunds' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /invoice-refund-requests/{invoiceRefundRequest}/actions/confirm #

تأكيد جواز إلغاء فاتورة شركتك

billing:write api.read api.write

لا تُلغى فاتورة الشركة إلا بموافقتها: وهذا يسجّل الموافقة تمامًا كما يفعل زر التأكيد في اللوحة، ثم يلغي الفريق الفاتورة ويُجري الاسترداد. ويُرفض بـ 409 إن لم يكن الطلب بانتظار تأكيد. وطلب حساب آخر يجيب بـ 404.

يتطلب billing:write، ويجب أن يملك صاحبه billing: manage — وهو باب اللوحة نفسه.

المعاملات

الاسم الموضع النوع الوصف
invoiceRefundRequest مطلوب path integer معرّف طلب إلغاء الفاتورة، كما أعادته إجابة الاسترداد.

الاستجابات

  • 200 تم التأكيد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 الطلب ليس بانتظار تأكيد.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/invoice-refund-requests/1/actions/confirm' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /billing/account #

قراءة رصيد المستدعي وإجمالي المستحق عليه

billing:read api.read

لا يوجد معامل refresh: فكلٌّ من balance وdue مشتقّ مباشرة من صفوف مخزّنة، فليس ثمة ما تجري مطابقته مع مزوّد.

الاستجابات

  • 200 ملخّص حساب المستدعي.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/billing/account' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /billing/credits #

سرد الأرصدة الممنوحة

billing:read api.read

الأرصدة التي منحها فريقنا للحساب، الأحدث أولًا — ما مُنح، وما تبقى، ومتى تنتهي صلاحيته. يُمنح الرصيد ولا يُشترى، ويُطبَّق خصمًا عند دفع الفاتورة.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الأرصدة الممنوحة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/billing/credits' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /orders #

إنشاء طلب يُخصم منه رصيد الحساب

order:write api.read api.order

يشتري أجهزة افتراضية وأقراصًا وعناوين IPv4 عامة وشبكات إضافية، ويطبّق ما يحمله الحساب من رصيد ممنوح بوصفه خصمًا، ويترك الباقي للبطاقة. وهذه هي نقطة النهاية الوحيدة في هذه الواجهة البرمجية التي تُنفق مالًا.

لا يوجد مسار للبطاقة هنا، وهذا أمر بنيوي لا إعداد يمكن تغييره: فأول عملية سحب على بطاقة محفوظة تتطلب دائمًا تحدي 3-D Secure تفاعليًا داخل المتصفح (القيمة الافتراضية لـ global_settings.shop_threeds_only هي true ولـ credit_cards.threeds_authorized هي false)، وهو ما لا يستطيع أي عميل بلا واجهة إتمامه. ولذلك يُنشأ الطلب وتُنشأ الاشتراكات، وتُترك الفاتورة كاملةً على الدفعة ليُسوّيها شخصٌ: يقول needs_card إن كان الأمر كذلك، ويقول credit_applied ما سيخصمه رصيد الحساب منها، ويقول payable ما يُطلب من البطاقة بعد ذلك، وpayment_url هو المكان الذي يُتمّ فيه متصفحٌ العملية. ولا تُحمَّل أي بطاقة في صمت.

وإنشاء الطلب لا يحرّك مالًا. لا يُؤخذ هنا شيء من الرصيد — إذ يُطبَّق الرصيد عند تسوية الدفعة، شأنه شأن أي فاتورة أخرى، فلا يحتجز الطلبُ الذي لا يدفعه أحد شيئًا من رصيد العميل. ولذلك فإن credit_applied وpayable تقديرٌ لما سيحدث عند الدفع، بينما يحمل كائن payment المتداخل حالَ السجل الآن: حقل amount فيه هو المبلغ الكامل، وحقل applied_balance هو 0.00 حتى تُدفع.

والرصيد الممنوح خصم يُطرح من المبلغ الصافي ومحدود بحصة منه، فيبقى عادةً في الطلب الذي له سعر مبلغ مستحق مهما كَبُر الرصيد. ولم يعد الطلب يُرفض لعدم كفاية الرصيد.

يمنح فريقنا الرصيد ولا يُشترى؛ ولا توجد وسيلة لإضافته من الواجهة البرمجية ولا من اللوحة.

غير متزامنة. الدفع لا يعني التجهيز. إذ يتفاعل مستمع في الطابور مع الطلب ويتصل بالسحابة، فينقل كل اشتراك عبر new → pending → deployed أو failed. والاستجابة هي 202 وتحمل ترويسة Location تشير إلى الاشتراك الأول؛ ومن هناك استطلع GET /subscriptions/{id}. والاشتراك الذي لا يغادر pending أبدًا هو تجهيز فاشل لم يُسجَّل بعد — فراجع failure_reason على الاشتراك.

متكافئة التكرار (idempotent). ترويسة Idempotency-Key مطلوبة. ويُحجز المفتاح قبل تنفيذ الطلب، فالعميل الذي تنتهي مهلته ويعيد المحاولة بينما الطلب الأول ما يزال جاريًا يتلقى 409 لا عملية سحب ثانية؛ وبعد انتهاء الطلب الأول، يعيد المفتاح نفسه مع الجسم نفسه إرسال استجابة 202 الأصلية دون إنشاء أي شيء.

الشروط المسبقة، ويُتحقق من كلٍّ منها هنا تمامًا كما تفرضها صفحة الدفع في اللوحة، ويُرفض الطلب بـ 422 يسمّي الشرط غير المستوفى: وجود معلومات الفوترة، وقبول اتفاقية ترخيص المستخدم النهائي، وتسجيل رقم هوية أو جواز سفر، وكون المتجر مفتوحًا، وعدم تجاوز حصص max_vms وmax_vols وmax_ips وmax_networks الخاصة بالطالب. ويتطلب العنوان كذلك شبكة يعمل عليها جهاز بالفعل — أو جهازًا لتلك الشبكة في الطلب نفسه (network). وليست نقطة النهاية هذه وسيلة لتجاوز أي حد تفرضه اللوحة.

تتطلب صلاحية order:write، وهي مُعطَّلة افتراضيًا عند إصدار الرمز المميز ولا تتضمنها أي صلاحية أخرى ضمنًا.

المعاملات

الاسم الموضع النوع الوصف
Idempotency-Key مطلوب header string مفتاح يختاره المستدعي ويجعل تكرار هذا الطلب آمنًا. يُحجز المفتاح قبل تنفيذ الطلب: فالتكرار الذي يصل والطلب الأول ما زال قيد التنفيذ يجيب بـ `409` بدل تحصيل ثانٍ، وتكرار طلب اكتمل بالفعل يعيد الاستجابة الأصلية مع الترويسة `Idempotent-Replay: true` بدل الطلب من جديد. المفاتيح خاصة بالمستدعي وتُحترم لمدة 24 ساعة. وإعادة استخدام مفتاح مع جسم مختلف تجيب بـ `409`.

جسم الطلب مطلوب

الحقل النوع الوصف
items مطلوب array of object مُدخل واحد لكل وحدة مطلوبة. كرّر المُدخل لشراء نسختين من الشيء نفسه.

الاستجابات

  • 202 دُفع الطلب وأُدرج التجهيز في الطابور. وتشير `Location` إلى الاشتراك الأول.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 409 مفتاح `Idempotency-Key` مستخدَم من طلب ما يزال جاريًا، أو سبق استخدامه مع جسم مختلف.
  • 422 رُفض الطلب ولم يُنشأ شيء ولم يُحصَّل أي مبلغ. ويسمّي الحقل `errors` السبب: `items.*` لمنتج غير متاح أو خطة دفع غير مطابقة أو شبكة لا تخص الطالب، و`billing_info` أو `eula` أو `identity_number` أو `shop` أو `max_vms` أو `max_vols` أو `max_ips` أو `max_networks` أو `network` (عنوان في شبكة لا يعمل عليها شيء بعد) لشرط مسبق غير مستوفى. ولم يعد نقص الرصيد (`balance`) من بينها — فالرصيد غير الكافي لا يرفض الطلب، بل يخصم منه أقل ويترك مبلغًا أكبر في `payable`.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/orders' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Idempotency-Key: a-key-you-choose' \
  -H 'Content-Type: application/json' \
  -d '{
    "items": [
        {
            "type": "virtual_machine",
            "product_id": 1,
            "payment_plan_id": 1
        }
    ]
}'

العمليات

Tickets

تذاكر الدعم الخاصة بحسابك: اقرأها، وافتح تذكرة، وردّ عليها، وأغلقها. وكل كتابة تصل إلى فريق الدعم فورًا باسم مالك الرمز، ولا يمكن التراجع عنها. ولا تُرفق الملفات إلا من اللوحة.

GET /tickets #

سرد تذاكر الدعم الخاصة بك

tickets:read api.read

كل تذاكر الدعم في حساب المستدعي، بما فيها ما فتحه زملاؤه — القائمة التي تعرضها صفحة الدعم في اللوحة. تحمل القائمة الحقائق الأساسية لكل تذكرة؛ اقرأ تذكرة واحدة لرؤية رسائلها.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من التذاكر.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/tickets' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /tickets #

فتح تذكرة دعم

tickets:write api.read api.write

يفتح تذكرة باسم مالك الرمز ويرسلها إلى فريق الدعم فورًا؛ فيُبلَّغ الفريق ويقرؤها. ولا يمكن التراجع عن ذلك. ولا يمكن إرفاق ملفات هنا — أضفها من صفحة التذكرة في اللوحة.

جسم الطلب مطلوب

الحقل النوع الوصف
title مطلوب string سطر موضوع قصير.
body مطلوب string الرسالة.
category اختياري string موضوع التذكرة. `general` إن لم يُذكر.

الاستجابات

  • 201 التذكرة الجديدة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/tickets' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Mail bounces since this morning",
    "body": "Every mail to our domain has bounced since 08:00."
}'
GET /tickets/{ticket} #

قراءة إحدى تذاكر الدعم الخاصة بك

tickets:read api.read

التذكرة مع رسالتها الأولى وكل رد عليها، من الأقدم إلى الأحدث. وتجيب تذكرة حساب آخر بـ 404، تمامًا كتذكرة غير موجودة.

المعاملات

الاسم الموضع النوع الوصف
ticket مطلوب path integer

الاستجابات

  • 200 التذكرة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/tickets/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /tickets/{ticket}/comments #

الرد على إحدى تذاكر الدعم الخاصة بك

tickets:write api.read api.write

يضيف ردًّا باسم مالك الرمز؛ فيُبلَّغ فريق الدعم ويقرؤه. ولا يمكن التراجع عن ذلك. ولا تقبل التذكرة التي بلغت solved أو ما بعدها أي رد وتجيب بـ 409 — افتح تذكرة جديدة بدلًا من ذلك. ولا يمكن إرفاق ملفات هنا.

المعاملات

الاسم الموضع النوع الوصف
ticket مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
comment مطلوب string الرد.

الاستجابات

  • 201 الرد الجديد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 التذكرة محلولة أو مغلقة ولا تقبل ردودًا أخرى.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/tickets/1/comments' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "comment": "It works again, thank you."
}'
POST /tickets/{ticket}/actions/close #

إغلاق إحدى تذاكر الدعم الخاصة بك

tickets:write api.read api.write

يغلق التذكرة؛ ويُبلَّغ فريق الدعم. ويجيب بـ 409 للتذكرة المغلقة أصلًا، ولتذكرة أمر العمل الخاصة بخدمة مشتراة ما زال بالإمكان استرداد ثمنها — فإغلاق تلك التذكرة يُنهي حق الاسترداد، ولذلك لا تُغلق إلا من صفحة التذكرة في اللوحة.

المعاملات

الاسم الموضع النوع الوصف
ticket مطلوب path integer

الاستجابات

  • 200 التذكرة المغلقة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 التذكرة مغلقة أصلًا، أو هي أمر عمل لخدمة ما زال بالإمكان استرداد ثمنها.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/tickets/1/actions/close' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Usage

ما استهلكته سحابتك — ساعات الأجهزة والتخزين وساعات عناوين IP وحركة الشبكة. كميات فقط؛ والفاتورة ضمن الفوترة.

GET /usage #

قراءة ما استهلكته سحابتك

cloud:read api.read

ما ترسمه صفحة الاستخدام في اللوحة: ساعات الأجهزة والتخزين وساعات عناوين IP وحركة الشبكة خلال فترة، مع سطر لكل جهاز ولكل قرص وسطر لكل يوم. كميات فقط — الفاتورة في /payments.

تُحدَّد الفترة بـ days (7 أو 30 أو 90؛ و30 إن غابت أو كانت أي قيمة أخرى) أو بـ from وto معًا. وتنتهي بالأمس على الأكثر، لأن اليوم لم يُحتسب بعد، ولا تتجاوز 365 يومًا. ويحصر instance_id أو volume_id الأرقام بأحد أجهزتك أو أقراصك؛ وما ليس لك يجيب بـ 404. ولا يبقى بعد الحصر إلا ما تقيسه السحابة لكل جهاز أو لكل قرص — يحتفظ الجهاز بساعاته وبتخزين أقراصه، والقرص بتخزينه. أما ساعات عناوين IP وحركة الشبكة واللقطات والقوالب فتُقاس لكل عنوان أو شبكة أو صورة، فلا تُقاس هناك: يذكر unmetered كل مفتاح من هذه باسمه، ورقمه ليس قياسًا ولا يعني أبدًا حركة صفرية.

يقرأ هذا سجلات الاستخدام الخاصة بالسحابة نفسها، ولذلك يُحتسب على ميزانية القراءة المُزامِنة الأضيق. وتُحفظ الفترة بعد قراءتها لمدة ساعة. وتعني available: false أن السجلات تعذّرت قراءتها الآن.

المعاملات

الاسم الموضع النوع الوصف
days اختياري query integer 7 أو 30 أو 90. يُتجاهل عند إعطاء `from` و`to` معًا.
from اختياري query string اليوم الأول، بصيغة YYYY-MM-DD (بتوقيت غرينتش).
to اختياري query string اليوم الأخير، بصيغة YYYY-MM-DD (بتوقيت غرينتش)؛ الأمس على الأكثر.
instance_id اختياري query integer أحد أجهزتك، بمعرّفه.
volume_id اختياري query integer أحد أقراصك، بمعرّفه. يُتجاهل عند إعطاء `instance_id`.

الاستجابات

  • 200 أرقام الفترة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/usage' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Admin

قراءات الموظفين لكامل التثبيت، إضافة إلى مجموعة صغيرة عن قصد من عمليات الكتابة على دورة حياة الجهاز الافتراضي، وهي متاحة لرمز يحمل admin:read أو admin:write ويحمل مالكه كذلك دور admin أو super-admin. ولا تكفي الصلاحية وحدها أبدًا: فالرمز يعيش أطول من الدور الذي كان يحمله صاحبه عند إصداره، ولذلك يُفحص الدور مع كل طلب.

ولا يستند الفصل بين القراءة والكتابة إلى شيء سوى جدول المسارات. إذ تُعيد AdminPolicyTrait::before() القيمة true لكل من يحمل دور admin، وتستخدمها كل سياسات التطبيق تقريبًا — فلا تستطيع أي سياسة أن تميّز قراءة المدير من كتابته؛ والتنفيذ كله هو abilities:admin:read مقابل abilities:admin:write مع فعل HTTP، ويسير اختبار على جدول المسارات ليُبقي الأمر كذلك.

وتقتصر عمليات الكتابة على دورة حياة الجهاز — التشغيل والإيقاف وإعادة التشغيل وإرفاق ISO وفصله — لأن المدير يملك أصلًا صلاحية كتابة كاملة على سحابة كل عميل عبر اللوحة، فمنعها عن رمز admin:write لم يكن ليضيف أمانًا؛ بل كان يعني فقط أن القناة الوحيدة القابلة للبرمجة هي القناة التي لا يستطيع أحد تدقيقها أو تحديد معدّلها. وهناك أمران غائبان عن عمد: حذف الجهاز، لأن subscriptions.instance_id يجب تحريره قبل حذف أي جهاز، والحذف المجرّد كان سيترك سطر فوترة حيًّا بلا مالك؛ وإرفاق وحدات التخزين وفصلها، لأن ذلك يحتاج إلى فحص ملكية متقاطع ثانٍ لا سابقة له على هذه الواجهة. وكلاهما مرشّح لجولة لاحقة، لا سهو.

وكل قراءة محصورة بعميل على هذه الواجهة تكتب سطر <domain>.pii_read في سجل التدقيق، تمامًا كما تفعل صفحة اللوحة المقابلة، ولهذا السبب تُحتسب على ميزانية معدّل أضيق من القراءة العادية. أما كل عملية كتابة فتكتب سطر cloud.instance_* الخاص بها صراحةً — إذ لا تسجّل وسيطة سجل الوصول سوى طلبات GET الناجحة — بما في ذلك الحالات التي تخطّى فيها التكافؤ استدعاء CloudStack الأساسي، لأن الفعل القابل للتدقيق هو الطلب الذي قدّمه المدير، لا ما إذا كان CloudStack قد استُدعي فعلًا.

ويقف محتوى التثبيت وقائمة انتظار الموافقات إلى جانب مسارات العملاء هذه، ولا يحتوي أيٌّ من مساراتها على {user}. تُنشأ مسودات الأخبار وتُعدَّل مباشرة؛ أما نشر أحدها فلا يكون إلا طلبًا — إذ يُدرجه الطلب في قائمة الانتظار ويجيب بـ 202 — وتُبلغ GET /admin/staged-actions بما آل إليه. ولا شيء في هذه الواجهة يوافق على طلب مُدرَج أو يرفضه: فذلك نقرة يؤديها مدير مسجَّل الدخول في صفحة الموافقات في اللوحة، فالرمز يستطيع أن يطلب ولا يستطيع أن يقرّر أبدًا. وتقرأ GET /admin/work-queues وGET /admin/health أعداد لوحة المشغّل وحالة سلامة التثبيت؛ ولا تذكر أيٌّ منهما اسم شخص. وتقرأ GET /admin/failed-jobs وGET /admin/jobs وGET /admin/horizon قائمة الانتظار — مهامها الفاشلة والمهام التي يتتبّعها Horizon وحالة عمّاله — ولا تعيد محاولة شيء ولا تحذفه ولا تعيد تشغيله.

GET /admin/customers #

سرد العملاء

admin:read api.read

كل حساب يحمل دور user، مرتّبًا حسب الاسم.

يتطلّب رمزًا مميزًا بصلاحية admin:read يحمل صاحبه أيضًا دور admin (أو super-admin). ولا تكفي الصلاحية وحدها: فالرمز يبقى بعد الدور الذي كان صاحبه يحمله عند إصداره، ولذلك يُفحص الدور في كل طلب.

ويختار الاستعلام الأعمدة المنشورة صراحةً بدل قراءة نماذج User كاملة — وهو الإسقاط المقصود نفسه الذي يستعمله جدول العملاء في اللوحة، بعدما أرسلت نسخة بلا إسقاط منه ذات مرة رقم الهوية الوطنية لكل عميل ضمن حمولة الصفحة.

ويعتمد هذا المسار على قاعدة البيانات، ولا توجد نسخة refresh في أي موضع من هذه الواجهة. فالنسخ التي تُجري المطابقة لهذه القراءات (listSubscriptions() وlistZones() وgetInstances()) تعدّل البيانات؛ وفي النطاق الإداري تعدّل التنصيب كله. ولا يوجد حدّ معدل يجعل وضع ذلك خلف طلب GET مقبولًا.

ولا تكتب هذه القائمة أي سجل تدقيق: فهي لا تنشر عن أي عميل أكثر من اسم وبريد إلكتروني، وكتابة صف لكل طلب عن كل صفحة من القائمة كانت ستُغرق سجل التدقيق دون أن تسجّل وصولًا إلى بيانات أحد بعينه. أما القراءات الخاصة بكل عميل أدناه فهي التي تُسجَّل.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من العملاء.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/customers' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/customers/{user} #

جلب عميل واحد

admin:read api.read api.privileged

عميل واحد، مع أعداد مشتقّة من قاعدة البيانات لأجهزته الافتراضية وأقراصه ومناطق DNS الخاصة به واشتراكاته وفواتيره وتذاكره.

وتعيد الصفحة المقابلة في اللوحة أربعًا وعشرين خاصية في طلب واحد، وتتصل بـ CloudStack وPowerDNS وبوابة الدفع لبنائها. وهذا المسار هو تفكيك تلك الصفحة: فالأعداد هنا مجرّد select count(*)، أما التفاصيل فتقيم في المجموعات الأربع الخاصة بكل نطاق إلى جانب هذا المسار.

وقراءة سجل شخص آخر تكتب صفًا بالحدث account.pii_read في سجل التدقيق، تمامًا كما تفعل الصفحة المقابلة في اللوحة — فالتزام تسجيل الوصول في KVKK لا يتوقف عند حدود اللوحة. أما قراءة سجلك أنت فلا تكتب شيئًا: إذ كان الصف سيتكرّر مع كل تحميل للوحة تحكّمك، وأفعالك مسجَّلة أصلًا.

ولأن كل استدعاء يكتب سجل تدقيق، يُحتسب هذا المسار على ميزانية حدّ معدل أضيق من القراءة العادية.

ويمكن مخاطبة أي حساب هنا، لا الحسابات التي تحمل دور user وحدها — فالصفحة المقابلة في اللوحة تربط أي مستخدم، وقد يحتاج المدير فعلًا إلى الاطلاع على سجل زميل له. أما القائمة المجاورة لهذا المسار فتقتصر على العملاء. والمعرّف غير الموجود يعطي 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

الاستجابات

  • 200 العميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/customers/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/customers/{user}/instances #

سرد الأجهزة الافتراضية لعميل واحد

admin:read api.read api.privileged

أجهزة العميل الافتراضية كما هي مخزّنة حاليًا، بالتمثيل Instance نفسه الذي يعيده المسار /instances الخاص بالعميل — فالحقل المحجوب عن المالك يبقى محجوبًا عن الموظفين.

وتُخدَم هذه العملية بتحليل خدمة السحابة ذات النطاق العميلي للعميل المستهدف والقراءة منها. وللخدمة نسخة ذات نطاق إداري، والاكتفاء بتجاوز خطّافات مصدر البيانات فيها يحوّل كل تابع موروث يُجري المطابقة عند القراءة إلى تعديل يشمل الأسطول كله — فقراءة صفحة واحدة قد تحذف صفوف عميل آخر. ولا شيء في هذه الواجهة يحلّ تلك النسخة، ويحرص اختبار على مستوى الشيفرة على بقاء الأمر كذلك.

ولذلك لا يوجد هنا معامل refresh، خلافًا لمسار /instances الموجَّه إلى العميل. فالمطابقة تعديل؛ والطرف الثالث الذي يقرأ أجهزة غيره هو آخر مستدعٍ ينبغي أن يُطلقها.

يكتب سجل تدقيق cloud.pii_read ويُحتسب على ميزانية القراءة المميّزة الأضيق.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الأجهزة الافتراضية للعميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/customers/1/instances' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/customers/{user}/dns-zones #

سرد مناطق DNS لعميل واحد

admin:read api.read api.privileged

مناطق العميل كما هي مخزّنة حاليًا، بالتمثيل DNSZone نفسه الذي يعيده المسار /dns-zones الخاص بالعميل.

وتُخدَم هذه العملية بتحليل خدمة DNS ذات النطاق العميلي صراحةً. ولا يوجد وسيط refresh: فالنسخة التي تُجري المطابقة تحذف المناطق المحلية — وتتسلسل إلى سجلاتها — التي لم تعد قائمة PowerDNS الحيّة تتضمّنها، وذلك قبل الرجوع إلى راية التحديث الخاصة بها؛ وفي النطاق الإداري تفعل ذلك بكل منطقة في التنصيب وتنقل غير المتطابقة منها إلى الموظف المنفِّذ.

يكتب سجل تدقيق dns.pii_read ويُحتسب على ميزانية القراءة المميّزة الأضيق.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من مناطق DNS الخاصة بالعميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/customers/1/dns-zones' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/customers/{user}/subscriptions #

سرد اشتراكات عميل واحد

admin:read api.read api.privileged

اشتراكات العميل كما هي مخزّنة حاليًا، بالتمثيل Subscription نفسه الذي يعيده المسار /subscriptions الخاص بالعميل. والمبالغ دائمًا أعداد صحيحة بالوحدة الفرعية مع عملتها، لا أعدادًا عشرية أبدًا.

وتُخدَم هذه العملية بتحليل خدمة الفوترة ذات النطاق العميلي صراحةً. ولا يوجد وسيط refresh، وهذه أوضح حالة تبرّر ذلك: فالنسخة التي تُجري المطابقة تُنهي الاشتراكات التي انتقل موردها المرتبط، وترفع كل اشتراك معلّق إلى حالة النشر وتمحو سبب إخفاقه، وتحذف اشتراكات القرص الجذري مع مدفوعاتها، وتُطلق أحداث اليتم التي تتصل بالمزوّد وتنشئ اشتراكات إضافية — كل ذلك داخل معاملة واحدة. وفي النطاق الإداري تكون مجموعة مدخلاتها الجدول كله لا عميلًا واحدًا.

يكتب سجل تدقيق billing.pii_read ويُحتسب على ميزانية القراءة المميّزة الأضيق.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من اشتراكات العميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/customers/1/subscriptions' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/customers/{user}/instances/{instance}/actions/start #

تشغيل جهاز افتراضي لعميل

admin:write api.read api.privileged

متكافئة التكرار (idempotent): تشغيل جهاز يعمل أصلًا يعيد 200 فورًا دون الاتصال بـ CloudStack، تمامًا كما يفعل المسار /instances/{instance}/actions/start الخاص بالمالك نفسه.

وتُخدَم هذه العملية بتحليل خدمة السحابة ذات النطاق العميلي للعميل المستهدف، لا النسخة ذات النطاق الإداري أبدًا — راجع ملاحظة «الخدمة ذات النطاق العميلي» على GET /admin/customers/{user}/instances لمعرفة سبب أهمية هذا التمييز هنا أيضًا.

والبرمجية الوسيطة audit.access:cloud على هذا المسار خاملة (فهي لا تسجّل إلا طلب GET ناجحًا)؛ أما سجل تصرُّف المدير على جهاز عميل فيكتبه المتحكّم صراحةً، سواء جرى الاتصال بـ CloudStack فعلًا بسبب فحص التكرار أعلاه أم لم يجرِ.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي للعميل بعد تشغيله (أو وهو يعمل أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/customers/1/instances/1/actions/start' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/customers/{user}/instances/{instance}/actions/stop #

إيقاف جهاز افتراضي لعميل

admin:write api.read api.privileged

متكافئة التكرار (idempotent): إيقاف جهاز متوقف أصلًا يعيد 200 فورًا دون الاتصال بـ CloudStack، للسبب نفسه المذكور في start.

وتُخدَم هذه العملية بتحليل خدمة السحابة ذات النطاق العميلي للعميل المستهدف، لا النسخة ذات النطاق الإداري أبدًا — راجع ملاحظة «الخدمة ذات النطاق العميلي» على GET /admin/customers/{user}/instances لمعرفة سبب أهمية هذا التمييز هنا أيضًا.

والبرمجية الوسيطة audit.access:cloud على هذا المسار خاملة (فهي لا تسجّل إلا طلب GET ناجحًا)؛ أما سجل تصرُّف المدير على جهاز عميل فيكتبه المتحكّم صراحةً، سواء جرى الاتصال بـ CloudStack فعلًا بسبب فحص التكرار أعلاه أم لم يجرِ.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي للعميل بعد إيقافه (أو وهو متوقف أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/customers/1/instances/1/actions/stop' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/customers/{user}/instances/{instance}/actions/restart #

إعادة تشغيل جهاز افتراضي لعميل

admin:write api.read api.privileged

غير متكافئة التكرار (idempotent) — فخلافًا لـ start/stop لا توجد حالة هدف تُقارَن بها، ولذلك تصل دائمًا إلى CloudStack مهما كانت حالة الجهاز الراهنة.

وتُخدَم هذه العملية بتحليل خدمة السحابة ذات النطاق العميلي للعميل المستهدف، لا النسخة ذات النطاق الإداري أبدًا — راجع ملاحظة «الخدمة ذات النطاق العميلي» على GET /admin/customers/{user}/instances لمعرفة سبب أهمية هذا التمييز هنا أيضًا.

والبرمجية الوسيطة audit.access:cloud على هذا المسار خاملة (فهي لا تسجّل إلا طلب GET ناجحًا)؛ أما سجل تصرُّف المدير على جهاز عميل فيكتبه المتحكّم صراحةً.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي للعميل بعد إعادة تشغيله.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/customers/1/instances/1/actions/restart' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/customers/{user}/instances/{instance}/actions/attach-iso #

إرفاق صورة ISO بجهاز افتراضي لعميل

admin:write api.read api.privileged

متكافئة التكرار (idempotent): إرفاق صورة ISO مركّبة أصلًا على هذا الجهاز الافتراضي يعيد 200 فورًا دون الاتصال بـ CloudStack.

ويجب أن يشير iso_id إلى صورة ISO مرئية للعميل المستهدف — عامة أو مملوكة لحسابه — لا لحساب المدير المنفِّذ أبدًا. فتحديد النطاق بحساب المدير كان سيعرض صور المدير الخاصة ويرفض صور العميل نفسه.

وتُخدَم هذه العملية بتحليل خدمة السحابة ذات النطاق العميلي للعميل المستهدف، لا النسخة ذات النطاق الإداري أبدًا — راجع ملاحظة «الخدمة ذات النطاق العميلي» على GET /admin/customers/{user}/instances لمعرفة سبب أهمية هذا التمييز هنا أيضًا.

والبرمجية الوسيطة audit.access:cloud على هذا المسار خاملة (فهي لا تسجّل إلا طلب GET ناجحًا)؛ أما سجل تصرُّف المدير على جهاز عميل فيكتبه المتحكّم صراحةً.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer

جسم الطلب مطلوب

الحقل النوع الوصف
iso_id مطلوب integer يجب أن يشير إلى صورة ISO مرئية للعميل (عامة أو مملوكة لحسابه). أما المعرّف الخاص العائد لغيره أو المعرّف غير الموجود فيفشل في التحقق (422) لا بالرمز 404 — فالمورد المُخاطَب هو الجهاز الافتراضي لا صورة ISO.

الاستجابات

  • 200 الجهاز الافتراضي للعميل بعد إرفاق صورة ISO (أو وهي مرفقة أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/customers/1/instances/1/actions/attach-iso' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "iso_id": 5
}'
POST /admin/customers/{user}/instances/{instance}/actions/detach-iso #

فصل صورة ISO المركّبة على جهاز افتراضي لعميل، أيًا كانت

admin:write api.read api.privileged

متكافئة التكرار (idempotent): فصل صورة ISO عن جهاز افتراضي لا صورة مرفقة به يعيد 200 فورًا دون الاتصال بـ CloudStack.

وتُخدَم هذه العملية بتحليل خدمة السحابة ذات النطاق العميلي للعميل المستهدف، لا النسخة ذات النطاق الإداري أبدًا — راجع ملاحظة «الخدمة ذات النطاق العميلي» على GET /admin/customers/{user}/instances لمعرفة سبب أهمية هذا التمييز هنا أيضًا.

والبرمجية الوسيطة audit.access:cloud على هذا المسار خاملة (فهي لا تسجّل إلا طلب GET ناجحًا)؛ أما سجل تصرُّف المدير على جهاز عميل فيكتبه المتحكّم صراحةً.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer

الاستجابات

  • 200 الجهاز الافتراضي للعميل بعد فصل صورة ISO عنه (أو وهي مفصولة أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/customers/1/instances/1/actions/detach-iso' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/ai/prompts #

قراءة موجّهات النظام لكِلا المساعدَين

admin:read api.read

المساعدان اللذان يشغّلهما C2 — مساعد اللوحة الذي يحادثه عميل مسجَّل الدخول، وفقاعة الدردشة على الموقع التسويقي العام — ولكلٍّ منهما الموجّه المدمج الثابت مضافًا إليه إرشادات المشغّل نفسه.

يتطلّب رمزًا مميزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

core للقراءة فقط، في كل واجهة. فهو موجود في شيفرة التطبيق لا في قاعدة البيانات، ولا توجد نقطة نهاية أو نموذج أو أداة تعدّله. وهو يحمل القواعد التي تجعل تشغيل المساعدَين آمنًا: اقرأ كل معلومة من أداة، ولا تخمّن حالة جهاز افتراضي أو سعرًا أو رصيدًا، وتوقّف لانتظار موافقة العميل الصريحة قبل تشغيل جهاز أو إيقافه، ولا تُجرِ أي عملية حسابية على المال. يستطيع مساعد اللوحة إنفاق مال العميل، ولذلك فإن تلك القواعد هي سبب السماح له بذلك.

guidance هو الجزء الذي يكتبه المشغّل، ويُضاف أسفل core ولا يحلّ محلّه أبدًا. ويُقدَّم داخل الموجّه بوصفه سياسة مشغّل إضافية للقواعد التي فوقه، لا يمكنها تخفيفها أو مناقضتها أو تجاوزها. وتعني القيمة null أنه لم يُضبط شيء؛ والتنصيب الذي تكون فيه القيمة null في كلتا الواجهتين يرسل الموجّه المرفق مع المنتج حرفيًا، بايتًا ببايت.

وإعادته إلى جانب core أمر مقصود: فالمستدعي الذي يطوّر النص المُضاف إنما يعمل في مواجهة العقد الذي فوقه، ولا ينبغي أن يضطر إلى جلب مستند ثانٍ — أو إلى التخمين — ليرى ما الذي يضيف إليه.

وmax_guidance هو الحد الأقصى لعدد المحارف المسموح به لحقل guidance في كل واجهة، ويُطبَّق بالطريقة نفسها في هذه الواجهة البرمجية وفي نموذج إعدادات الإدارة وفي أداة MCP. ويُرسَل النص إلى النموذج في كل دور من كل محادثة، فهو تكلفة مالية بقدر ما هو سياسة.

الاستجابات

  • 200 موجّهات كِلا المساعدَين.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/ai/prompts' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/ai/prompts #

ضبط إرشادات المشغّل لأحد المساعدَين أو مسحها

admin:write api.read api.privileged

يستبدل إرشادات المشغّل المضافة إلى موجّه نظام أحد المساعدَين، أو يمسحها. ويتطلّب رمزًا مميزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

يحدّد surface أيّ مساعد يُقصد: assistant لمساعد اللوحة بعد تسجيل الدخول، وpublic لفقاعة الدردشة التسويقية المجهولة. وهما حقلان منفصلان لأن جمهورهما منفصل، ولا يستطيع أحدهما قراءة نص الآخر.

يجب أن يكون الحقل guidance موجودًا. وتؤدّي القيمة null أو السلسلة الفارغة إلى مسحه واستعادة الموجّه المدمج كما هو تمامًا؛ أما النص الذي يتجاوز max_guidance محرفًا فيُرفض بالرمز 422 بدل أن يُقتطع.

ولا يمكن كتابة الموجّه المدمج نفسه هنا ولا في أي مكان آخر — راجع عملية GET على هذا المسار.

ويُسجَّل كل تغيير على صف الإعدادات في سجل التدقيق، سواء جرى هنا أو في نموذج إعدادات الإدارة أو عبر أداة MCP، ويكون صاحب الرمز المميز المنفِّذ هو الفاعل. ويُجاب بالمستند نفسه الذي تعيده عملية GET، فيرى المستدعي الذي يضبط النص نتيجة كتابته دون طلب ثانٍ.

جسم الطلب مطلوب

الحقل النوع الوصف
surface مطلوب string أي مساعد سيجري تحديثه.
guidance مطلوب string إرشادات المشغّل المراد تخزينها، أو null/فارغ لمسحها.

الاستجابات

  • 200 موجّهات كِلا المساعدَين بعد عملية الكتابة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/ai/prompts' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "surface": "assistant",
    "guidance": "string"
}'
GET /admin/audit-logs #

سرد سجلات سجل التدقيق

admin:read api.read

صفحة من سجل التدقيق كاملًا، الأحدث أولًا (occurred_at تنازليًا، وid يفصل التساوي حتى يستطيع العميل التنقّل بين الصفحات دون أن يرى السجل نفسه مرتين).

يتطلّب رمزًا مميزًا بصلاحية admin:read يحمل صاحبه دور admin (أو super-admin) و صلاحية audit.view. ولا تكفي الصلاحية وحدها: فالرمز يبقى بعد الدور الذي كان صاحبه يحمله عند إصداره، ولذلك يُفحص الدور في كل طلب.

وسجل التدقيق يُضاف إليه فقط ولا تجري له أي مطابقة، ولذلك لا يوجد معامل refresh ولا دلالات استطلاع دوري — فالسجل لا يتغيّر أبدًا بعد كتابته.

ولا تُنشر الحقول changes وcontext وhash وprevious_hash؛ راجع مخطط AuditLog لمعرفة السبب. وسلسلة البصمات مختومة ويجري التحقق منها خارج هذه الواجهة البرمجية بالأمر c2:verify-audit-chain.

وأي معامل استعلام غير مذكور أدناه يؤدي إلى 422 بدل أن يُتجاهل: فلولا ذلك لتلقّى العميل الذي يخطئ في كتابة اسم مرشِّح سجلَّ التدقيق كاملًا بلا ترشيح، وهو يظن أنه طرح سؤالًا أضيق.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
actor_id اختياري query integer min 1 السجلات التي كتبها هذا المستخدم فقط.
subject_id اختياري query integer min 1 السجلات التي يكون صاحب البيانات فيها هذا المستخدم فقط.
event اختياري query string max length 96 مطابقة نص جزئي مع اسم الحدث المنقوط.
domain اختياري query string one of cloud, billing, dns, tickets, account, auth, shop, privacy, partner, system يُبقى متطابقًا تمامًا مع `App\Enums\AuditDomain`، وهو ما يشتقّ منه `IndexAuditLogRequest` قاعدة التحقق الخاصة به — راجع حقل `domain` في مخطط `AuditLog`.
from اختياري query string الحد الأدنى لـ `occurred_at`، شاملًا إياه.
to اختياري query string الحد الأعلى لـ `occurred_at`، شاملًا إياه.

الاستجابات

  • 200 صفحة من سجلات التدقيق.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/audit-logs' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/audit-logs/{auditLog} #

جلب سجل واحد من سجل التدقيق

admin:read api.read

سجل واحد من السجل الذي يُضاف إليه فقط.

هذه هي نقطة النهاية الوحيدة في واجهة الموظفين التي تجيب بالرمز 403 بدل 404 عن سجل لا يحق للمستدعي قراءته. ففي المواضع الأخرى لا يمكن تمييز مورد خارج نطاق المستدعي عن مورد غير موجود، لأن النطاق هناك محدَّد لكل عميل؛ أما سجل التدقيق فمجموعة عامة واحدة، ولذلك فإن القول «هذا السجل موجود لكن قراءته ليست من حقك» هو الجواب الصادق.

وخلافًا للمجموعة، لا يحمل هذا المسار شرط audit.view في وسيطته البرمجية — إذ يتولّى التخويل AuditLogPolicy، فيسمح لمدير يحمل audit.view، ولصاحب البيانات نفسه وهو يقرأ سجلّه، ولموظف دعم يحمل مستوى view على الأقل في نطاق السجل تجاه صاحب ذلك السجل. أما السجلات في النطاقات auth وshop وprivacy وsystem فلا مقابل لها في الدعم ولا تظهر لموظف الدعم أبدًا.

ولا تُنشر الحقول changes وcontext وhash وprevious_hash؛ راجع مخطط AuditLog.

المعاملات

الاسم الموضع النوع الوصف
auditLog مطلوب path integer min 1 معرّف سجل التدقيق.

الاستجابات

  • 200 سجل التدقيق.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/audit-logs/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/support-assignments #

سرد مصفوفة تعيينات الدعم

admin:read api.read

كل صف من جدول تعيينات الدعم، الأحدث تحديثًا أولًا: أي موظف يجوز له التصرّف تجاه أي عميل، وبأي مستوى في كل نطاق من النطاقات الخمسة.

ويتطلّب رمزًا مميزًا بصلاحية admin:read يحمل صاحبه دور admin (أو super-admin) وصلاحية support.manage. والمسار المقابل في اللوحة محميّ بـ role_or_permission:super-admin|support.manage؛ ويُقبل هنا أيضًا super-admin لا يحمل الصلاحية حرفيًا، عبر بوابة الصلاحية المطلقة في التطبيق، وهو ما يجعل الاثنين متكافئين. وهذا التكافؤ مُثبَت باختبار لا مفترَض.

وهذه القائمة للقراءة فقط. فهذا الجدول هو مستوى التحكّم لكل بوابة على واجهة Support: والرمز القادر على الكتابة فيه كان بإمكانه منح أي موظف مستوى manage على أي عميل، ولا سياسة تقف خلف مسار كهذا. وكشف جانب الكتابة يحتاج نموذج تهديد خاصًا به، لا مجرّد إضافة فعل HTTP.

ويُختصر الطرفان إلى {id, name, email}، ويكونان null إذا كان الحساب قد حُذف. ونشر المصفوفة للقراءة فقط يتيح للمشغّل أن يقارن الوصول المقصود بالوصول الفعلي دون المساس بأيّهما.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من صفوف التعيينات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/support-assignments' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/staged-actions #

سرد قائمة انتظار الموافقات

admin:read api.read

كل إجراء طلبه رمز ويقرّره شخص — خبر يُراد نشره، وأنواع أخرى تُضاف لاحقًا — الأحدث أولًا، مع ما سيفعله (preview) ومن طلبه وما آل إليه. استطلع هذه القائمة أو السجل المفرد لتعرف ما إذا كان الطلب قد وُوفق عليه أو رُفض أو انتهت مهلته أو فشل.

يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

للقراءة فقط، وذلك عن قصد. لا توجد في هذه الواجهة نقطة نهاية توافق على سجل أو ترفضه: فذلك نقرة يؤديها مدير مسجَّل الدخول في صفحة الموافقات في اللوحة (approval_url). الرمز لا يملك إلا أن يطلب. ولا تُنشر الحمولة المجمّدة؛ وpreview هي الجملة التي يقرؤها من يوافق.

المعاملات

الاسم الموضع النوع الوصف
status اختياري query string one of pending, approved, rejected, expired, failed السجلات التي في هذه الحالة فقط.
action اختياري query string السجلات من هذا النوع فقط، مثل `publish_news`. ويُرفض النوع غير المعروف بالرمز `422`.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من سجلات قائمة الانتظار.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/staged-actions' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/staged-actions/{stagedAction} #

جلب سجل واحد من قائمة انتظار الموافقات

admin:read api.read

سجل واحد من قائمة انتظار الموافقات، بحسب قيمة staged_action_id التي أعادها الطلب الذي أنشأه. تنتقل status من pending إلى واحدة فقط من approved أو rejected أو expired أو failed، ولا تعود أبدًا.

يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin. للقراءة فقط: راجع القائمة لمعرفة السبب.

المعاملات

الاسم الموضع النوع الوصف
stagedAction مطلوب path integer min 1 معرّف سجل قائمة الانتظار.

الاستجابات

  • 200 سجل قائمة الانتظار.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/staged-actions/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/news #

سرد الأخبار

admin:read api.read

أخبار اللوحة، الأحدث أولًا — المسودات والمنشورة معًا، وتُصفّى بحسب published عند تمريره.

يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin. هذا محتوى تحريري: لا تُقرأ بيانات أي شخص، ولذلك لا يُكتب سطر في سجل الوصول.

المعاملات

الاسم الموضع النوع الوصف
published اختياري query boolean `true` للأخبار المنشورة فقط، و`false` للمسودات فقط.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الأخبار.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/news' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/news #

إنشاء مسودة خبر

admin:write api.read api.privileged

ينشئ مسودة بالقواعد التي تطبّقها أدوات المسودات: title حتى 255 محرفًا، وbody حتى 2048، وlanguage إحدى القيم tr-TR أو en-US أو ar-SA، وaudience اختياري. ولا يُنشر هنا ولا يُجدول ولا يُرسل أبدًا: يُرفض وجود is_published أو publish_date أو scheduled_for في الجسم بالرمز 422 (فالخبر المجدول يُنشر من تلقاء نفسه عند حلول موعده)، والنشر طلب منفصل يجب أن يوافق عليه مدير (POST /admin/news/{news}/publish).

يتطلّب رمزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

جسم الطلب مطلوب

الحقل النوع الوصف
title مطلوب string
body مطلوب string
language مطلوب string
audience اختياري string

الاستجابات

  • 201 المسودة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/news' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "string",
    "body": "string",
    "language": "tr-TR"
}'
GET /admin/news/{news} #

جلب خبر واحد

admin:read api.read

خبر واحد بحسب معرّفه. يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
news مطلوب path integer min 1 معرّف الخبر.

الاستجابات

  • 200 الخبر.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/news/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/news/{news} #

تعديل مسودة خبر

admin:write api.read api.privileged

يغيّر الحقول المُرسلة فقط (title وbody وlanguage وaudience)، ويخضع كل منها لقواعد الإنشاء؛ والجسم الفارغ يجيب بـ 422، وكذلك is_published أو publish_date أو scheduled_for. ولا يمكن هنا تعديل خبر منشور، ولا مسودة جدولها أحدهم في اللوحة، ويجيب ذلك بـ 422. POST لا PATCH: فكل عملية كتابة في واجهة الموظفين هي POST.

يتطلّب رمزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
news مطلوب path integer min 1 معرّف المسودة.

جسم الطلب مطلوب

الحقل النوع الوصف
title اختياري string
body اختياري string
language اختياري string
audience اختياري string

الاستجابات

  • 200 المسودة بعد التعديل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/news/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "string",
    "body": "string",
    "language": "tr-TR",
    "audience": "everyone"
}'
POST /admin/news/{news}/publish #

طلب نشر خبر

admin:write api.read api.privileged

يُدرج نشر مسودة في قائمة انتظار الموافقات ويجيب بـ 202. هذا الطلب لا ينشر شيئًا ولا يرسل شيئًا: يجب أن يوافق مدير على السجل في اللوحة (approval_url)، وتنقضي مهلته بعد 24 ساعة إن لم يفعل أحد. وتشير الترويسة Location والقيمة staged_action_id إلى GET /admin/staged-actions/{stagedAction} التي تُبلغ بالنتيجة. ويُرفض الخبر المنشور أصلًا بالرمز 422. وكل طلب يُنشئ سجلًا جديدًا.

يتطلّب رمزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
news مطلوب path integer min 1 معرّف المسودة.

الاستجابات

  • 202 أُدرج في قائمة الانتظار؛ لم يحدث شيء بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/news/1/publish' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /admin/tickets/{ticket}/comments #

الرد على تذكرة دعم بصفة الفريق

admin:write api.read api.privileged

يضيف ردًّا من الفريق باسمك — النظير في REST لأداة reply_to_ticket في MCP الإداري، بالخدمة نفسها، فيُبلَّغ العميل ومالك الحساب تمامًا كما في رد من اللوحة. نص فقط، بحد أقصى 10000 حرف. والتذكرة المحلولة أو المغلقة لا تقبل ردًّا (422). وتُرفض بـ 409 تذكرة أمر عمل لخدمة ما زال عميلها قادرًا على استردادها: فرد الفريق هناك ينهي مهلة استرداده نهائيًا، فاحجز العمل (عبر الموافقة) أولًا، أو ردّ من اللوحة.

يتطلّب رمزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
ticket مطلوب path integer min 1 معرّف التذكرة.

جسم الطلب مطلوب

الحقل النوع الوصف
comment مطلوب string الرد. يقرؤه العميل.

الاستجابات

  • 201 الرد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 أمر عمل لخدمة ما زال العميل قادرًا على استردادها؛ ورد الفريق كان سينهي تلك المهلة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/tickets/1/comments' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "comment": "string"
}'
POST /admin/tickets/{ticket}/assignment #

إسناد تذكرة دعم إلى وكيل

admin:write api.read api.privileged

يسند التذكرة إلى وكيل دعم بدلًا ممن كان يحملها — النظير في REST لأداة assign_ticket في MCP الإداري ولزر الإسناد في اللوحة، بالخدمة نفسها. وقيمة level هي view (قارئ) أو manage (الإسناد العامل، وهو الافتراضي). وتُرفض بـ 422 تذكرة الشراكة وكل من ليس من فريق الدعم. ويُسجَّل التسليم في سجل تدقيق التذكرة.

يتطلّب رمزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
ticket مطلوب path integer min 1 معرّف التذكرة.

جسم الطلب مطلوب

الحقل النوع الوصف
agent_id مطلوب integer معرّف المستخدم لوكيل الدعم.
level اختياري string ما يجوز للوكيل فعله في التذكرة؛ `manage` افتراضيًا.

الاستجابات

  • 200 الإسناد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/tickets/1/assignment' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "agent_id": 1
}'
POST /admin/tickets/{ticket}/close #

طلب إغلاق تذكرة دعم

admin:write api.read api.privileged

يُدرج إغلاق التذكرة في قائمة انتظار الموافقات ويجيب بـ 202. هذا الطلب لا يغلق شيئًا: يجب أن يوافق مدير على السجل في اللوحة (approval_url)، وتنقضي مهلته بعد 24 ساعة إن لم يفعل أحد؛ ويُبلَّغ العميل عند الموافقة. وفي تذكرة أمر عمل لخدمة، ينهي الإغلاق أيضًا مهلة الاسترداد الخاصة بالعميل — وتقول المعاينة ذلك حين ينطبق. وتشير الترويسة Location والقيمة staged_action_id إلى GET /admin/staged-actions/{stagedAction} التي تُبلغ بالنتيجة. وتُرفض بـ 422 التذكرة المغلقة أو المدمجة أو الموسومة رسالة مزعجة أصلًا، وبـ 422 أيضًا طلب إغلاق ثانٍ للتذكرة نفسها ما دام الأول بانتظار قرار (ويذكر الخطأ السجل المنتظر).

يتطلّب رمزًا بصلاحية admin:write يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
ticket مطلوب path integer min 1 معرّف التذكرة.

الاستجابات

  • 202 أُدرج في قائمة الانتظار؛ لم يحدث شيء بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/admin/tickets/1/close' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/work-queues #

سرد ما ينتظر تدخّل شخص

admin:read api.read api.privileged

كل قائمة انتظار لدى المشغّل — قائمة المحو، وطلبات الخصوصية، والمدفوعات الفاشلة، ومتابعة التحصيل، والموافقات (ما أدرجه MCP الإداري أو واجهة API الإدارية في قائمة الانتظار ولم يبتّ فيه أي مدير بعد)، ومكافآت الإحالة، وطلبات الشراكة ودوراتها التدريبية، وتذاكر الدعم المفتوحة، وطلبات الانضمام، ومستحقات الشركاء المحتجزة، وقائمة عمل الفواتير، وإشعارات الأسعار — مع عدد العناصر المنتظرة ومنذ متى. وتُدرج الأصفار أيضًا بترتيب ثابت، فلا تُقرأ قائمة غائبة على أنها فارغة. أعداد فقط: لا يُذكر اسم أحد، ولذلك لا يُكتب سطر في سجل الوصول. وهي الأرقام نفسها التي تقرؤها لوحة الإدارة وخادم MCP الإداري. والرقم المالي الوحيد، أي amount في قائمة referrals، كائن Money بالوحدة الفرعية مثل بقية هذه الواجهة — أما نظيره في MCP فيطبع الرقم نفسه عددًا عشريًا عاديًا.

يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

الاستجابات

  • 200 كل قوائم الانتظار، بما فيها الأصفار.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/work-queues' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/health #

قراءة حالة سلامة التثبيت

admin:read api.read api.privileged

قراءة واحدة لسلامة التثبيت: إصدار التطبيق؛ ومهام قائمة الانتظار الفاشلة (عددها وأحدثها، باسم المهمة وصنف الاستثناء فقط — ولا تُعطى الحمولة أو الرسالة أبدًا، إذ قد تقتبس سجل عميل)؛ وعمق قائمة الانتظار وهل Horizon يعمل؛ وكل أمر مجدول مع وتيرته وموعد تشغيله التالي وآخر إخفاق له خلال 30 يومًا؛ وترحيلات قاعدة البيانات المعلّقة؛ ومفاتيح الإعداد التي تغيّرت مؤخرًا (دون قيمها أبدًا). يسجّل C2 إخفاقات الأمر المجدول لا نجاحاته، ولذلك لا توجد معلومة عن آخر تشغيل ناجح. وهو التقرير نفسه الذي تعيده أداة get_system_health في خادم MCP الإداري.

يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

الاستجابات

  • 200 تقرير السلامة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/health' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/failed-jobs #

سرد مهام قائمة الانتظار الفاشلة

admin:read api.read api.privileged

مهام قائمة الانتظار الفاشلة — جدول failed_jobs الذي تُسجَّل فيه كل مهمة استنفدت محاولاتها — الأحدث أولًا. يحمل كل صف اسم المهمة المعروض وقائمة انتظارها واتصالها ووقت إخفاقها وعدد محاولاتها والحد الأقصى لها إن سجّلتها الحمولة، وصنف الاستثناء وسطره الأول فقط (مع حجب الأسرار، وبحد أقصى 300 حرف)، ووسوم Horizon (صنف النموذج:id). ولا تُنشر الحمولة نفسها أبدًا.

وبجانب الصفحة: كل المهام الفاشلة (total)، وما فشل منذ since (total_since)، وعدد ما يطابق المرشِّحات (matched)، والمهام المطابقة مجمّعة حسب اسم المهمة (by_job) وحسب صنف الاستثناء (by_exception). وهو الجواب نفسه الذي تعيده أداة list_failed_jobs في خادم MCP الإداري.

قد تذكر رسالة الاستثناء شخصًا (مستلمًا مرفوضًا)، ولذلك يُسجَّل كل استدعاء في سجل التدقيق بوصفه وصولًا (account.pii_read، بنطاق fleet). يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
since اختياري query string المهام التي فشلت في هذا التاريخ أو الوقت أو بعده فقط.
job اختياري query string max length 200 جزء من اسم المهمة المعروض.
queue اختياري query string max length 100 اسم قائمة الانتظار.
exception اختياري query string max length 200 بداية صنف الاستثناء — أحرف وأرقام وشرطات مائلة عكسية وشرطات سفلية فقط. لا تُطابَق الرسالة أبدًا، وأي قيمة أخرى تُرفض بالرمز 422.

الاستجابات

  • 200 صفحة من المهام الفاشلة مع المجاميع والمجموعات.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/failed-jobs' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/failed-jobs/{failedJob} #

قراءة مهمة واحدة فاشلة من قائمة الانتظار

admin:read api.read api.privileged

مهمة واحدة فاشلة بمعرّفها uuid أو معرّفها الرقمي: كل ما تعرضه القائمة، إضافةً إلى أول 30 سطرًا من الاستثناء (الرسالة والمكدّس، مع حجب الأسرار) وما حملته المهمة — صنف الأمر وكل نموذج احتفظت به، بصنفه ومعرّفه. ولا تُنشر الحمولة نفسها أبدًا. وهو الجواب نفسه الذي تعيده أداة get_failed_job في خادم MCP الإداري.

يُسجَّل في سجل التدقيق بوصفه وصولًا (account.pii_read، بنطاق fleet). يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
failedJob مطلوب path string max length 64 معرّف uuid للمهمة الفاشلة أو معرّفها الرقمي.

الاستجابات

  • 200 المهمة الفاشلة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/failed-jobs/failedJob' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/jobs #

سرد مهام قائمة الانتظار التي يتتبّعها Horizon

admin:read api.read api.privileged

المهام التي يتتبّعها Horizon، الأحدث أولًا، حسب الحالة: recent (الافتراضية — كل ما دُفع ضمن نافذة التقليم في Horizon)، وpending (المنتظرة أو الجارية)، وcompleted، وfailed، وsilenced. تحمل كل مهمة معرّفها في Horizon واسمها وقائمة انتظارها واتصالها وحالتها وعدد محاولاتها ووقت دفعها وحجزها وإكمالها أو إخفاقها، ووسوم Horizon (صنف النموذج:id)، وهل أُعيدت محاولتها، وللمهمة الفاشلة السطرَ الأول من الاستثناء (مع حجب الأسرار). ولا تُنشر الحمولة أبدًا. وتُطابَق مرشّحات job وqueue وtag ضمن أحدث 1000 مهمة في القائمة المختارة (scanned). ويحتفظ Horizon بها طوال نافذة التقليم فقط (kept_minutes)؛ أما السجل الدائم للإخفاق فهو GET /admin/failed-jobs.

قوائم Horizon محفوظة في redis: إن تعذّر الوصول إليه كان الجواب available: false مع صنف الاستثناء بدل الخطأ. وهو الجواب نفسه الذي تعيده أداة list_jobs في خادم MCP الإداري. وتسمّي وسوم المهمة سجلات العملاء التي حملتها، ولذلك يُسجَّل كل استدعاء بوصفه وصولًا (account.pii_read، بنطاق fleet). يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.
status اختياري query string one of recent, pending, completed, failed, silenced أي قوائم Horizon تُقرأ. الافتراضية recent.
job اختياري query string max length 200 جزء من اسم المهمة.
queue اختياري query string max length 100 اسم قائمة الانتظار.
tag اختياري query string max length 200 وسم مطابق تمامًا تحمله المهمة، مثل صنف نموذج ومعرّفه. يُطابَق مع وسوم كل مهمة ضمن أحدث 1000 مهمة في الحالة المختارة؛ ويبيّن `scanned` عدد ما قُرئ منها.

الاستجابات

  • 200 المهام، أو `available false` عند تعذّر الوصول إلى redis.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/jobs' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /admin/horizon #

قراءة حالة عمّال قائمة الانتظار

admin:read api.read api.privileged

حالة عمّال قائمة الانتظار كما تعرضها لوحة Horizon: الحالة العامة (running أو paused أو no_workers أو inactive)، وكل مشرف رئيسي ومشرف مع عمليات العمّال لكل قائمة، وطول كل قائمة وزمن الانتظار المتوقع وعملياتها، والمهام في الدقيقة، والإنتاجية ومتوسط زمن التشغيل لكل قائمة، وأعداد Horizon للمهام الحديثة والمعلّقة والمكتملة والفاشلة. وبجانبها recommendations: اقتراحات مستمدّة من هذه الأرقام ومن جدول المهام الفاشلة — قائمة تتأخر، أو غياب العمّال والمهام تنتظر، أو مهمة تفشل مرارًا — يذكر كلٌّ منها ما يستند إليه، وما يُنظر فيه بعد ذلك، وهل يقتصر التصرّف على مشغّل الخادم (owner_side). وهي اقتراحات فقط: لا يُنفَّذ شيء تلقائيًا.

إن تعذّر الوصول إلى redis كان الجواب horizon.available: false. لا يسمّي أحدًا، ولذلك لا يسجّل أي وصول. وهو الجواب نفسه الذي تعيده أداة get_horizon_status في خادم MCP الإداري. يتطلّب رمزًا بصلاحية admin:read يحمل صاحبه دور admin أو super-admin.

الاستجابات

  • 200 حالة Horizon والاقتراحات المستمدّة منها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/admin/horizon' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

العمليات

Support

قراءات محصورة بالإسناد لبيانات عميل واحد، وهي متاحة لرمز يحمل support:read ويحمل مالكه دور support أو super-admin — ومع support:write كل عملية كتابة تتيحها لوحة الدعم على ذلك العميل، كلٌّ منها بمستوى الإسناد manage في مجالها. أما رصيد الحساب فلا يكون إلا طلبًا — يُدرج في قائمة الانتظار ويوافق عليه مدير في /admin/approvals. وتسمّي عملية الكتابة السطور بمعرّفاتها؛ وسطر عميل آخر يجيب بـ 404.

ولا يرى وكيل الدعم سوى العملاء الذين يملك لهم سطرًا في support_assignments، ولا يرى ضمنهم سوى المجالات التي يغطيها مستوى صلاحيته في كل مجال. أما super-admin فيتجاوز الفحصين معًا، تمامًا كما في اللوحة. وتُدقَّق القراءات هنا بالطريقة نفسها المتبعة في اللوحة.

ويقابل GET مستوى الصلاحية view، وتقابل عمليات التعديل المستوى manage — مع استثناء واحد مقصود في اللوحة يجب ألا يُخفَّف أبدًا إن نُقل إلى هنا: فإنشاء جلسة كونسول لجهاز افتراضي محكوم بمستوى manage لا view، لأن الكونسول يعادل السيطرة الكاملة على الجهاز.

GET /support/customers #

سرد العملاء المُسنَدين إلى الموظف المستدعي

support:read api.read

لا يُرجَع إلا العملاء الذين يملك الموظف المستدعي لهم صفًا في support_assignments، مرتَّبين بالاسم، ومع كل واحد منهم خريطة الصلاحيات التي يحملها الموظف عليه. والموظف الذي لا إسناد له يحصل على صفحة فارغة — لا على قائمة العملاء كاملة أبدًا.

أما super-admin فيرى جميع العملاء، مطابقةً للوحة: إذ يتجاوز كلٌّ من User::supportCan() وUser::isAssignedTo() الفحص لهذا الدور، فلا تكون مصفوفة الإسناد قيدًا عليه.

يتطلب هذا المسار رمزًا مميزًا بصلاحية support:read يحمل صاحبه دور support (أو super-admin). ولا تكفي الصلاحية وحدها: فالرمز المميز يبقى بعد الدور الذي كان يحمله صاحبه عند إصداره، ولذلك يُفحص الدور مع كل طلب.

المسار المقابل في اللوحة لا يحمل أي بوّابة — إذ يعيش المرشِّح داخل المتحكّم — ولذلك فإن نقلًا إلى واجهة البرمجة يكتفي بالاستعلام عن «كل العملاء» كان سيسلّم التنصيب بأكمله لأي رمز مميز بصلاحية support:read. تحديد النطاق هنا هو أهمّ خاصية في نقطة النهاية هذه، وتؤكّده الاختبارات في الاتجاهين.

لا يكتب سجلّ تدقيق: فهو لا ينشر عن أي عميل أكثر من اسم وبريد إلكتروني، والقراءات الخاصة بكل عميل بجانبه هي التي تُسجَّل.

المعاملات

الاسم الموضع النوع الوصف
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من العملاء المُسنَدين إلى الموظف.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /support/customers/{user} #

جلب عميل مُسنَد واحد

support:read api.read api.privileged

لوحة معلومات شاملة لعميل مُسنَد واحد: سجلّ العميل، وخريطة الصلاحيات، وأعداد أجهزته الافتراضية وأقراصه ومناطق DNS واشتراكاته وفواتيره وتذاكره، محسوبة من قاعدة البيانات.

البوّابة هنا هي الإسناد وحده — لا أي صلاحية خاصة بمجال — وهذا مطابق للوحة عن قصد. الغرض من هذا السجلّ أن يدلّ موظف الدعم على أين قد تكون مشكلة العميل قبل أن يعرف المجال الذي يبحث فيه؛ ولذلك فإن اشتراط account,view كان سيُعطّل لوحة المعلومات على موظف لا يعمل إلا في مجال السحابة. أما المجموعات الخاصة بكل مجال بجانب هذا المسار فيتطلب كلٌّ منها صلاحيته الخاصة.

ولأن البوّابة بهذا الاتساع، فإن البيانات المنشورة هنا أضيق من نظيرتها في واجهة المدير: لا يُنشَر الحقل phone. فموظف الدعم الذي يقرأ إسناده none في المجالات الخمسة جميعها يستطيع الوصول إلى هذا السجلّ، واللوحة تعطيه رقم الهاتف فعلًا؛ ويُسمح بأن تكون واجهة البرمجة أشدّ صرامة من اللوحة، لا العكس.

العميل غير المُسنَد إلى الموظف يُجاب بـ 403 لا 404 — إذ تعمل بوّابة الإسناد قبل أن يبحث أي شيء عن السجلّ، وهذا يطابق جواب اللوحة. والمعرّف غير الموجود أصلًا يُجاب بـ 403 للسبب نفسه، وهذا هو الجواب المقصود: فهو يجعل "لا وجود لهذا الحساب" و«ليس من حقك الاطلاع» غير قابلين للتمييز. لا شيء في واجهة الدعم يُرجع 404.

يكتب سجلّ تدقيق account.pii_read تمامًا كما تفعل صفحة اللوحة المقابلة، ولهذا السبب يُحتسب على حدّ معدّل طلبات أضيق.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

الاستجابات

  • 200 العميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /support/customers/{user}/instances #

سرد الأجهزة الافتراضية لعميل مُسنَد

support:read api.read api.privileged

مطابقة للنظيرة الإدارية في الحمولة — التمثيل Instance نفسه الذي يعيده مسار /instances الخاص بالعميل — ومطابقة كذلك في طريقة تقديمها: خدمة السحابة في نطاق العميل، وقارئها الذي لا يطابق، ولا صيغة refresh. ولا يختلف سوى مكدس البوابات.

وتتطلب مستوى view على الأقل في مجال cloud من إسناد يغطي هذا العميل. والموظف المُسنَد إلى العميل لكنه يحمل none على cloud يتلقى 403، وكذلك الموظف الذي لا إسناد له أصلًا.

وتكتب سجل تدقيق cloud.pii_read وتُحتسب على ميزانية القراءة المميزة الأضيق.

والمعرّف غير المعروف، أو المعرّف الذي لا يشمله إسناد الموظف، يجيب بـ 403 — إذ تعمل البوابة قبل أن يبحث أي شيء عن السجل، فيبقى «لا وجود لهذا الحساب» و«ليس من حقك رؤيته» غير قابلين للتمييز. ولا شيء في سطح الدعم يعيد 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من الأجهزة الافتراضية للعميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /support/customers/{user}/dns-zones #

سرد مناطق DNS لعميل مُسنَد

support:read api.read api.privileged

مطابقة للنظيرة الإدارية في الحمولة وفي حلّ الخدمة؛ ولا يختلف سوى مكدس البوابات. وتتطلب مستوى view على الأقل في مجال dns من إسناد يغطي هذا العميل.

ولا يوجد معامل refresh: فالنسخة التي تُجري المطابقة تحذف المناطق المحلية — وتتسلسل إلى سجلاتها — التي لم تعد قائمة PowerDNS الحية تتضمنها، قبل الرجوع إلى راية التحديث الخاصة بها.

وتكتب سجل تدقيق dns.pii_read وتُحتسب على ميزانية القراءة المميزة الأضيق.

والمعرّف غير المعروف، أو المعرّف الذي لا يشمله إسناد الموظف، يجيب بـ 403 — إذ تعمل البوابة قبل أن يبحث أي شيء عن السجل، فيبقى «لا وجود لهذا الحساب» و«ليس من حقك رؤيته» غير قابلين للتمييز. ولا شيء في سطح الدعم يعيد 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من مناطق DNS الخاصة بالعميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1/dns-zones' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/dns-zones #

إنشاء منطقة DNS لعميل مُسند

support:write api.read api.privileged

باب لوحة الدعم، بخدمة DNS الخاصة بالعميل.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى dns: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسم نطاق المنطقة.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/dns-zones' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
GET /support/customers/{user}/subscriptions #

سرد اشتراكات عميل مُسنَد

support:read api.read api.privileged

مطابقة للنظيرة الإدارية في الحمولة وفي حلّ الخدمة؛ ولا يختلف سوى مكدس البوابات. وتتطلب مستوى view على الأقل في مجال billing من إسناد يغطي هذا العميل. والمبالغ دائمًا عدد صحيح بالوحدة الفرعية للعملة مع عملتها، لا عدد عشري أبدًا.

ولا يوجد معامل refresh، وهذه أوضح حالة تبرر غيابها: فالنسخة التي تُجري المطابقة تُنهي الاشتراكات التي انتقل موردها المرتبط، وترفع كل اشتراك معلّق إلى deployed وتمحو سبب فشله، وتحذف اشتراكات الأقراص الجذرية مع دفعاتها، وتُطلق أحداث الموارد اليتيمة التي تتصل بالمزوّد — كل ذلك داخل معاملة واحدة.

وتكتب سجل تدقيق billing.pii_read وتُحتسب على ميزانية القراءة المميزة الأضيق.

والمعرّف غير المعروف، أو المعرّف الذي لا يشمله إسناد الموظف، يجيب بـ 403 — إذ تعمل البوابة قبل أن يبحث أي شيء عن السجل، فيبقى «لا وجود لهذا الحساب» و«ليس من حقك رؤيته» غير قابلين للتمييز. ولا شيء في سطح الدعم يعيد 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من اشتراكات العميل.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /support/customers/{user}/audit-logs #

سرد سجل التدقيق لعميل مُسنَد

support:read api.read api.privileged

السجلات التي يكون صاحب البيانات فيها هذا العميل، الأحدث أولًا، مُرشَّحة إلى المجالات التي يملك فيها موظف الدعم الطالب مستوى view على الأقل.

بوابتان، وكلتاهما مطلوبة: إسناد يغطي هذا العميل، ومستوى view على account — وهو الزوج نفسه الذي تحمله الصفحة المكافئة في اللوحة. والمرشِّح لكل مجال في الداخل هو ما يمنع موظفًا لا يملك سوى التذاكر من قراءة سجلات فوترة ذلك العميل بعد دخوله. والموظف الذي لا يملك view على أي مجال يرى صفر سجل، لا كل السجلات: فقائمة المجالات الفارغة تعني صراحةً «لا مجالات»، لا قيدًا مفقودًا.

ولا مقابل في إسنادات الدعم للمجالات auth وshop وprivacy وpartner وsystem، ولذلك لا تظهر هنا أبدًا مهما كانت صلاحيات الموظف. فطلب صاحب البيانات شأن بين العميل والمسؤول عن المعالجة، والشروط التجارية للشريك شأن بين الشريك والشركة.

ولا تُنشر الحقول changes وcontext وhash وprevious_hash؛ وانظر مخطط AuditLog لمعرفة السبب.

وخلافًا للصفحة المكافئة في اللوحة، تكتب هذه العملية فعلًا سجل account.pii_read خاصًا بها، وتُحتسب على ميزانية القراءة المميزة الأضيق. فكل قراءة موظف في نطاق {user} على هذه الواجهة تترك أثرًا بلا استثناء — فالقاعدة ذات الاستثناء الواحد قاعدة آيلة إلى التعفن، وقراءة تاريخ التدقيق الكامل لشخص ما ليست الوصول الذي يُترك بلا تسجيل. ويعني ذلك أن العميل الذي يتصفح صفحات هذه المجموعة يضيف إليها.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
page اختياري query integer min 1, default 1 رقم الصفحة، ابتداءً من 1.
per_page اختياري query integer min 1, max 100, default 25 عدد العناصر في الصفحة. القيم الأعلى من 100 تُخفَّض إلى 100.

الاستجابات

  • 200 صفحة من سجلات تدقيق العميل، في المجالات التي يجوز للموظف رؤيتها.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1/audit-logs' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/actions/start #

تشغيل جهاز افتراضي لعميل مُسند

support:write api.read api.privileged

باب لوحة الدعم نفسه، برمز يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. متكافئة التكرار: تشغيل جهاز يعمل أصلًا يجيب بـ 200 دون أن يُطلب من السحابة شيء. وجهاز يملكه عميل آخر يجيب بـ 404؛ والجهاز الذي يحتجزه طلب استرداد مفتوح يجيب بـ 409؛ والمهمة التي رفضتها السحابة تجيب بـ 502. ويُسجَّل كل استدعاء في سجل التدقيق باسمك منفّذًا والعميلِ موضوعًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer معرّف الجهاز، كما تعرضه `GET /support/customers/{user}/instances`.

الاستجابات

  • 200 الجهاز بعد تشغيله (أو وهو يعمل أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/actions/start' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/actions/stop #

إيقاف جهاز افتراضي لعميل مُسند

support:write api.read api.privileged

باب لوحة الدعم نفسه، برمز يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. متكافئة التكرار: إيقاف جهاز متوقف أصلًا يجيب بـ 200 دون أن يُطلب من السحابة شيء. وجهاز يملكه عميل آخر يجيب بـ 404؛ والمهمة التي رفضتها السحابة تجيب بـ 502. ويُسجَّل كل استدعاء في سجل التدقيق باسمك منفّذًا والعميلِ موضوعًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer معرّف الجهاز، كما تعرضه `GET /support/customers/{user}/instances`.

الاستجابات

  • 200 الجهاز بعد إيقافه (أو وهو متوقف أصلًا).
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/actions/stop' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/actions/restart #

إعادة تشغيل جهاز افتراضي لعميل مُسند

support:write api.read api.privileged

باب لوحة الدعم نفسه، برمز يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. ليست متكافئة التكرار: إعادة التشغيل تصل إلى السحابة دائمًا. وجهاز يملكه عميل آخر يجيب بـ 404؛ والجهاز الذي يحتجزه طلب استرداد مفتوح يجيب بـ 409؛ والمهمة التي رفضتها السحابة تجيب بـ 502. ويُسجَّل كل استدعاء في سجل التدقيق باسمك منفّذًا والعميلِ موضوعًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer معرّف الجهاز، كما تعرضه `GET /support/customers/{user}/instances`.

الاستجابات

  • 200 الجهاز بعد إعادة تشغيله.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/actions/restart' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/credits #

طلب منح رصيد لحساب عميل

support:write api.read api.privileged

يخفض الرصيد الدفعات التالية وينتهي عند انقضاء مدته؛ ولا يكون نقدًا أبدًا.

يُدرَج في قائمة الانتظار: لا يحدث شيء حتى يوافق مدير عليه في /admin/approvals؛ وتنقضي مهلته بعد 24 ساعة. ويجيب بـ 202 مع Location يشير إلى GET /support/staged-actions/{stagedAction}. يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. ورصيد عميل آخر يجيب بـ 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
amount_usd مطلوب number المبلغ، رقمًا عشريًا بالدولار.
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.
expires_at اختياري string تاريخ انتهائه (YYYY-MM-DD)؛ ثلاثة أشهر افتراضيًا.

الاستجابات

  • 202 أُدرج في قائمة الانتظار؛ لم يحدث شيء بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/credits' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount_usd": 1,
    "reason": "string"
}'
POST /support/customers/{user}/credits/{creditGrant}/actions/adjust #

طلب تخفيض رصيد عميل

support:write api.read api.privileged

لا يُخفَّض إلا حتى ما تبقى؛ ويجب أن يبقى المتبقي وقت الطلب قائمًا عند الموافقة.

يُدرَج في قائمة الانتظار: لا يحدث شيء حتى يوافق مدير عليه في /admin/approvals؛ وتنقضي مهلته بعد 24 ساعة. ويجيب بـ 202 مع Location يشير إلى GET /support/staged-actions/{stagedAction}. يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. ورصيد عميل آخر يجيب بـ 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
creditGrant مطلوب path integer min 1 معرّف الرصيد؛ ويجب أن يكون للعميل.

جسم الطلب مطلوب

الحقل النوع الوصف
remaining_usd مطلوب number ما يجب أن يتبقى، رقمًا عشريًا بالدولار.
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.

الاستجابات

  • 202 أُدرج في قائمة الانتظار؛ لم يحدث شيء بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/credits/1/actions/adjust' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "remaining_usd": 1,
    "reason": "string"
}'
POST /support/customers/{user}/credits/{creditGrant}/actions/remove #

طلب إزالة رصيد عميل

support:write api.read api.privileged

يُزال ما تبقى؛ ولا يُدفع نقدًا.

يُدرَج في قائمة الانتظار: لا يحدث شيء حتى يوافق مدير عليه في /admin/approvals؛ وتنقضي مهلته بعد 24 ساعة. ويجيب بـ 202 مع Location يشير إلى GET /support/staged-actions/{stagedAction}. يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. ورصيد عميل آخر يجيب بـ 404.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
creditGrant مطلوب path integer min 1 معرّف الرصيد؛ ويجب أن يكون للعميل.

جسم الطلب مطلوب

الحقل النوع الوصف
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.

الاستجابات

  • 202 أُدرج في قائمة الانتظار؛ لم يحدث شيء بعد.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/credits/1/actions/remove' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "reason": "string"
}'
POST /support/customers/{user}/password #

تعيين كلمة مرور عميل

support:write api.read api.privileged

إعادة التعيين من مكتب المساعدة في لوحة الدعم: تُعيَّن كلمة المرور وتُنهى كل جلسات الدخول الأخرى للعميل.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى account: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
password مطلوب string كلمة المرور الجديدة.
password_confirmation مطلوب string كلمة المرور نفسها مرة أخرى.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/password' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "password": "string",
    "password_confirmation": "string"
}'
GET /support/customers/{user}/instances/{instance}/console #

فتح كونسول على جهاز عميل

support:write api.read api.privileged

عنوان URL لكونسول لمرة واحدة، يمر عبر هذا الموقع كما تقدمه اللوحة، أو url: null. والكونسول يعادل السيطرة الكاملة على الجهاز، ولذلك يطلب صلاحية الكتابة ومستوى manage كباب اللوحة.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وتُسجَّل القراءة باسم العميل.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/console' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /support/customers/{user}/subscriptions/{subscription}/resize-quote #

تسعير تغيير الحجم لعميل

support:read api.read api.privileged

يُسعَّر ولا يُنفَّذ أبدًا — عرض سعر اللوحة، بالدالة نفسها quoteScale(). والرفض (داخل مهلة الاسترداد، أو منتج مسحوب، …) يكون 409 مع جملته.

يتطلب رمزًا يحمل support:read ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: view. وتُسجَّل القراءة باسم العميل.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.
product_id مطلوب query integer min 1 المنتج المراد التحويل إليه، من النوع نفسه.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/resize-quote' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
GET /support/staged-actions/{stagedAction} #

جلب أحد طلباتك المُدرجة في قائمة الانتظار

support:read api.read

ما آل إليه شيء طلبته عبر هذه الواجهة — منح رصيد أو تخفيضه أو إزالته — بحسب قيمة staged_action_id التي أعادها الطلب. تنتقل status من pending إلى واحدة فقط من approved أو rejected أو expired أو failed، ولا تعود أبدًا. ولا تظهر إلا طلباتك أنت: وطلب موظف آخر يجيب بـ 404. للقراءة فقط: يقرر فيه مدير في اللوحة.

يتطلب رمزًا يحمل support:read ويحمل صاحبه دور support أو super-admin.

المعاملات

الاسم الموضع النوع الوصف
stagedAction مطلوب path integer min 1 معرّف سجل قائمة الانتظار.

الاستجابات

  • 200 سجل قائمة الانتظار.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X GET 'https://cloud.core.gen.tr/api/v1/support/staged-actions/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/actions/rename #

إعادة تسمية جهاز لعميل مُسند

support:write api.read api.privileged

إعادة التسمية في لوحة الدعم، بخدمة السحابة الخاصة بالعميل.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string الاسم الجديد.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/actions/rename' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/attach #

يربط الجهاز بإحدى شبكات العميل

support:write api.read api.privileged

باب لوحة الدعم، بالجسم المشترك نفسه الذي يستخدمه العميل والمدير؛ ويُوقف الجهاز حيث تحتاج السحابة ذلك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/networks/1/actions/attach' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/detach #

يفصل الجهاز عن الشبكة

support:write api.read api.privileged

باب لوحة الدعم، بالجسم المشترك نفسه الذي يستخدمه العميل والمدير؛ ويُوقف الجهاز حيث تحتاج السحابة ذلك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/networks/1/actions/detach' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/make-primary #

يجعل الشبكة الشبكة الأساسية للجهاز

support:write api.read api.privileged

باب لوحة الدعم، بالجسم المشترك نفسه الذي يستخدمه العميل والمدير؛ ويُوقف الجهاز حيث تحتاج السحابة ذلك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/networks/1/actions/make-primary' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/move #

ينقل الجهاز إلى الشبكة من الشبكة المذكورة في `from`

support:write api.read api.privileged

باب لوحة الدعم، بالجسم المشترك نفسه الذي يستخدمه العميل والمدير؛ ويُوقف الجهاز حيث تحتاج السحابة ذلك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
from مطلوب integer الشبكة التي يُنقل الجهاز منها.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/networks/1/actions/move' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "from": 1
}'
POST /support/customers/{user}/instances/{instance}/networks/{network}/actions/change-ip #

يغيّر عنوان الجهاز على الشبكة

support:write api.read api.privileged

باب لوحة الدعم، بالجسم المشترك نفسه الذي يستخدمه العميل والمدير؛ ويُوقف الجهاز حيث تحتاج السحابة ذلك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
ip_address مطلوب string العنوان الجديد على تلك الشبكة.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/networks/1/actions/change-ip' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "ip_address": "string"
}'
POST /support/customers/{user}/public-ip-addresses/{publicIPAddress}/networks/{network}/actions/move #

نقل عنوان عام لعميل إلى شبكة أخرى من شبكاته

support:write api.read api.privileged

يُحرَّر العنوان ويُحصل على آخر في الشبكة الهدف؛ ولا يُحصَّل أي مبلغ.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
publicIPAddress مطلوب path integer min 1 معرّف العنوان العام؛ ويجب أن يعود إلى العميل.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/public-ip-addresses/1/networks/1/actions/move' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/networks/{network}/actions/release #

تحرير شبكة فارغة للعميل

support:write api.read api.privileged

يعيد الشبكة مع العنوان الذي تحجزه. ويُرفض ما دام شيء يستخدمها.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
network مطلوب path integer min 1 معرّف الشبكة؛ ويجب أن تعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/networks/1/actions/release' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/vpn #

تشغيل بوابة VPN لعميل أو إيقافها

support:write api.read api.privileged

على أحد العناوين العامة الخاصة بالعميل.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
public_ip مطلوب string العنوان العام للبوابة.
enable مطلوب boolean تشغيل أو إيقاف.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/vpn' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "public_ip": "string",
    "enable": true
}'
POST /support/customers/{user}/vpn/users #

إنشاء مستخدم VPN للعميل

support:write api.read api.privileged

باب لوحة الدعم، بقرار المالك في 2026-08-29: خدمة VPN العميل هي صلب العمل.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
username مطلوب string اسم الدخول.
password مطلوب string كلمة المرور.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/vpn/users' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "string",
    "password": "string"
}'
POST /support/customers/{user}/vpn/users/{vpnUser}/actions/delete #

حذف أحد مستخدمي VPN للعميل

support:write api.read api.privileged

ومستخدم VPN لحساب آخر يجيب بـ 404.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
vpnUser مطلوب path integer min 1 معرّف مستخدم VPN؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/vpn/users/1/actions/delete' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/volumes/{volume}/snapshots #

أخذ لقطة لوحدة تخزين عميل

support:write api.read api.privileged

تُحتسب ضمن حد اللقطات الخاص بالعميل، كما في اللوحة.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
volume مطلوب path integer min 1 معرّف وحدة التخزين؛ ويجب أن تعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
name اختياري string اسم اختياري.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/volumes/1/snapshots' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
POST /support/customers/{user}/volumes/{volume}/snapshots/{snapshot}/actions/delete #

حذف لقطة وحدة تخزين لعميل

support:write api.read api.privileged

وتُرفض النسخة المحتجزة في الاحتفاظ.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
volume مطلوب path integer min 1 معرّف وحدة التخزين؛ ويجب أن تعود إلى العميل.
snapshot مطلوب path integer min 1 معرّف اللقطة؛ ويجب أن تكون نسخة من وحدة التخزين تلك.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/volumes/1/snapshots/1/actions/delete' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/volumes/{volume}/snapshots/{snapshot}/actions/restore #

إنشاء وحدة تخزين جديدة من لقطة عميل

support:write api.read api.privileged

وتُرفض النسخة المحتجزة في الاحتفاظ.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
volume مطلوب path integer min 1 معرّف وحدة التخزين؛ ويجب أن تعود إلى العميل.
snapshot مطلوب path integer min 1 معرّف اللقطة؛ ويجب أن تكون نسخة من وحدة التخزين تلك.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسم وحدة التخزين الجديدة.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/volumes/1/snapshots/1/actions/restore' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
POST /support/customers/{user}/volumes/{volume}/snapshot-policies #

ضبط جدول لقطات على وحدة تخزين عميل

support:write api.read api.privileged

تأخذ السحابة النسخ وتحذف الأقدم بعد تجاوز max_snaps.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
volume مطلوب path integer min 1 معرّف وحدة التخزين؛ ويجب أن تعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
interval_type مطلوب string hourly أو daily أو weekly أو monthly.
max_snaps مطلوب integer عدد النسخ التي يُحتفظ بها.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/volumes/1/snapshot-policies' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "interval_type": "string",
    "max_snaps": 1
}'
POST /support/customers/{user}/instances/{instance}/vm-snapshots #

أخذ لقطة لجهاز عميل

support:write api.read api.privileged

ويُرفض ما دامت اللقطات الحية معطَّلة هنا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسم النسخة.
description اختياري string ملاحظة اختيارية.
with_memory اختياري boolean تضمين ذاكرة الجهاز.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/vm-snapshots' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string"
}'
POST /support/customers/{user}/instances/{instance}/vm-snapshots/{vmSnapshot}/actions/delete #

حذف لقطة جهاز لعميل

support:write api.read api.privileged

وتُرفض النسخة المحتجزة في الاحتفاظ.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
vmSnapshot مطلوب path integer min 1 معرّف لقطة الجهاز؛ ويجب أن تكون نسخة من ذلك الجهاز.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/vm-snapshots/1/actions/delete' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/instances/{instance}/vm-snapshots/{vmSnapshot}/actions/revert #

إرجاع جهاز عميل إلى لقطة

support:write api.read api.privileged

يُفقد كل ما كُتب بعد النسخة. وتُرفض النسخة المحتجزة في الاحتفاظ.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى cloud: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
instance مطلوب path integer min 1 معرّف الجهاز؛ ويجب أن يعود إلى العميل.
vmSnapshot مطلوب path integer min 1 معرّف لقطة الجهاز؛ ويجب أن تكون نسخة من ذلك الجهاز.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/instances/1/vm-snapshots/1/actions/revert' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/dns-zones/{zone}/actions/delete #

حذف منطقة DNS لعميل

support:write api.read api.privileged

تُزال المنطقة وكل سجل فيها.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى dns: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
zone مطلوب path integer min 1 معرّف منطقة DNS؛ ويجب أن تعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/dns-zones/1/actions/delete' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/dns-zones/{zone}/records #

إضافة سجل إلى منطقة عميل

support:write api.read api.privileged

قيمة واحدة؛ وتُحفظ القيم الأخرى بالاسم والنوع نفسيهما.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى dns: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
zone مطلوب path integer min 1 معرّف منطقة DNS؛ ويجب أن تعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string اسم السجل.
type مطلوب string نوع السجل.
data مطلوب string القيمة.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/dns-zones/1/records' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "type": "string",
    "data": "string"
}'
POST /support/customers/{user}/dns-zones/{zone}/records/{record} #

تعديل سجل في منطقة عميل

support:write api.read api.privileged

ويُرفض بـ 422 إن تغيّرت القيمة منذ قراءتها.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى dns: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
zone مطلوب path integer min 1 معرّف منطقة DNS؛ ويجب أن تعود إلى العميل.
record مطلوب path integer min 1 معرّف السجل؛ ويجب أن يكون في تلك المنطقة.

جسم الطلب مطلوب

الحقل النوع الوصف
type مطلوب string نوع السجل.
data مطلوب string القيمة الجديدة.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/dns-zones/1/records/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "string",
    "data": "string"
}'
POST /support/customers/{user}/dns-zones/{zone}/records/{record}/actions/delete #

حذف سجل من منطقة عميل

support:write api.read api.privileged

ويُرفض بـ 422 إن تغيّرت القيمة منذ قراءتها.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى dns: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
zone مطلوب path integer min 1 معرّف منطقة DNS؛ ويجب أن تعود إلى العميل.
record مطلوب path integer min 1 معرّف السجل؛ ويجب أن يكون في تلك المنطقة.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/dns-zones/1/records/1/actions/delete' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/subscriptions/{subscription}/actions/cancel #

إلغاء اشتراك عميل

support:write api.read api.privileged

ينهي العقد كما يفعل زر الإلغاء في اللوحة؛ ورفض الخدمة يجيب بـ 409.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/cancel' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/subscriptions/{subscription}/actions/unstage-resize #

إلغاء تغيير حجم مُجهَّز لعميل

support:write api.read api.privileged

يحذف الفاتورة غير المدفوعة ويستعيد الاشتراك السابق؛ ولا ينقل أي مال؛ ويُرفض تغيير الحجم المدفوع.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/unstage-resize' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/subscriptions/{subscription}/actions/lock #

قفل اشتراك عميل

support:write api.read api.privileged

قفل اللوحة.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/lock' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/subscriptions/{subscription}/actions/unlock #

فتح قفل اشتراك عميل

support:write api.read api.privileged

فتح القفل في اللوحة.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/unlock' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/subscriptions/{subscription}/actions/lift-suspension #

رفع تعليق عميل

support:write api.read api.privileged

يعيد الخدمة؛ وتبقى الفاتورة مستحقة ولا ينتقل أي مال.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/lift-suspension' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/subscriptions/{subscription}/actions/force-refund #

فرض استرداد خدمة لمرة واحدة لعميل

support:write api.read api.privileged

للخدمات فقط، داخل مهلة الاسترداد المفروض، ولا يشمل المُسلَّمة أبدًا. ويتجاهل حظر الاسترداد على العميل كما يفعل كل استرداد من الفريق. وحين تكون هناك فاتورة صادرة يُفتح بدلًا من ذلك طلب إلغاء فاتورة مفروض (202).

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.

الاستجابات

  • 200 تم.
  • 202 قُبل؛ ولم يكتمل بعد — راجع الرسالة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/force-refund' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "reason": "string"
}'
POST /support/customers/{user}/subscriptions/{subscription}/actions/request-invoice-cancellation #

فتح طلب إلغاء فاتورة لعميل

support:write api.read api.privileged

لشراء يجب إلغاء فاتورته الصادرة قبل استرداده؛ ويُوقف الجهاز فورًا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
subscription مطلوب path integer min 1 معرّف الاشتراك؛ ويجب أن يعود إلى العميل.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/subscriptions/1/actions/request-invoice-cancellation' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/confirm #

تسجيل تأكيد شركة

support:write api.read api.privileged

يسجّل الفريق أن الشركة وافقت على إلغاء فاتورتها.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
invoiceRefundRequest مطلوب path integer min 1 معرّف طلب إلغاء الفاتورة؛ ويجب أن تكون دفعته للعميل.

جسم الطلب مطلوب

الحقل النوع الوصف
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/invoice-refund-requests/1/actions/confirm' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "reason": "string"
}'
POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/resolve #

إلغاء الفاتورة وإجراء الاسترداد

support:write api.read api.privileged

يجري الفحص المسبق للاسترداد كاملًا أولًا؛ والاسترداد الذي لا يكتمل يجيب بـ 202 ويبقى مستحقًا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
invoiceRefundRequest مطلوب path integer min 1 معرّف طلب إلغاء الفاتورة؛ ويجب أن تكون دفعته للعميل.

جسم الطلب مطلوب

الحقل النوع الوصف
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.

الاستجابات

  • 200 تم.
  • 202 قُبل؛ ولم يكتمل بعد — راجع الرسالة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/invoice-refund-requests/1/actions/resolve' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "reason": "string"
}'
POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/retry #

إعادة محاولة استرداد مستحق

support:write api.read api.privileged

لطلب أُلغيت فاتورته وما زال استرداده مستحقًا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
invoiceRefundRequest مطلوب path integer min 1 معرّف طلب إلغاء الفاتورة؛ ويجب أن تكون دفعته للعميل.

الاستجابات

  • 200 تم.
  • 202 قُبل؛ ولم يكتمل بعد — راجع الرسالة.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.
  • 502 أخفق مستوى التحكّم في البنية التحتية الذي تقوم عليه السحابة في تنفيذ الطلب. في بيئة الإنتاج يكون حقل التفصيل نصًا ثابتًا وغير محدَّد — إذ إن نصوص أخطاء المزوّد نفسها كثيرًا ما تذكر مضيفات داخلية ووحدات pod ومشرفات أنظمة افتراضية. عامِل هذه الحالة على أنها قابلة لإعادة المحاولة لا على أنها خطأ من العميل.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/invoice-refund-requests/1/actions/retry' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/invoice-refund-requests/{invoiceRefundRequest}/actions/decline #

رفض طلب إلغاء فاتورة

support:write api.read api.privileged

تبقى الفاتورة صالحة ويُبلَّغ العميل بالسبب.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
invoiceRefundRequest مطلوب path integer min 1 معرّف طلب إلغاء الفاتورة؛ ويجب أن تكون دفعته للعميل.

جسم الطلب مطلوب

الحقل النوع الوصف
reason مطلوب string السبب — يُسجَّل مع الإجراء ويُعرض على العميل حيث تعرضه اللوحة.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/invoice-refund-requests/1/actions/decline' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "reason": "string"
}'
POST /support/customers/{user}/payments/{payment}/chargebacks #

تسجيل رد مبلغ على دفعة عميل

support:write api.read api.privileged

يسجّل ما استرده البنك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
payment مطلوب path integer min 1 معرّف الدفعة؛ ويجب أن تكون للعميل.

جسم الطلب مطلوب

الحقل النوع الوصف
amount مطلوب number المبلغ الذي استرده البنك، رقمًا عشريًا بعملة الدفعة نفسها (TL أو USD)، مثل 12.50.
bank_date مطلوب string تاريخ البنك (YYYY-MM-DD)، ولا يكون في المستقبل.
reason مطلوب string سبب البنك.
bank_reference اختياري string مرجع البنك.
note اختياري string ملاحظة من الفريق.
subscription_id اختياري integer سطر الدفعة المعني، إن وُجد.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/payments/1/chargebacks' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount": 1,
    "bank_date": "string",
    "reason": "string"
}'
POST /support/customers/{user}/billing/bill-notices #

ضبط إرسال إشعارات الفواتير إلى العميل

support:write api.read api.privileged

تتبع default إعداد النظام.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
notify_pending_payments مطلوب string on أو off أو default.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/billing/bill-notices' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "notify_pending_payments": "string"
}'
POST /support/customers/{user}/billing/refunds-block #

حظر استردادات العميل أو السماح بها

support:write api.read api.privileged

يوقف زر الاسترداد الخاص بالعميل، لا استرداد الفريق أبدًا. والسبب مطلوب للحظر ولا يُعرض على العميل أبدًا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
blocked مطلوب boolean حظر (true) أو سماح (false).
reason اختياري string السبب — مطلوب للحظر.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/billing/refunds-block' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "blocked": true
}'
POST /support/customers/{user}/billing/shop-block #

تعطيل الشراء لعميل أو تفعيله

support:write api.read api.privileged

تستمر الاشتراكات القائمة. والسبب مطلوب للحظر ولا يُعرض على العميل أبدًا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى billing: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
blocked مطلوب boolean حظر (true) أو سماح (false).
reason اختياري string السبب — مطلوب للحظر.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 409 تباعد المورد المقصود عن حالته لدى المزوّد بصورة لا يستطيع هذا الطلب معالجتها. حدِّث البيانات ثم أعد المحاولة.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/billing/shop-block' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "blocked": true
}'
POST /support/customers/{user}/tickets/{ticket}/comments #

الرد على تذكرة عميل

support:write api.read api.privileged

يُسجَّل باسمك أنت، كما تسجّله لوحة الدعم. والتذكرة المحلولة أو المغلقة لا تقبل ردًّا؛ وتذكرة الشراكة تجيب بـ 404. نص فقط.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى tickets: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
ticket مطلوب path integer min 1 معرّف التذكرة؛ ويجب أن تكون للعميل ومتاحة لك بمستوى manage.

جسم الطلب مطلوب

الحقل النوع الوصف
comment مطلوب string الرد، بحد أقصى 10000 حرف.

الاستجابات

  • 201 أُنشئ.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/tickets/1/comments' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "comment": "string"
}'
POST /support/customers/{user}/tickets/{ticket}/actions/close #

إغلاق تذكرة عميل

support:write api.read api.privileged

يُبلَّغ العميل، كما من اللوحة.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى tickets: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
ticket مطلوب path integer min 1 معرّف التذكرة؛ ويجب أن تكون للعميل ومتاحة لك بمستوى manage.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/tickets/1/actions/close' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'
POST /support/customers/{user}/profile #

تغيير الملف الشخصي لعميل

support:write api.read api.privileged

نموذج الملف الشخصي للفريق؛ ويُحكم على وثيقة الهوية بلغة العميل. ويحتفظ معرّف Telegram والوسوم غير المرسلة بقيمها. ويجب إرسال تاريخ الميلاد ورقم الهوية والهاتف — وغياب أحدها يجيب بـ 422 — والحقل المرسل null يُمحى، كما في نموذج اللوحة.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى account: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
name مطلوب string الاسم الكامل.
birthdate مطلوب string تاريخ الميلاد؛ وقيمة null تمحوه.
identity_number مطلوب string رقم الهوية التركية، أو القيمة البديلة مع جواز السفر؛ وقيمة null تمحوه.
passport_number اختياري string رقم جواز السفر.
phone مطلوب string الهاتف بالصيغة الدولية؛ وقيمة null تمحوه.
language مطلوب string tr-TR أو en-US أو ar-SA.
telegram_user_id اختياري string معرّف Telegram.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/profile' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "birthdate": "string",
    "identity_number": "string",
    "phone": "string",
    "language": "string"
}'
POST /support/customers/{user}/billing-information #

تغيير بيانات الفوترة لعميل

support:write api.read api.privileged

ويُرفض على country تغيير البلد الذي ينقل العملة ما دامت هناك فواتير مفتوحة. ويبقى حساب الشريك مؤسسيًا أيًّا كانت قيمة corporate: فالطلب الذي يتركه بلا اسم شركة ولا رقم ضريبي يُرفض على corporate. وفي غير ذلك يُكتب حقل الشركة غير المرسل فارغًا — وcorporate الغائب أو false فاتورة شخصية.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى account: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.

جسم الطلب مطلوب

الحقل النوع الوصف
corporate اختياري boolean فاتورة مؤسسية. إن غاب أو كان false فهي فاتورة شخصية — إلا في حساب الشريك، الذي يبقى مؤسسيًا أيًّا كانت قيمة هذا الحقل.
company_name اختياري string اسم الشركة.
tax_number اختياري string الرقم الضريبي.
tax_office اختياري string المكتب الضريبي.
address مطلوب string العنوان.
city مطلوب string المدينة.
postal_code مطلوب string الرمز البريدي.
country مطلوب string البلد.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/billing-information' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "address": "string",
    "city": "string",
    "postal_code": "string",
    "country": "string"
}'
POST /support/customers/{user}/members/{member} #

تغيير صلاحيات عضو

support:write api.read api.privileged

المصفوفة كاملة، مفهرسة بمجال الحساب. ولا تتجاوز إسنادك أبدًا؛ ولا يُخفَّض المالك أبدًا.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى account: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
member مطلوب path integer min 1 أحد مستخدمي حساب العميل.

جسم الطلب مطلوب

الحقل النوع الوصف
capabilities مطلوب object المجال => none أو view أو manage.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/members/1' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "capabilities": []
}'
POST /support/customers/{user}/members/{member}/actions/remove #

إزالة عضو من حساب عميل

support:write api.read api.privileged

لا يمكن إزالة المالك؛ ويجب إخفاء هوية العضو الذي لديه سجلات بدلًا من ذلك.

يتطلب رمزًا يحمل support:write ويحمل صاحبه دور support أو super-admin وإسنادًا لهذا العميل بمستوى account: manage. وسجل عميل آخر يجيب بـ 404. ويُسجَّل في التدقيق باسمك منفّذًا.

المعاملات

الاسم الموضع النوع الوصف
user مطلوب path integer min 1 معرّف المستخدم للعميل المستهدف. سُمّي المعامل `user` لا `customer` عمدًا: بوابة الصلاحية وبوابة الإسناد ووسيط سجل الوصول تقرأه جميعها بهذا الاسم الحرفي، والأخير منها يفشل *مفتوحًا* — أي يتوقف عن كتابة سطر سجل الوصول — لو أُعيدت تسميته.
member مطلوب path integer min 1 أحد مستخدمي حساب العميل.

الاستجابات

  • 200 تم.
  • 401 لم يُقدَّم أي رمز مميز، أو أن الرمز المميز غير صالح أو منتهي الصلاحية.
  • 403 تم التحقق من الهوية، لكن العملية غير مسموح بها — إمّا أن الرمز المميز يفتقر إلى الصلاحية المطلوبة، أو أن سياسةً رفضت الإجراء، أو أن البريد الإلكتروني غير موثَّق، أو أن صلاحية الدعم غير كافية.
  • 404 لا وجود لهذا المورد، أو أنه يخصّ عميلًا آخر. الحالتان غير قابلتين للتمييز عمدًا.
  • 422 لم يجتز جسم الطلب أو سلسلة الاستعلام التحقق من الصحة.
  • 429 طلبات كثيرة جدًا. أعد المحاولة بعد المدة المذكورة في `Retry-After`.

مثال على الطلب

curl -X POST 'https://cloud.core.gen.tr/api/v1/support/customers/1/members/1/actions/remove' \
  -H 'Authorization: Bearer $C2_TOKEN' \
  -H 'Accept: application/json'

ابدأ الآن

أنشئ حسابك في دقائق، وهيّئ بيئتك السحابية الخاصة، وتولَّ زمام الأمور. مع cloud.core.gen.tr، كل شيء أسرع وأكثر أماناً وأبسط.

احجز اجتماعاً

دعنا نساعدك في تنمية أعمالك. احجز اجتماعاً مدته 15 دقيقة الآن.

احجز الآن