{ "swagger": "2.0", "info": { "description": "Our HTTP [REST API](https:\/\/en.wikipedia.org\/wiki\/Representational_state_transfer) allows you to manage vital details of your account and services in client portal. [JSON](http:\/\/www.json.org\/) is used for all API returns.", "version": "4.20240509", "title": "XSServer GmbH User API" }, "host": "cp.xsserver.gmbh", "basePath": "\/api", "tags": [ { "name": "Clientarea" }, { "name": "Billing" }, { "name": "Support" }, { "name": "Domains" }, { "name": "DNS" }, { "name": "Services" } ], "schemes": [ "https" ], "paths": { "login": { "post": { "tags": [ "Clientarea" ], "summary": "Login", "description": "Generate new authorization token", "operationId": "getToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "username", "type": "string", "in": "query", "description": "Your acount email address " }, { "name": "password", "type": "string", "in": "query", "description": "Account password " } ], "responses": { "200": { "description": "`Success`" } } } }, "logout": { "post": { "tags": [ "Clientarea" ], "summary": "Logout", "description": "Invalidate authorization token", "operationId": "dropToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "token": { "post": { "tags": [ "Clientarea" ], "summary": "Refresh Token", "description": "Generate new authorization token using refresh token", "operationId": "refreshToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "refresh_token", "type": "string", "in": "query", "description": "Refresh token previously obtained from `POST \/login`" } ], "responses": { "200": { "description": "`Success`" } } } }, "revoke": { "post": { "tags": [ "Clientarea" ], "summary": "Revoke Token", "description": "Invalidate authorization and refresh token.\nPass refresh token or call this method with valid access token", "operationId": "revokeToken", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "refresh_token", "type": "string", "in": "query" } ], "responses": { "200": { "description": "`Success`" } } } }, "details": { "get": { "tags": [ "Clientarea" ], "summary": "User Details", "description": "Return registration details for my account", "operationId": "getDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"client\": {\n \"id\": \"26\",\n \"email\": \"api@example.com\",\n \"lastlogin\": \"2016-12-30 12:24:28\",\n \"ip\": \"172.100.2.1\",\n \"host\": \"hostname\",\n \"firstname\": \"Joe\",\n \"lastname\": \"Doe\",\n \"companyname\": \"\",\n \"address1\": \"Pretty View Lane\",\n \"address2\": \"3294\",\n \"city\": \"Santa Rosa\",\n \"state\": \"California\",\n \"postcode\": \"95401\",\n \"country\": \"US\",\n \"phonenumber\": \"+1.24123123\"\n }\n}" } } } }, "logs": { "get": { "tags": [ "Clientarea" ], "summary": "User Logs", "description": "Returns logs from history", "operationId": "getLogs", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "affiliates\/summary": { "get": { "tags": [ "Clientarea" ], "summary": "Get Affiliate summary", "description": "", "operationId": "affiliates_summary", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "affiliates\/campaigns": { "get": { "tags": [ "Clientarea" ], "summary": "Get Affiliate campaigns", "description": "", "operationId": "affiliates_campaigns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "affiliates\/commissions": { "get": { "tags": [ "Clientarea" ], "summary": "Get Affiliate commissions", "description": "", "operationId": "affiliates_commissions", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "affiliates\/payouts": { "get": { "tags": [ "Clientarea" ], "summary": "Get Affiliate payouts", "description": "", "operationId": "affiliates_payouts", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "affiliates\/vouchers": { "get": { "tags": [ "Clientarea" ], "summary": "Get Affiliate vouchers", "description": "", "operationId": "affiliates_vouchers", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "affiliates\/commissionplans": { "get": { "tags": [ "Clientarea" ], "summary": "Get Affiliate commission plans", "description": "", "operationId": "affiliates_commission_plans", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "balance": { "get": { "tags": [ "Billing" ], "summary": "Account balance", "description": "Get current account balance(unpaid invoices total), account credit", "operationId": "getBalance", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n {\n \"success\": true,\n \"details\": {\n \"currency\": \"USD\",\n \"acc_balance\": \"123456.55\",\n \"acc_credit\": \"0.00\"\n }\n }\n}" } } } }, "invoice": { "get": { "tags": [ "Billing" ], "summary": "List Invoices", "description": "List all invoices under my account", "operationId": "getInvoices", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"invoices\": [\n {\n \"id\": \"308976\",\n \"date\": \"2016-12-30\",\n \"dateorig\": \"2016-12-30\",\n \"duedate\": \"2017-01-06\",\n \"paybefore\": \"2017-01-06\",\n \"total\": \"19.65\",\n \"datepaid\": \"2016-12-30 12:40:47\",\n \"status\": \"Paid\",\n \"merge_id\": null,\n \"number\": \"2016\\\/12\\\/1\",\n \"currency\": \"USD\"\n }\n ]\n}" } } } }, "invoice\/@id": { "get": { "tags": [ "Billing" ], "summary": "Invoice Details", "description": "Get invoice details", "operationId": "getInvoiceDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"invoice\": {\n \"id\": \"308976\",\n \"status\": \"Paid\",\n \"date\": \"2016-12-30\",\n \"duedate\": \"2017-01-06\",\n \"paybefore\": \"2017-01-06\",\n \"datepaid\": \"2016-12-30 12:40:47\",\n \"subtotal\": 16.24,\n \"credit\": 0,\n \"tax\": 3.41,\n \"taxrate\": 21,\n \"tax2\": 0,\n \"taxrate2\": 0,\n \"taxexempt\": \"0\",\n \"total\": 19.65,\n \"rate\": 1,\n \"rate2\": 0,\n \"rate3\": 1,\n \"notes\": \"\",\n \"items\": [\n {\n \"id\": \"12305\",\n \"invoice_id\": \"308976\",\n \"type\": \"Other\",\n \"item_id\": \"0\",\n \"description\": \"Example Service\",\n \"amount\": \"15.00\",\n \"taxed\": \"1\",\n \"qty\": \"1.00\",\n \"linetotal\": \"15.00\"\n },\n {\n \"id\": \"12309\",\n \"invoice_id\": \"308976\",\n \"type\": \"Other\",\n \"item_id\": \"-2\",\n \"description\": \"PayPal Payment Fee\",\n \"amount\": \"1.24\",\n \"taxed\": \"1\",\n \"qty\": \"1.00\",\n \"linetotal\": \"1.24\"\n }\n ],\n \"client\": {\n \"id\": \"26\",\n \"email\": \"api@example.com\",\n \"firstname\": \"Joe\",\n \"lastname\": \"Doe\",\n \"companyname\": \"\",\n \"address1\": \"Pretty View Lane\",\n \"address2\": \"3194\",\n \"city\": \"Santa Rosa\",\n \"state\": \"California\",\n \"postcode\": \"95401\",\n \"country\": \"US\",\n \"phonenumber\": \"+1.24123123\"\n },\n \"number\": \"2016\\\/12\\\/1\",\n \"currency\": \"USD\"\n }\n}" } } } }, "invoice\/@id\/credit": { "post": { "tags": [ "Billing" ], "summary": "Apply credit", "description": "Apply account credit to invoice", "operationId": "applyCreditToInvoice", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "amount", "type": "number", "in": "query", "description": "Optional credit amount, when no value is specified maximum amount to fully pay the invoice will be used" } ], "responses": { "200": { "description": "`Success`" } } } }, "tickets": { "get": { "tags": [ "Support" ], "summary": "List Tickets", "description": "List support tickets under my account", "operationId": "getTickets", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\n \"tickets\": [\n {\n \"client_read\": \"1\",\n \"ticket_number\": \"736633\",\n \"date\": \"2016-12-30 12:48:13\",\n \"deptname\": \"Billing\",\n \"subject\": \"Lore Ipsum\",\n \"status\": \"Open\"\n }\n ]\n}" } } }, "post": { "tags": [ "Support" ], "summary": "Create Ticket", "description": "Submit new ticket", "operationId": "createTicket", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "dept_id", "type": "integer", "in": "query", "description": "Department id " }, { "name": "subject", "type": "string", "in": "query", "description": "Ticket subject " }, { "name": "body", "type": "string", "in": "query", "description": "Ticket message " } ], "responses": { "200": { "description": "`Success`" } } } }, "tickets\/@number": { "get": { "tags": [ "Support" ], "summary": "Ticket details", "description": "Get ticket details, including all replies", "operationId": "getTicketDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"ticket\": {\n \"date\": \"2016-12-30 12:48:13\",\n \"ticket_number\": \"736633\",\n \"name\": \"Joe Doe\",\n \"email\": \"api@example.com\",\n \"subject\": \"Lore Ipsum\",\n \"body\": \"Donec sollicitudin molestie malesuada. \\r\\nSed porttitor lectus nibh. Vivamus magna justo, \\r\\nlacinia eget consectetur sed, convallis at tellus.\",\n \"status\": \"Answered\",\n \"client_read\": \"1\",\n \"deptname\": \"Billing\"\n },\n \"replies\": [\n {\n \"id\": \"929\",\n \"name\": \"Suppport Staff\",\n \"date\": \"2016-12-30 12:51:04\",\n \"body\": \"Vestibulum ac diam sit amet quam \\r\\nvehicula elementum sed sit amet dui. \\r\\nPraesent sapien massa\\r\\n\\r\\n-- Maecenas efficitur elit est --\",\n \"status\": \"Sent\",\n \"type\": \"Admin\"\n }\n ]\n}" } } }, "post": { "tags": [ "Support" ], "summary": "Create Reply", "description": "Reply to ticket", "operationId": "createTicketReply", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true }, { "name": "body", "type": "string", "in": "query", "description": "Reply message " } ], "responses": { "200": { "description": "`Success`" } } } }, "tickets\/@number\/open": { "put": { "tags": [ "Support" ], "summary": "Re-open ticket", "description": "Try to re-open closed ticket", "operationId": "reopenTicket", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "tickets\/@number\/close": { "put": { "tags": [ "Support" ], "summary": "Close ticket", "description": "Send request to close a ticket", "operationId": "closeTicket", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "number", "type": "integer", "in": "path", "description": "Ticket number", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "ticket\/departments": { "get": { "tags": [ "Support" ], "summary": "List ticket departments", "description": "Get the list of ticket departments", "operationId": "listTicketDepartments", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "`Success`" } } } }, "domain": { "get": { "tags": [ "Domains" ], "summary": "List Domains", "description": "List domains under your account", "operationId": "domain", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [], "responses": { "200": { "description": "```json\n\r{\r\n \"domains\": [\r\n {\r\n \"id\": \"47\",\r\n \"name\": \"testname.com\",\r\n \"expires\": \"2017-12-30\",\r\n \"recurring_amount\": \"15.00\",\r\n \"date_created\": \"2016-12-30\",\r\n \"status\": \"Active\",\r\n \"period\": \"1\",\r\n \"autorenew\": \"1\",\r\n \"daytoexpire\": \"365\"\r\n }\r\n ]\r\n}" } } } }, "domain\/@id": { "get": { "tags": [ "Domains" ], "summary": "Domain details", "description": "Get domain details", "operationId": "domainDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\r\n \"details\": {\r\n \"id\": \"47\",\r\n \"name\": \"testname.com\",\r\n \"date_created\": \"2016-12-30\",\r\n \"firstpayment\": \"10.00\",\r\n \"recurring_amount\": \"15.00\",\r\n \"period\": \"1\",\r\n \"expires\": \"2017-12-30\",\r\n \"status\": \"Active\",\r\n \"next_due\": \"2017-12-30\",\r\n \"next_invoice\": \"2017-11-30\",\r\n \"idprotection\": \"0\",\r\n \"nameservers\": [\r\n \"ns1.example.com\",\r\n \"ns2.example.com\",\r\n \"ns3.example.com\",\r\n \"ns4.example.com\"\r\n ],\r\n \"autorenew\": \"1\"\r\n }\r\n}" } } } }, "domain\/name\/@name": { "get": { "tags": [ "Domains" ], "summary": "Domain details by name", "description": "Get domain details by name", "operationId": "domainNameDetails", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "name", "type": "string", "in": "path", "description": "Domain name", "required": true } ], "responses": { "200": { "description": "```json\n\r{\r\n \"details\": [\r\n {\r\n \"id\": \"47\",\r\n \"name\": \"testname.com\",\r\n \"date_created\": \"2016-12-30\",\r\n \"firstpayment\": \"10.00\",\r\n \"recurring_amount\": \"15.00\",\r\n \"period\": \"1\",\r\n \"expires\": \"2017-12-30\",\r\n \"status\": \"Active\",\r\n \"next_due\": \"2017-12-30\",\r\n \"next_invoice\": \"2017-11-30\",\r\n \"idprotection\": \"0\",\r\n \"nameservers\": [\r\n \"ns1.example.com\",\r\n \"ns2.example.com\",\r\n \"ns3.example.com\",\r\n \"ns4.example.com\"\r\n ],\r\n \"autorenew\": \"1\"\r\n },\r\n {\r\n \"id\": \"48\",\r\n \"name\": \"testname.com\",\r\n \"date_created\": \"2016-05-30\",\r\n \"firstpayment\": \"10.00\",\r\n \"recurring_amount\": \"15.00\",\r\n \"period\": \"1\",\r\n \"expires\": \"2017-05-30\",\r\n \"status\": \"Expired\",\r\n \"next_due\": \"2017-05-30\",\r\n \"next_invoice\": \"2017-04-30\",\r\n \"idprotection\": \"0\",\r\n \"nameservers\": [\r\n \"ns1.example.com\",\r\n \"ns2.example.com\",\r\n \"ns3.example.com\",\r\n \"ns4.example.com\"\r\n ],\r\n \"autorenew\": \"1\"\r\n },\r\n ]\r\n}" } } } }, "domain\/@id\/ns": { "put": { "tags": [ "Domains" ], "summary": "Update domain nameservers", "description": "Change domain nameservers, if `$nameservers` is left empty, default namesevers will be used", "operationId": "domain_ns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "nameservers", "type": "array", "in": "query", "description": "List of nameservers to use", "items": { "type": "string" } } ], "responses": { "200": { "description": "`Success`" } } } }, "domain\/@id\/dns": { "get": { "tags": [ "Domains" ], "summary": "DNS RecordsDNS Records", "description": "List DNS records", "operationId": "domain_dns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true } ], "responses": { "200": { "description": "```json\n\r{\r\n \"records\": [\r\n {\r\n \"id\": 1,\r\n \"name\": \"test\",\r\n \"ttl\": 0,\r\n \"priority\": 0,\r\n \"type\": \"A\",\r\n \"content\": \"100.100.10.1\"\r\n }\r\n ]\r\n}" } } }, "post": { "tags": [ "Domains" ], "summary": "Create DNS Records", "description": "Add a new DNS record", "operationId": "domain_dns_add", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Reord name" }, { "name": "type", "type": "string", "in": "query", "description": "Reord type" }, { "name": "priority", "type": "string", "in": "query", "description": "Reord priority" }, { "name": "content", "type": "string", "in": "query", "description": "Reord content eg. IP addres for A records" } ], "responses": { "200": { "description": "`Success`" } } } }, "domain\/@id\/dns\/@index": { "put": { "tags": [ "Domains" ], "summary": "Update DNS Records", "description": "Change a DNS record", "operationId": "domain_dns_upd", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "record_id", "type": "integer", "in": "path", "description": "Recod index", "required": true }, { "name": "name", "type": "string", "in": "query", "description": "Record name" }, { "name": "type", "type": "string", "in": "query", "description": "Record type" }, { "name": "priority", "type": "string", "in": "query", "description": "Record priority" }, { "name": "content", "type": "string", "in": "query", "description": "Record content eg. IP address for A records" } ], "responses": { "200": { "description": "`Success`" } } }, "delete": { "tags": [ "Domains" ], "summary": "Remove DNS Records", "description": "Remove a DNS record", "operationId": "domain_dns_del", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Domain id", "required": true }, { "name": "record_id", "type": "integer", "in": "path", "description": "Recod index", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@service_id\/dns": { "get": { "tags": [ "DNS" ], "summary": "List DNS for service", "description": "Returns a list of DNS zones under the service", "operationId": "dns_list_zones", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "service_id", "type": "integer", "in": "path", "description": "Service ID", "required": true } ], "responses": { "200": { "description": "```json\n\r{\n \"error\": [\n \"invalid method\"\n ]\n}" } } } }, "service\/@id\/ip": { "get": { "tags": [ "Services" ], "summary": "IP Addresses", "description": "List Service IP Addresses", "operationId": "ip", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service ID", "required": true } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@id\/rdns": { "get": { "tags": [ "Services" ], "summary": "Reverse DNS", "description": "Get reverse DNS entries for service's IP addresses", "operationId": "rdns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service ID", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "post": { "tags": [ "Services" ], "summary": "Update rDNS", "description": "Update reverse DNS entries service's IP addresses", "operationId": "uprdns", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service ID", "required": true }, { "name": "ipaddress", "type": "array", "in": "query", "description": "Use Ip address as parameter key and hostname as value", "items": { "type": "string" } } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@id\/pdu": { "get": { "tags": [ "Services" ], "summary": "PDU ports", "description": "List PDU ports assigned to service", "operationId": "outlets", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "description": "Service id", "required": true } ], "responses": { "200": { "description": "```json\n\r" } } } }, "service\/@id\/vms\/@vmid\/ips": { "get": { "tags": [ "Services" ], "summary": "List IPs", "description": "List virtual machine IPs", "operationId": "vm_interface_list_ip", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "type", "type": "", "in": "query", "description": "string ipv4 or ipv6" }, { "name": "iface", "type": "", "in": "query", "description": "int Interface number [optional]" }, { "name": "bridge", "type": "", "in": "query", "description": "string Bridge name [optional, ignored if interface provided]" } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@id\/vms\/@vmid\/ippool": { "get": { "tags": [ "Services" ], "summary": "List IPs", "description": "List virtual machine IPs", "operationId": "vm_interface_list_iplist", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "iface", "type": "", "in": "query", "description": "int Interface number [optional]" }, { "name": "bridge", "type": "", "in": "query", "description": "string Bridge name [optional, ignored if interface provided]" } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@id\/vms\/@vmid\/ippool\/@pool": { "post": { "tags": [ "Services" ], "summary": "Assign IPs", "description": "Assign new IP for network interface.", "operationId": "vm_interface_allocate_ip", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "pool", "type": "", "in": "path", "description": "string|int List ID to allocate new IP from", "required": true }, { "name": "type", "type": "", "in": "query", "description": "string ipv4 or ipv6" }, { "name": "iface", "type": "", "in": "query", "description": "int Interface number" } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@id\/vms\/@vmid\/interfaces": { "get": { "tags": [ "Services" ], "summary": "List VM Network Interfaces", "description": "Get network Interfaces assigned to virtual servers", "operationId": "vm_interface_list", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "post": { "tags": [ "Services" ], "summary": "Add Network Interface", "description": "Add new network interface to VM", "operationId": "vm_interface_create", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "firewall", "type": "", "in": "query", "description": "int Enable or disable firewall (may require specific permissions)" }, { "name": "ipv4", "type": "", "in": "query", "description": "int[] List of IP v4 IDs" }, { "name": "ipv6", "type": "", "in": "query", "description": "int[] List of IP v6 IDs" } ], "responses": { "200": { "description": "`Success`" } } } }, "service\/@id\/vms\/@vmid\/interfaces\/@iface": { "get": { "tags": [ "Services" ], "summary": "Get Network Interfaces", "description": "Get network Interface details", "operationId": "vm_interface_details", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "iface", "type": "", "in": "path", "description": "string Interface name or id, ie '0' or 'net0'", "required": true } ], "responses": { "200": { "description": "`Success`" } } }, "put": { "tags": [ "Services" ], "summary": "Update Network Interfaces", "description": "Update network interface details", "operationId": "vm_interface_update", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "iface", "type": "", "in": "path", "description": "int Interface number", "required": true }, { "name": "firewall", "type": "", "in": "query", "description": "int Enable or disable firewall (may require specific permissions)" }, { "name": "ipv4", "type": "", "in": "query", "description": "int[] List of IP v4 IDs" }, { "name": "ipv6", "type": "", "in": "query", "description": "int[] List of IP v6 IDs" } ], "responses": { "200": { "description": "`Success`" } } }, "delete": { "tags": [ "Services" ], "summary": "Remove Network Interface", "description": "Remove network interface from VM", "operationId": "vm_interface_remove", "consumes": [ "application\/json" ], "produces": [ "application\/json" ], "parameters": [ { "name": "id", "type": "integer", "in": "path", "required": true }, { "name": "vmid", "type": "integer", "in": "path", "required": true }, { "name": "iface", "type": "string", "in": "path", "required": true }, { "name": "list", "type": "", "in": "query", "description": "string|int List to allocate new IP from" } ], "responses": { "200": { "description": "`Success`" } } } } }, "securityDefinitions": { "http": { "type": "basic" } }, "definitions": { "Clientarea": { "type": "object", "properties": { "username": { "type": "string", "description": "Your acount email address " }, "password": { "type": "string", "description": "Account password " }, "refresh_token": { "type": "string" } } }, "Billing": { "type": "object", "properties": { "id": { "type": "integer" }, "amount": { "type": "number", "description": "Optional credit amount, when no value is specified maximum amount to fully pay the invoice will be used" } } }, "Support": { "type": "object", "properties": { "number": { "type": "integer", "description": "Ticket number" }, "dept_id": { "type": "integer", "description": "Department id " }, "subject": { "type": "string", "description": "Ticket subject " }, "body": { "type": "string", "description": "Reply message " } } }, "Domains": { "type": "object", "properties": { "id": { "type": "integer", "description": "Domain id" }, "name": { "type": "string", "description": "Record name" }, "nameservers": { "type": "array", "items": { "type": "string" }, "description": "List of nameservers to use" }, "type": { "type": "string", "description": "Record type" }, "priority": { "type": "string", "description": "Record priority" }, "content": { "type": "string", "description": "Record content eg. IP address for A records" }, "record_id": { "type": "integer", "description": "Recod index" } } }, "DNS": { "type": "object", "properties": { "service_id": { "type": "integer", "description": "Service ID" } } }, "Services": { "type": "object", "properties": { "id": { "type": "integer" }, "ipaddress": { "type": "array", "items": { "type": "string" }, "description": "Use Ip address as parameter key and hostname as value" }, "vmid": { "type": "integer" }, "type": { "type": "", "description": "string ipv4 or ipv6" }, "iface": { "type": "string" }, "bridge": { "type": "", "description": "string Bridge name [optional, ignored if interface provided]" }, "pool": { "type": "", "description": "string|int List ID to allocate new IP from" }, "firewall": { "type": "", "description": "int Enable or disable firewall (may require specific permissions)" }, "ipv4": { "type": "", "description": "int[] List of IP v4 IDs" }, "ipv6": { "type": "", "description": "int[] List of IP v6 IDs" }, "list": { "type": "", "description": "string|int List to allocate new IP from" } } } }, "externalDocs": { "description": "Find out more about UserAPI", "url": "https:\/\/cp.xsserver.gmbh\/?cmd=userapi" } }