API: فایروال، IP شناور و اطلاعات زندهٔ ماشین
گروههای امنیتی و قوانین آنها، IPهای شناور، آدرسهای زندهٔ ماشین و قابلیتهای مجاز ارائهدهنده در هر منطقه.
همهٔ این موارد نزد ارائهدهندهٔ ابری اعمال میشوند. درخواستهای فایروال نتیجهٔ واقعی را برمیگردانند؛ اگر ارائهدهنده نپذیرد، پاسخ 422 با error (مثلاً QUOTA_EXCEEDED) و یک message خوانا است. تغییرات IP شناور با 202 پاسخ میدهند؛ GET /floating-ips را تا ثابت شدن وضعیت بپرسید. پیش از هر کار با GET /orders/{order}/capabilities ببینید ارائهدهنده آن قابلیت را در آن منطقه مجاز میداند یا نه.
دریافت اطلاعات زندهٔ ماشین
GET /orders/{order}/instance
وضعیت فعلی ماشین و همهٔ آدرسهای آن را از ارائهدهنده میپرسد: IPv4 و IPv6 عمومی خود ماشین، آدرسهای خصوصی و IPهای شناور.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداند:data(LiveInstance).403مجاز نیست، این منبع متعلق به شما نیست404پیدا نشد422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی503موقتاً در دسترس نیست
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/instance \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
دریافت DNS معکوس IP شناور
GET /floating-ips/{floatingIp}/reverse-dns
نام PTR تنظیمشده برای IP شناور را برمیگرداند یا null.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
پاسخها
200موفق. برمیگرداند:data(object).403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X GET https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID/reverse-dns \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
تنظیم DNS معکوس IP شناور
PUT /floating-ips/{floatingIp}/reverse-dns
همان قواعد ماشین، از جمله forward_record_missing.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
hostname |
string | بله |
پاسخها
200موفق. برمیگرداند:data(object).403مجاز نیست، این منبع متعلق به شما نیست422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X PUT https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID/reverse-dns \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"hostname":"my-vm"}'
دریافت قابلیتهای ماشین
GET /orders/{order}/capabilities
میگوید ارائهدهنده در حال حاضر کدام قابلیتها را برای منطقهٔ این ماشین مجاز میداند. برای قابلیت غیرقابلدسترس، سهمیهٔ مانع و یک پیام خوانا آمده است.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداند:data(Capabilities).
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/capabilities \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
دریافت قابلیتهای منطقه
GET /provider-capabilities
همان قابلیتهای ماشین، برای یک ارائهدهنده و منطقه.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای query
| فیلد | نوع | مقادیر |
|---|---|---|
provider |
string | |
region |
string |
پاسخها
200موفق. برمیگرداند:data(Capabilities).
نمونه
curl -X GET https://veneshcloud.ir/api/provider-capabilities \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
فهرست فایروالهای یک ماشین
GET /orders/{order}/security-groups
فایروالهای متصل به ماشین را همراه قوانینشان برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداند:data(فهرستی ازSecurityGroup).
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/security-groups \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
فهرست فایروالها
GET /security-groups
فایروالهای شما را همراه قوانین و ماشینهای متصل برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پاسخها
200موفق. برمیگرداند:data(فهرستی ازSecurityGroup).
نمونه
curl -X GET https://veneshcloud.ir/api/security-groups \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
ساخت فایروال
POST /security-groups
در منطقهٔ دادهشده یک گروه امنیتی با قوانین دادهشده نزد ارائهدهنده میسازد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
provider |
string | بله | |
region |
string | بله | |
name |
string | بله | |
description |
string | خیر | |
rules |
فهرستی از SecurityGroupRule |
خیر |
پاسخها
201ایجاد شد. برمیگرداند:data(SecurityGroup).422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/security-groups \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"provider":"aws","region":"REGION","name":"my-name"}'
تغییر نام فایروال
PATCH /security-groups/{securityGroup}
نام یا توضیحات فایروال را تغییر میدهد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
name |
string | خیر | |
description |
string | خیر |
پاسخها
200موفق
نمونه
curl -X PATCH https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
حذف فایروال
DELETE /security-groups/{securityGroup}
فایروال را نزد ارائهدهنده حذف میکند. ابتدا آن را از همهٔ ماشینها جدا کنید.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
پاسخها
204انجام شد، محتوایی برنگردانده میشود422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X DELETE https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
افزودن قانون فایروال
POST /security-groups/{securityGroup}/rules
یک قانون اضافه میکند: جهت، پروتکل، پورتهای اختیاری و یک محدودهٔ CIDR.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
id |
integer | خیر | |
direction |
string | بله | ingress, egress |
protocol |
string | بله | tcp, udp, icmp, any |
port_min |
integer | خیر | |
port_max |
integer | خیر | |
remote_cidr |
string | بله | |
description |
string | خیر |
پاسخها
200موفق422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID/rules \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"direction":"ingress","protocol":"tcp","remote_cidr":"string"}'
جایگزینی قوانین فایروال
PUT /security-groups/{securityGroup}/rules
همهٔ قوانین فایروال را با فهرست ارسالی جایگزین میکند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
rules |
فهرستی از SecurityGroupRule |
بله |
پاسخها
200موفق422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X PUT https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID/rules \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"rules":[]}'
حذف قانون فایروال
DELETE /security-groups/{securityGroup}/rules/{rule}
یک قانون را از فایروال حذف میکند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
rule |
integer |
پاسخها
200موفق422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X DELETE https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID/rules/RULE_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
اتصال فایروال
POST /security-groups/{securityGroup}/attach
فایروال را به یکی از ماشینهای شما در همان منطقه وصل میکند. از آن پس فقط ترافیکی که قوانینش اجازه میدهند به ماشین میرسد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
order_id |
integer | بله |
پاسخها
200موفق422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID/attach \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"order_id":1}'
جداسازی فایروال
DELETE /security-groups/{securityGroup}/orders/{order}
فایروال را از ماشین جدا میکند. اگر فایروال دیگری نماند، ماشین به گروه پیشفرض و باز ارائهدهنده برمیگردد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
securityGroup |
integer |
order |
integer |
پاسخها
200موفق422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X DELETE https://veneshcloud.ir/api/security-groups/SECURITY_GROUP_ID/orders/ORDER_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
فهرست IPهای شناور یک ماشین
GET /orders/{order}/floating-ips
IPهای شناور متصل یا در حال اتصال به ماشین را برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
order |
integer |
پاسخها
200موفق. برمیگرداند:data(فهرستی ازFloatingIp).
نمونه
curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/floating-ips \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
دریافت قیمت IP شناور
GET /floating-ips/pricing
قیمت یک دورهٔ صورتحساب IP شناور را به معادل دلار و به ریال با نرخ امروز، بههمراه موجودی کیف پول و کافی بودن آن برای یک دوره برمیگرداند. پیش از رزرو نشان دهید.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پاسخها
200موفق. برمیگرداند:data(FloatingIpPricing).
نمونه
curl -X GET https://veneshcloud.ir/api/floating-ips/pricing \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
تمدید IP شناور
POST /floating-ips/{floatingIp}/renew
دورهٔ بعد را همین حالا از کیف پول میپردازد. وقتی IP معوق است یا به تاریخ تمدید نزدیک است مجاز است. اگر موجودی کافی نباشد، 422 با پیام خوانا برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پاسخها
200موفق. برمیگرداند:data(FloatingIp).422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID/renew \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
فهرست IPهای شناور
GET /floating-ips
IPهای شناور شما و وضعیتشان را برمیگرداند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پاسخها
200موفق. برمیگرداند:data(فهرستی ازFloatingIp).
نمونه
curl -X GET https://veneshcloud.ir/api/floating-ips \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
دریافت IP شناور
POST /floating-ips
یک آدرس جدید از ارائهدهنده میگیرد. برای رزرو و اتصال به یک ماشین order_id و در غیر این صورت provider و region بفرستید. ابتدا یک دوره از کیف پول کسر میشود (اگر ارائهدهنده ناموفق باشد بازگردانده میشود)؛ اگر موجودی کافی نباشد 422 برمیگردد. با 202 پاسخ میدهد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
order_id |
integer | خیر | |
provider |
string | خیر | |
region |
string | خیر | |
label |
string | خیر |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد. برمیگرداند:data(FloatingIp).422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/floating-ips \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
برچسب IP شناور
PATCH /floating-ips/{floatingIp}
برچسب IP شناور را تغییر میدهد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
label |
string | خیر |
پاسخها
200موفق
نمونه
curl -X PATCH https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
آزادسازی IP شناور
DELETE /floating-ips/{floatingIp}
آدرس را به ارائهدهنده برمیگرداند. با 202 پاسخ میدهد و پس از آزادسازی از فهرست حذف میشود.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد204انجام شد، محتوایی برنگردانده میشود
نمونه
curl -X DELETE https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
اتصال IP شناور
POST /floating-ips/{floatingIp}/attach
IP شناور آزاد را به یکی از ماشینهای شما در همان منطقه وصل میکند. با 202 پاسخ میدهد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
order_id |
integer | بله |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID/attach \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"order_id":1}'
انتقال IP شناور
POST /floating-ips/{floatingIp}/move
یک IP شناور متصل را به ماشین دیگری از شما در همان منطقه منتقل میکند: ابتدا جدا و سپس به ماشین order_id وصل میشود. با 202 پاسخ میدهد؛ GET /floating-ips را بپرسید. صورتحساب تغییری نمیکند.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
بدنهٔ درخواست (application/json)
| فیلد | نوع | الزامی | مقادیر |
|---|---|---|---|
order_id |
integer | بله |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد404پیدا نشد422خطای اعتبارسنجی یا مجاز نبودن در وضعیت فعلی
نمونه
curl -X POST https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID/move \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"order_id":1}'
جداسازی IP شناور
POST /floating-ips/{floatingIp}/detach
آدرس را از ماشین جدا میکند و همچنان متعلق به شماست. با 202 پاسخ میدهد.
احراز هویت: کلید API یا توکن خود را بهصورت Bearer بفرستید.
پارامترهای مسیر
| فیلد | نوع |
|---|---|
floatingIp |
integer |
پاسخها
202پذیرفته شد، کار در پسزمینه ادامه دارد
نمونه
curl -X POST https://veneshcloud.ir/api/floating-ips/FLOATING_IP_ID/detach \
-H "Authorization: Bearer $VENESH_API_KEY" \
-H "Accept: application/json"
اشیاء
فهرست فیلدهای اشیایی که در بالا برگردانده میشوند.
Capabilities
| فیلد | نوع | مقادیر |
|---|---|---|
provider |
string | |
region |
string | |
features |
object |
FloatingIp
| فیلد | نوع | مقادیر |
|---|---|---|
id |
integer | |
provider |
string | |
region |
string | |
label |
string | |
ip_address |
string | |
status |
string | allocating, available, attaching, attached, detaching, releasing, failed |
order_id |
integer | |
hostname |
string | |
pending_order_id |
integer | |
failure_reason |
string | |
billing |
object | |
created_at |
string |
FloatingIpPricing
| فیلد | نوع | مقادیر |
|---|---|---|
usd_equivalent_price |
string | |
period_days |
integer | |
rial |
integer | |
fx_rate_id |
integer | |
as_of |
string | |
wallet_balance_usd |
string | |
wallet_balance_rial |
integer | |
sufficient_balance |
boolean | |
auto_renew |
boolean |
LiveInstance
| فیلد | نوع | مقادیر |
|---|---|---|
status |
string | |
provider_status |
string | |
launched_at |
string | |
outgoing_traffic_bytes |
integer | |
plan |
string | |
ipv4_address |
string | |
ipv6_address |
string | |
addresses |
فهرستی از object |
SecurityGroup
| فیلد | نوع | مقادیر |
|---|---|---|
id |
integer | |
provider |
string | |
region |
string | |
name |
string | |
description |
string | |
external_id |
string | |
rules |
فهرستی از SecurityGroupRule |
|
orders |
فهرستی از object | |
created_at |
string |
SecurityGroupRule
| فیلد | نوع | مقادیر |
|---|---|---|
id |
integer | |
direction |
string | ingress, egress |
protocol |
string | tcp, udp, icmp, any |
port_min |
integer | |
port_max |
integer | |
remote_cidr |
string | |
description |
string |