Examples of API use
API functions of DCImanager 6 can be used for integration with the billing system. Before use, log in to DCImanager 6 and get the code of the current user session. Read more in API guide.
To access API, use the URL in the form: https://domain.com/api/dci/v3/function/
domain.com — DCImanager 6 server public IP address or domain name;
function — function to be executed in DCImanager 6.
Information about servers
Number of free servers and their configuration
curl -X GET 'https://domain.com/api/dci/v3/server/configuration'-H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
JSON object in the following form will be delivered in return:
{
"list": [
{
"configuration": "i9-9900K-64Gb-2x1024NVMe",
"free_server_count": 42
}
]
}
configuration — server configuration;
free_server_count — number of free servers with this configuration.
List of servers
curl -X GET 'https://domain.com/api/dci/v3/server' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
JSON object in the following form will be delivered in return:
{ "list": [ { "operation": { "id": 0, "status": "string", "status_info": {}, "progress_info": [ {} ] }, "domain": "string", "id": 0, "os_template": { "id": 0, "name": "string", "tags": [ "string" ] }, "hardware_info": {}, "perform_info": {}, "configuration": "string", "settings": { "efi": true }, "state": "suspending", "state_info": "string", "ip": [ { "domain": "string", "family": "ipv4", "gateway": "string", "id": 0, "name": "string", "network": "string", "status": "allocating", "status_info": {} } ], "switch_connection": [ { "id": 0, "switch": 0, "connection_id": 0, "description": "string", "admin_status": "up", "oper_status": "up", "do_not_collect_traffic": true, "is_ipmi_connection": true } ], "pdu_connection": { "port_id": 0, "port_identity": "string", "pdu_id": 0, "pdu_name": "string", "connection_id": 0, "power_status": "up" }, "ipmi": { "address": "string", "id": 0, "status": "on", "status_info": {}, "type": "IPMI v1.5/v2", "web_url": "string" }, "intel_amt": { "address": "string", "id": 0, "status": "on", "status_info": {}, "protocol": "http" }, "location": { "geolocation": "1st Street, 25", "id": 0, "name": "string", "userspace": 0 }, "location_id": 0, "mac": "string", "main_ipv4": 0, "main_ipv6": 0, "name": "string", "platform": { "id": 0, "name": "string", "size": 0, "type": "string" }, "rack": { "id": 0, "name": "string", "size": 0 }, "unit": 0, "chassis": { "id": 0, "name": "string", "size": 0, "server_slot_count": 0 }, "slot": 0, "owner": { "id": 0, "email": "string" }, "owner_email": "string", "diag_error": [ { "type": "string", "info": "string" } ], "is_new": true } ] }
operation — operation running on server:
- id — operation ID;
- status — operation status;
- progress_info — progress info;
domain — server domain name;
id — server ID;
os_template — server operating system (OS) template info:
- id — template ID;
- name — template name;
- tags —
hardware_info — server hardware info;
configuration — server configuration;
state — server state. Possible values:
- suspending — server is entering suspended mode;
- suspended — server is suspended;
- suspend_error — server suspend error;
- resuming — server activity is resuming;
- ok — server available for operation;
- resume_error — server resume error;
state_info — server status info;
ip — server IP addresses info:
- domain — domain name;
- family — IP version. Possible values: ipv4, ipv6;
- gateway — gateway IP address;
- id — IP address ID;
- name — server IP address;
- network — network address;
- status — IP address status. Possible values:
- allocating — IP address allocation task has been created;
- in_progress — IP address change task has been created;
- deleting — IP address deletion task has been created;
- ok — IP address was allocated successfully;
- fail — task completion failed;
- allocation_fail — IP address allocation failed;
- status_info — IP address status info;
switch_connection — info on server connection switch ports:
- id — port ID;
- switch — switch ID;
- connection_id — connection ID;
- description — port description;
- admin_status — status of switch port managed by admin. Possible values:
- up — port is active;
- down — port is inactive;
- testing — port is in test status;
- unknown — port status unknown.
- oper_status — switch port connection status. Possible values:
- up — connection is active;
- down — connection is inactive;
- testing — port is in test status;
- unknown — connection status unknown;
pdu_connection — PDU server connection port info:
- port_id — port ID;
- port_identity — PDU port ID;
- pdu_id — PDU ID;
- pdu_name — PDU name;
- connection_id — connection ID;
- power_status — port status. Possible values:
- up — port is active;
- down — port is inactive;
- unknown — port status unknown;
ipmi — IPMI info:
- address — IPMI IP address;
- id — IPMI ID;
- status — IPMI status. Possible values:
- on — active;
- off — inactive;
- unknown — unknown;
- in_progress — in progress;
- status_type — IPMI status type;
- type — IPMI type. Possible values:
- IPMI v1.5/v2;
- IPMI v2(lanplus);
- web_url — IPMI web interface URL;
location — location info:
- geolocation — location position;
- id — location ID;
- name — location name;
- userspace — location userspace ID in IPmanager;
location_id — location ID;
mac — server's MAC address;
main_ipv4 — server's main IPv4 address. Used to install OS;
platform — server platform info:
- id — platform ID;
- name — platform name;
- size — platform size;
- type — platform type;
rack — server rack info:
- id — rack ID;
- name — rack name;
- size — rack size;
unit — unit number in rack.
Server info by ID
curl -X GET 'https://domain.com/api/dci/v3/server/server_id' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{ "operation": { "id": 0, "status": "string", "progress_info": [ {} ] }, "domain": "string", "id": 0, "os_template": { "id": 0, "name": "string", "tags": [ "string" ] }, "hardware_info": {}, "configuration": "string", "state": "suspending", "state_info": "string", "ip": [ { "domain": "string", "family": "ipv4", "gateway": "string", "id": 0, "name": "string", "network": "string", "status": "allocating", "status_info": {} } ], "switch_connection": [ { "id": 0, "switch": 0, "connection_id": 0, "description": "string", "admin_status": "up", "oper_status": "up" } ], "pdu_connection": { "port_id": 0, "port_identity": "string", "pdu_id": 0, "pdu_name": "string", "connection_id": 0, "power_status": "up" }, "ipmi": { "address": "string", "id": 0, "status": "on", "status_info": {}, "type": "IPMI v1.5/v2", "web_url": "string" }, "location": { "geolocation": "string", "id": 0, "name": "string", "userspace": 0 }, "location_id": 0, "mac": "string", "main_ipv4": 0, "name": "string", "platform": { "id": 0, "name": "string", "size": 0, "type": "string" }, "rack": { "id": 0, "name": "string", "size": 0 }, "unit": 0 }
operation — operation running on server:
- id — operation ID;
- status — operation status;
- progress_info — progress info;
domain — server domain name;
id — server ID;
os_template — server operating system (OS) template info:
- id — template ID;
- name — template name;
hardware_info — server hardware info;
configuration — server configuration;
state — server state. Possible values:
- suspending — server is entering suspended mode;
- suspended — server is suspended;
- suspend_error — server suspend error;
- resuming — server activity is resuming;
- ok — server available for operation;
- resume_error — server resume error;
state_info — server status info;
ip — server IP addresses info:
- domain — domain name;
- family — IP version. Possible values: ipv4, ipv6;
- gateway — gateway IP address;
- id — IP address ID;
- name — server IP address;
- network — network address;
- status — IP address status. Possible values:
- allocating — IP address allocation task has been created;
- in_progress — IP address change task has been created;
- deleting — IP address deletion task has been created;
- ok — IP address was allocated successfully;
- fail — task completion failed;
- allocation_fail — IP address allocation failed;
- status_info — IP address status info;
switch_connection — server connection switch ports info:
- id — port ID;
- switch — switch ID;
- connection_id — connection ID;
- description — port description;
- admin_status — status of switch port managed by admin. Possible values:
- up — port is active;
- down — port is inactive;
- testing — port is in test status;
- unknown — port status unknown.
- oper_status — switch port connection status. Possible values:
- up — connection is active;
- down — connection is inactive;
- testing — port is in test status;
- unknown — connection status unknown;
pdu_connection — PDU server connection port info:
- port_id — port ID;
- port_identity — PDU port ID;
- pdu_id — PDU ID;
- pdu_name — PDU name;
- connection_id — connection ID;
- power_status — port status. Possible values:
- up — port is active;
- down — port is inactive;
- unknown — port status unknown;
ipmi — IPMI info:
- address — IPMI IP address;
- id — IPMI ID;
- status — IPMI status. Possible values:
- on — active;
- off — inactive;
- unknown — unknown;
- in_progress — in progress;
- type — IPMI type. Possible values:
- IPMI v1.5/v2;
- IPMI v2(lanplus);
- web_url — IPMI web interface URL;
location — location info:
- geolocation — location position;
- id — location ID;
- name — location name;
- userspace — location userspace ID in IPmanager;
location_id — location ID;
mac — server's MAC address;
main_ipv4 — server's main IPv4 address. Used to install OS;
platform — server platform info:
- id — platform ID;
- name — platform name;
- size — platform size;
- type — platform type;
rack — server rack info:
- id — rack ID;
- name — rack name;
- size — rack size;
unit — unit number in rack.
Operations with users
List of all users
curl -X GET 'https://domain.com/api/dci/v3/user' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
JSON object in the following form will be delivered in return:
{
"list": [
{
"id": 0,
"email": "string",
"server_count": 0,
"roles": "[@user]",
"vlans_per_user": 5
}
]
}
id — user ID;
email — user email for authorization;
server_count — number of user owned servers;
roles — list of user roles. Possible value of list elements: @admin — administrator, @user — user;
vlans_per_user — the number of VLANs available to the user
Adding a user
curl -X POST 'https://domain.com/api/dci/v3/user' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{"email":"admin@example.com","full_name":"name","password":"pass","phone_number":"phone","role":"level"}' | jq
admin@example.com — authorization email;
name — user full name;
pass — user password;
phone — user phone;
level — user role. Possible values: @admin — administrator, @user — user.
JSON object in the following form will be delivered in return:
{
"id": 0
}
User assignment as server owner
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/owner' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{"owner":user_id}' | jq
server_id — server ID;
user_id — user ID.
JSON object in the following form will be delivered in return:
{
"id": 0
}
Server release
curl -X DELETE 'https://domain.com/api/dci/v3/server/server_id/owner' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"id": 0
}
Operations with switch ports
Activate server connection ports
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/resume' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{}'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Deactivate server connection ports
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/suspend' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{}'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Operations with server power
Power on
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/power_on' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{}'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Power off
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/power_off' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{}'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Reboot
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/power_reset' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{}'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Operations with IP addresses
Getting IP addresses list
curl -X GET 'https://domain.com/api/dci/v3/ip' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
JSON object in the following form will be delivered in return:
{
"list": [
{
"domain": "string",
"family": "ipv4",
"gateway": "string",
"id": 0,
"name": "string",
"network": "string",
"server": "string",
"status": "allocating",
"status_info": {}
}
]
}
domain — domain name of the server allocated with the IP address;
family — IP version. Possible values: ipv4, ipv6;
gateway — gateway IP address;
id — IP address ID;
name — IP address;
network — IP address network;
server — server allocated with the IP address;
status — IP address status. Possible values:
- allocating — IP address allocation task has been created;
- in_progress — IP address change task has been created;
- deleting — IP address deletion task has been created;
- ok — IP address was allocated successfully;
- fail — task completion failed;
- allocation_fail — IP address allocation failed;
status_info — IP address status info.
Getting server IP addresses
curl -X GET 'https://domain.com/api/dci/v3/server/server_id/ip' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
server_id — server ID.
JSON object in the following form will be delivered in return:
{
"list": [
{
"domain": "string",
"family": "ipv4",
"gateway": "string",
"id": 0,
"name": "string",
"network": "string",
"server": "string",
"status": "allocating",
"status_info": {}
}
]
}
domain — server domain name;
family — IP version. Possible values: ipv4, ipv6;
gateway — gateway IP address;
id — IP address ID;
name — IP address;
network — IP address network;
server — server allocated with the IP address;
status — IP address status. Possible values:
- allocating — IP address allocation task has been created;
- in_progress — IP address change task has been created;
- deleting — IP address deletion task has been created;
- ok — IP address was allocated successfully;
- fail — task completion failed;
- allocation_fail — IP address allocation failed;
status_info — IP address status info.
Getting networks list
curl -X GET 'https://domain.com/api/ip/v3/ipnet' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
JSON object in the following form will be delivered in return:
{
"list": [
{
"id": 0,
"name": "string",
"family": 2,
"mask": 0,
"gateway": "string",
"userspace": 0,
"vlan": "string",
"note": "string",
"size": "string",
"using_ip": "string",
"total_ip": "string"
}
]
}
id — network ID;
userspace — userspace ID in IPmanager.
Getting pools list
curl -X GET 'https://domain.com/api/ip/v3/ippool' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true'| jq
JSON object in the following form will be delivered in return:
{
"list": [
{
"id": 0,
"name": "string",
"userspace": 0,
"note": "string",
"is_public": "string",
"using_ip": "string",
"using_ipv4": "string",
"using_ipv6": "string",
"total_ip": "string",
"total_ipv4": "string",
"total_ipv6": "string"
}
]
}
id — pool ID;
userspace — userspace ID in IPmanager.
IP address allocation to server
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/ip' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{"domain":"domain_name","family":"version","ip_name":"address","ip_net":net,"ip_pool":pool,"set_as_main_ipv4":main_ipv4,"userspace":userspace_id}" | jq
server_id — server ID;
domain_name — server domain name;
version — IP version. Possible values: ipv4, ipv6;
address — IP address;
net — IP address network ID;
pool — IP address pool ID;
main_ipv4 — set at the main IPv4 address. Possible values: true, false;
userspace_id — userspace ID in IPmanager.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Deleting IP address from server
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/ip/ip_id' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{}'| jq
server_id — server ID;
ip_id — IP address ID.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Operations with server
Server diagnostics
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/operation_diag' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{"setup_ipmi":false,"ipmi_pool":0,"os_template_id":0,"clear_hdd":"none"}' | jq
server_id — server ID;
setup_ipmi — whether you need to configure IPMI. Optional parameter. Possible values:
- true - yes;
- false - no;
ipmi_pool — id of the pool from which you want to allocate an IP address for IPMI. Optional parameter;
os_template_id — diagnostics template ID;
clear_hdd — HDD clear type. Possible values:
- none — no HDD clearing;
- simple — quick HDD clearing;
- full — full HDD clearing.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
Server disks clearing
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/operation_clear_hdd' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{"clear_hdd":"none"}' | jq
server_id — server ID;
clear_hdd — HDD clear type. Possible values:
- none — no HDD clearing;
- simple — quick HDD clearing;
- full — full HDD clearing.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}
OS installation
curl -X POST 'https://domain.com/api/dci/v3/server/server_id/operation_os' -H 'Cookie: ses6=E6900A56BE7DF0FB28ED7BE7' -H 'x-xsrf-token: E6900A56BE7DF0FB28ED7BE7' -H 'isp-box-instance: true' -d '{"hdd_raid":"raid","os_template_id":template_id,"password":"pass","ssh_pub_keys":["ssh_keys"]}' | jq
server_id — server ID;
raid — RAID. Possible values: no_raid, raid_0, raid_1, raid_5, raid_10;
template_id — OS template ID;
pass — server admin password;
ssh_keys — list of public SSH keys.
JSON object in the following form will be delivered in return:
{
"id": 0,
"task": 0
}