UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 115 kB
{"openapi":"3.0.1","servers":[{"url":"/v2"}],"info":{"description":"# Introduction\n\nThis API allows resellers to manage their resources in a simple, programmatic way using HTTP requests.\n\n# Conventions\n\n## Requests\n\nThe API supports different methods depending on the required action.\n\n| Method\t| Description\n| ---\t\t| ---\n| GET\t\t| Retrieve resources in a collection or get a single resource.<br/>Getters will never have any effect on the queried resources.\n| POST\t\t| Create a new resource in a collection.\n| PUT\t\t| Update an existing resource with its new representation.\n| DELETE\t| Delete an existing resource.\n\n## HTTP status codes\n\nThe API will reply with different HTTP statuscodes:\n\n| StatusCode\t\t\t\t| Description\n| ---\t\t\t\t\t\t| ---\n| 200 OK\t\t\t\t\t| The requests was processed and you receive data as a result.\n| 201 CREATED\t\t\t\t| The resource has been created. Either the Location header contains a link to the created resource, or links are being returned in the response body. The applied method will be indicated in the documentation.\n| 202 ACCEPTED\t\t\t\t| The request has been validated and accepted. Because we need to do some background processing prior to returning the result, we cannot send back a useful representation.\n| 204 NOCONTENT\t\t\t\t| The request has been processed, but no details can be returned.\n| 400 BADREQUEST\t\t\t| Your request is malformed.\n| 401 UNAUTHORIZED\t\t\t| You are not authorized. Follow the instructions in the Authorization documentation.\n| 403 FORBIDDEN\t\t\t\t| Access to the resource or operation is not allowed.\n| 404 NOTFOUND\t\t\t\t| The resource cannot be found.\n| 410 GONE | The resource is permanently no longer available.\n| 429 TOOMANYREQUESTS\t\t| The ratelimit has been exceeded. Please refer to the documentation on rate limiting for more details.\n| 500 INTERNALSERVERERROR\t| An error occurred during the processing of the request. The error is unexpected and most likely due to a bug in the api.\n\nIn the event of a problem, the body of the response will usually contain an errorcode and errormessage.\nIn rare cases additional details about the error are reported.\n\nErrorcodes 400-499 are considered to be client errors and indicate that there was an issue with the request.\nWe will not take any action besides monitoring. \n\nErrorcodes 500-599 are considered to be server errors. The errors are monitored AND action will be taken to resolve the error.\n\n## Formatting\n\nSnake casing is applied on resources and query parameters.\nThe API is strictly returning JSON. No other formats are supported.\n\nDatetimes are returned in ISO-8601 format.\n\n## Pagination\n\nPagination is on by default on collections and is controlled by specifying *skip* and *take* parameters. \n**Skip** indicates the number of results to skip and where to start the new take. \n**Take** indicates the number of records to return. The returned number of items can be smaller than the requested take.\n\nPaged results will have headers with useful information regarding the paging.\n\n| Header\t\t\t\t| Description\n| ---\t\t\t\t\t| ---\n| X-Paging-Skipped\t\t| The number of results that have been skipped.\n| X-Paging-Take\t\t\t| The number of items in the current take. The number might differ from the requested take. It represents the actual number of items returned in the response.\n| X-Paging-TotalResults | The total number of results regardless of paging.\n\n## Rate limiting\n\nThe number of requests per interval is limited. Detailed information on the rate limiting can be found in specific headers which will be sent on each request.\n\n| Header\t\t\t\t| Description\n| ---\t\t\t\t\t| ---\n| X-RateLimit-Limit\t\t| The number of requests that can be made in a specific time interval.\n| X-RateLimit-Usage\t\t| The number of requests already made in the current time interval.\n| X-RateLimit-Remaining\t| The number of requests remaining until the reset.\n| X-RateLimit-Reset\t\t| The number of seconds until the reset.<br />After the reset you are allowed to make as many requests as specified by the X-RateLimit-Limit header.\n| Retry-After\t\t\t| The number of seconds you have to wait until you can make new requests.<br />This header is only present when the rate limit has been reached. It is identical to X-RateLimit-Reset.\n\nWhen the ratelimit has been reached, all requests will return with a HTTP statuscode 429 and ReasonPhrase '*Too many requests, retry later.*'.\n\n# Authentication\n\nThe Api uses HMAC authentication. \nHash-based message authentication code (HMAC) is a mechanism for calculating a message authentication code involving a hash function in combination with a secret key. \nBoth the integrity and the authenticity of the message are verified this way.\n\n## Steps to generate the HMAC\n\n1. Get your api key and secret from your controlpanel. \nIt is absolutely vital that the secret is never exposed. Once the secret is out, anyone would be able to generate hmacs to impersonate you. \nIn case your secret is compromised, you can generate a new api key and secret on your controlpanel.\n2. Construct the input value for generating the hmac. \nConcatenate:apikey, request method, path and querystring information, unix timestamp, nonce and content.\n\n|\t\t\t\t\t\t\t\t\t\t| Description\n| ---\t\t\t\t\t\t\t\t\t| ---\n| apikey\t\t\t\t\t\t\t\t| The key that is linked to your user.\n| request method\t\t\t\t\t\t| lowercased (eg: get, post, delete,...)\n| path and querystring information\t\t| urlencoding of the lowercased relative path and querystring.<br />The path **MUST start with the api version (/v2)**.<br />The hexadecimal codes (percent encoding) MUST be uppercased.\n| unix timestamp\t\t\t\t\t\t| the unix timestamp in **seconds**.\n| nonce\t\t\t\t\t\t\t\t\t| a\tunique string for each request. It should be a random string, not related to the request. The nonce (in combination with the unix timestamp) protects you from replay attacks in case anyone was able to intercept a request.\n| content\t\t\t\t\t\t\t\t| When the request body is not empty, this should be the Base64 encoded Md5 hash of the request body.<br />An empty body should not be encoded.\n\n3. Hash the concatenated string using your api secret and the SHA-256 algorithm.\n4. Base64 encode the result of the hash function. This is the hmac signature you will need to send an authorized request.\n\n## Sending an authorized request\n\nAn authorized request can be made by sending the generated HMAC in the authorization header. \nA correct authorizationheader uses the hmac authorization scheme and a correctly formatted authorization parameter.\n\nCreate the authorization parameter by concatenating:\n * apikey\n * colon ':'\n * generated HMAC signature (see above)\n * colon ':'\n * nonce (the one used to generate the signature)\n * colon ':'\n * unix timestamp (the one used to generate the signature)\n\nA sample (illustrated):\n\n* The first line is the string you create to feed to the hashing algorithm.\n* The second line is the authorization header that should be sent in the request.\n\n![hmac authorization header illustrated](/v2/images/authentication_illustration.jpg \"authorization header illustrated\")\n\n## IP whitelisting\n\nAccess is by default restricted for all IP addresses. You need to explicitly whitelist an IP or an IP range in your controlpanel.\n\n# Versioning\n\nBecause of breaking contract changes compared to v1, we released v2 of the API. \nV1 will still be available, but you are strongly encouraged to migrate to the latest version. \nNew features will only be available on v2.\n\n# Policy\n\n### Fair use policy\n\nPlease respect the rate limits and do not use the api for any purposes of abuse. \nAll requests are being monitored and logged. \nIntentional abuse might result in api key revocation.\n\n# Errors\n\nThe API attempts to return appropriate HTTP status codes for every request. \nWhen the status code indicates failure, the API will also provide an error message in most cases.\n\nAn error message contains a machine-parseable error code accompanied by a descriptive error text. \nThe text for an error message might change over time, but codes will stay the same.\n\n[An overview of error codes can be found here](/v2/documentation/errorcodes).\n\n# Change log\n\n[An overview of new changes can be found here](/v2/documentation/changelog).\n\n# Provisioning information\n\n## Terminology\n\n| Term\t\t\t| Definition\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t|\n| ---\t\t\t| ---\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t|\n| Servicepack\t| Defines a set of assets that belong together. An example is a hosting package which offers Linux hosting, a domain name, a couple of mailboxes and databases.<br/>It also limits the size of individual assets within the same account. |\n| Account\t\t| Represents an instance of the servicepack. It contains one or more assets. The number and size of assets is defined by the servicepack. |\n| Asset\t\t\t| A manageable service. For example: a mysql database, a linux hosting, a mailbox,...<br/>Some assets are created at the moment when the account is created. Other assets can be created afterwards.\n\t\n## Common provisioning scenario\n\n**Provisioning of an account with Linux hosting with one MySql database**\n\n*Without a pre-existing account:*\n\n1. Create a new account.<br/>Perform a POST on the accounts route and provide the desired servicepack id and identifier (domain name).\n2. Read the Location header from the response and perform a GET of the provided resource (a provisioning job).\n3. When the response returns 200(OK), you should repeat the GET operation after a certain interval (Repeat this step).<br/>\nWhen the response returns 201(Created), you should read the response body. This will contain links to the created resources.<br/>\nThis will usually hold only one link, but to be futureproof, this has been designed to return a collection.\n4. The created resource will point to an account. You now know the account's Id and can continue with the provisioning of a MySql database on this account.\n5. Perform a POST on the mysqldatabases route and provide the account id along with other requested information.\n6. Read the Location header from the response and perform a GET of the provided resource (a provisioning job).\n7. When the response returns 200(OK), you should repeat the GET operation after a certain interval (Repeat this step).<br/>\nWhen the response returns 201(Created), you should read the response body. This will contain links to the created resources.<br/>\nThis will usually hold only one link, but to be futureproof, this has been designed to return a collection.\n8. The created resource will point to a MySql database resource.\n\n## SSL certificate requests\n\n**Requesting an SSL certificate causes the purchase of a paying product.**\n\n1. A certificate is created by adding an ssl certificate request.\n2. Upon statuscode 201 you should query for certificate completion on the resource provided in the location response header.\n3. The resource request can respond with different statuscodes:\n<ul>\n <li>200: the certificate request is ongoing.<br/>\nCheck the validations collection for validation values that are not auto_validated. Those should be set by you system.<br/>\nCall verify domain validations once all validation values are in place. It might take some time for verification to take place. It is not necessary to call this method more than once.</li>\n <li>303: the certificate request is complete; there is no more certificate request resource available. Check the location header value to retrieve the representation of the resulting ssl certificate.</li>\n <li>410: the certificate request does not exist anymore, there is no certificate created as a result of the request.</li>\n</ul>","title":"Public Api","version":"v2","x-apisguru-categories":["hosting"],"x-logo":{"url":"https://www.combell.com/build/website/images/favicons/apple-icon-57x57.png"},"x-origin":[{"format":"openapi","url":"https://api.combell.com/v2/documentation/swagger-v2.json","version":"3.0"}],"x-providerName":"combell.com"},"tags":[{"name":"Accounts"},{"description":"Manage the dns records for a domain name.<p>The interface allows you to manage following records: A, CNAME, MX, SRV, ALIAS and TXT.","name":"DNS records"},{"description":"Manage your domains.","name":"Domains"},{"description":"Manage your linux hostings.","name":"Linux hostings"},{"description":"Manage your mailboxes.","name":"Mailboxes"},{"description":"Manage your mail zones.","name":"Mail zones"},{"description":"Manage your MySql databases.","name":"MySql databases"},{"name":"Provisioning jobs"},{"name":"Servicepacks"},{"name":"SSH"},{"description":"Create new SSL certificates. In the provisioning documentation you can find more info on the flow that should be followed.","name":"SSL certificate requests"},{"description":"Manage your SSL certificates.","name":"SSL certificates"},{"description":"Manage your windows hostings.","name":"Windows hostings"}],"paths":{"/accounts":{"get":{"operationId":"GetAccounts","parameters":[{"description":"The number of items to skip in the resultset.","in":"query","name":"skip","schema":{"description":"The number of items to skip in the resultset.","format":"int32","type":"integer"}},{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","in":"query","name":"take","schema":{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","format":"int32","type":"integer"}},{"description":"Filters the list, returning only accounts containing the specified asset type.","in":"query","name":"asset_type","schema":{"$ref":"#/components/schemas/AssetType"}},{"description":"Return only accounts, matching the specified identifier.","in":"query","name":"identifier","schema":{"description":"Return only accounts, matching the specified identifier.","nullable":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Account"},"type":"array"}}},"description":"Success","headers":{"X-Paging-Skipped":{"description":"The number of results that have been skipped.","schema":{"type":"integer"}},"X-Paging-Take":{"description":"The number of items in the current take. The number might differ from the requested take. It represents the actual number of items returned in the response.","schema":{"type":"integer"}},"X-Paging-TotalResults":{"description":"The total number of results regardless of paging.","schema":{"type":"integer"}}}}},"summary":"Overview of accounts","tags":["Accounts"]},"post":{"description":"The creation of an account requires some background processing. There is no instant feedback of the creation status.","operationId":"CreateAccount","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccount"}}},"description":""},"responses":{"202":{"description":"Success"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"}},"summary":"Create a new account","tags":["Accounts"]}},"/accounts/{accountId}":{"get":{"description":"","operationId":"GetAccount","parameters":[{"description":"The id of the account.","in":"query","name":"account_id","required":true,"schema":{"description":"The id of the account.","format":"int32","type":"integer"}},{"description":"Automatically added","in":"path","name":"accountId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDetail"}}},"description":"Success"}},"summary":"Get a specific account","tags":["Accounts"]}},"/dns/{domainName}/records":{"get":{"parameters":[{"description":"The domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name.","type":"string"}},{"description":"The number of items to skip in the resultset.","in":"query","name":"skip","schema":{"description":"The number of items to skip in the resultset.","format":"int32","type":"integer"}},{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","in":"query","name":"take","schema":{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","format":"int32","type":"integer"}},{"description":"Filters records matching the type. Most other filters only apply when this filter is specified.","in":"query","name":"type","schema":{"description":"Filters records matching the type. Most other filters only apply when this filter is specified.","nullable":true,"type":"string"}},{"description":"Filters records matching the record name. This filter only applies to lookups of A, CNAME, TXT, CAA, ALIAS and TLSA records.","in":"query","name":"record_name","schema":{"description":"Filters records matching the record name. This filter only applies to lookups of A, CNAME, TXT, CAA, ALIAS and TLSA records.","nullable":true,"type":"string"}},{"description":"Filters records for the service. This filter only applies to lookups of SRV records.","in":"query","name":"service","schema":{"description":"Filters records for the service. This filter only applies to lookups of SRV records.","nullable":true,"type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DnsRecord"},"type":"array"}}},"description":"Success","headers":{"X-Paging-Skipped":{"description":"The number of results that have been skipped.","schema":{"type":"integer"}},"X-Paging-Take":{"description":"The number of items in the current take. The number might differ from the requested take. It represents the actual number of items returned in the response.","schema":{"type":"integer"}},"X-Paging-TotalResults":{"description":"The total number of results regardless of paging.","schema":{"type":"integer"}}}}},"summary":"Get records","tags":["DNS records"]},"post":{"parameters":[{"description":"The domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecord"}}},"description":"The record to create"},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}}},"summary":"Create a record","tags":["DNS records"]}},"/dns/{domainName}/records/{recordId}":{"delete":{"parameters":[{"description":"The domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name.","type":"string"}},{"description":"The id of the record.","in":"query","name":"record_id","required":true,"schema":{"description":"The id of the record.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"recordId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Success"}},"summary":"Delete a record","tags":["DNS records"]},"get":{"parameters":[{"description":"The domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name.","type":"string"}},{"description":"The id of the record.","in":"query","name":"record_id","required":true,"schema":{"description":"The id of the record.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"recordId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecord"}}},"description":"Success"}},"summary":"Get specific record","tags":["DNS records"]},"put":{"parameters":[{"description":"The domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name.","type":"string"}},{"description":"The id of the record.","in":"query","name":"record_id","required":true,"schema":{"description":"The id of the record.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"recordId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecord"}}},"description":"The record with updated values."},"responses":{"200":{"description":"Success"}},"summary":"Edit a record","tags":["DNS records"]}},"/domains":{"get":{"operationId":"GetDomains","parameters":[{"description":"The number of items to skip in the resultset.","in":"query","name":"skip","schema":{"description":"The number of items to skip in the resultset.","format":"int32","type":"integer"}},{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","in":"query","name":"take","schema":{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Domain"},"type":"array"}}},"description":"Success","headers":{"X-Paging-Skipped":{"description":"The number of results that have been skipped.","schema":{"type":"integer"}},"X-Paging-Take":{"description":"The number of items in the current take. The number might differ from the requested take. It represents the actual number of items returned in the response.","schema":{"type":"integer"}},"X-Paging-TotalResults":{"description":"The total number of results regardless of paging.","schema":{"type":"integer"}}}}},"summary":"Overviews of domains","tags":["Domains"]}},"/domains/registrations":{"post":{"description":"Registers an available domain.<br />Domain names with extension '.ca' are only available for registrants with country code 'CA'.","operationId":"Register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterDomain"}}},"description":""},"responses":{"202":{"description":"Success"}},"summary":"Register a domain","tags":["Domains"]}},"/domains/transfers":{"post":{"description":"Transfers a domain with a transfer authorization code.<br />Domain names with extension '.ca' are only available for registrants with country code 'CA'.","operationId":"Transfer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferDomain"}}},"description":""},"responses":{"202":{"description":"Success"}},"summary":"Transfer a domain","tags":["Domains"]}},"/domains/{domainName}":{"get":{"operationId":"GetDomain","parameters":[{"description":"The domain name","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainDetail"}}},"description":"Success"}},"summary":"Details of a domain","tags":["Domains"]}},"/domains/{domainName}/nameservers":{"put":{"description":"","operationId":"EditNameServers","parameters":[{"description":"The domain name","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditNameServers"}}},"description":""},"responses":{"204":{"description":"Success"}},"summary":"Edit domain name servers","tags":["Domains"]}},"/domains/{domainName}/renew":{"put":{"description":"Allowed if can_toggle_renew is true on the domain detail:<br /><ul><li>If there are no unpaid invoices for the domain name anymore.</li><li>If the renewal won't start within 1 month.</li></ul>\r\nAllowed if the requesting user has the finance role.","operationId":"ConfigureDomain","parameters":[{"description":"The domain name","in":"query","name":"domain_name","required":true,"schema":{"description":"The domain name","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditDomainWillRenewRequest"}}},"description":"Contains the domain renew information"},"responses":{"204":{"description":"Success"}},"summary":"Edit domain name renew state","tags":["Domains"]}},"/linuxhostings":{"get":{"operationId":"GetLinuxHostings","parameters":[{"description":"The number of items to skip in the resultset.","in":"query","name":"skip","schema":{"description":"The number of items to skip in the resultset.","format":"int32","type":"integer"}},{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","in":"query","name":"take","schema":{"description":"The number of items to return in the resultset. The returned count can be equal or less than this number.","format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/LinuxHosting"},"type":"array"}}},"description":"Success","headers":{"X-Paging-Skipped":{"description":"The number of results that have been skipped.","schema":{"type":"integer"}},"X-Paging-Take":{"description":"The number of items in the current take. The number might differ from the requested take. It represents the actual number of items returned in the response.","schema":{"type":"integer"}},"X-Paging-TotalResults":{"description":"The total number of results regardless of paging.","schema":{"type":"integer"}}}}},"summary":"Overview of linux hostings","tags":["Linux hostings"]}},"/linuxhostings/{domainName}":{"get":{"operationId":"GetLinuxHosting","parameters":[{"description":"The Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"The Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinuxHostingDetail"}}},"description":"Success"}},"summary":"Linux hosting detail","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/ftp/configuration":{"put":{"operationId":"ConfigureFtp","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FtpConfiguration"}}},"description":""},"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Configure FTP","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/phpsettings/apcu":{"put":{"operationId":"ChangeApcu","parameters":[{"description":"Linux hosting domain name","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePhpAPcuRequest"}}},"description":"Php APcu config"},"responses":{"204":{"description":"Success"}},"summary":"Configure PHP APCu setting","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/phpsettings/availableversions":{"get":{"operationId":"GetAvailablePhpVersions","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PhpVersion"},"type":"array"}}},"description":"Success"}},"summary":"Get the available PHP versions.","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/phpsettings/memorylimit":{"put":{"operationId":"ChangePhpMemoryLimit","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePhpMemoryLimitRequest"}}},"description":"Memory limit config"},"responses":{"204":{"description":"Success"}},"summary":"Configure PHP memory limit","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/phpsettings/version":{"put":{"operationId":"ChangePhpVersion","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhpVersion"}}},"description":"The new PHP version."},"responses":{"204":{"description":"Success"}},"summary":"Change the Linux hosting PHP version.","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/scheduledtasks":{"get":{"description":"Manage scheduled tasks which are also manageable via the control panel.","operationId":"GetScheduledTasks","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ScheduledTask"},"type":"array"}}},"description":"Success"}},"summary":"Overview of scheduled tasks","tags":["Linux hostings"]},"post":{"operationId":"AddScheduledTasks","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledTask"}}},"description":""},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}}},"summary":"Add a scheduled task","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/scheduledtasks/{scheduledTaskId}":{"delete":{"operationId":"DeleteScheduledTask","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Id of the scheduled task.","in":"query","name":"scheduled_task_id","required":true,"schema":{"description":"Id of the scheduled task.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"scheduledTaskId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Delete a scheduled task","tags":["Linux hostings"]},"get":{"operationId":"GetScheduledTask","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Id of the scheduled task.","in":"query","name":"scheduled_task_id","required":true,"schema":{"description":"Id of the scheduled task.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"scheduledTaskId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledTask"}}},"description":"Success"}},"summary":"Get scheduled task detail","tags":["Linux hostings"]},"put":{"operationId":"ConfigureScheduledTask","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Id of the scheduled task.","in":"query","name":"scheduled_task_id","required":true,"schema":{"description":"Id of the scheduled task.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"scheduledTaskId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledTask"}}},"description":""},"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Configure a scheduled task","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/settings/gzipcompression":{"put":{"operationId":"ChangeGzipCompression","parameters":[{"description":"Linux hosting domain name","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GzipConfig"}}},"description":"Whether GZIP compression is enabled or not."},"responses":{"204":{"description":"Success"}},"summary":"Enable/disable GZIP compression","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/sites/{siteName}/hostheaders":{"post":{"operationId":"CreateHostHeader","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Name of the site on the linux hosting.","in":"query","name":"site_name","required":true,"schema":{"description":"Name of the site on the linux hosting.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"siteName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddHostHeaderRequest"}}},"description":"Add host header request"},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}}},"summary":"Create a host header","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/sites/{siteName}/http2/configuration":{"put":{"operationId":"ConfigureHttp2","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Site name where HTTP/2 should be configured.<br />\r\nFor HTTP/2 to work correctly, the site must have ssl enabled.","in":"query","name":"site_name","required":true,"schema":{"description":"Site name where HTTP/2 should be configured.<br />\r\nFor HTTP/2 to work correctly, the site must have ssl enabled.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"siteName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Http2Configuration"}}},"description":""},"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Configure HTTP/2","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/ssh/configuration":{"put":{"operationId":"ConfigureSsh","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshConfiguration"}}},"description":""},"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Configure SSH","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/ssh/keys":{"get":{"operationId":"GetSshKeys","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SshKey"},"type":"array"}}},"description":"Success"}},"summary":"Overview of SSH keys","tags":["Linux hostings"]},"post":{"operationId":"AddSshKey","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSshKeyRequest"}}},"description":"SSH key public key."},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}}},"summary":"Add a SSH key","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/ssh/keys/{fingerprint}":{"delete":{"operationId":"DeleteSshKey","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Fingerprint of public key.","in":"path","name":"fingerprint","required":true,"schema":{"description":"Fingerprint of public key.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Delete a SSH key","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/sslsettings/{hostname}/autoredirect":{"put":{"operationId":"ChangeAutoRedirect","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Specific hostname.","in":"path","name":"hostname","required":true,"schema":{"description":"Specific hostname.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoRedirectConfig"}}},"description":"Auto redirect config."},"responses":{"204":{"description":"Success"}},"summary":"Configure auto redirect","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/sslsettings/{hostname}/letsencrypt":{"put":{"operationId":"ChangeLetsEncrypt","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Specific hostname.","in":"path","name":"hostname","required":true,"schema":{"description":"Specific hostname.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LetsEncryptConfig"}}},"description":"Let's encrypt config."},"responses":{"204":{"description":"Success"}},"summary":"Configure let's encrypt","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/subsites":{"post":{"operationId":"CreateSubsite","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSubsiteRequest"}}},"description":"Add subsite request"},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}}},"summary":"Create a subsite","tags":["Linux hostings"]}},"/linuxhostings/{domainName}/subsites/{siteName}":{"delete":{"operationId":"DeleteSubsite","parameters":[{"description":"Linux hosting domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Linux hosting domain name.","type":"string"}},{"description":"Name of the site on the linux hosting.","in":"query","name":"site_name","required":true,"schema":{"description":"Name of the site on the linux hosting.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"siteName","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Delete a subsite","tags":["Linux hostings"]}},"/mailboxes":{"get":{"description":"Currently only supports getting the mailboxes filtered by domain name.","operationId":"GetMailboxes","parameters":[{"description":"Obligated domain name for getting mailboxes.","in":"query","name":"domain_name","schema":{"description":"Obligated domain name for getting mailboxes.","nullable":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Mailbox"},"type":"array"}}},"description":"Success"}},"summary":"Gets your mailboxes.","tags":["Mailboxes"]},"post":{"operationId":"CreateMailbox","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMailboxRequest"}}},"description":"The add mailbox request."},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}}},"summary":"Create a new mailbox.","tags":["Mailboxes"]}},"/mailboxes/{mailboxName}":{"delete":{"operationId":"DeleteMailbox","parameters":[{"description":"Mailbox name.","in":"query","name":"mailbox_name","required":true,"schema":{"description":"Mailbox name.","type":"string"}},{"description":"Automatically added","in":"path","name":"mailboxName","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Delete a mailbox","tags":["Mailboxes"]},"get":{"operationId":"GetMailbox","parameters":[{"description":"Mailbox name.","in":"query","name":"mailbox_name","required":true,"schema":{"description":"Mailbox name.","type":"string"}},{"description":"Automatically added","in":"path","name":"mailboxName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxDetail"}}},"description":"Success"}},"summary":"Get a specific mailbox","tags":["Mailboxes"]}},"/mailboxes/{mailboxName}/autoforward":{"put":{"operationId":"ConfigureMailboxAutoForward","parameters":[{"description":"Mailbox name.","in":"query","name":"mailbox_name","required":true,"schema":{"description":"Mailbox name.","type":"string"}},{"description":"Automatically added","in":"path","name":"mailboxName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoForward"}}},"description":"Contains the auto-forward information."},"responses":{"204":{"description":"Success"}},"summary":"Configure auto-forward for mailbox","tags":["Mailboxes"]}},"/mailboxes/{mailboxName}/autoreply":{"put":{"operationId":"ConfigureMailboxAutoReply","parameters":[{"description":"Mailbox name.","in":"query","name":"mailbox_name","required":true,"schema":{"description":"Mailbox name.","type":"string"}},{"description":"Automatically added","in":"path","name":"mailboxName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoReply"}}},"description":"Contains the auto-reply information."},"responses":{"204":{"description":"Success"}},"summary":"Configure auto-reply for mailbox","tags":["Mailboxes"]}},"/mailboxes/{mailboxName}/password":{"put":{"operationId":"ChangeMailboxPassword","parameters":[{"description":"Mailbox name.","in":"query","name":"mailbox_name","required":true,"schema":{"description":"Mailbox name.","type":"string"}},{"description":"Automatically added","in":"path","name":"mailboxName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMailboxPasswordRequest"}}},"description":"Contains the new password."},"responses":{"204":{"description":"Success"}},"summary":"Change password for mailbox","tags":["Mailboxes"]}},"/mailzones/{domainName}":{"get":{"operationId":"GetMailZone","parameters":[{"description":"Mail zone domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Mail zone domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailZone"}}},"description":"Success"}},"summary":"Get the mail zone.","tags":["Mail zones"]}},"/mailzones/{domainName}/aliases":{"post":{"operationId":"CreateAlias","parameters":[{"description":"Mail zone domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Mail zone domain name.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAliasRequest"}}},"description":"Contains the alias information."},"responses":{"201":{"description":"Success","headers":{"Location":{"description":"The location of the created resource.","schema":{"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"}},"summary":"Create a new alias","tags":["Mail zones"]}},"/mailzones/{domainName}/aliases/{emailAddress}":{"delete":{"operationId":"DeleteAlias","parameters":[{"description":"Mail zone domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Mail zone domain name.","type":"string"}},{"description":"Alias e-mail address.","in":"query","name":"email_address","required":true,"schema":{"description":"Alias e-mail address.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"emailAddress","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Success"},"400":{"description":"Bad Request"}},"summary":"Delete a alias","tags":["Mail zones"]},"put":{"operationId":"ConfigureAlias","parameters":[{"description":"Mail zone domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Mail zone domain name.","type":"string"}},{"description":"Alias e-mail address.","in":"query","name":"email_address","required":true,"schema":{"description":"Alias e-mail address.","type":"string"}},{"description":"Automatically added","in":"path","name":"domainName","required":true,"schema":{"type":"string"}},{"description":"Automatically added","in":"path","name":"emailAddress","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAliasRequest"}}},"description":"Contains the alias information."},"responses":{"202":{"description":"Success"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}},"description":"Bad Request"}},"summary":"Configure a alias","tags":["Mail zones"]}},"/mailzones/{domainName}/antispam":{"put":{"operationId":"ConfigureAntiSpam","parameters":[{"description":"Mail zone domain name.","in":"query","name":"domain_name","required":true,"schema":{"description":"Mail zone domain name.","type":"string"}},{"description":"Automatically added","in