API: ماشینهای مجازی
ساخت، فهرست و کنترل ماشینها: روشن، خاموش، راهاندازی مجدد، تغییر اندازه، نصب مجدد، بازیابی، حذف و کنسول.
در API به ماشین مجازی «سفارش» (order) گفته میشود. عملیات ناهمگام هستند: بلافاصله با 202 و وضعیت در جریان پاسخ میدهند و شما GET /orders/{order} را تا پایان کار میپرسید. قراردادهای API را ببینید.
فهرست ماشینهای شما
GET /orders
ماشینهای شما را برمیگرداند، با امکان فیلتر بر اساس وضعیت.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای query
| فیلد | نوع | مقادیر |
|---|---|---|
status |
string | pending, provisioning, running, failed, deleting, resizing, reinstalling, terminated, stopped, starting, stopping, rebooting, restoring, resetting_password |
per_page |
integer |
پاسخها
200موفق. برمیگرداند:data(فهرستی ازOrder).
نمونه
curl -X GET https://veneshcloud.ir/api/orders \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
ساخت ماشین مجازی
POST /orders
یک ماشین روی یک پلن سفارش میدهد. هزینهٔ ماه اول از کیف پول کسر میشود. اگر موجودی حداقل لازم را پوشش ندهد، درخواست رد میشود و خطا نیاز را توضیح میدهد. ماشین در پسزمینه ساخته میشود.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
customer_plan_id |
integer | بله | |
os_image |
string | بله | |
region |
string | خیر | |
hostname |
string | خیر | |
ssh_public_key |
string | خیر | |
password |
string | خیر | |
login_method |
string | خیر | generated_key, own_key, password |
ssh_password_auth |
boolean | خیر | |
disk_gb |
integer | خیر | |
assign_public_ip |
boolean | خیر | |
bandwidth_mbps |
integer | خیر | |
open_ports |
فهرستی از integer | خیر | |
user_data |
string | خیر | |
description |
string | خیر | |
assign_ipv6 |
boolean | خیر | |
data_disk_gb |
integer | خیر | |
tags |
object | خیر | |
join_private_network_id |
integer | خیر | |
source_snapshot_id |
integer | خیر | |
install_monitoring_agent |
boolean | خیر |
پاسخها
200موفق. برمیگرداندOrder.422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"customer_plan_id":1,"os_image":"ubuntu-22.04"}'
دریافت یک ماشین
GET /orders/{order}
یکی از ماشینهای شما و وضعیت آن را برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداندOrder.
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
دریافت دسترسی کنسول
GET /orders/{order}/console
جزئیات کنسول ماشین را برمیگرداند. قالب آن به ارائهدهنده بستگی دارد (راهنمای سریال یا پیوند VNC) و پیوندها ممکن است ظرف چند ثانیه منقضی شوند؛ درست پیش از استفاده بگیرید.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداند:console(OrderConsole).403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی502خطای ارائهدهنده503موقتاً در دسترس نیست
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/console \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
حذف ماشین
POST /orders/{order}/actions/delete
ماشین را از بین میبرد. وقتی در حال اجرا یا ناموفق است مجاز است. قابل بازگشت نیست.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/delete \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
تغییر اندازهٔ ماشین
POST /orders/{order}/actions/resize
ماشین را به پلن دیگری روی همان ارائهدهنده و منطقه میبرد. ماشین باید در حال اجرا باشد. ماشینهای OVHcloud را نمیتوان کوچک کرد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
customer_plan_id |
integer | بله |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/resize \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"customer_plan_id":1}'
گزینههای تغییر اندازه
GET /orders/{order}/resize-options
پلنهایی را که میتوانید به آنها تغییر اندازه دهید و مقادیر متمایز vCPU و RAM آنها را برای ساخت دو انتخابگر مستقل برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداندResizeOptions.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/resize-options \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
نصب مجدد سیستمعامل
POST /orders/{order}/actions/reinstall
دیسک را پاک میکند و تصویر انتخابی را نصب میکند. ماشین باید در حال اجرا باشد. پلن تغییر نمیکند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
os_image |
string | بله |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/reinstall \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"os_image":"ubuntu-22.04"}'
روشن کردن ماشین
POST /orders/{order}/actions/start
ماشین متوقف را روشن میکند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/start \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
خاموش کردن ماشین
POST /orders/{order}/actions/stop
ماشین در حال اجرا را خاموش میکند. دیسک آن حفظ میشود.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/stop \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
راهاندازی مجدد ماشین
POST /orders/{order}/actions/reboot
ماشین در حال اجرا را از نو راهاندازی میکند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/reboot \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
بازنشانی رمز root
POST /orders/{order}/actions/reset-root-password
از راه حالت نجات ارائهدهنده یک رمز root جدید میگذارد (و در صورت تمایل یک کلید عمومی SSH اضافه میکند). ماشین دو بار راهاندازی مجدد میشود. فقط OVHcloud؛ ماشین باید در حال اجرا یا متوقف باشد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
password |
string | بله | |
ssh_public_key |
string | خیر |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی429درخواستهای بیش از حد
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/reset-root-password \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"password":"your-password"}'
بازیابی از اسنپشات
POST /orders/{order}/actions/restore
دیسک ماشین را با یکی از اسنپشاتهای تکمیلشدهٔ خودش جایگزین میکند. ماشین باید در حال اجرا یا متوقف باشد. قابل بازگشت نیست.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
snapshot_id |
integer | بله |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداندOrder.403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/actions/restore \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"snapshot_id":1}'
تمدید ماشین مجازی
POST /orders/{order}/renew
دورهٔ ۳۰ روزهٔ بعد را همین حالا از کیف پول میپردازد (قیمت پلن بهعلاوهٔ دیسک داده). وقتی ماشین معوق یا معلق است یا تا ۷ روز به تاریخ تمدید مانده مجاز است. ماشینی که برای عدم پرداخت خاموش شده دوباره روشن میشود. اگر موجودی کافی نباشد 422 با پیام خوانا برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداند:data(Order).422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/renew \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
اشیاء
فهرست فیلدهای اشیایی که در بالا برگردانده میشوند.
CustomerPlan
| فیلد | نوع | مقادیر |
|---|---|---|
id |
integer | |
name |
string | |
provider |
string | |
plan_name |
string | |
region |
string | |
os_options |
فهرستی از string | |
specs |
object | |
usd_equivalent_price |
string | |
rial_price |
integer | |
fx |
object | |
active |
boolean | |
available |
boolean |
Order
| فیلد | نوع | مقادیر |
|---|---|---|
billing |
OrderBilling |
|
id |
integer | |
status |
string | pending, provisioning, running, failed, deleting, resizing, reinstalling, terminated, stopped, starting, stopping, rebooting, restoring, resetting_password |
customer_plan |
CustomerPlan |
|
region |
string | |
os_image |
string | |
hostname |
string | |
price_usd |
string | |
price_rial |
integer | |
external_instance_id |
string | |
failure_reason |
string | |
source_snapshot_id |
integer | |
ipv4_address |
string | |
ipv6_address |
string | |
has_live_instance |
boolean | |
login |
object | |
created_at |
string | |
provisioned_at |
string |
OrderBilling
| فیلد | نوع | مقادیر |
|---|---|---|
state |
string | active, overdue, suspended |
paid_until |
string | |
next_renewal_at |
string | |
suspended_at |
string | |
renewal_price_usd |
string | |
renewal_price_rial |
integer | |
data_disk_gb |
integer | |
auto_renew |
boolean | |
daily_accrual_usd |
string | |
daily_accrual_rial |
integer | |
wallet_balance_rial |
integer | |
delete_at_balance_rial |
integer | |
rial_until_deletion |
integer | |
wallet_balance_usd |
string | |
delete_at_balance_usd |
number | |
usd_until_deletion |
number |
ResizeOptions
| فیلد | نوع | مقادیر |
|---|---|---|
provider |
string | |
region |
string | |
current |
object | |
cpu_options |
فهرستی از integer | |
ram_options |
فهرستی از integer | |
plans |
فهرستی از object |