openapi: 3.0.0
info:
description: ''
title: TransIP API
version: '6.53'
servers:
- url: 'https://api.transip.nl/v6'
paths:
/acronis/tenants:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
tenants:
- description: My tenant description
isSelfManaged: false
name: testuser
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
tenants:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis not found
schema:
example:
error: Acronis not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
List all tenants
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all tenants
summary: List all tenants
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis product 'acronis-250gb' is not found
schema:
example:
error: Acronis product 'acronis-250gb' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: This product does not allow addons
schema:
example:
error: This product does not allow addons
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
Order a new tenant
::: warning
**Warning**: This API call will create an
invoice!
operationId: Order a new tenant
requestBody:
content:
application/json:
schema:
example:
addons:
- acronisAddon-250gb
productName: acronis-250gb
properties:
addons:
description: Addons to be added
type: array
productName:
description: Name of the product
type: string
type: object
summary: Order a new tenant
'/acronis/tenants/{tenantUuid}':
delete:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Tenant not found
schema:
example:
error: Tenant not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Product already has cancellation pending
schema:
example:
error: Product already has cancellation pending
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
Using the DELETE method on an tenant will cancel it, thus deleting it.
When specifying 'end' for `endTime`, the acronis tenant will be canceled
at the end of the contract period. In case you specify 'immediately' the
acronis tenant will be cancelled immediately.
operationId: Cancel a tenant
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately'''
type: string
type: object
summary: Cancel a tenant
get:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
tenant:
description: My tenant description
isSelfManaged: false
name: testuser
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
tenant:
properties:
description:
description: description of the tenant
type: string
isSelfManaged:
description: if this tenant is in self managed mode
type: boolean
name:
description: 'tenant (string, optional) - name of the tenant'
type: string
uuid:
description: uuid for this tenant
type: string
required:
- description
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Tenant with uuid '123' not found
schema:
example:
error: Tenant with uuid '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: Request information about a specific tenant
operationId: Get tenant by uuid
summary: Get tenant by uuid
put:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Tenant with uuid '123' not found
schema:
example:
error: Tenant with uuid '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
This API calls allows for altering a tenant in several ways outlined
below:
* Set a new description;
operationId: Update tenant
requestBody:
content:
application/json:
schema:
example:
tenant:
description: My tenant description
isSelfManaged: false
name: testuser
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
properties:
tenant:
properties:
description:
description: description of the tenant
type: string
isSelfManaged:
description: if this tenant is in self managed mode
type: boolean
name:
description: 'tenant (string, optional) - name of the tenant'
type: string
uuid:
description: uuid for this tenant
type: string
required:
- description
type: object
type: object
summary: Update tenant
'/acronis/tenants/{tenantUuid}/addons':
post:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis product 'acronisAddon-250gb' is not found
schema:
example:
error: Acronis product 'acronisAddon-250gb' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: This product does not allow addons
schema:
example:
error: This product does not allow addons
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
This API call allows you to order addons.
**Warning**: This API call will create an
invoice.
operationId: Order addons
requestBody:
content:
application/json:
schema:
example:
addons:
- acronisAddon-250gb
properties:
addons:
description: Addons to be added
type: array
type: object
summary: Order addons
'/acronis/tenants/{tenantUuid}/addons/{addonName}':
delete:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
- description: Addon to be cancelled
example: acronisAddon-250gb
in: path
name: addonName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis product 'acronisAddon-250gb' is not found
schema:
example:
error: Acronis product 'acronisAddon-250gb' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Product already has cancellation pending
schema:
example:
error: Product already has cancellation pending
properties:
error:
type: string
type: object
description: Conflict
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: This API call allows you to cancel addons.
operationId: Cancel addons
summary: Cancel addons
'/acronis/tenants/{tenantUuid}/downgrades':
put:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis product 'acronis-250gb' is not found
schema:
example:
error: Acronis product 'acronis-250gb' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
This API call allows you to downgrade a tenant.
**Warning**: This API call will create an
invoice for the downgrade.
operationId: Downgrade a tenant
requestBody:
content:
application/json:
schema:
example:
productName: acronis-250gb
properties:
productName:
type: string
type: object
summary: Downgrade a tenant
'/acronis/tenants/{tenantUuid}/login':
get:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
loginUrl: >-
https://eu8-cloud.acronis.com/api/2/idp/external-login#ott=ott&targetURI=https://eu8-cloud.acronis.com/services
schema:
properties:
loginUrl:
type: string
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis not found
schema:
example:
error: Acronis not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: ''
operationId: Generate one time token login url
summary: Generate one time token login url
'/acronis/tenants/{tenantUuid}/upgrades':
put:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis product 'acronis-250gb' is not found
schema:
example:
error: Acronis product 'acronis-250gb' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: >-
This API call allows you to upgrade a tenant.
**Warning**: This API call will create an
invoice for the upgrade.
operationId: Upgrade a tenant
requestBody:
content:
application/json:
schema:
example:
productName: acronis-250gb
properties:
productName:
type: string
type: object
summary: Upgrade a tenant
'/acronis/tenants/{tenantUuid}/usage':
get:
parameters:
- description: Acronis tenant identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: tenantUuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
usage:
currentUsage: '200'
limit: '500'
schema:
properties:
usage:
properties:
currentUsage:
description: The current usage of your acronis product
type: string
limit:
description: The usage limit of your acronis product
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Acronis not found
schema:
example:
error: Acronis not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Acronis
description: |-
Overview of current usage of your Acronis Product
The usage is expressed in GB
operationId: Fetch overview of current usage
summary: Fetch overview of current usage
/actions:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
actions:
- actionStartTime: '2022-08-31 07:58'
metadata: blob
name: Vps.restoreBackup
parentActionUuid: afa08ad9-6c12-4e03-95dd-a888b97ffe22
resourceIdentifier: testuser-vps12
resourceType: vps
status: running
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
actions:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Actions
description: >-
List all actions that are currently in running status
### Filter on Resource Identifier
You are able to filter on running actions with the resourceIdentifier by
specifying both the resourceIdentifier and the resourceType in the query
params.
resourceIdentifier and resourceType are both string values.
Example: `/actions?resourceIdentifier=testuser-vps12&resourceType=vps`
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all actions
summary: List all actions
'/actions/{uuid}':
get:
parameters:
- description: Action uuid identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
action:
actionStartTime: '2022-08-31 07:58'
metadata: blob
name: Vps.restoreBackup
parentActionUuid: afa08ad9-6c12-4e03-95dd-a888b97ffe22
resourceIdentifier: testuser-vps12
resourceType: vps
status: running
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
action:
properties:
actionStartTime:
description: datetime for this action
type: string
metadata:
description: metadata of this action
type: string
name:
description: name of the action
type: string
parentActionUuid:
description: holds uuid of parent when action is a child action.
type: string
resourceIdentifier:
description: Resource Identifier of the resource of this action
type: string
resourceType:
description: The externalType of the resource this action
type: string
status:
description: status of this action
type: string
uuid:
description: uuid for this action
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Event with uuid '123' not found
schema:
example:
error: Event with uuid '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Actions
description: Request information about a specific action
operationId: Get action by uuid
summary: Get action by uuid
'/actions/{uuid}/children':
get:
parameters:
- description: Action uuid identifier
example: 419636c9a72c4c588285920f6cc4bb2c
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
actions:
- actionStartTime: '2022-08-31 07:58'
metadata: blob
name: Vps.restoreBackup
parentActionUuid: afa08ad9-6c12-4e03-95dd-a888b97ffe22
resourceIdentifier: testuser-vps12
resourceType: vps
status: running
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
actions:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Actions
description: >-
Using this API call, you are able to list all child actions for a parent
action
operationId: List all child actions for a parent action
summary: List all child actions for a parent action
/api-test:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
ping: pong
schema:
properties:
ping:
type: string
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- General
description: Returns pong. A simple test resource to make sure everything is working
operationId: API Test
summary: API Test
/availability-zones:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
availabilityZones:
- country: nl
isDefault: true
name: ams0
schema:
properties:
availabilityZones:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- General
description: Lists the available AvailabilityZones.
operationId: List available AvailabilityZones
summary: List available AvailabilityZones
/big-storages:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
bigStorages:
- availabilityZone: ams0
description: Big storage description
diskSize: 2147483648
isLocked: false
name: example-bigstorage
offsiteBackups: true
serial: a4d857d3fe5e814f34bb
status: active
vpsName: example-vps
schema:
properties:
bigStorages:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Returns an array of all Big Storages in the given account.
After all Big Storages have been returned as an array, you can extract
it and use a specific Big Storage for the other API calls documented
below.
Should you only want to get the big storages attached to a specific VPS,
set the `vpsName` parameter and only big storages that are attached to
the given vps will be shown like `/v6/big-storages?vpsName=example-vps`
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
::: warning
**Warning**: This method is deprecated.
Use the block-storages resource instead.
operationId: List all big storages
requestBody:
content:
application/json:
schema:
type: string
description: Filters on a given vps name.
summary: List all big storages
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Big storage with identifier 'example-bigstorage' not found
schema:
example:
error: Big storage with identifier 'example-bigstorage' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Upgrade size '2' is smaller than current size '4'
schema:
example:
error: Upgrade size '2' is smaller than current size '4'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
With this method you are able to upgrade a bigstorage diskSize or enable
backups.
The minimum size is 2 TB and storage can be extended with up to maximum
of 40 TB. Make sure to use a multiple of 2 TB.
Optionally, to create back-ups of your Big Storage, enable off-site
back-ups. We highly recommend activating back-ups.
::: warning
**Warning**: This API call will create an
invoice!
**Warning**: This method is deprecated.
Use the block-storages resource instead.
operationId: Upgrade big storage
requestBody:
content:
application/json:
schema:
example:
bigStorageName: example-bigstorage
offsiteBackups: true
size: 8
properties:
bigStorageName:
description: The name of the bigstorage to upgrade
type: string
offsiteBackups:
description: >-
Whether to order offsite backups, omit this to use current
value
type: boolean
size:
description: >-
The size of the big storage in TB's, use a multiple of 2.
The maximum size is 40.
type: number
type: object
summary: Upgrade big storage
'/big-storages/{bigStorageIdentifier}':
delete:
parameters:
- description: The identifier of the big storage (name or uuid)
in: path
name: bigStorageIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Big storage with identifier 'example-bigstorage' not found
schema:
example:
error: Big storage with identifier 'example-bigstorage' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Product already has cancellation pending
schema:
example:
error: Product already has cancellation pending
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Cancels a big storage for the specified ‘endTime’. You can set the
`endTime` attribute to `end` or `immediately`, this has the following
implications:
* **end**: The Big Storage will be terminated from the end date of the
agreement as can be found in the applicable quote;
* **immediately**: The Big Storage will be terminated immediately.
Note that canceling a Big Storage will wipe all data stored on it as well as off-site back-ups as well if these are activated.
::: warning
**Warning**: This method is deprecated. Use the block-storages resource instead.
operationId: Cancel big storage
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately'''
type: string
type: object
summary: Cancel big storage
get:
parameters:
- description: The identifier of the big storage (name or uuid)
in: path
name: bigStorageIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
bigStorage:
availabilityZone: ams0
description: Big storage description
diskSize: 2147483648
isLocked: false
name: example-bigstorage
offsiteBackups: true
serial: a4d857d3fe5e814f34bb
status: active
vpsName: example-vps
schema:
properties:
bigStorage:
properties:
availabilityZone:
description: The availability zone the bigstorage is located in
type: string
description:
description: Name that can be set by customer
type: string
diskSize:
description: Disk size of the big storage in kB
type: number
isLocked:
description: >-
Lock status of the big storage, when it is locked, it
cannot be attached or detached.
type: boolean
name:
description: Name of the big storage
type: string
offsiteBackups:
description: Whether a bigstorage has backups
type: boolean
serial:
description: >-
The serial of the big storage. This is a unique
identifier that is visible by the vps it has been
attached to. On linux servers it is visible using
`udevadm info /dev/vdb` where it will be the value of
ID_SERIAL. A symlink will also be created in
`/dev/disk-by-id/` containing the serial. This is
useful if you want to map a disk inside a VPS to a big
storage.
type: string
status:
description: >-
Status of the big storage can be 'active', 'attaching'
or 'detaching'
type: string
vpsName:
description: The VPS that the big storage is attached to
type: string
required:
- description
- vpsName
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Big storage with identifier 'example-bigstorage' not found
schema:
example:
error: Big storage with identifier 'example-bigstorage' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Get information about a specific Big Storage and its current status. If
the Big Storage is attached to a VPS, the output will contain the VPS
name it’s attached to.
::: warning
**Warning**: This method is deprecated.
Use the block-storages resource instead.
operationId: Get big storage by identifier
summary: Get big storage by identifier
put:
parameters:
- description: The identifier of the big storage (name or uuid)
in: path
name: bigStorageIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 64 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 64 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
schema:
example:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This API calls allows for altering a big storage in several ways
outlined below:
* Changing the description of a Big Storage (maximum length 64);
* One Big Storages can only be attached to one VPS at a time;
* One VPS can have a maximum of 10 bigstorages attached;
* Set the `vpsName` property to the VPS name to attach to for attaching
Big Storage;
* Set the `vpsName` property to null to detach the Big Storage from the
currently attached VPS.
::: warning
**Warning**: This method is deprecated. Use the block-storages resource instead.
operationId: Update big storage
requestBody:
content:
application/json:
schema:
example:
bigStorage:
availabilityZone: ams0
description: Big storage description
diskSize: 2147483648
isLocked: false
name: example-bigstorage
offsiteBackups: true
serial: a4d857d3fe5e814f34bb
status: active
vpsName: example-vps
properties:
bigStorage:
properties:
availabilityZone:
description: The availability zone the bigstorage is located in
type: string
description:
description: Name that can be set by customer
type: string
diskSize:
description: Disk size of the big storage in kB
type: number
isLocked:
description: >-
Lock status of the big storage, when it is locked, it
cannot be attached or detached.
type: boolean
name:
description: Name of the big storage
type: string
offsiteBackups:
description: Whether a bigstorage has backups
type: boolean
serial:
description: >-
The serial of the big storage. This is a unique
identifier that is visible by the vps it has been
attached to. On linux servers it is visible using
`udevadm info /dev/vdb` where it will be the value of
ID_SERIAL. A symlink will also be created in
`/dev/disk-by-id/` containing the serial. This is useful
if you want to map a disk inside a VPS to a big storage.
type: string
status:
description: >-
Status of the big storage can be 'active', 'attaching'
or 'detaching'
type: string
vpsName:
description: The VPS that the big storage is attached to
type: string
required:
- description
- vpsName
type: object
type: object
summary: Update big storage
'/big-storages/{bigStorageIdentifier}/backups':
get:
parameters:
- description: The identifier of the big storage (name or uuid)
in: path
name: bigStorageIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
backups:
- availabilityZone: ams0
dateTimeCreate: '2019-12-31 09:13:55'
diskSize: 4294967296
id: 1583
status: active
schema:
properties:
backups:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Using this API call, you are able to list all backups belonging to a
specific big storage.
::: warning
**Warning**: This method is deprecated.
Use the block-storages resource instead.
operationId: List backups for a big storage
summary: List backups for a big storage
'/big-storages/{bigStorageIdentifier}/backups/{backupId}':
patch:
parameters:
- description: The identifier of the big storage (name or uuid)
in: path
name: bigStorageIdentifier
required: true
schema:
type: string
- description: Id of the backup
example: '625584'
in: path
name: backupId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Backup with id '1337' not found
schema:
example:
error: Backup with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on Backup '123' are temporary disabled
schema:
example:
error: Actions on Backup '123' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
To revert a backup from a big storage, retrieve the `backupId` from the
[backups](#vps-backups-get-1) resource. Please note this is only
possible when any backups are created with the off-site backups feature,
otherwise no backups will be made nor listed.
::: warning
**Warning**: This method is deprecated.
Use the block-storages resource instead.
operationId: Revert a big storage backup
requestBody:
content:
application/json:
schema:
example:
action: revert
destinationBigStorageIdentifier: example-bigstorage
properties:
action:
type: string
destinationBigStorageIdentifier:
description: 'When set, revert the backup to this big storage'
type: string
type: object
summary: Revert a big storage backup
'/big-storages/{bigStorageIdentifier}/usage':
get:
parameters:
- description: The identifier of the big storage (name or uuid)
in: path
name: bigStorageIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
usage:
- date: 1574783109
iopsRead: 0.27
iopsWrite: 0.13
schema:
properties:
usage:
items: {}
type: array
type: object
description: OK
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Big storage 'example-bigstorage' is not attached to a VPS
schema:
example:
error: Big storage 'example-bigstorage' is not attached to a VPS
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Get the usage statistics for a big storage. You can specify a
`dateTimeStart` and `dateTimeEnd` parameter in the UNIX timestamp
format. When none given, traffic for the past 24 hours are returned. The
maximum period is one month.
When the big storage is not attached to a vps, there are no usage
statistics available. Therefore, the response returned will be a 406
exception. If the big storage is re-attached to another vps then the old
statistics are no longer available.
::: warning
**Warning**: This method is deprecated.
Use the block-storages resource instead.
operationId: Get big storage usage statistics
requestBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1490064468
dateTimeStart: 1490023668
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
type: object
summary: Get big storage usage statistics
/block-storages:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
blockStorages:
- availabilityZone: ams0
description: Block storage description
isLocked: false
name: example-faststorage
offsiteBackups: true
productType: fast-storage
serial: a4d857d3fe5e814f34bb
size: 2147483648
status: active
vpsName: example-vps
schema:
properties:
blockStorages:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Returns an array of all Block Storages in the given account.
After all Block Storages have been returned as an array, you can extract
it and use a specific Block Storage for the other API calls documented
below.
Should you only want to get the block storages attached to a specific
VPS, set the `vpsName` parameter and only block storages that are
attached to the given vps will be shown like
`/v6/block-storages?vpsName=example-vps`
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all block storages
summary: List all block storages
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Block storage with name 'example-faststorage' not found
schema:
example:
error: Block storage with name 'example-faststorage' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Upgrade size '20' is smaller than current size '40'
schema:
example:
error: Upgrade size '20' is smaller than current size '40'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
With this method you are able to upgrade a blockstorage size or enable
backups.
Big storages: The minimum size is 2 TiB and storage can be extended with
up to maximum of 40 TiB. Make sure to use a multiple of 2 TiB. Note that
2 TiB equals 2147483648 KiB.
Fast storages: The minimum size is 10 GiB and storage can be extended
with up to maximum of 10000 GiB. Make sure to use a multiple of 10 GiB.
Note that 10 GiB equals 10485760 KiB.
Optionally, to create back-ups of your Block Storage, enable off-site
back-ups. We highly recommend activating back-ups.
::: warning
**Warning**: This API call will create an
invoice!
operationId: Upgrade block storage
requestBody:
content:
application/json:
schema:
example:
blockStorageName: example-faststorage
offsiteBackups: true
size: 10485760
properties:
blockStorageName:
description: The name of the blockstorage to upgrade
type: string
offsiteBackups:
description: >-
Whether to order offsite backups, omit this to use current
value
type: boolean
size:
description: The size of the block storage in KB.
type: number
type: object
summary: Upgrade block storage
'/block-storages/{blockStorageIdentifier}':
delete:
parameters:
- description: The identifier of the block storage (name or uuid)
in: path
name: blockStorageIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Block storage with name 'example-faststorage' not found
schema:
example:
error: Block storage with name 'example-faststorage' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Product already has cancellation pending
schema:
example:
error: Product already has cancellation pending
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Cancels a block storage for the specified ‘endTime’. You can set the
`endTime` attribute to `end` or `immediately`, this has the following
implications:
* **end**: The Block Storage will be terminated from the end date of the
agreement as can be found in the applicable quote;
* **immediately**: The Block Storage will be terminated immediately.
Note that canceling a Block Storage will wipe all data stored on it as well as off-site back-ups as well if these are activated.
operationId: Cancel block storage
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately'''
type: string
type: object
summary: Cancel block storage
get:
parameters:
- description: The identifier of the block storage (name or uuid)
in: path
name: blockStorageIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
blockStorage:
availabilityZone: ams0
description: Block storage description
isLocked: false
name: example-faststorage
offsiteBackups: true
productType: fast-storage
serial: a4d857d3fe5e814f34bb
size: 2147483648
status: active
vpsName: example-vps
schema:
properties:
blockStorage:
properties:
availabilityZone:
description: The availability zone the block storage is located in
type: string
description:
description: Name that can be set by customer
type: string
isLocked:
description: >-
Lock status of the block storage, when it is locked,
it cannot be attached or detached.
type: boolean
name:
description: Name of the block storage
type: string
offsiteBackups:
description: Whether a block storage has backups
type: boolean
productType:
description: Block storage type
type: string
serial:
description: >-
The serial of the block storage. This is a unique
identifier that is visible by the vps it has been
attached to. On linux servers it is visible using
`udevadm info /dev/vdb` where it will be the value of
ID_SERIAL. A symlink will also be created in
`/dev/disk-by-id/` containing the serial. This is
useful if you want to map a disk inside a VPS to a
block storage.
type: string
size:
description: Size of the block storage in kB
type: number
status:
description: >-
Status of the block storage can be 'active',
'attaching' or 'detaching'
type: string
vpsName:
description: The VPS that the block storage is attached to
type: string
required:
- description
- productType
- vpsName
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Block storage with identifier 'example-faststorage' not
found
schema:
example:
error: >-
Block storage with identifier 'example-faststorage' not
found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Get information about a specific Block Storage and its current status by
identifier (name or uuid). If the Block Storage is attached to a VPS,
the output will contain the VPS name it’s attached to.
operationId: Get block storage by identifier
summary: Get block storage by identifier
put:
parameters:
- description: The identifier of the block storage (name or uuid)
in: path
name: blockStorageIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 64 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 64 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
schema:
example:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This API calls allows for altering a block storage in several ways
outlined below:
* Changing the description of a Block Storage (maximum length 64);
* One Block Storage can only be attached to one VPS at a time;
* One VPS can have a maximum of 10 block storages attached;
* Set the `vpsName` property to the VPS name to attach to for attaching
Block Storage;
* Set the `vpsName` property to null to detach the Block Storage from
the currently attached VPS.
operationId: Update block storage
requestBody:
content:
application/json:
schema:
example:
blockStorage:
availabilityZone: ams0
description: Block storage description
isLocked: false
name: example-faststorage
offsiteBackups: true
productType: fast-storage
serial: a4d857d3fe5e814f34bb
size: 2147483648
status: active
vpsName: example-vps
properties:
blockStorage:
properties:
availabilityZone:
description: The availability zone the block storage is located in
type: string
description:
description: Name that can be set by customer
type: string
isLocked:
description: >-
Lock status of the block storage, when it is locked, it
cannot be attached or detached.
type: boolean
name:
description: Name of the block storage
type: string
offsiteBackups:
description: Whether a block storage has backups
type: boolean
productType:
description: Block storage type
type: string
serial:
description: >-
The serial of the block storage. This is a unique
identifier that is visible by the vps it has been
attached to. On linux servers it is visible using
`udevadm info /dev/vdb` where it will be the value of
ID_SERIAL. A symlink will also be created in
`/dev/disk-by-id/` containing the serial. This is useful
if you want to map a disk inside a VPS to a block
storage.
type: string
size:
description: Size of the block storage in kB
type: number
status:
description: >-
Status of the block storage can be 'active', 'attaching'
or 'detaching'
type: string
vpsName:
description: The VPS that the block storage is attached to
type: string
required:
- description
- productType
- vpsName
type: object
type: object
summary: Update block storage
'/block-storages/{blockStorageIdentifier}/backups':
get:
parameters:
- description: The identifier of the block storage (name or uuid)
in: path
name: blockStorageIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
backups:
- availabilityZone: ams0
dateTimeCreate: '2019-12-31 09:13:55'
id: 1583
size: 4294967296
status: active
schema:
properties:
backups:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Using this API call, you are able to list all backups belonging to a
specific block storage.
operationId: List backups for a block storage
summary: List backups for a block storage
'/block-storages/{blockStorageIdentifier}/backups/{backupId}':
patch:
parameters:
- description: The identifier of the block storage (name or uuid)
in: path
name: blockStorageIdentifier
required: true
schema:
type: string
- description: Id of the backup
example: '625584'
in: path
name: backupId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Backup with id '1337' not found
schema:
example:
error: Backup with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on Backup '123' are temporary disabled
schema:
example:
error: Actions on Backup '123' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
To revert a backup from a block storage, retrieve the `backupId` from
the [backups](#vps-backups-get-1) resource. Please note this is only
possible when any backups are created with the off-site backups feature,
otherwise no backups will be made nor listed.
operationId: Revert a block storage backup
requestBody:
content:
application/json:
schema:
example:
action: revert
destinationBlockStorageName: example-faststorage
properties:
action:
type: string
destinationBlockStorageName:
description: 'When set, revert the backup to this block storage'
type: string
type: object
summary: Revert a block storage backup
'/block-storages/{blockStorageIdentifier}/usage':
get:
parameters:
- description: The identifier of the block storage (name or uuid)
in: path
name: blockStorageIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
usage:
- date: 1574783109
iopsRead: 0.27
iopsWrite: 0.13
schema:
properties:
usage:
items: {}
type: array
type: object
description: OK
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Block storage 'example-faststorage' is not attached to a
VPS
schema:
example:
error: Block storage 'example-faststorage' is not attached to a VPS
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Get the usage statistics for a block storage. You can specify a
`dateTimeStart` and `dateTimeEnd` parameter in the UNIX timestamp
format. When none given, traffic for the past 24 hours are returned. The
maximum period is one month.
When the block storage is not attached to a vps, there are no usage
statistics available. Therefore, the response returned will be a 406
exception. If the block storage is re-attached to another vps then the
old statistics are no longer available.
operationId: Get block storage usage statistics
requestBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1490064468
dateTimeStart: 1490023668
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
type: object
summary: Get block storage usage statistics
/colocations:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
colocations:
- ipRanges:
- '2a01:7c8:c038:6::/64'
name: example2
schema:
properties:
colocations:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
Gets a list of colocations currently registered in your account. For
every colocation service in your account, the corresponding name and IP
range(s) are returned.
operationId: List all colocations
summary: List all colocations
'/colocations/{colocationName}':
get:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
colocation:
ipRanges:
- '2a01:7c8:c038:6::/64'
name: example2
schema:
properties:
colocation:
properties:
ipRanges:
description: List of IP ranges
items: {}
type: array
name:
description: Colocation name
type: string
required:
- name
- ipRanges
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Colocation with name 'lala' not found
schema:
example:
error: Colocation with name 'lala' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: Get a information about a specific colocation.
operationId: Get colocation
summary: Get colocation
'/colocations/{colocationName}/access-request':
post:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
responses:
'201':
content:
application/json:
schema:
properties:
dataCenterVisitors:
items: {}
type: array
type: object
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Permission denied
schema:
example:
error: Permission denied
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: The colocation has no rackspace assigned
schema:
example:
error: The colocation has no rackspace assigned
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Invalid phone number format, please try formatting it like
+31612345678
schema:
example:
error: >-
Invalid phone number format, please try formatting it like
+31612345678
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
Send a request for some visitors to access the datacenter at some date
and time for some specific duration.
operationId: Create an access request
requestBody:
content:
application/json:
schema:
example:
accessRequest:
dateTime: '2022-04-10 08:30:00'
duration: 30
phoneNumber: '+31612345678'
visitorNames:
- Charly
- John
properties:
accessRequest:
properties:
dateTime:
description: >-
The datetime of the wanted datacenter access, in
YYYY-MM-DD hh:mm:ss format
type: string
duration:
description: 'The expected duration of the visit, in minutes'
type: number
phoneNumber:
description: >-
If an SMS with access codes needs to be sent, set the
phone number of the receiving phone here
type: string
visitorNames:
description: >-
list of visitor names for this datacenter visit, must be
at least 1 and at most 20
type: array
required:
- dateTime
- duration
- visitorNames
type: object
type: object
summary: Create an access request
'/colocations/{colocationName}/ip-addresses':
get:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
ipAddresses:
- address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
schema:
properties:
ipAddresses:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Colocation with name 'lala' not found
schema:
example:
error: Colocation with name 'lala' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
List IP addresses based on the colocation they’re assigned to. The
address itself, its subnet mask, gateway and DNS resolvers in that
range.
operationId: List IP addresses for a colocation
summary: List IP addresses for a colocation
post:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
IP address '149.210.215.249' does not belong to a range
this user can modify
schema:
example:
error: >-
IP address '149.210.215.249' does not belong to a range this
user can modify
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: IP address '149.210.215.249' already exists
schema:
example:
error: IP address '149.210.215.249' already exists
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
Create an IP address for a colocation by specifying the colocation name
the IP address should be assigned to. Note the IP address should be in a
range you own.
Currently, new IP addresses have to be requested manually through the
support system.
Optionally, you can also set the reverse DNS by specifying the
`reverseDns` attribute.
operationId: Create a new IP address for a colocation
requestBody:
content:
application/json:
schema:
example:
ipAddress: '2a01:7c8:3:1337::6'
reverseDns: example.com
properties:
ipAddress:
description: The IP address to register to the colocation
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
type: string
type: object
summary: Create a new IP address for a colocation
'/colocations/{colocationName}/ip-addresses/{ipAddress}':
delete:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
- description: Colocation IP address
example: 149.210.215.249
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
IP address '149.210.215.249' does not belong to a range
this user can modify
schema:
example:
error: >-
IP address '149.210.215.249' does not belong to a range this
user can modify
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: IP address '8.8.8.8' not found
schema:
example:
error: IP address '8.8.8.8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: Delete an IP addresses for a colocation. The IP address will be removed.
operationId: Delete an IP address
summary: Delete an IP address
get:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
- description: Colocation IP address
example: 149.210.215.249
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
ipAddress:
address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
schema:
properties:
ipAddress:
properties:
address:
description: The IP address
type: string
dnsResolvers:
description: The DNS resolvers you can use
items: {}
type: array
gateway:
description: Gateway
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
type: string
subnetMask:
description: Subnet mask
type: string
required:
- reverseDns
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: IP address '8.8.8.8' not found
schema:
example:
error: IP address '8.8.8.8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
Get IP addresses information for a specific colocation and IP address.
The address itself, its subnet mask, gateway and DNS resolvers in that
range.
operationId: Get IP addresses for a colocation
summary: Get IP addresses for a colocation
put:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
- description: Colocation IP address
example: 149.210.215.249
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
IP address '149.210.215.249' does not belong to a range
this user can modify
schema:
example:
error: >-
IP address '149.210.215.249' does not belong to a range this
user can modify
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: IP address '8.8.8.8' not found
schema:
example:
error: IP address '8.8.8.8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
Sets a reverse DNS name for an IP address.
Upon adding a new IP address for a colocation, you’re able to set the
reverse DNS instantly along with the API call.
operationId: Set reverse DNS for an IP address
requestBody:
content:
application/json:
schema:
example:
ipAddress:
address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
properties:
ipAddress:
properties:
address:
description: The IP address
type: string
dnsResolvers:
description: The DNS resolvers you can use
type: array
gateway:
description: Gateway
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
type: string
subnetMask:
description: Subnet mask
type: string
required:
- reverseDns
type: object
type: object
summary: Set reverse DNS for an IP address
'/colocations/{colocationName}/remote-hands':
post:
parameters:
- description: Colocation name
example: example2
in: path
name: colocationName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Colocation with name 'lala' not found
schema:
example:
error: Colocation with name 'lala' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Colocations
description: >-
Send a request to the datacenter engineer to perform simple task on your
server, e.g. a powercycle.
operationId: Create a Remotehands request
requestBody:
content:
application/json:
schema:
example:
remoteHands:
coloName: example2
contactName: Herman Kaakdorst
expectedDuration: 15
instructions: Reboot server with label Loadbalancer0
phoneNumber: +31 612345678
properties:
remoteHands:
properties:
coloName:
description: Name of the colocation contract
type: string
contactName:
description: Name of the person that created the remote hands request
type: string
expectedDuration:
description: Expected duration in minutes
type: number
instructions:
description: The instructions for the datacenter engineer to perform
type: string
phoneNumber:
description: >-
Phonenumber to contact in case of questions regarding
the remotehands request
type: string
type: object
type: object
summary: Create a Remotehands request
/contact-key:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
key: '123456'
schema:
properties:
key:
type: string
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Account
description: List the current contact key.
operationId: Contact key
summary: Contact key
/domain-availability:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
availability:
- actions:
- register
domainName: example.com
status: free
schema:
properties:
availability:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Domains
description: Check the availability for multiple domain names.
operationId: Check the availability for multiple domain names
requestBody:
content:
application/json:
schema:
example:
domainNames:
- example.com
- example.nl
properties:
domainNames:
description: array of domainNames to check
type: array
type: object
summary: Check the availability for multiple domain names
'/domain-availability/{domainName}':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
availability:
actions:
- register
domainName: example.com
status: free
schema:
properties:
availability:
properties:
actions:
description: >-
List of available actions to perform on this domain.
Possible actions are: 'register', 'transfer',
'internalpull' and 'internalpush'
items: {}
type: array
domainName:
description: The name of the domain
type: string
status:
description: >-
The status for this domain. Possible statuses are:
'inyouraccount', 'unavailable', 'notfree', 'free',
'internalpull' and 'internalpush'
type: string
required:
- domainName
- status
- actions
type: object
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Domains
description: This method allows you to check the availability for a domain name.
operationId: Check availability for a domain name
summary: Check availability for a domain name
/domain-defaults/contacts:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
schema:
properties:
contacts:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: No default domain contacts were found for this account
schema:
example:
error: No default domain contacts were found for this account
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Returns a list of all contacts for an account. One or multiple of the
following contacts will be shown:
* Registrant contact;
* Administrative contact;
* Technical contact.
operationId: List all default domain contacts for your account
summary: List all default domain contacts for your account
put:
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: No default domain contacts were found for this account
schema:
example:
error: No default domain contacts were found for this account
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Use this API call in case you want to alter default domain contacts for
your account.
operationId: Update contacts for a account
requestBody:
$ref: '#/components/requestBodies/Update_contacts_for_a_domainBody'
summary: Update contacts for a account
/domains:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
domains:
- tags:
- customTag
- anotherTag
authCode: >-
kJqfuOXNOYQKqh/jO4bYSn54YDqgAt1ksCe+ZG4Ud4nfpzw8qBsfR2JqAj7Ce12SxKcGD09v+yXd6lrm
cancellationDate: '2020-01-01 12:00:00'
cancellationStatus: signed
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
isDnsOnly: false
isTransferLocked: false
isWhitelabel: false
name: example.com
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
registrationDate: '2016-01-01'
renewalDate: '2020-01-01'
status: registered
schema:
properties:
domains:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
This API call allows you to list all domain names in your TransIP
account.
Should you want to filter the domains list by a custom tag, set the
`tag` parameter and only domains with the tag will be returned like
https://api.transip.nl/v6/domains?tag=customTag,anotherTag
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all domains
requestBody:
content:
application/json:
schema:
example:
tags: '/domains?tags=customTag,anotherTag'
include: '/domains?include=nameservers,contacts,goneDomains'
properties:
tags:
description: 'Tags to filter by, separated by a comma.'
type: string
include:
description: >-
Extra Data to include, separated by a comma. (Can be
nameservers,contacts,goneDomains)
type: string
type: object
summary: List all domains
post:
responses:
'201':
description: Created
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
The domain 'example.com' is not registered and thus cannot
be transferred
schema:
example:
error: >-
The domain 'example.com' is not registered and thus cannot
be transferred
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Transfer a domain to TransIP using its transfer key (or ‘EPP code’) by
specifying it in the `authCode` parameter.
You can override the contacts, nameservers and DNS entries immediately,
but is not mandatory.
::: warning
**Warning**: This API call will create an
invoice!
operationId: Transfer a domain
requestBody:
content:
application/json:
schema:
example:
authCode: >-
CYPMaVH+9MRjXGBc3InzHs7vNSUBPOjwpZm3GO+iDLHnFLtiP7sOKqW5JD1WeUpevZM6q1qS5YH9dGSp
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
dnsEntries:
- content: 127.0.0.1
expire: 86400
name: www
type: A
domainName: example.com
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
properties:
authCode:
description: The auth code of the domain.
type: string
contacts:
type: array
dnsEntries:
type: array
domainName:
type: string
nameservers:
type: array
type: object
summary: Transfer a domain
'/domains/{domainName}':
delete:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
The domain 'example.com' has additional products attached,
and thus can't be cancelled
schema:
example:
error: >-
The domain 'example.com' has additional products attached,
and thus can't be cancelled
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
The domain 'example.com' already has a cancellation
pending
schema:
example:
error: The domain 'example.com' already has a cancellation pending
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Cancels the specified domain. Depending on the time you want to cancel
the domain, specify 'end' or 'immediately' for the `endTime` attribute.
Upon canceling a domain name (or any other product) it will be shown
under [cancellations](https://www.transip.nl/cp/account/opzeggingen/) in
the TransIP control panel. By using the API method outlined above
([Retrieve an existing domain](#domains-domains-get-1)) you’ll be able
to see if the domain name has been canceled yet.
operationId: Cancel a domain
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately'''
type: string
type: object
summary: Cancel a domain
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
domain:
tags:
- customTag
- anotherTag
authCode: >-
kJqfuOXNOYQKqh/jO4bYSn54YDqgAt1ksCe+ZG4Ud4nfpzw8qBsfR2JqAj7Ce12SxKcGD09v+yXd6lrm
cancellationDate: '2020-01-01 12:00:00'
cancellationStatus: signed
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
isDnsOnly: false
isTransferLocked: false
isWhitelabel: false
name: example.com
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
registrationDate: '2016-01-01'
renewalDate: '2020-01-01'
status: registered
schema:
properties:
domain:
properties:
tags:
description: The custom tags added to this domain.
items: {}
type: array
authCode:
description: >-
The authcode for this domain as generated by the
registry.
nullable: true
type: string
canEditDns:
description: Whether dns changes propagate to the nameservers.
type: boolean
cancellationDate:
description: >-
Cancellation data, in YYYY-mm-dd h:i:s format, null if
the domain is active.
nullable: true
type: string
cancellationStatus:
description: >-
Cancellation status, null if the domain is active,
'cancelled' when the domain is cancelled.
nullable: true
type: string
contacts:
description: >-
The list of WhoisContacts for this domain (Only
included if asked for via the relevant call)
items: {}
type: array
hasAutoDns:
description: >-
Whether autoDNS is enabled for this domain. Dns
entries will be automatically updated when for example
a webhosting packages is ordered.
type: boolean
hasDnsSec:
description: Whether DNSSEC is active for this domain.
type: boolean
isDnsOnly:
description: Whether this domain is DNS only
type: boolean
isTransferLocked:
description: >-
If this domain supports transfer locking, this flag is
true when the domains ability to transfer is locked at
the registry.
type: boolean
isWhitelabel:
description: If this domain is added to your whitelabel.
type: boolean
name:
description: 'The name, including the tld of this domain'
type: string
nameservers:
description: >-
The list of nameservers (with optional gluerecords)
for this domain (Only included if asked for via the
relevant call)
items: {}
type: array
registrationDate:
description: 'Registration date of the domain, in YYYY-mm-dd format.'
type: string
renewalDate:
description: 'Next renewal date of the domain, in YYYY-mm-dd format.'
type: string
status:
description: >-
The status of a domain (Can be one of: `registered`,
`gone`, `dnsonly`, `inprogress`, `dropinprogress`)
type: string
required:
- name
- nameservers
- contacts
- isTransferLocked
- isWhitelabel
- tags
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Domains
description: Show information about a specific domain name.
operationId: Retrieve an existing domain
requestBody:
content:
application/json:
schema:
type: string
description: 'Comma seperated list of data to include (nameservers,contacts)'
summary: Retrieve an existing domain
patch:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: domain with name 'example.com' not found
schema:
example:
error: domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Target user 'example2' is not capable of receiving
handover
schema:
example:
error: Target user 'example2' is not capable of receiving handover
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Handover a domain to another TransIP Account. This call will initiate
the handover process. the actual handover will be done when the target
customer accepts the handover.
operationId: Handover a domain
requestBody:
content:
application/json:
schema:
example:
action: handover
targetCustomerName: example2
properties:
action:
type: string
targetCustomerName:
type: string
type: object
summary: Handover a domain
put:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
You do not have a whitelabel account yet, please order one
first
schema:
example:
error: >-
You do not have a whitelabel account yet, please order one
first
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Domain 'example.com' has action 'changeNameservers'
running, no modification is allowed
schema:
example:
error: >-
Domain 'example.com' has action 'changeNameservers' running,
no modification is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Update an existing domain. To apply or release a lock, change the
`isTransferLocked` attribute. To change tags, update the `tags`
attribute. To enable or disable AutoDNS, change the `hasAutoDns`
attribute.
You’re able to add the domain name under a whitelabel account. Note this
whitelabel functionality is available only for .nl domains. Furthermore,
the whitelabel account must be activated first at regular charge. Upon
activating, newly registered domains with the `isWhitelabel` attribute
set to ‘true’ will be shown under a whitelabel registrar name.
For more information about whitelabel domain name registration at
TransIP, please see the documentation regarding
[whitelabel](#domains-whitelabel-post).
::: warning
**Warning**: When adding the domain to
your whitelabel, it cannot be reverted!
**Warning**: Can Only be done when status
is registered
operationId: Update a domain
requestBody:
content:
application/json:
schema:
example:
domain:
tags:
- customTag
- anotherTag
authCode: >-
kJqfuOXNOYQKqh/jO4bYSn54YDqgAt1ksCe+ZG4Ud4nfpzw8qBsfR2JqAj7Ce12SxKcGD09v+yXd6lrm
cancellationDate: '2020-01-01 12:00:00'
cancellationStatus: signed
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
isDnsOnly: false
isTransferLocked: false
isWhitelabel: false
name: example.com
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
registrationDate: '2016-01-01'
renewalDate: '2020-01-01'
status: registered
properties:
domain:
properties:
tags:
description: The custom tags added to this domain.
type: array
authCode:
description: >-
The authcode for this domain as generated by the
registry.
nullable: true
type: string
canEditDns:
description: Whether dns changes propagate to the nameservers.
type: boolean
cancellationDate:
description: >-
Cancellation data, in YYYY-mm-dd h:i:s format, null if
the domain is active.
nullable: true
type: string
cancellationStatus:
description: >-
Cancellation status, null if the domain is active,
'cancelled' when the domain is cancelled.
nullable: true
type: string
contacts:
description: >-
The list of WhoisContacts for this domain (Only included
if asked for via the relevant call)
type: array
hasAutoDns:
description: >-
Whether autoDNS is enabled for this domain. Dns entries
will be automatically updated when for example a
webhosting packages is ordered.
type: boolean
hasDnsSec:
description: Whether DNSSEC is active for this domain.
type: boolean
isDnsOnly:
description: Whether this domain is DNS only
type: boolean
isTransferLocked:
description: >-
If this domain supports transfer locking, this flag is
true when the domains ability to transfer is locked at
the registry.
type: boolean
isWhitelabel:
description: If this domain is added to your whitelabel.
type: boolean
name:
description: 'The name, including the tld of this domain'
type: string
nameservers:
description: >-
The list of nameservers (with optional gluerecords) for
this domain (Only included if asked for via the relevant
call)
type: array
registrationDate:
description: 'Registration date of the domain, in YYYY-mm-dd format.'
type: string
renewalDate:
description: 'Next renewal date of the domain, in YYYY-mm-dd format.'
type: string
status:
description: >-
The status of a domain (Can be one of: `registered`,
`gone`, `dnsonly`, `inprogress`, `dropinprogress`)
type: string
required:
- name
- nameservers
- contacts
- isTransferLocked
- isWhitelabel
- tags
type: object
type: object
summary: Update a domain
'/domains/{domainName}/actions':
delete:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Unable to cancel the running action for 'example.com' at
this time
schema:
example:
error: >-
Unable to cancel the running action for 'example.com' at
this time
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
With this method you are able to cancel a domain action while it is
still pending or being processed.
operationId: Cancel domain action
summary: Cancel domain action
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
action:
hasFailed: false
message: success
name: changeNameservers
schema:
properties:
action:
properties:
hasFailed:
description: 'If this action has failed, this field will be true.'
type: boolean
message:
description: >-
If this action has failed, this field will contain an
descriptive message.
type: string
name:
description: The name of this DomainAction.
type: string
required:
- name
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Domain actions are kept track of by TransIP. Domain actions include, for
example, changing nameservers.
When no action is running the action's `name` parameter will be `null`.
The action message will contain a failure message, please provide the
information to fix this using the method below.
operationId: Get current domain action
summary: Get current domain action
patch:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Domain 'example.com' has action 'changeNameservers'
running, no modification is allowed.
schema:
example:
error: >-
Domain 'example.com' has action 'changeNameservers' running,
no modification is allowed.
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Domain actions can fail due to wrong information, this method allows you
to retry an action. You only have to specify information that is
required for the action.
operationId: Retry domain action
requestBody:
content:
application/json:
schema:
example:
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
dnsEntries:
- content: 127.0.0.1
expire: 86400
name: www
type: A
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
properties:
authCode:
type: string
contacts:
type: array
dnsEntries:
type: array
nameservers:
type: array
type: object
summary: Retry domain action
'/domains/{domainName}/auth-code':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
authCode: ''
schema:
properties:
authCode:
type: string
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'405':
content:
application/json:
examples:
response:
value:
error: Tld '.be' does not allow this action
schema:
example:
error: Tld '.be' does not allow this action
properties:
error:
type: string
type: object
description: Method Not Allowed
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Returns the auth-code for a domain name.
Certain TLDs (like .be and .eu) do not provide direct access to the auth
code and will send it to the email address of the current registrant
upon request. To request the registry of this TLD to send the auth code,
use the POST method instead.
operationId: Get auth-code of a domain name
summary: Get auth-code of a domain name
post:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'405':
content:
application/json:
examples:
response:
value:
error: Tld '.com' does not allow this action
schema:
example:
error: Tld '.com' does not allow this action
properties:
error:
type: string
type: object
description: Method Not Allowed
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Request the auth-code for a domain name.
This method will request the registry to email the auth code to the
current registrant's email address. This option is only supported for
certain TLDs (like .be and .eu), where the registries do not provide
direct access to the auth codes. For all other TLDs, you can use the GET
method to instantly retrieve the code.
operationId: Request an auth code for a domain name
summary: Request an auth code for a domain name
'/domains/{domainName}/branding':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
branding:
bannerLine1: Example B.V.
bannerLine2: Example
bannerLine3: 'http://www.example.com/products'
companyName: Example B.V.
companyUrl: www.example.com
supportEmail: admin@example.com
termsOfUsageUrl: www.example.com/tou
schema:
properties:
branding:
properties:
bannerLine1:
description: >-
The first generic bannerLine displayed in
whois-branded whois output.
type: string
bannerLine2:
description: >-
The second generic bannerLine displayed in
whois-branded whois output.
type: string
bannerLine3:
description: >-
The third generic bannerLine displayed in
whois-branded whois output.
type: string
companyName:
description: The company name displayed in transfer-branded e-mails
type: string
companyUrl:
description: The company url displayed in transfer-branded e-mails
type: string
supportEmail:
description: The support email used for transfer-branded e-mails
type: string
termsOfUsageUrl:
description: >-
The terms of usage url as displayed in
transfer-branded e-mails
nullable: true
type: string
required:
- companyName
- supportEmail
- companyUrl
- termsOfUsageUrl
- bannerLine1
- bannerLine2
- bannerLine3
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Get domain branding information for a given domain name.
Please note this API call does not return the whitelabel account status
(just the branding).
Branding options can be altered from the TransIP control panel or by
using the API call outlined below.
operationId: Get domain branding
summary: Get domain branding
put:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Domain TLD doesn't support branding
schema:
example:
error: Domain TLD doesn't support branding
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Domain 'example.com' has action 'changeNameservers'
running, no modification is allowed
schema:
example:
error: >-
Domain 'example.com' has action 'changeNameservers' running,
no modification is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Domain name branding can be set or altered using this API call. Among
others, you can set your own company name and company URL, replacing the
default values which are usually TransIP contact details.
Changes will not apply to previously registered domain names. The new
settings will, in most cases, only show up for newly registered domain
names after the changes were made.
operationId: Update domain branding
requestBody:
content:
application/json:
schema:
example:
branding:
bannerLine1: Example B.V.
bannerLine2: Example
bannerLine3: 'http://www.example.com/products'
companyName: Example B.V.
companyUrl: www.example.com
supportEmail: admin@example.com
termsOfUsageUrl: www.example.com/tou
properties:
branding:
properties:
bannerLine1:
description: >-
The first generic bannerLine displayed in whois-branded
whois output.
type: string
bannerLine2:
description: >-
The second generic bannerLine displayed in whois-branded
whois output.
type: string
bannerLine3:
description: >-
The third generic bannerLine displayed in whois-branded
whois output.
type: string
companyName:
description: The company name displayed in transfer-branded e-mails
type: string
companyUrl:
description: The company url displayed in transfer-branded e-mails
type: string
supportEmail:
description: The support email used for transfer-branded e-mails
type: string
termsOfUsageUrl:
description: >-
The terms of usage url as displayed in transfer-branded
e-mails
nullable: true
type: string
required:
- companyName
- supportEmail
- companyUrl
- termsOfUsageUrl
- bannerLine1
- bannerLine2
- bannerLine3
type: object
type: object
summary: Update domain branding
'/domains/{domainName}/contacts':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
schema:
properties:
contacts:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Returns a list of all contacts for a domain. One or multiple of the
following contacts will be shown:
* Domain name owner;
* Administrative contact;
* Technical contact.
operationId: List all contacts for a domain
summary: List all contacts for a domain
put:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Domain TLD doesn't support 'x' capability
schema:
example:
error: Domain TLD doesn't support 'x' capability
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Domain ''example.com'' is locked, no modification is allowed'
schema:
example:
error: 'Domain ''example.com'' is locked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Use this API call in case you want to alter domain name contacts after
the registration of a domain name.
* Some TLD do not support changing all the fields like the AddressData.
This will throw an error with a `406` http status code.
operationId: Update contacts for a domain
requestBody:
content:
application/json:
schema:
example:
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
properties:
contacts:
type: array
type: object
summary: Update contacts for a domain
'/domains/{domainName}/dns':
delete:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: DNS Entry changes have temporarily been disabled.
schema:
example:
error: DNS Entry changes have temporarily been disabled.
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Error fetching Dns Entries: DNS Entries are currently
being saved
schema:
example:
error: >-
Error fetching Dns Entries: DNS Entries are currently being
saved
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Remove a single DNS entry from a domain specified by the `dnsEntry`
parameter.
If there are duplicate DNS entries found then a single entry will be
removed when performing this action.
operationId: Remove a DNS entry from a domain
requestBody:
content:
application/json:
schema:
example:
dnsEntry:
content: 127.0.0.1
expire: 86400
name: www
type: A
properties:
dnsEntry:
properties:
content:
description: >-
The content of of the dns entry, for example '10 mail',
'127.0.0.1' or 'www'
type: string
expire:
description: >-
The expiration period of the dns entry, in seconds. For
example 86400 for a day of expiration
type: number
name:
description: 'The name of the dns entry, for example ''@'' or ''www'''
type: string
type:
description: >-
The type of dns entry. Possbible types are 'A', 'AAAA',
'CNAME', 'MX', 'NS', 'TXT', 'SRV', 'SSHFP', 'TLSA',
'CAA' and 'NAPTR'
type: string
required:
- name
- expire
- type
- content
type: object
type: object
summary: Remove a DNS entry from a domain
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
dnsEntries:
- content: 127.0.0.1
expire: 86400
name: www
type: A
schema:
properties:
dnsEntries:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: List all DNS entries for a domain
operationId: List all DNS entries for a domain
summary: List all DNS entries for a domain
patch:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: DNS Entry changes have temporarily been disabled
schema:
example:
error: DNS Entry changes have temporarily been disabled
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Multiple matches found for DNS entry 'test 300 A'
schema:
example:
error: Multiple matches found for DNS entry 'test 300 A'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Error fetching Dns Entries: DNS Entries are currently
being saved
schema:
example:
error: >-
Error fetching Dns Entries: DNS Entries are currently being
saved
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Update the content of a single DNS entry, identified by the `name`,
`expire` and `type` attributes.
When multiple or none of the current DNS entries matches, the response
will be an error with http status code `406`.
operationId: Update single DNS entry
requestBody:
content:
application/json:
schema:
example:
dnsEntry:
content: 127.0.0.1
expire: 86400
name: www
type: A
properties:
dnsEntry:
properties:
content:
description: >-
The content of of the dns entry, for example '10 mail',
'127.0.0.1' or 'www'
type: string
expire:
description: >-
The expiration period of the dns entry, in seconds. For
example 86400 for a day of expiration
type: number
name:
description: 'The name of the dns entry, for example ''@'' or ''www'''
type: string
type:
description: >-
The type of dns entry. Possbible types are 'A', 'AAAA',
'CNAME', 'MX', 'NS', 'TXT', 'SRV', 'SSHFP', 'TLSA',
'CAA' and 'NAPTR'
type: string
required:
- name
- expire
- type
- content
type: object
type: object
summary: Update single DNS entry
post:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: DNS Entry changes have temporarily been disabled
schema:
example:
error: DNS Entry changes have temporarily been disabled
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Invalid DNS entry type 'B'
schema:
example:
error: Invalid DNS entry type 'B'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Error fetching Dns Entries: DNS Entries are currently
being saved
schema:
example:
error: >-
Error fetching Dns Entries: DNS Entries are currently being
saved
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Add a single DNS entry to the existing zone file.
In case you want to overwrite the entire zone, please use the method
below.
operationId: Add a new single DNS entry to a domain
requestBody:
content:
application/json:
schema:
example:
dnsEntry:
content: 127.0.0.1
expire: 86400
name: www
type: A
properties:
dnsEntry:
properties:
content:
description: >-
The content of of the dns entry, for example '10 mail',
'127.0.0.1' or 'www'
type: string
expire:
description: >-
The expiration period of the dns entry, in seconds. For
example 86400 for a day of expiration
type: number
name:
description: 'The name of the dns entry, for example ''@'' or ''www'''
type: string
type:
description: >-
The type of dns entry. Possbible types are 'A', 'AAAA',
'CNAME', 'MX', 'NS', 'TXT', 'SRV', 'SSHFP', 'TLSA',
'CAA' and 'NAPTR'
type: string
required:
- name
- expire
- type
- content
type: object
type: object
summary: Add a new single DNS entry to a domain
put:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: DNS Entry changes have temporarily been disabled
schema:
example:
error: DNS Entry changes have temporarily been disabled
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Error setting Dns Entries
schema:
example:
error: Error setting Dns Entries
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
This method will wipe the entire DNS zone file and replace it with the
given records. Please note that data is not recoverable using an
integrated method in the API, so make sure to use this with care.
There is no hard limit as to the amount of DNS entries that can be added
at once.
::: warning
**Warning**: all current entries will be
replaced!
operationId: Update all DNS entries for a domain
requestBody:
content:
application/json:
schema:
example:
dnsEntries:
- content: 127.0.0.1
expire: 86400
name: www
type: A
properties:
dnsEntries:
type: array
type: object
summary: Update all DNS entries for a domain
'/domains/{domainName}/dnssec':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
dnsSecEntries:
- algorithm: 8
flags: 1
keyTag: 67239
publicKey: >-
AwEAAc31XDE3QWphFz6CR77Hp3ZjDRx7zqe1AXx1QMvqFKzrEKrX4oj2nv8zDquCotbQ1ObHI4KGLRf3ycaq0fYslXFJ1JxLxJUl/lpGvE8OkqdhGW3vj3YS9Mlbf0yYC2bNUY875UgDNRLqWtVSEXO/PCcqr3RIzpngu+6JF/1bfQB7ituFHxoanhAiWOpc24ZAnrhmyIsDwyy1k0iyvVTSyPugnYD/bF7CR7ObQCiuucjwCkSBHJ4gcihHvyPDU/DlsSJeEO/G31zFxzXwHjr3h3mdJE4mQuceS11e5/c9hht6rUL0PEGve1Ygknz+0ruAinlhFYnny2uxES5M9r0FIM=
schema:
properties:
dnsSecEntries:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: |-
This API call lists all DNSSEC entries for a domain once set.
This includes the key tag, flags, algorithm and public key.
operationId: List DNSSEC entries
summary: List DNSSEC entries
put:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: DNSSEC Entries for domain 'example.com' cannot be edited.
schema:
example:
error: DNSSEC Entries for domain 'example.com' cannot be edited.
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
This method will replace all DNSSEC entries with the ones that are
provided via the `dnsSecEntries` parameter.
::: warning
**Warning**: all current entries will be
replaced!
operationId: Update all DNSSEC entries
requestBody:
content:
application/json:
schema:
example:
dnsSecEntries:
- algorithm: 8
flags: 1
keyTag: 67239
publicKey: >-
AwEAAc31XDE3QWphFz6CR77Hp3ZjDRx7zqe1AXx1QMvqFKzrEKrX4oj2nv8zDquCotbQ1ObHI4KGLRf3ycaq0fYslXFJ1JxLxJUl/lpGvE8OkqdhGW3vj3YS9Mlbf0yYC2bNUY875UgDNRLqWtVSEXO/PCcqr3RIzpngu+6JF/1bfQB7ituFHxoanhAiWOpc24ZAnrhmyIsDwyy1k0iyvVTSyPugnYD/bF7CR7ObQCiuucjwCkSBHJ4gcihHvyPDU/DlsSJeEO/G31zFxzXwHjr3h3mdJE4mQuceS11e5/c9hht6rUL0PEGve1Ygknz+0ruAinlhFYnny2uxES5M9r0FIM=
properties:
dnsSecEntries:
type: array
type: object
summary: Update all DNSSEC entries
'/domains/{domainName}/nameservers':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
schema:
properties:
nameservers:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: This method will list all nameservers currently set for a domain.
operationId: List nameservers for a domain
summary: List nameservers for a domain
put:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: Change the nameservers for a domain.
operationId: Update nameservers for a domain
requestBody:
content:
application/json:
schema:
example:
nameservers:
- hostname: ns0.transip.nl
ipv4: null
ipv6: null
properties:
nameservers:
type: array
type: object
summary: Update nameservers for a domain
'/domains/{domainName}/ssl':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
certificates:
- canReissue: 'true'
certificateId: 12358
commonName: example.com
expirationDate: '2019-10-24 12:59:59'
status: active
schema:
properties:
certificates:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with name 'example.com' not found
schema:
example:
error: Domain with name 'example.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: Retrieves a list of all SSL certificates for a domain.
operationId: List all SSL certificates
summary: List all SSL certificates
'/domains/{domainName}/ssl/{certificateId}':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'200':
content:
application/json:
examples:
response:
value:
certificate:
canReissue: 'true'
certificateId: 12358
commonName: example.com
expirationDate: '2019-10-24 12:59:59'
status: active
schema:
properties:
certificate:
properties:
canReissue:
description: Whether the certificate can be reissued
type: string
certificateId:
description: >-
The id of the certificate, can be used to retrieve
additional info
type: number
commonName:
description: >-
The domain name that the SSL certificate is added to.
Start with '*.' when the certificate is a wildcard.
type: string
expirationDate:
description: Expiration date
type: string
status:
description: >-
The current status, either 'active', 'inactive',
'busy' or 'expired'
Active:
Certificate is not expired and can be used
Inactive: Certificate is being processed
Busy: Order is in progress
Expired: Certificate is malformed or gone.
type: string
required:
- certificateId
- commonName
- expirationDate
- status
- canReissue
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Certificate with id '1337' not found
schema:
example:
error: Certificate with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: Retrieves a single SSL certificate by id.
operationId: Get SSL certificate by id
summary: Get SSL certificate by id
'/domains/{domainName}/whois':
get:
parameters:
- description: Domain name
example: example.com
in: path
name: domainName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
whois: ''
schema:
properties:
whois:
type: string
type: object
description: OK
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
schema:
example:
error: 'This is not a valid domain name: ''power-ranger$.nl'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: This method will return the WHOIS information for a domain name.
operationId: Get WHOIS information for a domain name
summary: Get WHOIS information for a domain name
/email:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
error: Ok
schema:
example:
error: Ok
properties:
error:
type: string
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Email
description: List all mail packages for a customer
operationId: List all mail packages
summary: List all mail packages
'/email/{domain}/mail-addons':
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
error: Ok
schema:
example:
error: Ok
properties:
error:
type: string
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Email
description: List all Mail Addons for an domain
operationId: List all mail addons
summary: List all mail addons
'/email/{domain}/mail-addons/{id}':
patch:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'202':
content:
application/json:
examples:
response:
value:
error: 'Accepted, addon will be unlinked'
schema:
example:
error: 'Accepted, addon will be unlinked'
properties:
error:
type: string
type: object
description: Accepted
headers: {}
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Addon not found
schema:
example:
error: Addon not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mailbox locked, Modification not allowed'
schema:
example:
error: 'Mailbox locked, Modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: Unlink an Addon to a Mailbox
operationId: Unlink email addon to mailbox
requestBody:
content:
application/json:
schema:
example:
action: unlinkmailbox
addonId: 7
mailbox: hello@example.com
properties:
action:
description: >-
The action to perform, to unlink an addon provide
"unlinkmailbox"
type: string
addonId:
description: The addon to unlink from the mailbox
type: number
mailbox:
description: >-
The mailbox to unlink this addon from, identified by the
email address
type: string
required:
- addonId
type: object
summary: Unlink email addon to mailbox
'/email/{domain}/mail-forwards':
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
error: Ok
schema:
example:
error: Ok
properties:
error:
type: string
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail forwards not found
schema:
example:
error: Mail forwards not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: List all mail forwards for an account
operationId: List all mail forwards
summary: List all mail forwards
post:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'201':
content:
application/json:
examples:
response:
value:
error: Created
schema:
example:
error: Created
properties:
error:
type: string
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Account not found
schema:
example:
error: Account not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Mail forward already exists
schema:
example:
error: Mail forward already exists
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mail forward limit reached, not permitted'
schema:
example:
error: 'Mail forward limit reached, not permitted'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Schedule creation of a mail forward
Creation of a mail forward will be linked to the provided account based
on the domain.
Forwards are always linked to the domain
operationId: Create mail forward
requestBody:
content:
application/json:
schema:
example:
forwardTo: forwardTo
localPart: localPart
properties:
forwardTo:
description: The target email to forward to
type: string
localPart:
description: >-
the label for the email address (will be the part before
left of AT). If an empty string is provided, the forward
will catch all mail for the domain.
type: string
required:
- localPart
- forwardTo
type: object
summary: Create mail forward
'/email/{domain}/mail-forwards/{forwardId}':
delete:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the forward being worked on
example: '7'
in: path
name: forwardId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail forward not found
schema:
example:
error: Mail forward not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mail forward locked, modification not allowed'
schema:
example:
error: 'Mail forward locked, modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Schedule deletion of a mail forward
Deletion of a mail forward will be scheduled
Forwards that are being modified cannot be deleted.
operationId: Delete mail forward
summary: Delete mail forward
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the forward being worked on
example: '7'
in: path
name: forwardId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
forward:
domain: example.com
forwardTo: john.doe@example.com
id: '20143'
localPart: forwardme
status: created
schema:
properties:
forward:
properties:
domain:
description: >-
The domain to forward (will be combined with the alias
to make the full email address).
type: string
forwardTo:
description: The email address to forward to.
type: string
id:
description: Unique identifier of the MailForward
type: string
localPart:
description: local part of the mailbox for the forward
type: string
status:
description: Status of the forward.
type: string
required:
- localPart
- domain
- forwardTo
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail forward not found
schema:
example:
error: Mail forward not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Read a mail forward's details
Reading of a forward
operationId: Get mail forward
summary: Get mail forward
patch:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the forward being worked on
example: '7'
in: path
name: forwardId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail forward not found
schema:
example:
error: Mail forward not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mail forward Locked, modification not allowed'
schema:
example:
error: 'Mail forward Locked, modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Update 1 (or more) of a mail forward's Details
Update of a mail forward will be scheduled. You may update only
localPart, or forwardTo.
Forwards that are being modified cannot be updated.
operationId: Update mail forward field
requestBody:
content:
application/json:
schema:
example:
forwardTo: forwardTo
localPart: localPart
properties:
forwardTo:
description: The target email to forward to
type: string
localPart:
description: >-
the label for the localPart (will be the part before left of
AT)
type: string
type: object
summary: Update mail forward field
put:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the forward being worked on
example: '7'
in: path
name: forwardId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail forward not found
schema:
example:
error: Mail forward not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mail forward locked, modification not allowed'
schema:
example:
error: 'Mail forward locked, modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Update a mail forward's details
Update of a mail forward will be scheduled. You may update only
localPart, or forwardTo.
Forwards that are being modified cannot be updated.
operationId: Update mail forward
requestBody:
content:
application/json:
schema:
example:
forwardTo: forwardTo
localPart: localPart
properties:
forwardTo:
description: The target email to forward to
type: string
localPart:
description: >-
the label for the localPart (will be the part before left of
AT). If an empty string is provided, the forward will catch
all mail for the domain.
type: string
required:
- localPart
- forwardTo
type: object
summary: Update mail forward
'/email/{domain}/mail-lists':
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
mailLists:
- emailAddress: list@example.com
entries:
- email1@example.com
- email2@example.com
id: '20143'
name: myname
schema:
properties:
mailLists:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail lists not found
schema:
example:
error: Mail lists not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: List all mail lists for an account
operationId: List all Mail lists
summary: List all Mail lists
post:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Account not found
schema:
example:
error: Account not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Mail list already exists.
schema:
example:
error: Mail list already exists.
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Schedule Creation of a Mail list
Creation of a mail list will be linked to the provided account based on
the domainName.
Lists are always linked to the domainName
operationId: Create Mail list
requestBody:
content:
application/json:
schema:
example:
emailAddress: emailAddress
entries:
- entries
name: name
properties:
emailAddress:
description: The email address of the list itself
type: string
entries:
description: The email addresses in the mail list
type: array
name:
description: the name of the list being created
type: string
required:
- name
- emailAddress
- entries
type: object
summary: Create Mail list
'/email/{domain}/mail-lists/{listId}':
delete:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the list being worked on
example: '7'
in: path
name: listId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail list not found
schema:
example:
error: Mail list not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mail list Locked, modification not allowed'
schema:
example:
error: 'Mail list Locked, modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Schedule Deletion of a mail list
Deletion of a mail list will be scheduled
Lists that are being modified cannot be deleted.
operationId: Delete Mail List
summary: Delete Mail List
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the list being worked on
example: '7'
in: path
name: listId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
mailList:
emailAddress: list@example.com
entries:
- email1@example.com
- email2@example.com
id: '20143'
name: myname
schema:
properties:
mailList:
properties:
emailAddress:
description: The emailAddress of the list.
type: string
entries:
description: The Email Addresses in the list.
items: {}
type: array
id:
description: Unique identifier of the MailList
type: string
name:
description: Name of the MailList
type: string
required:
- name
- emailAddress
- entries
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail list not found
schema:
example:
error: Mail list not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Read a Mail list's Details
Reading of a list
operationId: Get Mail list
summary: Get Mail list
put:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the ID of the list being worked on
example: '7'
in: path
name: listId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mail list not found
schema:
example:
error: Mail list not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mail list Locked, modification not allowed'
schema:
example:
error: 'Mail list Locked, modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Update a mail list
Update of a mail list will be scheduled.
Only changes to the name and entry will be processed.
Lists that are being modified cannot be updated.
operationId: Update Mail list
requestBody:
content:
application/json:
schema:
example:
mailList:
emailAddress: list@example.com
entries:
- email1@example.com
- email2@example.com
id: '20143'
name: myname
properties:
mailList:
properties:
emailAddress:
description: The emailAddress of the list.
type: string
entries:
description: The Email Addresses in the list.
type: array
id:
description: Unique identifier of the MailList
type: string
name:
description: Name of the MailList
type: string
required:
- name
- emailAddress
- entries
type: object
type: object
summary: Update Mail list
'/email/{domain}/mailboxes':
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
error: Ok
schema:
example:
error: Ok
properties:
error:
type: string
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mailboxes not found
schema:
example:
error: Mailboxes not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: List all mailboxes for an account
operationId: List all Mailboxes
summary: List all Mailboxes
post:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
responses:
'201':
content:
application/json:
examples:
response:
value:
error: Created
schema:
example:
error: Created
properties:
error:
type: string
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Account not found
schema:
example:
error: Account not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Schedule Creation of a Mailbox
Creation of a Mailbox will be linked to the provided account based on
the domain.
Mailboxes are always linked to the domain
operationId: Create Mailbox
requestBody:
content:
application/json:
schema:
example:
forwardTo: forwardTo
localPart: localPart
maxDiskUsage: 0
password: password
properties:
forwardTo:
description: The target email to forward to
type: string
localPart:
description: >-
the label for the local part (will be the part before left
of AT)
type: string
maxDiskUsage:
description: Size of the mailbox in MB
type: number
password:
description: The password for the new mailbox
type: string
required:
- localPart
- password
- maxDiskUsage
type: object
summary: Create Mailbox
'/email/{domain}/mailboxes/{identifier}':
delete:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the email address of the mailbox being worked on
example: test@example.com
in: path
name: identifier
required: true
schema:
type: string
responses:
'201':
content:
application/json:
examples:
response:
value:
error: Created
schema:
example:
error: Created
properties:
error:
type: string
type: object
description: Created
headers: {}
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mailbox not found
schema:
example:
error: Mailbox not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mailbox Locked, Modification not allowed'
schema:
example:
error: 'Mailbox Locked, Modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Schedule Deletion of a mailbox
Deletion of a Mailbox will be scheduled
Mailboxes that are being modified cannot be deleted.
operationId: Delete Mailbox
summary: Delete Mailbox
get:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the email address of the mailbox being worked on
example: test@example.com
in: path
name: identifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
Mailbox:
availableDiskSpace: '100.0'
domain: example.com
forwardTo: test@example.com
identifier: test@example.com
imapPort: '123'
imapServer: imap.example.com
isLocked: 'true'
localPart: test
pop3Port: '123'
pop3Server: pop3.example.com
smtpPort: '123'
smtpServer: smtp.example.com
status: creating
usedDiskSpace: '100.0'
webmailUrl: 'https://transip.email/'
schema:
properties:
Mailbox:
properties:
availableDiskSpace:
description: Disk space that is available for the mailbox
type: string
domain:
description: Domain of the mailbox
type: string
forwardTo:
description: Email address to also forward the email to
type: string
identifier:
description: Identifier for the mailbox
type: string
imapPort:
description: IMAP port for IMAP server
type: string
imapServer:
description: IMAP server for mailbox
type: string
isLocked:
description: Shows whether a mailbox is locked
type: string
localPart:
description: Local part of the mailbox
type: string
pop3Port:
description: POP3 port for IMAP server
type: string
pop3Server:
description: POP3 server for mailbox
type: string
smtpPort:
description: SMTP port for SMTP server
type: string
smtpServer:
description: SMTP server for mailbox
type: string
status:
description: Current status of the mailbox
type: string
usedDiskSpace:
description: Disk space that is used for the mailbox
type: string
webmailUrl:
description: Webmail url
type: string
required:
- identifier
- localPart
- domain
- forwardTo
- availableDiskSpace
- usedDiskSpace
- status
- isLocked
- imapServer
- imapPort
- smtpServer
- smtpPort
- pop3Server
- pop3Port
- webmailUrl
type: object
type: object
description: OK
headers: {}
'201':
content:
application/json:
examples:
response:
value:
error: Created
schema:
example:
error: Created
properties:
error:
type: string
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mailbox not found
schema:
example:
error: Mailbox not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Email
description: |-
Read a Mailbox's Details
Reading of a mailbox
operationId: Get Mailbox
summary: Get Mailbox
patch:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the email address of the mailbox being worked on
example: test@example.com
in: path
name: identifier
required: true
schema:
type: string
responses:
'201':
content:
application/json:
examples:
response:
value:
error: Created
schema:
example:
error: Created
properties:
error:
type: string
type: object
description: Created
headers: {}
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mailbox not found
schema:
example:
error: Mailbox not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mailbox Locked, Modification not allowed'
schema:
example:
error: 'Mailbox Locked, Modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Update 1 (or more) of a Mailbox's Details
Update of a Mailbox will be scheduled. You may update only maxDiskUsage,
password, or forwardTo.
Mailboxes that are being modified cannot be updated.
operationId: Update Mailbox field
requestBody:
content:
application/json:
schema:
example:
forwardTo: forwardTo
maxDiskUsage: 0
password: password
properties:
forwardTo:
description: The target email to forward to
type: string
maxDiskUsage:
description: Size of the mailbox in MB
type: number
password:
description: The password for the mailbox
type: string
type: object
summary: Update Mailbox field
put:
parameters:
- description: domainName
example: example.com
in: path
name: domain
required: true
schema:
type: string
- description: the email address of the mailbox being worked on
example: test@example.com
in: path
name: identifier
required: true
schema:
type: string
responses:
'201':
content:
application/json:
examples:
response:
value:
error: Created
schema:
example:
error: Created
properties:
error:
type: string
type: object
description: Created
headers: {}
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Mailbox not found
schema:
example:
error: Mailbox not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Mailbox Locked, Modification not allowed'
schema:
example:
error: 'Mailbox Locked, Modification not allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Email
description: >-
Update a Mailbox's Details
Update of a Mailbox will be scheduled. You may update only maxDiskUsage,
password, or forwardTo.
Mailboxes that are being modified cannot be updated.
operationId: Update Mailbox
requestBody:
content:
application/json:
schema:
example:
forwardTo: forwardTo
maxDiskUsage: 0
password: password
properties:
forwardTo:
description: The target email to forward to
type: string
maxDiskUsage:
description: Size of the mailbox in MB
type: number
password:
description: The password for the mailbox
type: string
required:
- maxDiskUsage
- password
type: object
summary: Update Mailbox
/filehosting/disks:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
filehostingDisks:
- createdAt: '2024-10-08 12:00:00'
description: Johnwick's personal disk
diskSizeBytes: 5242880
freeBytes: 3145728
id: 4134
inUseBytes: 2097152
name: Johnwick
status: active
schema:
properties:
filehostingDisks:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: filehosting disks not found
schema:
example:
error: filehosting disks not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
List all disks
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
Optionally you can provide `orderBy` field in the request param, which
allows you to order the result. Valid values are `name`, `id`,
`description`, `diskSize`, `inUseBytes`, `freeBytes`
Optionally you can provide `reverse` field in the request param. If set
to `true`, then the result would be in `DESC` descending order. Default
order is `ASC`.
operationId: List all disks
summary: List all disks
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
FilehostingDisk product 'filehosting-disk-500' is not
found
schema:
example:
error: FilehostingDisk product 'filehosting-disk-500' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
Order a new disk
::: warning
**Warning**: This API call will create an
invoice!
operationId: Order a new disk
requestBody:
content:
application/json:
schema:
example:
productName: filehosting-disk-500
properties:
productName:
description: Name of the product
type: string
type: object
summary: Order a new disk
'/filehosting/disks/{diskId}':
delete:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Disk not found
schema:
example:
error: Disk not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Product already has cancellation pending
schema:
example:
error: Product already has cancellation pending
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
Using the DELETE method on a disk will cancel it, thus deleting it.
You can specify when is the `endTime` of your contract. `end` would mean
cancel at the end of the current contract period. `immediately` would
mean cancel the contract immediately.
::: warning
**Warning**: In case you specify
`immediately` for the `endTime` param, please ensure that you have your
data backed up elsewhere already. As the contract would be cancelled
immediately, and you won't have access to your data anymore.
operationId: Cancel a disk
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately''.'
type: string
type: object
summary: Cancel a disk
get:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
filehostingDisk:
createdAt: '2024-10-08 12:00:00'
description: Johnwick's personal disk
diskSizeBytes: 5242880
freeBytes: 3145728
id: 4134
inUseBytes: 2097152
name: Johnwick
status: active
schema:
properties:
filehostingDisk:
properties:
createdAt:
description: The creation date time for the disk
type: string
description:
description: Description of the disk
type: string
diskSizeBytes:
description: Total capacity of the disk size in bytes
type: number
freeBytes:
description: Current free space of the disk in bytes
type: number
id:
description: Id of the disk
type: number
inUseBytes:
description: Current usage of the disk in bytes
type: number
name:
description: Name of the disk
type: string
status:
description: Status of the disk
type: string
required:
- description
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: FilehostingDisk with id 34521 not found
schema:
example:
error: FilehostingDisk with id 34521 not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: Get an existing disk by disk id
operationId: Get disk by disk id
summary: Get disk by disk id
put:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: FilehostingDisk with id 34521 not found
schema:
example:
error: FilehostingDisk with id 34521 not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
This API calls allows for altering a disk in several ways outlined
below:
* Set a new description (valid description length should be less than
200 characters)
operationId: Update disk
requestBody:
content:
application/json:
schema:
example:
disk:
createdAt: '2024-10-08 12:00:00'
description: Johnwick's personal disk
diskSizeBytes: 5242880
freeBytes: 3145728
id: 4134
inUseBytes: 2097152
name: Johnwick
status: active
properties:
disk:
properties:
createdAt:
description: The creation date time for the disk
type: string
description:
description: Description of the disk
type: string
diskSizeBytes:
description: Total capacity of the disk size in bytes
type: number
freeBytes:
description: Current free space of the disk in bytes
type: number
id:
description: Id of the disk
type: number
inUseBytes:
description: Current usage of the disk in bytes
type: number
name:
description: Name of the disk
type: string
status:
description: Status of the disk
type: string
required:
- description
type: object
type: object
summary: Update disk
'/filehosting/disks/{diskId}/backups':
get:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
filehostingBackups:
- backupSizeBytes: 29869959168
createdAt: '2024-10-03 12:00:00'
diskId: 32451
diskSizeBytes: 29869959168
id: 160277323
name: 32451@160277323
status: active
validUntil: '2024-10-08 12:00:00'
schema:
properties:
filehostingBackups:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: FilehostingBackups not found
schema:
example:
error: FilehostingBackups not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
List all the backups for a disk
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
Optionally you can provide `orderBy` field, default value is `id`. Valid
values are: `id`, `name`, `status`, `backupSize`, `dateTimeCreate`,
`dateTimeCancel`
Optionally you can provide `reverse` field. If set to true, then the
result would be in `DESC` descending order. Default order is `ASC`.
operationId: List all backups for a disk
summary: List all backups for a disk
'/filehosting/disks/{diskId}/backups/{backupId}':
put:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
- description: Backup Id
example: '4523324'
in: path
name: backupId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
FilehostingDisk with id 34521 not found/ Backup with id
344 not found
schema:
example:
error: >-
FilehostingDisk with id 34521 not found/ Backup with id 344
not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: There is already a backup revert action happening
schema:
example:
error: There is already a backup revert action happening
properties:
error:
type: string
type: object
description: Conflict
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
This API call reverts a backup as the main data source for a disk.
::: warning
**Warning**: Once reverted the current
data that is not in the backup will be permanently lost!
operationId: Revert a backup for a disk
summary: Revert a backup for a disk
'/filehosting/disks/{diskId}/custom-domains':
get:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
CustomDomainNames:
- createdAt: '2024-10-03 12:00:00'
diskId: 32451
domainName: studio-of-john.com
expiresAt: '2025-01-25 12:08:40'
hostname: office
id: 160277323
status: active
schema:
properties:
CustomDomainNames:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: filehosting disk not found
schema:
example:
error: filehosting disk not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: List all custom domain names
operationId: List all custom domain names for a disk
summary: List all custom domain names for a disk
post:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: FilehostingDisk with id 34521 not found
schema:
example:
error: FilehostingDisk with id 34521 not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: This API call attaches a domain name to a disk
operationId: Attach custom domain name for a disk
requestBody:
content:
application/json:
schema:
example:
altHostname: altHostname
domainName: 0
hostname: hostname
properties:
altHostname:
type: string
domainName:
type: number
hostname:
type: string
required:
- hostname
- domainName
type: object
summary: Attach custom domain name for a disk
'/filehosting/disks/{diskId}/custom-domains/{customDomainId}':
delete:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
- description: Domain Id
example: '4523'
in: path
name: customDomainId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
FilehostingDisk with id 34521 not found/ Domain with id
102 not found
schema:
example:
error: >-
FilehostingDisk with id 34521 not found/ Domain with id 102
not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: This API call detaches/removes a custom domain name from a disk
operationId: Detach a custom domain for a disk
summary: Detach a custom domain for a disk
'/filehosting/disks/{diskId}/upgrades':
put:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Filehosting product 'filehosting-disk-1000' is not found
schema:
example:
error: Filehosting product 'filehosting-disk-1000' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
This API call allows you to upgrade a disk contract
**Warning**: This API call will create an
invoice for the upgrade.
operationId: Upgrade a disk contract
requestBody:
content:
application/json:
schema:
example:
productName: filehosting-disk-1000
properties:
productName:
type: string
type: object
summary: Upgrade a disk contract
'/filehosting/disks/{diskId}/users':
get:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
filehostingUsers:
- createdAt: '2024-08-03 12:00:00'
displayName: JohnIsMyRealName
freeBytes: 1097152
id: 1
inUseBytes: 1097152
quotaBytes: 2097152
sizeBytes: 2343241341
username: Johnwick the main user
schema:
properties:
filehostingUsers:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: filehosting disks not found
schema:
example:
error: filehosting disks not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: >-
List all the users of a disk
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
Optionally you can provide `orderBy` field, default value is `username`.
Valid values are: `id`, `username`, `displayName`, `sizeBytes`,
`freeBytes`, `inUseBytes`.
Optionally you can provide `reverse` field. If set to true, then the
result would be in `DESC` descending order. Default order is `ASC`.
operationId: List all users of a disk
summary: List all users of a disk
put:
parameters:
- description: Disk id
example: '32541'
in: path
name: diskId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Customer does not own this disk
schema:
example:
error: Customer does not own this disk
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: FilehostingDisk with id 34521 not found
schema:
example:
error: FilehostingDisk with id 34521 not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: >-
Error Processing Order, internal error occurred, please
contact our support
schema:
example:
error: >-
Error Processing Order, internal error occurred, please
contact our support
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- Filehosting
description: This API call resets the password of a disk user
operationId: Reset password for a disk user
requestBody:
content:
application/json:
schema:
example:
newPassword: '******'
username: john
properties:
newPassword:
type: string
username:
type: string
type: object
summary: Reset password for a disk user
/haips:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
haips:
- description: frontend cluster
healthCheckInterval: 3000
httpHealthCheckPath: /status.php
httpHealthCheckPort: 443
httpHealthCheckSsl: true
ipAddresses:
- 10.3.37.1
- 10.3.38.1
ipSetup: ipv6to4
ipv4Address: 37.97.254.7
ipv6Address: '2a01:7c8:3:1337::1'
isLoadBalancingEnabled: true
isLocked: false
loadBalancingMode: cookie
name: example-haip
ptrRecord: frontend.example.com
status: active
stickyCookieName: PHPSESSID
tlsMode: tls12
schema:
properties:
haips:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Lists all HA-IPs currently registered in your account.
By looping through the entire output and splitting the array, you can
gather information about a specific HA-IP. However, we do not recommend
getting the entire amount of HA-IPs in case you already know the HA-IP
name - you can get the same array without the need to loop through all
HA-IPs. Use the [ha-ip-get](#ha-ip-ha-ip-get-1) method for this.
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all HA-IPs
summary: List all HA-IPs
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP product 'haip-extreme-contract' is not found
schema:
example:
error: HA-IP product 'haip-extreme-contract' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Order a HA-IP. After assigning the HA-IP to an IP (which can be done
through the API as well) all incoming TCP traffic will be routed to the
specified IP addresses (only VPS IPs are allowed).
::: warning
**Warning**: This API call will create an
invoice!
operationId: Order a new HA-IP
requestBody:
content:
application/json:
schema:
example:
description: myhaip01
productName: haip-pro-contract
properties:
description:
description: >-
Optional description for the the HA-IP, this you can use to
identify your HA-IP once created
type: string
productName:
description: Required HA-IP product name to order
type: string
type: object
summary: Order a new HA-IP
'/haips/{haipName}':
delete:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
With this method you are able to cancel a HA-IP.
When specifying 'end' for `endTime`, the HA-IP will be canceled at the
end of the contract period. In case you specify 'immediately' the HA-IP
will be detached from any IPs it's currently attached to and traffic
will no longer be proxied.
operationId: Cancel a HA-IP
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately'''
type: string
type: object
summary: Cancel a HA-IP
get:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
haip:
description: frontend cluster
healthCheckInterval: 3000
httpHealthCheckPath: /status.php
httpHealthCheckPort: 443
httpHealthCheckSsl: true
ipAddresses:
- 10.3.37.1
- 10.3.38.1
ipSetup: ipv6to4
ipv4Address: 37.97.254.7
ipv6Address: '2a01:7c8:3:1337::1'
isLoadBalancingEnabled: true
isLocked: false
loadBalancingMode: cookie
name: example-haip
ptrRecord: frontend.example.com
status: active
stickyCookieName: PHPSESSID
tlsMode: tls12
schema:
properties:
haip:
properties:
description:
description: The description that can be set by the customer
type: string
healthCheckInterval:
description: >-
The interval in milliseconds at which health checks
are performed. The interval may not be smaller than
2000ms.
type: number
httpHealthCheckPath:
description: >-
The path (URI) of the page to check HTTP status code
on
type: string
httpHealthCheckPort:
description: >-
The port to perform the HTTP check on, this should be
the port your services are listening on
type: number
httpHealthCheckSsl:
description: Whether to use SSL when performing the HTTP check
type: boolean
ipAddresses:
description: The IPs attached to this HA-IP
items: {}
type: array
ipSetup:
description: 'HA-IP IP setup: ''both'', ''noipv6'', ''ipv6to4'', ''ipv4to6'''
type: string
ipv4Address:
description: HA-IP IPv4 address
type: string
ipv6Address:
description: HA-IP IPv6 address
type: string
isLoadBalancingEnabled:
description: Whether load balancing is enabled for this HA-IP
type: boolean
isLocked:
description: >-
Whether or not another process is already doing stuff
with this HA-IP
type: boolean
loadBalancingMode:
description: >-
HA-IP load balancing mode: 'roundrobin', 'cookie',
'source'
type: string
name:
description: HA-IP name
type: string
ptrRecord:
description: The PTR record for the HA-IP
type: string
status:
description: 'HA-IP status, either ''active'', ''inactive'', ''creating'''
type: string
stickyCookieName:
description: >-
Cookie name to pin sessions on when using cookie
balancing mode
type: string
tlsMode:
description: 'HA-IP TLS Mode: ''tls12'''
type: string
required:
- tlsMode
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Get information about a specific HA-IP such as the IP(s) it's currently
assigned to and the IPv4 and IPv6 address of the HA-IP.
operationId: Get HA-IP info
summary: Get HA-IP info
put:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid hostname: ''test&@*#'''
schema:
example:
error: 'This is not a valid hostname: ''test&@*#'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
This API calls allows for altering a HA-IP in several ways outlined
below:
* Set the description of a HA-IP;
* Set the PTR record;
* Set the httpHealthCheckPath, must start with a /;
* Set the httpHealthCheckPort, the port must be configured on the HA-IP
[PortConfigurations](#ha-ip-ha-ip-port-configurations).
Load balancing options (`loadBalancingMode`):
* **roundrobin**: forward to next address everytime;
* **cookie**: forward to a fixed server, based on the cookie;
* **source**: choose a server to forward to based on the source address.
Ip setup options (`ipSetup`):
* **both**: accept ipv4 and ipv6 and forward them to seperate ipv4 and
ipv6 addresses;
* **noipv6**: do not accept ipv6 traffic;
* **ipv6to4**: forward ipv6 traffic to ipv4.
* **ipv4to6**: forward ipv4 traffic to ipv6.
operationId: Update a HA-IP
requestBody:
content:
application/json:
schema:
example:
haip:
description: frontend cluster
healthCheckInterval: 3000
httpHealthCheckPath: /status.php
httpHealthCheckPort: 443
httpHealthCheckSsl: true
ipAddresses:
- 10.3.37.1
- 10.3.38.1
ipSetup: ipv6to4
ipv4Address: 37.97.254.7
ipv6Address: '2a01:7c8:3:1337::1'
isLoadBalancingEnabled: true
isLocked: false
loadBalancingMode: cookie
name: example-haip
ptrRecord: frontend.example.com
status: active
stickyCookieName: PHPSESSID
tlsMode: tls12
properties:
haip:
properties:
description:
description: The description that can be set by the customer
type: string
healthCheckInterval:
description: >-
The interval in milliseconds at which health checks are
performed. The interval may not be smaller than 2000ms.
type: number
httpHealthCheckPath:
description: The path (URI) of the page to check HTTP status code on
type: string
httpHealthCheckPort:
description: >-
The port to perform the HTTP check on, this should be
the port your services are listening on
type: number
httpHealthCheckSsl:
description: Whether to use SSL when performing the HTTP check
type: boolean
ipAddresses:
description: The IPs attached to this HA-IP
type: array
ipSetup:
description: 'HA-IP IP setup: ''both'', ''noipv6'', ''ipv6to4'', ''ipv4to6'''
type: string
ipv4Address:
description: HA-IP IPv4 address
type: string
ipv6Address:
description: HA-IP IPv6 address
type: string
isLoadBalancingEnabled:
description: Whether load balancing is enabled for this HA-IP
type: boolean
isLocked:
description: >-
Whether or not another process is already doing stuff
with this HA-IP
type: boolean
loadBalancingMode:
description: >-
HA-IP load balancing mode: 'roundrobin', 'cookie',
'source'
type: string
name:
description: HA-IP name
type: string
ptrRecord:
description: The PTR record for the HA-IP
type: string
status:
description: 'HA-IP status, either ''active'', ''inactive'', ''creating'''
type: string
stickyCookieName:
description: >-
Cookie name to pin sessions on when using cookie
balancing mode
type: string
tlsMode:
description: 'HA-IP TLS Mode: ''tls12'''
type: string
required:
- tlsMode
type: object
type: object
summary: Update a HA-IP
'/haips/{haipName}/certificates':
get:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
certificates:
- commonName: example.com
expirationDate: '2019-11-23'
id: 25478
issuerType: letsencrypt
schema:
properties:
certificates:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on HA-IP 'example-haip' are temporary disabled
schema:
example:
error: Actions on HA-IP 'example-haip' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
List the SSL certificates that are currently used by this HA-IP.
Ssl certificate id refers to the ssl certificate found in [domain
ssl](#domains-ssl)
operationId: List all HA-IP certificates
summary: List all HA-IP certificates
post:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: The domain 'foo.bar' could not be found in your account
schema:
example:
error: The domain 'foo.bar' could not be found in your account
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
commonName '*.example.com' is invalid as it cannot be
managed, the domain should be part of your account
schema:
example:
error: >-
commonName '*.example.com' is invalid as it cannot be
managed, the domain should be part of your account
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Add a LetsEncrypt certificate to your HA-IP. We will take care of all
the validation and renewals.
In order to provide free LetsEncrypt certificates for the domains on
your HA-IP, some requirements must be met in order to complete the
certificate request:
- **DNS**: the given CommonName must resolve to the HA-IP IP. IPv6 is
not required, but when set, it must resolve to the HA-IP IPv6;
- **PortConfiguration**: LetsEncrypt verifies domains with a HTTP call
to `/.well-known`. When requesting a LetsEncrypt certificate, our
proxies will handle all ACME requests to automatically verify the
certificate. To achieve this, the HA-IP must have a HTTP
portConfiguration on port 80. When using this, you will also no longer
be able to verify your own LetsEncrypt certificates via HA-IP.
::: warning
**Warning**: If your HA-IP does not have a HTTP portconfiguration on port 80, we will ensure it will.
operationId: Add LetsEncrypt certificate to HA-IP
requestBody:
content:
application/json:
schema:
example:
commonName: foobar.example.com
properties:
commonName:
description: >-
The domain name that the SSL certificate is added to. Start
with ‘*.’ when the certificate is a wildcard
type: string
type: object
summary: Add LetsEncrypt certificate to HA-IP
'/haips/{haipName}/certificates/{certificateId}':
delete:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
- description: >-
The certificate Id, this is the same identifier as seen on [domain
ssl](#domains-ssl)
example: '7548'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Detaches a HA-IP certificate by the given `certificateId`, this is the
same identifier as seen on [domain ssl](#domains-ssl).
operationId: Detach a certificate from this HA-IP
summary: Detach a certificate from this HA-IP
'/haips/{haipName}/ip-addresses':
delete:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Detach all IPs from HA-IP.
Removing the last IP from HA-IP will also delete all port
configurations.
operationId: Detach all IPs from HA-IP
summary: Detach all IPs from HA-IP
get:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
ipAddresses:
- 149.13.3.7
- 149.31.33.7
schema:
properties:
ipAddresses:
description: List of IP addresses attached to this HA-IP
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on HA-IP 'example-haip' are temporary disabled
schema:
example:
error: Actions on HA-IP 'example-haip' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
This method will return a list of currently attached IP addresses to
your HA-IP. Traffic will be forwarded to the IPs attached to the HA-IP.
operationId: List all IPs attached to a HA-IP
summary: List all IPs attached to a HA-IP
put:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: HA-IP basic product allows only one attached IP address
schema:
example:
error: HA-IP basic product allows only one attached IP address
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
IP address 'test-ip-123' is not a valid IPV4 or IPV6
address
schema:
example:
error: IP address 'test-ip-123' is not a valid IPV4 or IPV6 address
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: |-
Replace or attach IPs for HA-IP.
Only IPs in your account are allowed.
When load balancing is enabled, multiple IPs can be attached to HA-IP.
If load balancing is not enabled, the current attached IP (if any) will be replaced with the first provided IP.
operationId: Set HA-IP attached IP addresses
requestBody:
content:
application/json:
schema:
example:
ipAddresses:
- 149.13.3.7
- 149.31.33.7
properties:
ipAddresses:
description: >-
Set of IP addresses to attach, replaces the current set of
IP addresses
type: array
type: object
summary: Set HA-IP attached IP addresses
'/haips/{haipName}/port-configurations':
get:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
portConfigurations:
- endpointSslMode: 'off'
id: 9865
mode: http
name: Website Traffic
sourcePort: 80
targetPort: 80
schema:
properties:
portConfigurations:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on HA-IP 'example-haip' are temporary disabled
schema:
example:
error: Actions on HA-IP 'example-haip' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
This method will return a list of all port configuration on the given
HA-IP.
operationId: List all HA-IP port configurations
summary: List all HA-IP port configurations
post:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
sourcePort '25' is not unique, there is already a
PortConfiguration using this sourcePort port
schema:
example:
error: >-
sourcePort '25' is not unique, there is already a
PortConfiguration using this sourcePort port
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Add ports to HA-IP to route to your attached IP address(es)
Mode options:
- **http** appends a X-Forwarded-For header to HTTP requests with the
original remote IP;
- **https** same as HTTP, with SSL Certificate offloading;
- **http2_https** same as HTTPS, with http/2 support;
- **tcp** plain TCP forward to your attached IP address(es);
- **proxy** proxy protocol is also a way to retain the original remote
IP, but also works for non HTTP traffic (note: the receiving application
has to support this).
Endpoint SSL mode options:
- **off** no SSL connection is established between our load balancers
and your attached IP address(es);
- **on** an SSL connection is established between our load balancers
your attached IP address(es), but the certificate is not validated;
- **strict** an SSL connection is established between our load balancers
your attached IP address(es), and the certificate must signed by a
trusted Certificate Authority.
operationId: Create a port configuration
requestBody:
content:
application/json:
schema:
example:
endpointSslMode: 'on'
mode: https
name: Website Traffic
sourcePort: 443
targetPort: 443
properties:
endpointSslMode:
description: >-
The mode determining how traffic between our load balancers
and your VPS is protected: ‘off’, ‘on’, ‘strict’
type: string
mode:
description: >-
The mode determining how traffic is processed and forwarded:
‘tcp’, ‘http’, ‘https’, ‘http2_https’, ‘proxy’
type: string
name:
description: Name of the port configuration
type: string
sourcePort:
description: The port at which traffic arrives on your HA-IP
type: number
targetPort:
description: >-
The port at which traffic arrives on your attached IP
address(es)
type: number
type: object
summary: Create a port configuration
'/haips/{haipName}/port-configurations/{portConfigurationId}':
delete:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
- description: The port configuration Id
example: '7548'
in: path
name: portConfigurationId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP PortConfiguration with id '1337' not found
schema:
example:
error: HA-IP PortConfiguration with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: Remove a port configuration by id.
operationId: Remove port configuration
summary: Remove port configuration
get:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
- description: The port configuration Id
example: '7548'
in: path
name: portConfigurationId
required: true
schema:
type: number
responses:
'200':
content:
application/json:
examples:
response:
value:
portConfiguration:
endpointSslMode: 'off'
id: 9865
mode: http
name: Website Traffic
sourcePort: 80
targetPort: 80
schema:
properties:
portConfiguration:
properties:
endpointSslMode:
description: >-
The mode determining how traffic between our load
balancers and your attached IP address(es) is
encrypted: 'off', 'on', 'strict'
type: string
id:
description: The port configuration Id
type: number
mode:
description: >-
The mode determining how traffic is processed and
forwarded: 'tcp', 'http', 'https', 'http2_https',
'proxy'
type: string
name:
description: A name describing the port
type: string
sourcePort:
description: The port at which traffic arrives on your HA-IP
type: number
targetPort:
description: >-
The port at which traffic arrives on your attached IP
address(es)
type: number
required:
- name
- sourcePort
- targetPort
- mode
- endpointSslMode
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP PortConfiguration with id '1337' not found
schema:
example:
error: HA-IP PortConfiguration with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on HA-IP 'example-haip' are temporary disabled
schema:
example:
error: Actions on HA-IP 'example-haip' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: This method will return information about a specific port configuration.
operationId: Get info about a specific PortConfiguration
summary: Get info about a specific PortConfiguration
put:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
- description: The port configuration Id
example: '7548'
in: path
name: portConfigurationId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP PortConfiguration with id '75' not found
schema:
example:
error: HA-IP PortConfiguration with id '75' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
sourcePort '1337' is not unique, there is already a
PortConfiguration using this sourcePort port
schema:
example:
error: >-
sourcePort '1337' is not unique, there is already a
PortConfiguration using this sourcePort port
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' has an action running, no
modification is allowed
schema:
example:
error: >-
HA-IP 'example-haip' has an action running, no modification
is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
Update the `name`, `sourcePort`, `targetPort`, `mode`, or
`endpointSslMode` for a specific port configuration.
Mode options (`mode`):
- **http** appends a X-Forwarded-For header to HTTP requests with the
original remote IP;
- **https** same as HTTP, with SSL Certificate offloading;
- **http2_https** same as HTTPS, with http/2 support;
- **tcp** plain TCP forward to your VPS;
- **proxy** proxy protocol is also a way to retain the original remote
IP, but also works for non HTTP traffic (note: the receiving application
has to support this).
Endpoint SSL mode options (`endpointSslMode`):
- **off** no SSL connection is established between our load balancers
and your VPS;
- **on** an SSL connection is established between our load balancers
your VPS, but the certificate is not validated;
- **strict** an SSL connection is established between our load balancers
your VPS, and the certificate must signed by a trusted Certificate
Authority.
operationId: Update a port configuration
requestBody:
content:
application/json:
schema:
example:
portConfiguration:
endpointSslMode: 'off'
id: 9865
mode: http
name: Website Traffic
sourcePort: 80
targetPort: 80
properties:
portConfiguration:
properties:
endpointSslMode:
description: >-
The mode determining how traffic between our load
balancers and your attached IP address(es) is encrypted:
'off', 'on', 'strict'
type: string
id:
description: The port configuration Id
type: number
mode:
description: >-
The mode determining how traffic is processed and
forwarded: 'tcp', 'http', 'https', 'http2_https',
'proxy'
type: string
name:
description: A name describing the port
type: string
sourcePort:
description: The port at which traffic arrives on your HA-IP
type: number
targetPort:
description: >-
The port at which traffic arrives on your attached IP
address(es)
type: number
required:
- name
- sourcePort
- targetPort
- mode
- endpointSslMode
type: object
type: object
summary: Update a port configuration
'/haips/{haipName}/status-reports':
get:
parameters:
- description: The HA-IP name
example: example-haip
in: path
name: haipName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
statusReports:
- ipAddress: 136.10.14.1
ipVersion: 4
lastChange: '2019-09-29 16:51:18'
loadBalancerIp: 136.144.151.255
loadBalancerName: lb0
port: 80
state: up
schema:
properties:
statusReports:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
HA-IP 'example-haip' is blocked, no modification is
allowed
schema:
example:
error: 'HA-IP ''example-haip'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: HA-IP with name 'example-haip' not found
schema:
example:
error: HA-IP with name 'example-haip' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on HA-IP 'example-haip' are temporary disabled
schema:
example:
error: Actions on HA-IP 'example-haip' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- HA-IP
description: >-
The result contains a report per attached IP address, IP version, port
and load balancer.
operationId: Get a full status report for a HA-IP
summary: Get a full status report for a HA-IP
/installation-templates:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
installationTemplates:
- name: cloud-init-sshkeys
template: ''
schema:
properties:
installationTemplates:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: List all installation templates
operationId: List all installation templates
summary: List all installation templates
post:
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
The provided InstallationTemplate already exists in your
account
schema:
example:
error: >-
The provided InstallationTemplate already exists in your
account
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Add a new InstallationTemplate
operationId: Add a new InstallationTemplate
requestBody:
content:
application/json:
schema:
example:
name: ubuntu
template: >-
I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogcmVzY3VlCnVzZXJzOgotIG5hbWU6IHJvb3QKICBzdWRvOiBbJ0FMTD0oQUxMKSBOT1BBU1NXRDpBTEwnXQogIHNzaC1hdXRob3JpemVkLWtleXM6CnslIGZvciBrZXkgaW4gc3Noa2V5cyAlfQogIC0ge3sga2V5IH19CnslIGVuZGZvciAlfQ==
properties:
name:
description: Name of the template
type: string
template:
description: Base64 encoded twig template
type: string
type: object
summary: Add a new InstallationTemplate
'/installation-templates/{name}':
delete:
parameters:
- description: The name of the installation template
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: InstallationTemplate with name 'test' not found
schema:
example:
error: InstallationTemplate with name 'test' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Delete an existing InstallationTemplate from your account.
operationId: Delete an InstallationTemplate
summary: Delete an InstallationTemplate
get:
parameters:
- description: The name of the installation template
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
installationTemplate:
name: cloud-init-sshkeys
template: ''
schema:
properties:
installationTemplate:
properties:
name:
description: name of the template
type: string
template:
description: base64 encoded installer template
type: string
required:
- template
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: InstallationTemplate with name 'ubuntu' not found
schema:
example:
error: InstallationTemplate with name 'ubuntu' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Request information about an existing installation template
operationId: Get InstallationTemplate by name
summary: Get InstallationTemplate by name
put:
parameters:
- description: The name of the installation template
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: InstallationTemplate with name 'test' not found
schema:
example:
error: InstallationTemplate with name 'test' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Update an existing InstallationTemplate
operationId: Update an InstallationTemplate
requestBody:
content:
application/json:
schema:
example:
installationTemplate:
name: cloud-init-sshkeys
template: ''
properties:
installationTemplate:
properties:
name:
description: name of the template
type: string
template:
description: base64 encoded installer template
type: string
required:
- template
type: object
type: object
summary: Update an InstallationTemplate
'/installation-templates/{name}/render':
post:
parameters:
- description: The name of the installation template
in: path
name: name
required: true
schema:
type: string
responses:
'201':
content:
'*/*':
schema:
properties:
renderedInstallationTemplate:
type: string
type: object
description: Created
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Renders an installation template using the provided parameters.
operationId: Render an installation template
requestBody:
content:
application/json:
schema:
example: {}
properties:
parameters:
description: json object containing twig template variables.
properties: {}
type: object
type: object
summary: Render an installation template
/invoices:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
invoices:
- creationDate: '2020-01-01'
currency: EUR
dueDate: '2020-02-01'
invoiceNumber: F0000.1911.0000.0004
invoiceStatus: waitsforpayment
payDate: '2020-01-01'
totalAmount: 1000
totalAmountInclVat: 1240
schema:
properties:
invoices:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Account
description: >-
Returns a list of all invoices attached to your account.
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all invoices
summary: List all invoices
'/invoices/{invoiceNumber}':
get:
parameters:
- description: The Invoice number
example: F0000.1911.0000.0004
in: path
name: invoiceNumber
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
invoice:
creationDate: '2020-01-01'
currency: EUR
dueDate: '2020-02-01'
invoiceNumber: F0000.1911.0000.0004
invoiceStatus: waitsforpayment
payDate: '2020-01-01'
totalAmount: 1000
totalAmountInclVat: 1240
schema:
properties:
invoice:
properties:
creationDate:
description: Invoice creation date
type: string
currency:
description: Currency used for this invoice
type: string
dueDate:
description: Invoice deadline
type: string
invoiceNumber:
description: Invoice number
type: string
invoiceStatus:
description: Invoice status
type: string
payDate:
description: Invoice paid date
type: string
totalAmount:
description: Invoice total (displayed in cents)
type: number
totalAmountInclVat:
description: Invoice total including VAT (displayed in cents)
type: number
required:
- invoiceNumber
- creationDate
- payDate
- dueDate
- invoiceStatus
- currency
- totalAmount
- totalAmountInclVat
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Invoice with number 'F0000.1911.0000.0004' not found
schema:
example:
error: Invoice with number 'F0000.1911.0000.0004' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Account
description: Returns only the requested invoice.
operationId: List a single invoice
summary: List a single invoice
'/invoices/{invoiceNumber}/invoice-items':
get:
parameters:
- description: The Invoice number
example: F0000.1911.0000.0004
in: path
name: invoiceNumber
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
invoiceItems:
- date: '2020-01-01'
description: Big Storage Disk 2000 GB (example-bigstorage)
discounts:
- amount: -500
description: Korting (20% Black Friday)
discountedPrice: -500
discountedPriceInclVat: -605
discountedVat: 105
isRecurring: false
price: 1000
priceInclVat: 1210
product: Big Storage Disk 2000 GB
quantity: 1
vat: 210
vatPercentage: 21
schema:
properties:
invoiceItems:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Invoice with number 'F0000.1911.0000.0004' not found
schema:
example:
error: Invoice with number 'F0000.1911.0000.0004' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Account
description: >-
Each invoice consists of one or multiple invoice items, detailing what
specific products or services are on this invoice.
An invoiceItem can optionally contain one or multiple discounts.
operationId: List invoice items by InvoiceNumber
summary: List invoice items by InvoiceNumber
'/invoices/{invoiceNumber}/pdf':
get:
parameters:
- description: The Invoice number
example: F0000.1911.0000.0004
in: path
name: invoiceNumber
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
pdf: >-
Y205elpYTWdZWEpsSUhKbFpDd2dabXh2ZDJWeWN5QmhjbVVnWW14MVpTd2dkR2hsY21VZ2MyaHZkV3hrSUdKbElHRWdjR1JtSUdobGNtVWdZblYwSUdsMElHbHpJR2RzZFdVdQ===
schema:
properties:
pdf:
type: string
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Invoice with number 'F0000.1911.0000.0004' not found
schema:
example:
error: Invoice with number 'F0000.1911.0000.0004' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Account
description: >-
Retrieve the PDF data of an invoice with the given invoice number.
The response returns a string that is Base64 encoded. Decode this
string before saving to a PDF file.
operationId: Retrieve an invoice as PDF file
summary: Retrieve an invoice as PDF file
/kubernetes/clusters:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
clusters:
- description: frontend
endpoint: 'https://k888k.ooquu8ro.k8s.transip.dev:30298'
isBlocked: false
isLocked: false
name: k888k
version: 1.24.2
schema:
properties:
clusters:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all Kubernetes clusters.
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all clusters
summary: List all clusters
post:
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
No valid payment information found. Please add your
payment information through the control panel on the
website.
schema:
example:
error: >-
No valid payment information found. Please add your payment
information through the control panel on the website.
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Node not found
schema:
example:
error: Node not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: KubernetesVersion 'a.b.c' is not a valid KubernetesVersion
schema:
example:
error: KubernetesVersion 'a.b.c' is not a valid KubernetesVersion
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: The availability zone 'ams0' is not available
schema:
example:
error: The availability zone 'ams0' is not available
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
With the creation of a new cluster, optionally the first nodePool can be
created by providing its specifications using the following fields:
`nodeSpec`, `desiredNodeCount` and `availabilityZone`. Note that either
all or none of these fields must be provided.
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: warning
**Warning**: Usage statistics of active
services in your Kubernetes cluster will reflect in your monthly invoice
operationId: Create new cluster
requestBody:
content:
application/json:
schema:
example:
availabilityZone: ams0
description: cluster-x
desiredNodeCount: 3
kubernetesVersion: 1.24.3
nodeSpec: node-k8
properties:
availabilityZone:
description: >-
Availability Zone the WorkerNodes of the initial pool will
spawn
type: string
description:
description: Describes this cluster
type: string
desiredNodeCount:
description: The desired amount of nodes in the initial NodePool
type: number
kubernetesVersion:
description: The specific version the Cluster should run on
type: string
nodeSpec:
description: >-
ProductName for the WorkerNodes in the initial NodePool; use
the /kubernetes/products resource to determine which to use
type: string
type: object
summary: Create new cluster
'/kubernetes/clusters/{clusterName}':
delete:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Cluster with name 'ez4del0l' not found
schema:
example:
error: Cluster with name 'ez4del0l' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
schema:
example:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
remove a Kubernetes cluster with this endpoint.
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: warning
**Warning**: all nodes will be wiped from
your Kubernetes cluster.
operationId: Remove cluster
summary: Remove cluster
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
cluster:
description: frontend
endpoint: 'https://k888k.ooquu8ro.k8s.transip.dev:30298'
isBlocked: false
isLocked: false
name: k888k
version: 1.24.2
schema:
properties:
cluster:
properties:
description:
description: 'cluster (string, optional) - Describes this cluster'
type: string
endpoint:
description: URL to connect to with kubectl
type: string
isBlocked:
description: >-
Set to `true` when a project has been administratively
blocked
type: boolean
isLocked:
description: >-
When an ongoing process blocks the project from being
modified, this is set to `true`
type: boolean
name:
description: Name of the cluster
type: string
version:
description: Version of kubernetes this cluster is running
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Cluster with name 'ez4del0l' not found
schema:
example:
error: Cluster with name 'ez4del0l' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information on a specific kubernetes cluster by name.
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List single cluster
summary: List single cluster
patch:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Specified release was not found
schema:
example:
error: Specified release was not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Specified release version is incompatible with the
specified cluster
schema:
example:
error: >-
Specified release version is incompatible with the specified
cluster
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
schema:
example:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
This API call allows you to upgrade the cluster to a newer Kubernetes
release. Pass along the `version` parameter
with the version of the release as value (for example: PATCH /v6/kubernetes/clusters/k8ser?action=upgrade&version=1.27.0).
Note that it is only possible to upgrade one minor version at a time, as
recommended by the Version skew policy
(https://kubernetes.io/releases/version-skew-policy/).
Compatible releases for the cluster can be listed with the releases
subresource (for example:
/v6/kubernetes/clusters/k8ser/releases?isCompatibleUpgrade=true).
::: warning
**Warning**: This method is experimental
and could be changed.
operationId: Upgrade cluster
requestBody:
content:
application/json:
schema:
example:
action: upgrade
version: 1.27.0
properties:
action:
type: string
version:
type: string
type: object
summary: Upgrade cluster
put:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Cluster with name 'ez4del0l' not found
schema:
example:
error: Cluster with name 'ez4del0l' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 64 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 64 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
schema:
example:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
This API calls allows for altering a Kubernetes cluster in several ways
outlined below:
* Set a new description;
::: warning
**Warning**: This method is experimental and could be changed
operationId: Update cluster
requestBody:
content:
application/json:
schema:
example:
cluster:
description: frontend
endpoint: 'https://k888k.ooquu8ro.k8s.transip.dev:30298'
isBlocked: false
isLocked: false
name: k888k
version: 1.24.2
properties:
cluster:
properties:
description:
description: 'cluster (string, optional) - Describes this cluster'
type: string
endpoint:
description: URL to connect to with kubectl
type: string
isBlocked:
description: >-
Set to `true` when a project has been administratively
blocked
type: boolean
isLocked:
description: >-
When an ongoing process blocks the project from being
modified, this is set to `true`
type: boolean
name:
description: Name of the cluster
type: string
version:
description: Version of kubernetes this cluster is running
type: string
type: object
type: object
summary: Update cluster
'/kubernetes/clusters/{clusterName}/block-storages':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
volumes:
- availabilityZone: ams0
clusterName: k888k
name: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
nodeUuid: 76743b28-f779-3e68-6aa1-00007fbb911d
pvcName: pvc-123
pvcNamespace: default
serial: a4d857d3fe5e814f34bb
sizeInGib: 20
status: attached
type: hdd
uuid: 220887f0-db1a-76a9-2332-00004f589b19
schema:
properties:
volumes:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all the block storage volumes in this account.
Filtering can be done on nodeUuid in the URL:
/v6/kubernetes/clusters/k888k/block-storages?nodeUuid=76743b28-f779-3e68-6aa1-00007fbb911d
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all volumes
requestBody:
content:
application/json:
schema:
type: string
description: nodeUuid to filter on
summary: List all volumes
'/kubernetes/clusters/{clusterName}/block-storages/{name}':
delete:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Name
example: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
BlockStorage with name
'custom-28932cf7-43d3-2029-3261-00007019d5a5' not found
schema:
example:
error: >-
BlockStorage with name
'custom-28932cf7-43d3-2029-3261-00007019d5a5' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Delete a volume and its data
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: warning
**Warning**: This will delete all data on
this block storage device
operationId: Remove volume
summary: Remove volume
get:
parameters:
- description: Name
example: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
volume:
availabilityZone: ams0
clusterName: k888k
name: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
nodeUuid: 76743b28-f779-3e68-6aa1-00007fbb911d
pvcName: pvc-123
pvcNamespace: default
serial: a4d857d3fe5e814f34bb
sizeInGib: 20
status: attached
type: hdd
uuid: 220887f0-db1a-76a9-2332-00004f589b19
schema:
properties:
volume:
properties:
availabilityZone:
description: AvailabilityZone where this volume is located
type: string
clusterName:
description: Name of the cluster this block storage belongs to
type: string
name:
description: User configurable unique identifier (max 64 chars)
type: string
nodeUuid:
description: Node Uuid this volume is attached to
type: string
pvcName:
description: >-
Name of the persistent volume claim that this
BlockStorage backs
type: string
pvcNamespace:
description: Defines the namespace the PVC is residing in
type: string
serial:
description: >-
The serial of the disk. This is a unique identifier
that is visible by the node it has been attached to
type: string
sizeInGib:
description: Size of volume in gibibytes
type: number
status:
description: >-
Status of the volume 'creating', 'available',
'attaching', 'attached', 'detaching', 'deleting'
type: string
type:
description: Type of storage
type: string
uuid:
description: Uuid of the Volume
type: string
required:
- clusterName
- nodeUuid
type: object
type: object
description: OK
headers: {}
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: The availability zone 'wtf0' is not found
schema:
example:
error: The availability zone 'wtf0' is not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: BlockStorage name 'bobby-dazzler' is already in use
schema:
example:
error: BlockStorage name 'bobby-dazzler' is already in use
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: The availability zone 'ams0' is not available
schema:
example:
error: The availability zone 'ams0' is not available
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information on a specific volume by user configured name
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List single volume
requestBody:
content:
application/json:
schema:
example:
availabilityZone: ams0
name: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
sizeInGib: 200
type: hdd
properties:
availabilityZone:
description: location of the volume
type: string
name:
description: >-
user configurable unique identifier for volume (max 64
chars), when none is given, the uuid will be used. (cannot
be changed later on)
type: string
sizeInGib:
description: amount of storage in gibibytes
type: number
type:
description: type of storage 'hdd'
type: string
type: object
summary: List single volume
put:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Name
example: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
Node '59bfa0da-97be-39a8-3b05-0000534269df' is blocked, no
modification is allowed
schema:
example:
error: >-
Node '59bfa0da-97be-39a8-3b05-0000534269df' is blocked, no
modification is allowed
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Node with uuid '59bfa0da-97be-39a8-3b05-0000534269df' not
found
schema:
example:
error: >-
Node with uuid '59bfa0da-97be-39a8-3b05-0000534269df' not
found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Actions on BlockStorage
'pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80' are temporary
disabled
schema:
example:
error: >-
Actions on BlockStorage
'pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80' are temporary
disabled
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
BlockStorage 'pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80' is
already attached to Node
'ef3ff61b-e070-4e6a-9420-3494caa30a15'
schema:
example:
error: >-
BlockStorage 'pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80' is
already attached to Node
'ef3ff61b-e070-4e6a-9420-3494caa30a15'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
This API calls allows for altering a volume in several ways outlined
below:
* `nodeUuid` Set a different nodeUuid or empty to detach;
* `sizeInGib` Resize the volume;
::: warning
**Warning**: This method is experimental and could be changed
:::
operationId: Update volume
requestBody:
content:
application/json:
schema:
example:
volume:
availabilityZone: ams0
clusterName: k888k
name: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
nodeUuid: 76743b28-f779-3e68-6aa1-00007fbb911d
pvcName: pvc-123
pvcNamespace: default
serial: a4d857d3fe5e814f34bb
sizeInGib: 20
status: attached
type: hdd
uuid: 220887f0-db1a-76a9-2332-00004f589b19
properties:
volume:
properties:
availabilityZone:
description: AvailabilityZone where this volume is located
type: string
clusterName:
description: Name of the cluster this block storage belongs to
type: string
name:
description: User configurable unique identifier (max 64 chars)
type: string
nodeUuid:
description: Node Uuid this volume is attached to
type: string
pvcName:
description: >-
Name of the persistent volume claim that this
BlockStorage backs
type: string
pvcNamespace:
description: Defines the namespace the PVC is residing in
type: string
serial:
description: >-
The serial of the disk. This is a unique identifier that
is visible by the node it has been attached to
type: string
sizeInGib:
description: Size of volume in gibibytes
type: number
status:
description: >-
Status of the volume 'creating', 'available',
'attaching', 'attached', 'detaching', 'deleting'
type: string
type:
description: Type of storage
type: string
uuid:
description: Uuid of the Volume
type: string
required:
- clusterName
- nodeUuid
type: object
type: object
summary: Update volume
'/kubernetes/clusters/{clusterName}/block-storages/{name}/stats':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Name
example: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
usage:
- date: 1574783109
iopsRead: 0.27
iopsWrite: 0.13
schema:
properties:
usage:
items: {}
type: array
type: object
description: OK
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Block storage is not attached to a node
schema:
example:
error: Block storage is not attached to a node
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get the usage statistics for a kubernetes block storage. You can specify
a `dateTimeStart` and `dateTimeEnd` parameter in the UNIX timestamp
format. When none given, traffic for the past 24 hours are returned. The
maximum period is one month.
When the block storage is not attached to a node, there are no usage
statistics available. Therefore, the response returned will be a 406
exception. If the block storage is re-attached to another node then the
old statistics are no longer available.
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Get block storage statistics
requestBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1490064468
dateTimeStart: 1490023668
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
type: object
summary: Get block storage statistics
'/kubernetes/clusters/{clusterName}/events':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
events:
- count: 6
creationTimestamp: 1683641890
firstTimestamp: 1683641890
involvedObjectKind: Pod
involvedObjectName: kube-proxy-g9ldg
lastTimestamp: 1683641890
message: Node is not ready
name: kube-proxy-g9ldg.175d7f60d241f2c8
namespace: default
reason: NodeNotReady
sourceComponent: kubelet
type: Warning
schema:
properties:
events:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all the events in this cluster. The amount of events
is
limited to 500 items and gets the result from the api-server cache. We advise to use kubectl to properly list/watch events.
Filtering can be done on namespace in the URL:
/v6/kubernetes/clusters/k888k/events?namespace=kube-system
::: warning
**Warning**: This method is experimental
and could be changed
operationId: List all events
requestBody:
content:
application/json:
schema:
type: string
description: Filter the events by namespace
summary: List all events
'/kubernetes/clusters/{clusterName}/events/{name}':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Name
example: 055e55bd-9fee-4ba7-a99d-d7f8d700315c.175ba9a3c3d58a98
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
event:
count: 6
creationTimestamp: 1683641890
firstTimestamp: 1683641890
involvedObjectKind: Pod
involvedObjectName: kube-proxy-g9ldg
lastTimestamp: 1683641890
message: Node is not ready
name: kube-proxy-g9ldg.175d7f60d241f2c8
namespace: default
reason: NodeNotReady
sourceComponent: kubelet
type: Warning
schema:
properties:
event:
properties:
count:
description: The amount of times the event occured
type: number
creationTimestamp:
description: Unix timestamp of when the event was created
type: number
firstTimestamp:
description: Unix timestamp of when the event was first see
type: number
involvedObjectKind:
description: The kind of object this event is about
type: string
involvedObjectName:
description: The name of the object this event is about
type: string
lastTimestamp:
description: Unix timestamp of when the event was last seen
type: number
message:
description: A mesage about the event
type: string
name:
description: The name of the event
type: string
namespace:
description: The namespace of the event
type: string
reason:
description: The reason for the event
type: string
sourceComponent:
description: The emitter of this event
type: string
type:
description: 'The type of event, e.g: `Warning` or `Normal`'
type: string
type: object
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information on a specific event.
We advise to use kubectl to properly list/watch events.
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List an event
requestBody:
content:
application/json:
schema:
type: string
description: The namespace of the event
required: true
summary: List an event
'/kubernetes/clusters/{clusterName}/kube-config':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
kubeConfig:
encodedYaml: >-
`WW91IHNwaW4gbWUgcmlnaHQgJ3JvdW5kLCBiYWJ5LCByaWdodCAncm91bmQKTGlrZSBhIHJlY29yZCwgYmFieSwgcmlnaHQgJ3JvdW5kLCAncm91bmQsICdyb3VuZApZb3Ugc3BpbiBtZSByaWdodCAncm91bmQsIGJhYnksIHJpZ2h0ICdyb3VuZApMaWtlIGEgcmVjb3JkLCBiYWJ5LCByaWdodCAncm91bmQsICdyb3VuZCwgJ3JvdW5k`\n
schema:
properties:
kubeConfig:
properties:
encodedYaml:
description: KubeConfig base64 encoded YAML
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Cluster with name 'ez4del0l' not found
schema:
example:
error: Cluster with name 'ez4del0l' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns base64 encoded version of the kubeConfig yaml of the specified
cluster
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Get KubeConfig for Cluster
summary: Get KubeConfig for Cluster
'/kubernetes/clusters/{clusterName}/load-balancers':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
loadBalancers:
- aggregatedStatus:
total: 3
up: 2
balancing:
cookieName: 220887f0-db1a-76a9-2332-00004f589b19
mode: roundrobin
ipv4Address: 37.97.254.7
ipv6Address: '2a01:7c8:3:1337::1'
name: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
nodes: '["76743b28-f779-3e68-6aa1-00007fbb911d"]'
ports:
- mode: tcp
name: http_kube_apiserver
port: 1337
serviceName: nginx-5313
serviceNamespace: default
status: active
uuid: 220887f0-db1a-76a9-2332-00004f589b19
schema:
properties:
loadBalancers:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Lists all LoadBalancers in the cluster.
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all LoadBalancers
summary: List all LoadBalancers
post:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
`name` can be set as desired (cannot be changed later on) within the
RFC1123 spec:
* contain at most 63 characters;
* contain only lowercase alphanumeric characters or '-';
* start with an alphanumeric character;
* end with an alphanumeric character;
::: warning
**Warning**: This method is experimental and could be changed
:::
::: warning
**Warning**: Usage of active services in your cluster will reflect in your monthly invoice
operationId: Add a LoadBalancer
requestBody:
content:
application/json:
schema:
example:
name: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
properties:
name:
description: >-
user configurable unique identifier for loadBalancer (max 64
chars), when none is given, the uuid will be used. (cannot
be changed later on)
type: string
type: object
summary: Add a LoadBalancer
'/kubernetes/clusters/{clusterName}/load-balancers/{name}':
delete:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: LoadBalancer name
example: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: LoadBalancer with name 'example' not found
schema:
example:
error: LoadBalancer with name 'example' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
LoadBalancer 'example' has an action running, no
modification is allowed
schema:
example:
error: >-
LoadBalancer 'example' has an action running, no
modification is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
With this method you are able to Remove a loadBalancer.
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Remove a LoadBalancer
summary: Remove a LoadBalancer
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: LoadBalancer name
example: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
loadBalancer:
aggregatedStatus:
total: 3
up: 2
balancing:
cookieName: 220887f0-db1a-76a9-2332-00004f589b19
mode: roundrobin
ipv4Address: 37.97.254.7
ipv6Address: '2a01:7c8:3:1337::1'
name: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
nodes: '["76743b28-f779-3e68-6aa1-00007fbb911d"]'
ports:
- mode: tcp
name: http_kube_apiserver
port: 1337
serviceName: nginx-5313
serviceNamespace: default
status: active
uuid: 220887f0-db1a-76a9-2332-00004f589b19
schema:
properties:
loadBalancer:
properties:
aggregatedStatus:
description: LoadBalancer aggregated status
properties:
total:
description: LoadBalancer's total amount of nodes
type: number
up:
description: LoadBalancer's amount of healthy nodes
type: number
type: object
balancing:
description: LoadBalancer load balancing mode
properties:
cookieName:
description: LoadBalancer balancing cookie name
type: string
mode:
description: >-
LoadBalancer balancing mode, either `roundrobin`,
`cookie`, `source`
type: string
type: object
ipv4Address:
description: LoadBalancer IPv4 address
type: string
ipv6Address:
description: LoadBalancer IPv6 address
type: string
name:
description: User configurable unique identifier (max 64 chars)
type: string
nodes:
description: >-
A mapping between IP addresses and UUIDs of attached
nodes
type: string
ports:
description: LoadBalancer ports.
items: {}
type: array
serviceName:
description: The name of the service
type: string
serviceNamespace:
description: Defines the namespace the service is residing in
type: string
status:
description: >-
LoadBalancer status, either 'active', 'creating' or
'deleting'
type: string
uuid:
description: LoadBalancer Uuid
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: LoadBalancer with name 'example' not found
schema:
example:
error: LoadBalancer with name 'example' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information about a specific LoadBalancer such as the IP(s) it's
currently assigned to and the IPv4 and IPv6 address of the LoadBalancer.
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Get LoadBalancer info
summary: Get LoadBalancer info
put:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: LoadBalancer name
example: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: LoadBalancer with name 'example' not found
schema:
example:
error: LoadBalancer with name 'example' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
sourcePort '25' is not unique, there is already a
PortConfiguration using this sourcePort port
schema:
example:
error: >-
sourcePort '25' is not unique, there is already a
PortConfiguration using this sourcePort port
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
LoadBalancer 'example' has an action running, no
modification is allowed
schema:
example:
error: >-
LoadBalancer 'example' has an action running, no
modification is allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
This API calls allows for altering a LoadBalancer in several ways
outlined below:
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Update a loadBalancer
requestBody:
content:
application/json:
schema:
example:
loadBalancerConfig:
healthCheckInterval: 3000
httpHealthCheckPath: /status.php
httpHealthCheckPort: 443
httpHealthCheckSsl: true
ipAddresses:
- 10.3.37.1
- 10.3.38.1
ipSetup: ipv6to4
loadBalancingMode: cookie
portConfiguration:
- endpointSslMode: 'off'
mode: http
name: Website Traffic
sourcePort: 80
targetPort: 80
ptrRecord: frontend.example.com
stickyCookieName: PHPSESSID
tlsMode: tls12
properties:
loadBalancerConfig:
properties:
healthCheckInterval:
description: >-
The interval in milliseconds at which health checks are
performed. The interval may not be smaller than 2000ms.
type: number
httpHealthCheckPath:
description: The path (URI) of the page to check HTTP status code on
type: string
httpHealthCheckPort:
description: >-
The port to perform the HTTP check on, this should be
the port your services are listening on
type: number
httpHealthCheckSsl:
description: Whether to use SSL when performing the HTTP check
type: boolean
ipAddresses:
description: The IPs attached to this LoadBalancer
type: array
ipSetup:
description: >-
LoadBalancer IP setup: 'both', 'noipv6', 'ipv6to4',
'ipv4to6'
type: string
loadBalancingMode:
description: >-
LoadBalancer load balancing mode: 'roundrobin',
'cookie', 'source'
type: string
portConfiguration:
description: Array with port configurations for this LoadBalancer
type: array
ptrRecord:
description: The PTR record for the LoadBalancer
type: string
stickyCookieName:
description: >-
Cookie name to pin sessions on when using cookie
balancing mode
type: string
tlsMode:
description: >-
LoadBalancer TLS Mode: 'tls10_11_12', 'tls11_12',
'tls12'
type: string
required:
- tlsMode
- ipAddresses
- portConfiguration
type: object
type: object
summary: Update a loadBalancer
'/kubernetes/clusters/{clusterName}/load-balancers/{name}/status-reports':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: LoadBalancer name
example: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
statusReports:
- ipVersion: 4
lastChange: '2019-09-29 16:51:18'
loadBalancerIp: 136.144.151.255
loadBalancerName: lb0
nodeIpAddress: 136.10.14.1
nodeUuid: 76743b28-f779-3e68-6aa1-00007fbb911d
port: 80
state: up
schema:
properties:
statusReports:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Lists LoadBalancer status reports for all attached nodes.
::: warning
**Warning**: This method is experimental
and could be changed
operationId: List all LoadBalancer status reports
summary: List all LoadBalancer status reports
'/kubernetes/clusters/{clusterName}/load-balancers/{name}/status-reports/{nodeUuid}':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: LoadBalancer name
example: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
in: path
name: name
required: true
schema:
type: string
- description: Uuid
example: 158ae73a-d13b-52e8-a244-000006b1a48e
in: path
name: nodeUuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
statusReports:
- ipVersion: 4
lastChange: '2019-09-29 16:51:18'
loadBalancerIp: 136.144.151.255
loadBalancerName: lb0
nodeIpAddress: 136.10.14.1
nodeUuid: 76743b28-f779-3e68-6aa1-00007fbb911d
port: 80
state: up
schema:
properties:
statusReports:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: LoadBalancer with name 'example' not found
schema:
example:
error: LoadBalancer with name 'example' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Lists LoadBalancer status reports for the specified node
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Get LoadBalancer info
summary: Get LoadBalancer info
'/kubernetes/clusters/{clusterName}/node-pools':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
nodePools:
- availabilityZone: ams0
clusterName: k888k
description: frontend
desiredNodeCount: 3
nodeSpec: vps-bladevps-x4
nodes:
- clusterName: k888k
ipAddresses:
- address: 37.97.254.6
subnetMask: 255.255.255.0
type: external
nodePoolUuid: 402c2f84-c37d-9388-634d-00002b7c6a82
status: active
uuid: 76743b28-f779-3e68-6aa1-00007fbb911d
status: creating
uuid: 402c2f84-c37d-9388-634d-00002b7c6a82
schema:
properties:
nodePools:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all the Node Pools.
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all nodepools
summary: List all nodepools
post:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'201':
content:
application/json:
schema:
properties:
uuid:
example: 2c51c5df-3470-67a8-c320-00004bdd58e7
type: string
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Node not found
schema:
example:
error: Node not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 64 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 64 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: The availability zone 'ams0' is not available
schema:
example:
error: The availability zone 'ams0' is not available
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Add a New NodePool to Cluster
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: warning
**Warning**: Usage of active services in
your cluster will reflect in your monthly invoice
operationId: Add nodepool
requestBody:
content:
application/json:
schema:
example:
availabilityZone: ams0
description: frontend-pool
desiredNodeCount: 3
nodeSpec: node-k8
properties:
availabilityZone:
description: Availability Zone the WorkerNodes of this pool will spawn
type: string
description:
description: Describes the Node Pool (max 64 chars)
type: string
desiredNodeCount:
description: Amount of WorkerNodes
type: number
nodeSpec:
description: Node type for the WorkerNodes in this pool
type: string
type: object
summary: Add nodepool
'/kubernetes/clusters/{clusterName}/node-pools/{uuid}':
delete:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
NodePool with uuid '59bfa0da-97be-39a8-3b05-0000534269df'
not found
schema:
example:
error: >-
NodePool with uuid '59bfa0da-97be-39a8-3b05-0000534269df'
not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
schema:
example:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Delete a NodePool and Nodes from Cluster
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: warning
**Warning**: This will also remove the
WorkerNodes
operationId: Remove nodepool
summary: Remove nodepool
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
nodePool:
availabilityZone: ams0
clusterName: k888k
description: frontend
desiredNodeCount: 3
nodeSpec: vps-bladevps-x4
nodes:
- clusterName: k888k
ipAddresses:
- address: 37.97.254.6
subnetMask: 255.255.255.0
type: external
nodePoolUuid: 402c2f84-c37d-9388-634d-00002b7c6a82
status: active
uuid: 76743b28-f779-3e68-6aa1-00007fbb911d
status: creating
uuid: 402c2f84-c37d-9388-634d-00002b7c6a82
schema:
properties:
nodePool:
properties:
availabilityZone:
description: The availabilityZone the nodes of this nodePool are in
type: string
clusterName:
description: Name of the cluster the nodePool is in
type: string
description:
description: 'cluster (string, optional) - Describes this NodePool'
type: string
desiredNodeCount:
description: >-
The desired amount of nodes in this pool, might not
always be the actual count of nodes
type: number
nodeSpec:
description: The specification of the Nodes in this NodePool
type: string
nodes:
description: Nodes currently in NodePool
items: {}
type: array
status:
description: The NodePool status
type: string
uuid:
description: Uuid of the NodePool
type: string
required:
- clusterName
- desiredNodeCount
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
NodePool with uuid '59bfa0da-97be-39a8-3b05-0000534269df'
not found
schema:
example:
error: >-
NodePool with uuid '59bfa0da-97be-39a8-3b05-0000534269df'
not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information on a specific Node Pool by Uuid
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List single nodepool
summary: List single nodepool
put:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
NodePool with uuid '59bfa0da-97be-39a8-3b05-0000534269df'
not found
schema:
example:
error: >-
NodePool with uuid '59bfa0da-97be-39a8-3b05-0000534269df'
not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 64 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 64 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
schema:
example:
error: 'Cluster ''k888k'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
This API calls allows for altering a Kubernetes cluster in several ways
outlined below:
* Set a new description;
* Set a different amount of desired Nodes;
::: warning
**Warning**: This method is experimental and could be changed
:::
operationId: Update nodepool
requestBody:
content:
application/json:
schema:
example:
nodePool:
availabilityZone: ams0
clusterName: k888k
description: frontend
desiredNodeCount: 3
nodeSpec: vps-bladevps-x4
nodes:
- clusterName: k888k
ipAddresses:
- address: 37.97.254.6
subnetMask: 255.255.255.0
type: external
nodePoolUuid: 402c2f84-c37d-9388-634d-00002b7c6a82
status: active
uuid: 76743b28-f779-3e68-6aa1-00007fbb911d
status: creating
uuid: 402c2f84-c37d-9388-634d-00002b7c6a82
properties:
nodePool:
properties:
availabilityZone:
description: The availabilityZone the nodes of this nodePool are in
type: string
clusterName:
description: Name of the cluster the nodePool is in
type: string
description:
description: 'cluster (string, optional) - Describes this NodePool'
type: string
desiredNodeCount:
description: >-
The desired amount of nodes in this pool, might not
always be the actual count of nodes
type: number
nodeSpec:
description: The specification of the Nodes in this NodePool
type: string
nodes:
description: Nodes currently in NodePool
type: array
status:
description: The NodePool status
type: string
uuid:
description: Uuid of the NodePool
type: string
required:
- clusterName
- desiredNodeCount
type: object
type: object
summary: Update nodepool
'/kubernetes/clusters/{clusterName}/node-pools/{uuid}/labels':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
labels:
- key: key
modifiable: true
value: value
schema:
properties:
labels:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all the labels on this nodepool
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all labels
summary: List all labels
put:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Update the labels on a NodePool
::: warning
**Warning**: This method is experimental
and could be changed
:::
* The modifiable field is optional and is not processed for this method
operationId: Update labels
requestBody:
content:
application/json:
schema:
example:
labels:
- key: key
modifiable: true
value: value
properties:
labels:
type: array
type: object
summary: Update labels
'/kubernetes/clusters/{clusterName}/node-pools/{uuid}/taints':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
taints:
- effect: NoSchedule
key: key
modifiable: true
value: value
schema:
properties:
taints:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all the taints on this nodepool
::: warning
**Warning**: This method is experimental
and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all taints
summary: List all taints
put:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: NodePool Uuid
example: 402c2f84-c37d-9388-634d-00002b7c6a82
in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Update the taints on a NodePool
::: warning
**Warning**: This method is experimental
and could be changed
:::
* The modifiable field is optional and is not processed for this method
operationId: Update taints
requestBody:
content:
application/json:
schema:
example:
taints:
- effect: NoSchedule
key: key
modifiable: true
value: value
properties:
taints:
type: array
type: object
summary: Update taints
'/kubernetes/clusters/{clusterName}/nodes':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
nodes:
- clusterName: k888k
ipAddresses:
- address: 37.97.254.6
subnetMask: 255.255.255.0
type: external
nodePoolUuid: 402c2f84-c37d-9388-634d-00002b7c6a82
status: active
uuid: 76743b28-f779-3e68-6aa1-00007fbb911d
schema:
properties:
nodes:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all the Nodes. Filtering can be done on nodePoolUuid
in the URL:
/v6/kubernetes/clusters/k888s/nodes?nodePoolUuid=76743b28-f779-3e68-6aa1-00007fbb911d
::: warning
This method is experimental and could be changed
:::
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all nodes
requestBody:
content:
application/json:
schema:
example:
nodePoolUuid: /kubernetes/clusters/k888s/nodes?nodePoolUuid=76743b28
properties:
nodePoolUuid:
description: >-
f779-3e68-6aa1-00007fbb911d` (string, optional) - NodePool
uuid to filter on
type: string
type: object
summary: List all nodes
'/kubernetes/clusters/{clusterName}/nodes/{uuid}':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Uuid
example: 158ae73a-d13b-52e8-a244-000006b1a48e
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
node:
clusterName: k888k
ipAddresses:
- address: 37.97.254.6
subnetMask: 255.255.255.0
type: external
nodePoolUuid: 402c2f84-c37d-9388-634d-00002b7c6a82
status: active
uuid: 76743b28-f779-3e68-6aa1-00007fbb911d
schema:
properties:
node:
properties:
clusterName:
description: Name of the cluster the node is in
type: string
ipAddresses:
description: IP addresses assigned to this node
items: {}
type: array
nodePoolUuid:
description: Uuid of the nodePool the node is in
type: string
status:
description: Status of the Node
type: string
uuid:
description: Uuid of the Node
type: string
required:
- nodePoolUuid
- clusterName
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Node with uuid '10ad431f-4b81-0729-6208-0000574cdeae' not
found
schema:
example:
error: >-
Node with uuid '10ad431f-4b81-0729-6208-0000574cdeae' not
found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: |-
Get information on a specific Node by Uuid
::: warning
This method is experimental and could be changed
:::
operationId: List single node
summary: List single node
patch:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Uuid
example: 158ae73a-d13b-52e8-a244-000006b1a48e
in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Node with uuid '10ad431f-4b81-0729-6208-0000574cdeae' not
found
schema:
example:
error: >-
Node with uuid '10ad431f-4b81-0729-6208-0000574cdeae' not
found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Actions on Node '10ad431f-4b81-0729-6208-0000574cdeae' are
temporary disabled
schema:
example:
error: >-
Actions on Node '10ad431f-4b81-0729-6208-0000574cdeae' are
temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
This API call allows you to reboot a node, this can be useful when its
stuck for example.
To reboot a node, send a PATCH request with the `action` attribute set
to `reboot`.
operationId: Reboot a node
requestBody:
content:
application/json:
schema:
example:
action: reboot
properties:
action:
type: string
type: object
summary: Reboot a node
'/kubernetes/clusters/{clusterName}/nodes/{uuid}/stats':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Uuid
example: 158ae73a-d13b-52e8-a244-000006b1a48e
in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
usage:
cpu:
- date: 1574783109
percentage: 3.11
disk:
- date: 1574783109
iopsRead: 0.27
iopsWrite: 0.13
network:
- date: 1574783109
mbitIn: 249.93
mbitOut: 100.2
schema:
properties:
usage:
properties:
cpu:
items: {}
type: array
disk:
items: {}
type: array
network:
items: {}
type: array
required:
- cpu
- disk
- network
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'Node is blocked, no modification is allowed'
schema:
example:
error: 'Node is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Node not found
schema:
example:
error: Node not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'These are invalid usage types: invalid, type.'
schema:
example:
error: 'These are invalid usage types: invalid, type.'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Use this API call to retrieve usage data for a specific kubernetes node.
Make sure to specify the `dateTimeStart` and `dateTimeEnd` parameters in
UNIX timestamp format.
Please take the following into account:
* The `dateTimeStart` and `dateTimeEnd` parameters allow for gathering
information about a specific time period, when not specified the output
will contain data for the past 24 hours;
* The difference between `dateTimeStart` and `dateTimeEnd` parameters
may not exceed one month.
::: warning
**Warning**: This method is experimental and could be changed
:::
operationId: Get node statistics
requestBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1500542619
dateTimeStart: 1500538995
types: 'cpu,disk,network'
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
types:
description: >-
The types of statistics that can be returned, `cpu`, `disk`
and `network` can be specified in a comma seperated way. If
not specified, all data will be returned.
type: string
type: object
summary: Get node statistics
'/kubernetes/clusters/{clusterName}/releases':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
releases:
- endOfLifeDate: '2023-02-28'
isCompatibleUpgrade: false
maintenanceModeDate: '2022-12-28'
releaseDate: '2022-03-11'
version: 1.23.5
schema:
properties:
releases:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all available Kubernetes releases.
This subresource of Cluster adds the field `isCompatibleUpgrade` to
indicate whether a release can be used as an upgrade target.
To only show compatible releases for upgrades, use the filter
/v6/kubernetes/clusters/k8ser/releases?isCompatibleUpgrade=true
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List all available Kubernetes releases
summary: List all available Kubernetes releases
'/kubernetes/clusters/{clusterName}/releases/{version}':
get:
parameters:
- description: clusterName
example: k888k
in: path
name: clusterName
required: true
schema:
type: string
- description: Version
example: 1.23.5
in: path
name: version
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
release:
endOfLifeDate: '2023-02-28'
isCompatibleUpgrade: false
maintenanceModeDate: '2022-12-28'
releaseDate: '2022-03-11'
version: 1.23.5
schema:
properties:
release:
properties:
endOfLifeDate:
description: The end of life date of the Kubernetes release
type: string
isCompatibleUpgrade:
description: >-
Whether the Kubernetes release can be installed as an
upgrade for the selected cluster
type: boolean
maintenanceModeDate:
description: >-
The date that only security updates are issued for the
Kubernetes release
type: string
releaseDate:
description: The release date of a Kubernetes release
type: string
version:
description: Kubernetes release version
type: string
required:
- releaseDate
- maintenanceModeDate
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Release with version 1.5.4 not found
schema:
example:
error: Release with version 1.5.4 not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information about a single Kubernetes release
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List a single Kubernetes release
summary: List a single Kubernetes release
/kubernetes/products:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
products:
- description: Node K8 / 4 vCPUs / 8 GB RAM
name: node-k8
periodPrices:
- costCents: '0.0079'
currency: EUR
isExact: false
periodLength: 1
periodUnit: month
specs:
- amount: 67108864
description: The amount of cores
name: memory
unit: KiB
type: workerNode
schema:
properties:
products:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all Kubernetes products
::: warning
**Warning**: This method is experimental
and could be changed
:::
This endpoint is bound to change. Specs will not be fetched when
retrieving this list.
You can retrieve specs by sending a `GET` request to `/kubernetes/products/{productName}`
operationId: List kubernetes products
requestBody:
content:
application/json:
schema:
type: string
description: 'types to filter by, seperated by a comma'
summary: List kubernetes products
'/kubernetes/products/{product}':
get:
parameters:
- description: Product
example: node-k8
in: path
name: product
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
product:
description: Node K8 / 4 vCPUs / 8 GB RAM
name: node-k8
periodPrices:
- costCents: '0.0079'
currency: EUR
isExact: false
periodLength: 1
periodUnit: month
specs:
- amount: 67108864
description: The amount of cores
name: memory
unit: KiB
type: workerNode
schema:
properties:
product:
properties:
description:
description: Description of product
type: string
name:
description: Product name
type: string
periodPrices:
description: Product price information
items: {}
type: array
specs:
description: Specifications of the items
items: {}
type: array
type:
description: Kubernetes product type
type: string
type: object
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns information about a specific Kubernetes product
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: Get information about a Kubernetes product
summary: Get information about a Kubernetes product
/kubernetes/releases:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
releases:
- endOfLifeDate: '2023-02-28'
maintenanceModeDate: '2022-12-28'
releaseDate: '2022-03-11'
version: 1.23.5
schema:
properties:
releases:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Returns a list of all available Kubernetes releases.
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List all available Kubernetes releases
summary: List all available Kubernetes releases
'/kubernetes/releases/{version}':
get:
parameters:
- description: Version
example: 1.23.5
in: path
name: version
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
release:
endOfLifeDate: '2023-02-28'
maintenanceModeDate: '2022-12-28'
releaseDate: '2022-03-11'
version: 1.23.5
schema:
properties:
release:
properties:
endOfLifeDate:
description: The end of life date of the Kubernetes release
type: string
maintenanceModeDate:
description: >-
The date that only security updates are issued for the
Kubernetes release
type: string
releaseDate:
description: The release date of a Kubernetes release
type: string
version:
description: Kubernetes release version
type: string
required:
- releaseDate
- maintenanceModeDate
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Release with version 1.5.4 not found
schema:
example:
error: Release with version 1.5.4 not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Kubernetes
description: >-
Get information about a single Kubernetes release
::: warning
**Warning**: This method is experimental
and could be changed
:::
operationId: List a single Kubernetes release
summary: List a single Kubernetes release
/mail-service:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
mailServiceInformation:
dnsTxt: >-
782d28c2fa0b0bdeadf979e7155a83a15632fcddb0149d510c09fb78a470f7d3
password: KgDseBsmWJNTiGww
quota: 1000
usage: 54
username: test@vps.transip.email
schema:
properties:
mailServiceInformation:
properties:
dnsTxt:
description: x-transip-mail-auth DNS TXT record Value
type: string
password:
description: The password of the mail service
type: string
quota:
description: The quota of the mail service
type: number
usage:
description: The usage of the mail service
type: number
username:
description: The username of the mail service
type: string
type: object
type: object
description: OK
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
MailService has not been enabled on this account, enable
via the CP
schema:
example:
error: >-
MailService has not been enabled on this account, enable via
the CP
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
You’re able to gather detailed information regarding mail service usage
and credentials using this API call.
Aside from the credentials (username and password) returned objects also
include current usage and quota.
Usage means the amount of emails sent using the credentials and the quota is the amount of emails allowed to be sent daily.
**Usage** will always be lower than **quota**. The quota is determined by the amount of VPSes in your account. Every VPS adds 1000 mails to your daily quota (with a maximum of 10000).
E.g.: when you own 5 VPSs, the quota on each VPS is 5000.
operationId: Get mail service information
summary: Get mail service information
patch:
responses:
'204':
description: No Content
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
MailService has not been enabled on this account, enable
via the CP
schema:
example:
error: >-
MailService has not been enabled on this account, enable via
the CP
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
The credentials needed to authorize with our SMTP relay servers consist
of a username and password.
In case the password can’t be accessed or should be reset, you can use this API call in order to regenerate it.
As an account can only have one mail service account, the request does
not need to contain a body.
operationId: Regenerate mail service password
summary: Regenerate mail service password
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Domain with id 'another.com' not found
schema:
example:
error: Domain with id 'another.com' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: |-
In order to reduce spam score, several DNS records should be added.
These records have to match the details generated by the mail platform.
In case the DNS records don’t match, the relay will not accept mail from your VPS.
These new records (outlined below) will not overwrite any DNS records.
Record type | Name | TTL | DNS type | Value
-----------: | -------------------- | --------- | -------- | -----------------------------------------------------------------
SPF | @ | 5 minutes | TXT | v=spf1 include:_spf.transip.email ~all
DKIM | transip-A._domainkey | 5 minutes | CNAME | _dkim-A.transip.email.
DKIM | transip-B._domainkey | 5 minutes | CNAME | _dkim-B.transip.email.
DKIM | transip-C._domainkey | 5 minutes | CNAME | _dkim-C.transip.email.
AUTH | x-transip-mail-auth | 5 minutes | TXT | 30ac13d5d73d181fda11a60f779de4fb1be42908b49fb06e46d53d2d03b5721a
operationId: Add mail service DNS entries to domains
requestBody:
content:
application/json:
schema:
example:
domainNames:
- example.com
- another.com
properties:
domainNames:
description: The domain names to which the DNS entries should be added
type: array
type: object
summary: Add mail service DNS entries to domains
/monitoring-contacts:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
contacts:
- email: j.wick@example.com
id: 1
name: John Wick
telephone: '+31612345678'
schema:
properties:
contacts:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Get a list of all monitoring contacts attached to your account.
operationId: List all contacts
summary: List all contacts
post:
responses:
'201':
description: Created
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Provided email address is invalid
schema:
example:
error: Provided email address is invalid
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Create a monitoring contact in your account.
You can later use this contact by adding them to your [TCP
Monitor](#vps-tcp-monitoring).
operationId: Create a contact
requestBody:
content:
application/json:
schema:
example:
email: j.wick@example.com
name: John Wick
telephone: '+31612345678'
properties:
email:
description: Email address of the contact
type: string
name:
description: Name of the contact
type: string
telephone:
description: Telephone number of the contact
type: string
type: object
summary: Create a contact
'/monitoring-contacts/{contactId}':
delete:
parameters:
- description: Id number of the contact
example: '1'
in: path
name: contactId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Contact with id '123' not found
schema:
example:
error: Contact with id '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Permanently deletes a monitoring contact from your account.
operationId: Delete a contact
summary: Delete a contact
put:
parameters:
- description: Id number of the contact
example: '1'
in: path
name: contactId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Contact with id '123' not found
schema:
example:
error: Contact with id '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Provided email address is invalid
schema:
example:
error: Provided email address is invalid
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Updates a specified contact. This call will override existing fields.
operationId: Update a contact
requestBody:
content:
application/json:
schema:
example:
contact:
email: j.wick@example.com
id: 1
name: John Wick
telephone: '+31612345678'
properties:
contact:
properties:
email:
description: Email address of the contact
type: string
id:
description: Id number of the contact
type: number
name:
description: Name of the contact
type: string
telephone:
description: Telephone number of the contact
type: string
required:
- id
- name
- telephone
- email
type: object
type: object
summary: Update a contact
/openstack/projects:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
projects:
- description: This is an example project
domain: transip
id: 7a7a3bcb46c6450f95c53edb8dcebc7b
isBlocked: false
isLocked: false
name: example-datacenter
region: AMS
type: objectstore
schema:
properties:
projects:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
Returns a list of all OpenStack projects attached to your TransIP
account.
operationId: List all projects
summary: List all projects
post:
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
Ordering an OpenStack project from 'transip.co.uk' is not
available
schema:
example:
error: >-
Ordering an OpenStack project from 'transip.co.uk' is not
available
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'type' can only be one of the
following value's 'objectstore,openstack'
schema:
example:
error: >-
The provided parameter 'type' can only be one of the
following value's 'objectstore,openstack'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
Create a new OpenStack project
* Letters, numbers, and the dash symbol is only allowed in a project
name. Other symbols provided will be removed from the project name
* Your TransIP username **must** be prefixed in-front of your project
name
::: warning
**Warning**: Usage statistics of active services in your OpenStack project will reflect in your monthly invoice
operationId: Create a new project
requestBody:
content:
application/json:
schema:
example:
description: This is an example project
name: example-datacenter
type: objectstore
properties:
description:
description: Describes this project
type: string
name:
description: Project name
type: string
type:
description: >-
Type of project, can be either objectstore or openstack.
Defaults to openstack when not specified
type: string
required:
- name
- type
type: object
summary: Create a new project
'/openstack/projects/{projectId}':
delete:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not
found
schema:
example:
error: Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'This project is locked, no modification is allowed'
schema:
example:
error: 'This project is locked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
Cancel an OpenStack project with this endpoint.
::: warning
**Warning**: Upon cancellation, all active
services will be wiped from your OpenStack project.
operationId: Cancel a Project
summary: Cancel a Project
get:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
project:
description: This is an example project
domain: transip
id: 7a7a3bcb46c6450f95c53edb8dcebc7b
isBlocked: false
isLocked: false
name: example-datacenter
region: AMS
type: objectstore
schema:
properties:
project:
properties:
description:
description: Describes this project
type: string
domain:
description: The domain in which a project is stored.
type: string
id:
description: >-
The unique project id, this identifier can be used to
modify a project and modify access permissions for
users
type: string
isBlocked:
description: >-
Set to `true` when a project has been administratively
blocked
type: boolean
isLocked:
description: >-
When an ongoing process blocks the project from being
modified, this is set to `true`
type: boolean
name:
description: Name of the project
type: string
region:
description: The region in which a project is stored.
type: string
type:
description: >-
Type of the project, either 'objectstore' or
'openstack' defaults to 'openstack' when not specified
type: string
required:
- name
- type
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not
found
schema:
example:
error: Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: Get information on a specific openstack project by id.
operationId: List a single project
summary: List a single project
patch:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not
found
schema:
example:
error: Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Target customer with name 'example-name' does not exist
schema:
example:
error: Target customer with name 'example-name' does not exist
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'This project is blocked, no modification is allowed'
schema:
example:
error: 'This project is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
This API call allows you to handover a project to another TransIP
Account. This call will initiate the handover process. The actual
handover will be done when the target customer accepts the handover.
operationId: Handover a project
requestBody:
content:
application/json:
schema:
example:
action: handover
targetCustomerName: example2
properties:
action:
type: string
targetCustomerName:
type: string
type: object
summary: Handover a project
put:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not
found
schema:
example:
error: Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Project with name 'example-name' already exists
schema:
example:
error: Project with name 'example-name' already exists
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'This project is locked, no modification is allowed'
schema:
example:
error: 'This project is locked, no modification is allowed'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
This API calls allows for altering a OpenStack project in several ways
outlined below:
* Set a new project name;
* Set a new description;
operationId: Update a project
requestBody:
content:
application/json:
schema:
example:
project:
description: This is an example project
domain: transip
id: 7a7a3bcb46c6450f95c53edb8dcebc7b
isBlocked: false
isLocked: false
name: example-datacenter
region: AMS
type: objectstore
properties:
project:
properties:
description:
description: Describes this project
type: string
domain:
description: The domain in which a project is stored.
type: string
id:
description: >-
The unique project id, this identifier can be used to
modify a project and modify access permissions for users
type: string
isBlocked:
description: >-
Set to `true` when a project has been administratively
blocked
type: boolean
isLocked:
description: >-
When an ongoing process blocks the project from being
modified, this is set to `true`
type: boolean
name:
description: Name of the project
type: string
region:
description: The region in which a project is stored.
type: string
type:
description: >-
Type of the project, either 'objectstore' or 'openstack'
defaults to 'openstack' when not specified
type: string
required:
- name
- type
type: object
type: object
summary: Update a project
'/openstack/projects/{projectId}/assignable-users':
get:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
assignableUsers:
- description: Supporter account
email: support@example.com
id: 6322872d9c7e445dbbb49c1f9ca28adc
totpEnabled: true
username: example-support
schema:
properties:
assignableUsers:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: List all users can be assigned to a project
operationId: List users that can be assigned to a project
summary: List users that can be assigned to a project
'/openstack/projects/{projectId}/users':
get:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
users:
- description: Supporter account
email: support@example.com
id: 6322872d9c7e445dbbb49c1f9ca28adc
totpEnabled: true
username: example-support
schema:
properties:
users:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: List all users that have access to a project
operationId: List users in a project
summary: List users in a project
post:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Login access has already been granted for user 'c150ab41
schema:
example:
error: Login access has already been granted for user 'c150ab41
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
schema:
example:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Specified project and user are not located on the same
platform
schema:
example:
error: >-
Specified project and user are not located on the same
platform
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: This API call will grant a user access to a project
operationId: Add a user to a project
requestBody:
content:
application/json:
schema:
example:
userId: c150ab41f0d9443f8874e32e725a4cc8
properties:
userId:
description: Grant access to the user with this identifier
type: string
type: object
summary: Add a user to a project
'/openstack/projects/{projectId}/users/{userId}':
delete:
parameters:
- description: projectId
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
in: path
name: projectId
required: true
schema:
type: string
- description: userId
example: c150ab41f0d9443f8874e32e725a4cc8
in: path
name: userId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
Login access has already been revoked for user
'c150ab41f0d9443f8874e32e725a4cc8' in project
'7a7a3bcb46c6450f95c53edb8dcebc7b'
schema:
example:
error: >-
Login access has already been revoked for user
'c150ab41f0d9443f8874e32e725a4cc8' in project
'7a7a3bcb46c6450f95c53edb8dcebc7b'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
schema:
example:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Specified project and user are not located on the same
platform
schema:
example:
error: >-
Specified project and user are not located on the same
platform
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: This API call will revoke access for a user from a project
operationId: Remove a user from project
summary: Remove a user from project
/openstack/users:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
users:
- description: Supporter account
email: support@example.com
id: 6322872d9c7e445dbbb49c1f9ca28adc
totpEnabled: true
username: example-support
schema:
properties:
users:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: Get information on all your OpenStack users
operationId: List all users
summary: List all users
post:
responses:
'201':
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not
found
schema:
example:
error: Project with id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Your TransIP username MUST be provided as a prefix
'example-' in field 'username'
schema:
example:
error: >-
Your TransIP username MUST be provided as a prefix
'example-' in field 'username'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
This API call creates a new user
* Letters, numbers, and the dash symbol is only allowed in a username.
Other symbols provided will be removed from the username
* Your TransIP username **must** be prefixed in-front of your new
sub-username
* Your password must be at least 8 characters long with one lower case,
uppercase letter, and one digit.
operationId: Create a new user
requestBody:
content:
application/json:
schema:
example:
description: Account for supporter
email: supporter@example.com
password: '********'
projectId: 7a7a3bcb46c6450f95c53edb8dcebc7b
username: example-support
properties:
description:
description: Description
type: string
email:
description: Email address
type: string
password:
description: Password
type: string
projectId:
description: Grant user access to a project
type: string
username:
description: Username
type: string
type: object
summary: Create a new user
'/openstack/users/{userId}':
delete:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: You are not allowed to modify the main user
schema:
example:
error: You are not allowed to modify the main user
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
schema:
example:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: With this method you are able to delete a user.
operationId: Delete a user
summary: Delete a user
get:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
user:
description: Supporter account
email: support@example.com
id: 6322872d9c7e445dbbb49c1f9ca28adc
totpEnabled: true
username: example-support
schema:
properties:
user:
properties:
description:
description: Description
type: string
email:
description: Email address
type: string
id:
description: Identifier
type: string
totpEnabled:
description: >-
Whether TOTP (Time-based One-Time Password) is
enabled, e.g., true
type: boolean
username:
description: Login name
type: string
required:
- email
- totpEnabled
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
schema:
example:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: Get information on a specific openstack user by id.
operationId: List a user
summary: List a user
patch:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
schema:
example:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Your password must be at least 8 characters long with one
lower case, uppercase letter, and one digit.
schema:
example:
error: >-
Your password must be at least 8 characters long with one
lower case, uppercase letter, and one digit.
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: This API call allows you to change the password of a user
operationId: Change password for a user
requestBody:
content:
application/json:
schema:
example:
newPassword: '******'
properties:
newPassword:
type: string
type: object
summary: Change password for a user
put:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: You are not allowed to modify the main user
schema:
example:
error: You are not allowed to modify the main user
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
schema:
example:
error: User with id 'c150ab41f0d9443f8874e32e725a4cc8' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
This API calls allows for altering a OpenStack user in several ways
outlined below:
* Change the user description;
* Change the user email address;
operationId: Update a user
requestBody:
content:
application/json:
schema:
example:
user:
description: Supporter account
email: support@example.com
id: 6322872d9c7e445dbbb49c1f9ca28adc
totpEnabled: true
username: example-support
properties:
user:
properties:
description:
description: Description
type: string
email:
description: Email address
type: string
id:
description: Identifier
type: string
totpEnabled:
description: >-
Whether TOTP (Time-based One-Time Password) is enabled,
e.g., true
type: boolean
username:
description: Login name
type: string
required:
- email
- totpEnabled
type: object
type: object
summary: Update a user
'/openstack/users/{userId}/tokens':
get:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
tokens:
- accessKey: humje06ga902xdl3kydifbhvfyr2
managementUrl: de976d041fa943babaa3af94f9ecbe2b.objectstore.eu
projectId: 139636c9a78c4c588285920f6cc4bb5a
secretKey: 6d2ty55ec8bsq9cj6d3ll79a46omi
tokenId: >-
883a4849fc7644dd749f7a300005d9757694382b27b185d5e1fbd54446fc3949
userId: 419636c9a72c4c588285920f6cc4bb2c
schema:
properties:
tokens:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
schema:
example:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: >-
Returns a list of all tokens for a user.
You are able to filter on a specific project by setting the 'projectId'
query parameter
An example is presented in the URI Parameters section of this call
operationId: List all S3 tokens for a user
requestBody:
content:
application/json:
schema:
type: string
summary: List all S3 tokens for a user
post:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'201':
content:
application/json:
schema:
properties:
token:
$ref: '#/components/schemas/ObjectStoreToken'
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
schema:
example:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: This API call creates a new S3 token
operationId: Create a new S3 token
requestBody:
content:
application/json:
schema:
example:
projectId: 139636c9a78c4c588285920f6cc4bb5a
properties:
projectId:
description: specify which projectId this token will be made for
type: string
type: object
summary: Create a new S3 token
'/openstack/users/{userId}/tokens/{tokenId}':
delete:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
- description: tokenId
example: 0ca19e3q55b22f2b8a9b99f1b093879162a4c50435f4d83be88d081dfc633bbd
in: path
name: tokenId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
schema:
example:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: With this method you are able to delete a S3 token
operationId: Delete a S3 token
requestBody:
content:
application/json:
schema:
example:
tokenId: >-
0ca19e3q55b22f2b8a9b99f1b093879162a4c50435f4d83be88d081dfc633bbd
properties:
tokenId:
description: specify the tokenId for the token that should get deleted
type: string
type: object
summary: Delete a S3 token
get:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
- description: tokenId
example: 0ca19e3q55b22f2b8a9b99f1b093879162a4c50435f4d83be88d081dfc633bbd
in: path
name: tokenId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
token:
accessKey: humje06ga902xdl3kydifbhvfyr2
managementUrl: de976d041fa943babaa3af94f9ecbe2b.objectstore.eu
projectId: 139636c9a78c4c588285920f6cc4bb5a
secretKey: 6d2ty55ec8bsq9cj6d3ll79a46omi
tokenId: >-
883a4849fc7644dd749f7a300005d9757694382b27b185d5e1fbd54446fc3949
userId: 419636c9a72c4c588285920f6cc4bb2c
schema:
properties:
token:
properties:
accessKey:
description: Object Store access key
type: string
managementUrl:
description: Object Store management url
type: string
projectId:
description: Object Store project id
type: string
secretKey:
description: Object Store secret key
type: string
tokenId:
description: S3 token id
type: string
userId:
description: Token user id
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
schema:
example:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: Returns a token
operationId: List a S3 token
summary: List a S3 token
'/openstack/users/{userId}/totp':
delete:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
schema:
example:
error: user with id '069b062afd334b80aabc027130cc40cb' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: 'This API call disables, an existing, totp.'
operationId: Disable totp for a user
requestBody:
content:
application/json:
schema:
example:
userId: 0c150ab41f0d9443f8874e32e725a4cc8
properties:
userId:
description: Specify the userId for which to disable totp
type: string
type: object
summary: Disable totp for a user
post:
parameters:
- description: userId
example: 6322872d9c7e445dbbb49c1f9ca28adc
in: path
name: userId
required: true
schema:
type: string
responses:
'201':
content:
application/json:
schema:
properties:
totp:
$ref: '#/components/schemas/Totp'
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: user id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
schema:
example:
error: user id '7a7a3bcb46c6450f95c53edb8dcebc7b' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- OpenStack
description: This API call enables totp.
operationId: Enable totp for a user
requestBody:
content:
application/json:
schema:
example:
userId: 0c150ab41f0d9443f8874e32e725a4cc8
properties:
userId:
description: Specify the userId for which to enable totp
type: string
type: object
summary: Enable totp for a user
/operating-systems:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
operatingSystems:
- baseName: AlmaLinux
description: cPanel 90.0.5 + AlmaLinux 8
installFields:
- hostname
- hashedPassword
installFlavours:
- installer
- preinstallable
- cloudinit
isDefault: false
isPreinstallableImage: false
licenses:
- maxQuantity: 1
minQuantity: 1
name: cpanel-pro
price: 2750
recurringPrice: 2750
type: operating-system
name: CPanel-alma8-latest
price: 2000
version: '90.05'
schema:
properties:
operatingSystems:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
We offer a number of operating systems and preinstalled images ready to
be installed on any VPS. Using this API call, you can get a list of
operating systems and preinstalled images available for a given vps
package.
Commercial operating systems (such as Windows Server editions) and
images shipping a commercial control panel contain the ‘price’
attribute, showing the price per month charged on top of the VPS itself.
A list with operating systems can also be found
[here](https://www.transip.nl/vps/)
An example of all parameters together would be
`/v6/operating-systems?productName=vps-performance-c8&addons=vps-addon-1-extra-ip-address,vps-addon-100-gb-extra-harddisk`
You can find all product and addon names using our `/v6/products`
endpoint
operationId: Filter Operating Systems on specifications
requestBody:
content:
application/json:
schema:
example:
addons: vpsAddon-1-extra-cpu-core
productName: vps-bladevps-x8
properties:
addons:
description: Comma separated list of addons
type: string
productName:
description: Name of the vps product
type: string
required:
- productName
type: object
summary: Filter Operating Systems on specifications
/private-networks:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
privateNetworks:
- connectedVpses:
- description: example VPS
isBlocked: false
isCustomerLocked: false
isLocked: false
macAddress: '52:54:00:3b:52:65'
name: example-vps
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
description: FilesharingNetwork
isBlocked: false
isLocked: false
name: example-privatenetwork
vpsNames:
- example-vps
- example-vps2
schema:
properties:
privateNetworks:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
List all private networks in your account.
Should you only want to get the private networks attached to a specific
VPS, set the `vpsName` parameter and only attached private networks will
be shown like `/v6/private-networks?vpsName=example-vps`
If this parameter is not set, all private networks will be listed along
with the VPSes it’s attached to.
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all private networks
requestBody:
content:
application/json:
schema:
type: string
description: Filter private networks by a given VPS
summary: List all private networks
post:
responses:
'201':
description: Created
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Order a new private network. After ordering a private network you’re
able to attach it to a VPS t o make use of the private network.
::: warning
**Warning**: This API call will create an
invoice!
operationId: Order a new private network
requestBody:
content:
application/json:
schema:
example: {}
properties:
description:
type: string
type: object
summary: Order a new private network
'/private-networks/{privateNetworkName}':
delete:
parameters:
- description: Name of the private network
example: example-privatenetwork
in: path
name: privateNetworkName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
PrivateNetwork 'example-privatenetwork' is blocked, no
modification is allowed
schema:
example:
error: >-
PrivateNetwork 'example-privatenetwork' is blocked, no
modification is allowed
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
PrivateNetwork with name 'example-privatenetwork' not
found
schema:
example:
error: PrivateNetwork with name 'example-privatenetwork' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
The PrivateNetwork 'example-privatenetwork' is already
locked to another action
schema:
example:
error: >-
The PrivateNetwork 'example-privatenetwork' is already
locked to another action
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Cancel a private network.
You can set the `endTime` attribute to `end` or `immediately`, this has
the following implications:
* **end**: The private network will be terminated from the end date of
the agreement as can be found in the applicable quote;
* **immediately**: The private network will be terminated immediately.
operationId: Cancel a private network
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' (default) or ''immediately'''
type: string
type: object
summary: Cancel a private network
get:
parameters:
- description: Name of the private network
example: example-privatenetwork
in: path
name: privateNetworkName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
privateNetwork:
connectedVpses:
- description: example VPS
isBlocked: false
isCustomerLocked: false
isLocked: false
macAddress: '52:54:00:3b:52:65'
name: example-vps
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
description: FilesharingNetwork
isBlocked: false
isLocked: false
name: example-privatenetwork
vpsNames:
- example-vps
- example-vps2
schema:
properties:
privateNetwork:
properties:
connectedVpses:
description: The VPSes in this private network
items: {}
type: array
description:
description: The custom name that can be set by customer
type: string
isBlocked:
description: If the Private Network is administratively blocked
type: boolean
isLocked:
description: >-
When locked, another process is already working with
this private network
type: boolean
name:
description: The unique private network name
type: string
vpsNames:
description: The names of VPSes in this private network
items: {}
type: array
required:
- description
- vpsNames
- connectedVpses
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
PrivateNetwork 'example-privatenetwork' is blocked, no
modification is allowed
schema:
example:
error: >-
PrivateNetwork 'example-privatenetwork' is blocked, no
modification is allowed
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
PrivateNetwork with name 'example-privatenetwork' not
found
schema:
example:
error: PrivateNetwork with name 'example-privatenetwork' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Gather detailed information about a private network. As one of the
returned attributes includes an array of the VPSes it’s attached to, you
can determine if the private network is already attached to a specific
VPS and if not, you can attach it.
operationId: Get private network by name
summary: Get private network by name
patch:
parameters:
- description: Name of the private network
example: example-privatenetwork
in: path
name: privateNetworkName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Detach VPSes from the private network one at a time. Send a PATCH
request with the `action` attribute set to `removevps`.
operationId: Detach vps from privateNetwork
requestBody:
content:
application/json:
schema:
example:
action: detachvps
vpsName: example-vps
properties:
action:
type: string
vpsName:
description: Name of the vps that you want to detach
type: string
type: object
summary: Detach vps from privateNetwork
put:
parameters:
- description: Name of the private network
example: example-privatenetwork
in: path
name: privateNetworkName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
PrivateNetwork 'example-privatenetwork' is blocked, no
modification is allowed
schema:
example:
error: >-
PrivateNetwork 'example-privatenetwork' is blocked, no
modification is allowed
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
PrivateNetwork with name 'example-privatenetwork' not
found
schema:
example:
error: PrivateNetwork with name 'example-privatenetwork' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter
'verylongdescriptionthatwouldnotfit' can be 32 characters
maximum
schema:
example:
error: >-
The provided parameter 'verylongdescriptionthatwouldnotfit'
can be 32 characters maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
The PrivateNetwork 'example-privatenetwork' is already
locked to another action
schema:
example:
error: >-
The PrivateNetwork 'example-privatenetwork' is already
locked to another action
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method can also be used to change the `description` attribute. The
description can be maximum 32 character longs
operationId: Update private network
requestBody:
content:
application/json:
schema:
example:
privateNetwork:
connectedVpses:
- description: example VPS
isBlocked: false
isCustomerLocked: false
isLocked: false
macAddress: '52:54:00:3b:52:65'
name: example-vps
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
description: FilesharingNetwork
isBlocked: false
isLocked: false
name: example-privatenetwork
vpsNames:
- example-vps
- example-vps2
properties:
privateNetwork:
properties:
connectedVpses:
description: The VPSes in this private network
type: array
description:
description: The custom name that can be set by customer
type: string
isBlocked:
description: If the Private Network is administratively blocked
type: boolean
isLocked:
description: >-
When locked, another process is already working with
this private network
type: boolean
name:
description: The unique private network name
type: string
vpsNames:
description: The names of VPSes in this private network
type: array
required:
- description
- vpsNames
- connectedVpses
type: object
type: object
summary: Update private network
/products:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
products:
bigStorage:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
haip:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
privateNetworks:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
vps:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
vpsAddon:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
schema:
properties:
products:
properties:
bigStorage:
description: A list of big storage products
items: {}
type: array
haip:
description: A list of haip products
items: {}
type: array
privateNetworks:
description: A list of private network products
items: {}
type: array
vps:
description: A list of vps products
items: {}
type: array
vpsAddon:
description: A list of vps addons
items: {}
type: array
type: object
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- General
description: >-
This endpoint returns a list of products with their name, description
and price.
These product names can be used upon creating certain resources as it
specifies which type of that resource you would like, for example, a
certain type of HA-IP or Vps.
operationId: List all products
summary: List all products
'/products/{productName}/elements':
get:
parameters:
- description: Product
example: vps-bladevps-x4
in: path
name: productName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
productElements:
- amount: 1
description: amount of ipv4Addresses for a vps
name: ipv4Addresses
schema:
properties:
productElements:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- General
description: >-
Get the specifications for a product.
This will list all the different elements for a product with the amount
that it comes with. e.g. a `vps-bladevps-x4` has 2 CPU-core elements.
operationId: List specifications for product
summary: List specifications for product
/ssh-keys:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
sshKeys:
- creationDate: '2020-12-01 15:25:01'
description: Jim key
fingerprint: 'bb:22:43:69:2b:0d:3e:16:58:91:27:8a:62:29:97:d1'
id: 123
isDefault: true
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDf2pxWX/yhUBDyk2LPhvRtI0LnVO8PyR5Zt6AHrnhtLGqK+8YG9EMlWbCCWrASR+Q1hFQG
example
schema:
properties:
sshKeys:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Account
description: >-
List all SSH keys in your account.
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all SSH keys
summary: List all SSH keys
post:
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: The provided SSH key already exists
schema:
example:
error: The provided SSH key already exists
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 255 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 255 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Account
description: Add a new SSH key to your account.
operationId: Add a new SSH key
requestBody:
content:
application/json:
schema:
example:
description: Jim key
isDefault: true
sshKey: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDf2pxWX/yhUBDyk2LPhvRtI0LnVO8PyR5Zt6AHrnhtLGqK+8YG9EMlWbCCWrASR+Q1hFQG
example
properties:
description:
description: SSH key description
type: string
isDefault:
description: SSH key isDefault
type: boolean
sshKey:
description: SSH key
type: string
type: object
summary: Add a new SSH key
'/ssh-keys/{id}':
delete:
parameters:
- description: SSH key identifier
example: '123'
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: SSH Key with id '123' not found
schema:
example:
error: SSH Key with id '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Account
description: Delete an existing SSH key from your account.
operationId: Delete an SSH key
summary: Delete an SSH key
get:
parameters:
- description: SSH key identifier
example: '123'
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
sshKey:
creationDate: '2020-12-01 15:25:01'
description: Jim key
fingerprint: 'bb:22:43:69:2b:0d:3e:16:58:91:27:8a:62:29:97:d1'
id: 123
isDefault: true
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDf2pxWX/yhUBDyk2LPhvRtI0LnVO8PyR5Zt6AHrnhtLGqK+8YG9EMlWbCCWrASR+Q1hFQG
example
schema:
properties:
sshKey:
properties:
creationDate:
description: >-
Date when this SSH key was added (TimeZone:
Europe/Amsterdam)
type: string
description:
description: SSH key description (max 255 chars)
type: string
fingerprint:
description: MD5 fingerprint of SSH key
type: string
id:
description: SSH key identifier
type: number
isDefault:
description: Whether or not the key is flagged as default
type: boolean
key:
description: SSH key
type: string
required:
- id
- key
- isDefault
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: SSH Key with id '123' not found
schema:
example:
error: SSH Key with id '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- Account
description: Request information about an existing SSH key from your account.
operationId: Get SSH key by id
summary: Get SSH key by id
put:
parameters:
- description: SSH key identifier
example: '123'
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: SSH Key with id '123' not found
schema:
example:
error: SSH Key with id '123' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 255 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 255 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Account
description: >-
Rename the description or change the isDefault attribute for an SSH key.
In this request you need to specify values for the isDefault and
description attribute, you cannot leave them empty.
Except for the description and isDefault, all attributes are read only.
operationId: Update an SSH key
requestBody:
content:
application/json:
schema:
example:
sshKey:
creationDate: '2020-12-01 15:25:01'
description: Jim key
fingerprint: 'bb:22:43:69:2b:0d:3e:16:58:91:27:8a:62:29:97:d1'
id: 123
isDefault: true
key: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDf2pxWX/yhUBDyk2LPhvRtI0LnVO8PyR5Zt6AHrnhtLGqK+8YG9EMlWbCCWrASR+Q1hFQG
example
properties:
sshKey:
properties:
creationDate:
description: >-
Date when this SSH key was added (TimeZone:
Europe/Amsterdam)
type: string
description:
description: SSH key description (max 255 chars)
type: string
fingerprint:
description: MD5 fingerprint of SSH key
type: string
id:
description: SSH key identifier
type: number
isDefault:
description: Whether or not the key is flagged as default
type: boolean
key:
description: SSH key
type: string
required:
- id
- key
- isDefault
type: object
type: object
summary: Update an SSH key
/ssl-certificates:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
certificates:
- canReissue: 'true'
certificateId: 12358
commonName: example.com
expirationDate: '2019-10-24 12:59:59'
status: active
schema:
properties:
certificates:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: Retrieves a list of all SSL certificates in the customer account.
operationId: List all SSL certificates
summary: List all SSL certificates
post:
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
No valid payment information found. Please add your
payment information through the Controlpanel on the
website.
schema:
example:
error: >-
No valid payment information found. Please add your payment
information through the Controlpanel on the website.
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
SSL Certificate product 'ssl-certificate-comodo-unknown'
is not found
schema:
example:
error: >-
SSL Certificate product 'ssl-certificate-comodo-unknown' is
not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Provided email address is invalid
schema:
example:
error: Provided email address is invalid
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: >-
Order a new SSL certificate for a domain
When ordering a EV certificate make sure to provide the same information
as registered with the KVK.
::: warning
**Warning**: This API call will create an
invoice!
operationId: Order a SSL certificate
requestBody:
content:
application/json:
schema:
example:
address: Easy street 12
approverEmail: example@example.com
approverFirstName: John
approverLastName: Doe
approverPhone: +31 715241919
city: Leiden
commonName: '*.example.com'
company: Example B.V.
countryCode: nl
department: Example
kvk: '83057825'
productName: ssl-certificate-comodo-ev
zipCode: 1337 XD
properties:
address:
description: The address
type: string
approverEmail:
description: The email address of the approver
type: string
approverFirstName:
description: The first name of the approver
type: string
approverLastName:
description: The last name of the approver
type: string
approverPhone:
description: The phone number of the approver
type: string
city:
description: The city
type: string
commonName:
description: The common name for which to order a certificate
type: string
company:
description: The company name
type: string
countryCode:
description: The ISO 3166-1 country code
type: string
department:
description: The department name
type: string
kvk:
description: The KVK number of the company
type: string
productName:
description: Name of the product
type: string
zipCode:
description: The zip code
type: string
type: object
summary: Order a SSL certificate
'/ssl-certificates/{certificateId}':
get:
parameters:
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'200':
content:
application/json:
examples:
response:
value:
certificate:
canReissue: 'true'
certificateId: 12358
commonName: example.com
expirationDate: '2019-10-24 12:59:59'
status: active
schema:
properties:
certificate:
properties:
canReissue:
description: Whether the certificate can be reissued
type: string
certificateId:
description: >-
The id of the certificate, can be used to retrieve
additional info
type: number
commonName:
description: >-
The domain name that the SSL certificate is added to.
Start with '*.' when the certificate is a wildcard.
type: string
expirationDate:
description: Expiration date
type: string
status:
description: >-
The current status, either 'active', 'inactive',
'busy' or 'expired'
Active:
Certificate is not expired and can be used
Inactive: Certificate is being processed
Busy: Order is in progress
Expired: Certificate is malformed or gone.
type: string
required:
- certificateId
- commonName
- expirationDate
- status
- canReissue
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Certificate with id '1337' not found
schema:
example:
error: Certificate with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: Retrieves a single SSL certificate by id.
operationId: Get SSL certificate by id
summary: Get SSL certificate by id
patch:
parameters:
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Certificate with id '1337' not found
schema:
example:
error: Certificate with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: >-
This API call allows you to reissue a SslCertificate, given that it’s
currently reissue-able.
To reissue a Certificate, send a PATCH request with the `action`
attribute set to `reissue`.
Optionally extra certificate data can be provided to overwrite the
existing information. The `approverPhone`, `address`, `zipCode` and
`countryCode` are only used for EV certificates.
Note: Let's Encrypt certificates cannot be reissued
operationId: Reissue a certificate
requestBody:
content:
application/json:
schema:
example:
action: reissue
address: Easy street 12
approverEmail: example@example.com
approverFirstName: John
approverLastName: Doe
approverPhone: +31 715241919
countryCode: nl
zipCode: 1337 XD
properties:
action:
type: string
address:
description: The address
type: string
approverEmail:
description: The email address of the approver
type: string
approverFirstName:
description: The first name of the approver
type: string
approverLastName:
description: The last name of the approver
type: string
approverPhone:
description: The phone number of the approver
type: string
countryCode:
description: The ISO 3166-1 country code
type: string
zipCode:
description: The zip code
type: string
type: object
summary: Reissue a certificate
'/ssl-certificates/{certificateId}/details':
get:
parameters:
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'200':
content:
application/json:
examples:
response:
value:
error: Ok
schema:
example:
error: Ok
properties:
error:
type: string
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: Get all details for SSL certificate
operationId: Details for SSL certificate by id
summary: Details for SSL certificate by id
'/ssl-certificates/{certificateId}/download':
post:
parameters:
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'201':
content:
application/json:
schema:
properties:
certificateData:
$ref: '#/components/schemas/SslCertificateData'
type: object
description: Created
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Certificate with id '1337' not found
schema:
example:
error: Certificate with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: >-
Provides the SSL certificate to install on a server
When a certificate was configured using a custom passphrase you can
optionally provide it to receive a decrypted certificate in return. If
no passphrase is provided the encrypted certificate key will be returned
TransIP managed certificates will always be returned decrypted.
operationId: Download a SSL certificate by id
requestBody:
content:
application/json:
schema:
example:
passphrase: secretpassphrase
properties:
passphrase:
description: Provide a passphrase to receive a decrypted certificate key
type: string
type: object
summary: Download a SSL certificate by id
'/ssl-certificates/{certificateId}/install':
patch:
parameters:
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Certificate with id '1337' not found
schema:
example:
error: Certificate with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: >-
Install the selected ssl certificate on the selected web hosting
account.
If a certificate was configured using a custom passphrase, you must
provide it in order to install the certificate.
(This is not for LetsEncrypt Certificates!)
operationId: Install an ssl certificate
requestBody:
content:
application/json:
schema:
example:
domainName: domainName
passphrase: secretpassphrase
properties:
domainName:
description: Provide a domain name to install the certificate on
type: string
passphrase:
description: Provide a passphrase to receive a decrypted certificate key
type: string
required:
- domainName
type: object
summary: Install an ssl certificate
'/ssl-certificates/{certificateId}/uninstall':
delete:
parameters:
- description: The id of the SSL certificate
example: '12358'
in: path
name: certificateId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Certificate with id '1337' not found
schema:
example:
error: Certificate with id '1337' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- SSL Certificates
description: >-
Uninstall the selected ssl certificate from the selected web hosting
account.
operationId: Uninstall an ssl certificate
requestBody:
content:
application/json:
schema:
example:
domainName: domainName
properties:
domainName:
description: Provide a domain name to install the certificate on
type: string
required:
- domainName
type: object
summary: Uninstall an ssl certificate
/tlds:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
tlds:
- capabilities:
- canRegister
maxLength: 63
minLength: 2
name: .nl
price: 399
recurringPrice: 749
registrationPeriodLength: 12
schema:
properties:
tlds:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
This method will return a list of all available TLDs currently offered
by TransIP.
operationId: List all TLDs
summary: List all TLDs
'/tlds/{tld}':
get:
parameters:
- description: Top Level Domain.
example: .nl
in: path
name: tld
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
tld:
capabilities:
- canRegister
maxLength: 63
minLength: 2
name: .nl
price: 399
recurringPrice: 749
registrationPeriodLength: 12
schema:
properties:
tld:
properties:
cancelTimeFrame:
description: >-
Number of days a domain needs to be canceled before
the renewal date.
type: number
capabilities:
description: >-
A list of the capabilities that this Tld has (the
things that can be done with a domain under this tld).
Possible capabilities are: 'requiresAuthCode',
'canRegister', 'canTransferWithOwnerChange',
'canTransferWithoutOwnerChange', 'canSetLock',
'canSetOwner', 'canSetContacts', 'canSetNameservers',
'supportsDnsSec'
items: {}
type: array
maxLength:
description: >-
The maximum amount of characters need for registering
a domain under this TLD.
type: number
minLength:
description: >-
The minimum amount of characters need for registering
a domain under this TLD.
type: number
name:
description: >-
The name of this TLD, including the starting dot. E.g.
.nl or .com.
type: string
price:
description: Price of the TLD in cents
type: number
recurringPrice:
description: Price for renewing the TLD in cents
type: number
registrationPeriodLength:
description: >-
Length in months of each registration or renewal
period.
type: number
required:
- name
type: object
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Get information about a specific TLD. General details such as price,
renewal price and minimum registration length are outlined in the
output.
operationId: Get info for a TLD
summary: Get info for a TLD
/traffic-pool:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
trafficPoolInformation:
- endDate: '2019-07-22'
expectedBytes: 1073741824000
maxInBytes: 1073741824000
startDate: '2019-06-22'
usedInBytes: 7860253754
schema:
properties:
trafficPoolInformation:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
All the traffic of your VPSes combined, overusage will also be billed
based on this information.
operationId: Get traffic pool information
summary: Get traffic pool information
'/traffic-pool/{vpsName}':
get:
parameters:
- description: VPS name
example: example-vps
in: path
name: vpsName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
trafficPoolInformation:
- endDate: '2019-07-22'
expectedBytes: 1073741824000
maxInBytes: 1073741824000
startDate: '2019-06-22'
usedInBytes: 7860253754
schema:
properties:
trafficPoolInformation:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Traffic information for a specific VPS can be retrieved using this API
call. Statistics such as consumed bandwidth and network usage statistics
are classified as traffic information.
operationId: Get traffic information for a VPS
summary: Get traffic information for a VPS
/vps:
get:
responses:
'200':
content:
application/json:
examples:
response:
value:
vpss:
- tags:
- customTag
- anotherTag
availabilityZone: ams0
cpus: 2
createdAt: '2024-01-01 23:59:59'
currentSnapshots: 1
description: example VPS
diskSize: 157286400
flavor: shared
ipAddress: 37.97.254.6
isBlocked: false
isCustomerLocked: false
isLocked: false
macAddress: '52:54:00:3b:52:65'
maxSnapshots: 10
memorySize: 4194304
name: example-vps
operatingSystem: ubuntu-18.04
productName: vps-bladevps-x1
status: running
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
vpss:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Returns a list of all VPSs in the account.
::: note
This method supports pagination, which allows you to limit the amount of
returned objects per call, thus improving the response time. See the
[documentation on pages](#header-pages) for more information on how to
use this functionality.
operationId: List all VPSs
requestBody:
content:
application/json:
schema:
type: string
description: 'Tags to filter by, separated by a comma.'
summary: List all VPSs
post:
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with identifier 'example-vps' not found
schema:
example:
error: VPS with identifier 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Use this API call in order to clone an existing VPS. There are a few
things to take into account when you want to clone an existing VPS to a
new VPS:
* If the original VPS (which you’re going to clone) is currently locked,
the clone will fail;
* Cloned control panels can be used on the VPS, but as the IP address
changes, this does require you to synchronise the new license on the new
VPS (licenses are often IP-based);
* If you choose a target product name and such product doesn't have
enough disk space to fit the current VPS, the clone will fail;
* You cannot clone a PerformanceVPS or BladeVPS to a SandboxVPS;
* Possibly, your VPS has its network interface(s) configured using (a)
static IP(‘s) rather than a dynamic allocation using DHCP. If this is
the case, you have to configure the new IP(‘s) on the new VPS. Do note
that this is not the case with our pre-installed control panel images;
* VPS add-ons such as Big Storage aren’t affected by cloning - these
will stay attached to the original VPS and can’t be swapped
automatically
::: warning
**Warning**: As cloning is a paid service, an invoice will be generated
operationId: Clone a VPS
requestBody:
content:
application/json:
schema:
example:
availabilityZone: ams0
targetProductName: vps-bladevps-x8
vpsName: example-vps
properties:
availabilityZone:
description: >-
The name of the availability zone where the clone should be
created
type: string
targetProductName:
description: Name of the product used by the cloned VPS
type: string
vpsName:
description: The vps name of the VPS to clone.
type: string
type: object
summary: Clone a VPS
'/vps/{vpsIdentifier}':
delete:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with identifier 'example-vps' not found
schema:
example:
error: VPS with identifier 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
schema:
example:
error: >-
This is not a valid cancellation time: 'now', please use
either 'end' or 'immediately'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
schema:
example:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Using the DELETE method on a VPS will cancel the VPS, thus deleting it.
Upon cancellation This will wipe all data on the VPS and permanently
destroy it.
You can set the `endTime` attribute to 'end' or 'immediately', this has
the following implications:
* **end**: The VPS will be terminated from the end date of the agreement
as can be found in the applicable quote;
* **immediately**: The VPS will be terminated immediately.
operationId: Cancel a VPS
requestBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' (default) or ''immediately'''
type: string
type: object
summary: Cancel a VPS
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
vps:
tags:
- customTag
- anotherTag
availabilityZone: ams0
cpus: 2
createdAt: '2024-01-01 23:59:59'
currentSnapshots: 1
description: example VPS
diskSize: 157286400
flavor: shared
ipAddress: 37.97.254.6
isBlocked: false
isCustomerLocked: false
isLocked: false
macAddress: '52:54:00:3b:52:65'
maxSnapshots: 10
memorySize: 4194304
name: example-vps
operatingSystem: ubuntu-18.04
productName: vps-bladevps-x1
status: running
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
schema:
properties:
vps:
properties:
tags:
description: The custom tags added to this VPS
items: {}
type: array
availabilityZone:
description: The name of the availability zone the VPS is in
type: string
cpus:
description: The VPS cpu count
type: number
createdAt:
description: The VPS creation datetime (UTC)
type: string
currentSnapshots:
description: The amount of snapshots that is used on this VPS
type: number
description:
description: The name that can be set by customer
nullable: true
type: string
diskSize:
description: The VPS disk size in kB
type: number
flavor:
description: >-
The VPS flavor, either 'dedicated', 'shared' or
'flexible'
type: string
ipAddress:
description: The VPS main ipAddress
type: string
isBlocked:
description: If the VPS is administratively blocked
type: boolean
isCustomerLocked:
description: If this VPS is locked by the customer
type: boolean
isLocked:
description: >-
Whether or not another process is already doing stuff
with this VPS
type: boolean
macAddress:
description: The VPS macaddress
type: string
maxSnapshots:
description: The maximum amount of snapshots for this VPS
type: number
memorySize:
description: The VPS memory size in kB
type: number
name:
description: The unique VPS name
type: string
operatingSystem:
description: The VPS OperatingSystem
nullable: true
type: string
productName:
description: The product name
type: string
status:
description: >-
The VPS status, either 'created', 'installing',
'running', 'stopped' or 'paused'
type: string
uuid:
description: The unique identifier for the VPS
type: string
required:
- name
- uuid
- tags
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with identifier 'example-vps' not found
schema:
example:
error: VPS with identifier 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Get information on specific VPS by identifier (name or uuid).
**Note**: for `vpsIdentifier`, use the provided name (format:
username-vpsXX) or uuid.
operationId: Get VPS by identifier
summary: Get VPS by identifier
patch:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Target user 'example2' does not exist
schema:
example:
error: Target user 'example2' does not exist
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
Target user 'example2' is not capable of receiving
handover
schema:
example:
error: Target user 'example2' is not capable of receiving handover
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Handover a VPS to another Account. This call will initiate the handover
process. the actual handover will be done when the target customer
accepts the handover.
Note: the VPS will be shut down in order to handover.
operationId: Handover a VPS
requestBody:
content:
application/json:
schema:
example:
action: handover
targetCustomerName: example2
properties:
action:
type: string
targetCustomerName:
type: string
type: object
summary: Handover a VPS
put:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with identifier 'example-vps' not found
schema:
example:
error: VPS with identifier 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'description' can be 32 characters
maximum
schema:
example:
error: >-
The provided parameter 'description' can be 32 characters
maximum
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
schema:
example:
error: >-
VPS 'example-vps' is customer locked, no modification is
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
In this API call you can lock/unlock a VPS, update VPS description, and
add/remove tags.
### Locking a VPS
Locking a VPS prevents accidental execution of API calls and manual
actions through the control panel.
For locking the VPS, set `isCustomerLocked` to `true`. Set the value to
`false` for unlocking the VPS.
### Change a VPS description
You can change your VPS description by simply changing the `description`
attribute. Note that the identifier key `name` will not be changed. The
description can be maximum 32 character longs
### VPS Tags
To add/remove tags, you must update the `tags` attribute. Every time you
make a call with a changed tags attribute, the existing tags are
overridden.
operationId: Update a VPS
requestBody:
content:
application/json:
schema:
example:
vps:
tags:
- customTag
- anotherTag
availabilityZone: ams0
cpus: 2
createdAt: '2024-01-01 23:59:59'
currentSnapshots: 1
description: example VPS
diskSize: 157286400
flavor: shared
ipAddress: 37.97.254.6
isBlocked: false
isCustomerLocked: false
isLocked: false
macAddress: '52:54:00:3b:52:65'
maxSnapshots: 10
memorySize: 4194304
name: example-vps
operatingSystem: ubuntu-18.04
productName: vps-bladevps-x1
status: running
uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
properties:
vps:
properties:
tags:
description: The custom tags added to this VPS
type: array
availabilityZone:
description: The name of the availability zone the VPS is in
type: string
cpus:
description: The VPS cpu count
type: number
createdAt:
description: The VPS creation datetime (UTC)
type: string
currentSnapshots:
description: The amount of snapshots that is used on this VPS
type: number
description:
description: The name that can be set by customer
nullable: true
type: string
diskSize:
description: The VPS disk size in kB
type: number
flavor:
description: >-
The VPS flavor, either 'dedicated', 'shared' or
'flexible'
type: string
ipAddress:
description: The VPS main ipAddress
type: string
isBlocked:
description: If the VPS is administratively blocked
type: boolean
isCustomerLocked:
description: If this VPS is locked by the customer
type: boolean
isLocked:
description: >-
Whether or not another process is already doing stuff
with this VPS
type: boolean
macAddress:
description: The VPS macaddress
type: string
maxSnapshots:
description: The maximum amount of snapshots for this VPS
type: number
memorySize:
description: The VPS memory size in kB
type: number
name:
description: The unique VPS name
type: string
operatingSystem:
description: The VPS OperatingSystem
nullable: true
type: string
productName:
description: The product name
type: string
status:
description: >-
The VPS status, either 'created', 'installing',
'running', 'stopped' or 'paused'
type: string
uuid:
description: The unique identifier for the VPS
type: string
required:
- name
- uuid
- tags
type: object
type: object
summary: Update a VPS
'/vps/{vpsIdentifier}/addons':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
addons:
active:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
available:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
cancellable:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
schema:
properties:
addons:
properties:
active:
description: A list of all active addons
items: {}
type: array
available:
description: A list of available addons that you can order
items: {}
type: array
cancellable:
description: A list of addons that you can cancel
items: {}
type: array
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method will return all active, cancelable and available add-ons for
a VPS.
operationId: List addons for a VPS
summary: List addons for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
Addon order limit reached for addon product element
'memory-size'
schema:
example:
error: >-
Addon order limit reached for addon product element
'memory-size'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS product addon 'example-addon' not found
schema:
example:
error: VPS product addon 'example-addon' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
In order to extend a specific VPS with add-ons, use this API call.
The type of add-ons that can be ordered range from extra IP addresses to
hardware add-ons such as an extra core or additional SSD disk space.
::: warning
**Warning**: This API call will create a
new invoice for the specified add-on(s)
operationId: Order addons for a VPS
requestBody:
content:
application/json:
schema:
example:
addons:
- vps-addon-1-extra-ip-address
properties:
addons:
description: Addons to be added
type: array
type: object
summary: Order addons for a VPS
'/vps/{vpsIdentifier}/addons/{addonName}':
delete:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: Addon name
example: vps-addon-1-extra-ip-address
in: path
name: addonName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
By using this API call, you can cancel an add-on by name, specifying the
VPS name as well. Due to technical restrictions (possible dataloss)
storage add-ons cannot be cancelled.
operationId: Cancel an addon for a VPS
summary: Cancel an addon for a VPS
'/vps/{vpsIdentifier}/backups':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
backups:
- availabilityZone: ams0
dateTimeCreate: '2019-11-29 22:11:20'
diskSize: 157286400
id: 712332
operatingSystem: Ubuntu 19.10
retentionType: weeklyBackupRetention
status: active
schema:
properties:
backups:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
We offer multiple backup types, every VPS has 4 hourly backups by
default, weekly backups are available for a small fee. This API call
returns backups for both types.
operationId: List backups for a VPS
summary: List backups for a VPS
'/vps/{vpsIdentifier}/backups/{backupId}':
patch:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: Id of the backup
example: '712332'
in: path
name: backupId
required: true
schema:
type: number
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Snapshot limit reached
schema:
example:
error: Snapshot limit reached
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on Backup '123' are temporary disabled
schema:
example:
error: Actions on Backup '123' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
With this API call you can convert a backup to a snapshot for the VPS.
In case the creation of this snapshot leads to exceeding the maximum
allowed snapshots, the API call will return an error and the snapshot
will not be created please order extra snapshots before proceeding.
To convert a backup to a VPS snapshot, send a PATCH request with the
`action` attribute set to `convert`.
operationId: Convert backup to snapshot
requestBody:
content:
application/json:
schema:
example:
action: convert
description: BeforeItsAllBroken
properties:
action:
type: string
description:
type: string
type: object
summary: Convert backup to snapshot
'/vps/{vpsIdentifier}/firewall':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
vpsFirewall:
isEnabled: true
ruleSet:
- description: HTTP
endPort: 80
protocol: tcp
startPort: 80
whitelist:
- 80.69.69.80/32
- 80.69.69.100/32
- '2a01:7c8:3:1337::1/128'
schema:
properties:
vpsFirewall:
properties:
isEnabled:
description: Whether the firewall is enabled for this VPS
type: boolean
ruleSet:
description: Ruleset of the VPS
items: {}
type: array
required:
- isEnabled
- ruleSet
type: object
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
The VPS firewall works as a whitelist stateful firewall for **incoming**
traffic. Enable the Firewall to block everything, add rules to exclude
certain traffic from being blocked.
To further filter traffic, IP's can be whitelisted per rule. when no
whitelist has been given for a specific rule, all traffic is allowed to
this port.
operationId: List firewall for a VPS
summary: List firewall for a VPS
patch:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'Action should be one of the following: reset'
schema:
example:
error: 'Action should be one of the following: reset'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' has an action running, no modification
is allowed
schema:
example:
error: >-
VPS 'example-vps' has an action running, no modification is
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Reset the ruleset for a VPS back to the default settings. This will
override all current rules set for this VPS.
Any change to the firewall will temporary lock the VPS while the new
rules are being applied.
operationId: Reset firewall for a VPS
requestBody:
content:
application/json:
schema:
example:
action: reset
properties:
action:
type: string
type: object
summary: Reset firewall for a VPS
put:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The provided parameter 'protocol' can only be one of the
following value's 'tcp,udp,tdp_udp'
schema:
example:
error: >-
The provided parameter 'protocol' can only be one of the
following value's 'tcp,udp,tdp_udp'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' has an action running, no modification
is allowed
schema:
example:
error: >-
VPS 'example-vps' has an action running, no modification is
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Update the ruleset for a VPS. This will override all current rules set
for this VPS.
The VPS Firewall works as a whitelist. when no entries are given, but
the firewall is enabled. All **incoming** traffic will be blocked.
IP's or IP Ranges (v4/v6) can be whitelisted per rule. When no whitelist has been given for a specific rule, all incoming traffic is allowed to this port.
Protocol parameter can either be `tcp`, `udp` or `tcp_udp`.
There is a maximum of 50 rules with each a maximum of 20 whitelist entries.
Any change to the firewall will temporary lock the VPS while the new
rules are being applied.
operationId: Update firewall for a VPS
requestBody:
content:
application/json:
schema:
example:
vpsFirewall:
isEnabled: true
ruleSet:
- description: HTTP
endPort: 80
protocol: tcp
startPort: 80
whitelist:
- 80.69.69.80/32
- 80.69.69.100/32
- '2a01:7c8:3:1337::1/128'
properties:
vpsFirewall:
properties:
isEnabled:
description: Whether the firewall is enabled for this VPS
type: boolean
ruleSet:
description: Ruleset of the VPS
type: array
required:
- isEnabled
- ruleSet
type: object
type: object
summary: Update firewall for a VPS
'/vps/{vpsIdentifier}/ip-addresses':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
ipAddresses:
- address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
schema:
properties:
ipAddresses:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This API call will return all IPv4 and IPv6 addresses attached to the
VPS including Relevant network information like the gateway and subnet
mask.
operationId: List IP addresses for a VPS
summary: List IP addresses for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
IP address '2a01:7c8:3:1337::6' is not in the VPS ipv6
Range
schema:
example:
error: 'IP address ''2a01:7c8:3:1337::6'' is not in the VPS ipv6 Range'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: 'IP address ''2a01:7c8:3:1337::6'' already exists'
schema:
example:
error: 'IP address ''2a01:7c8:3:1337::6'' already exists'
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
VPSes are deployed with an `/64` IPv6 range. In order to set ReverseDNS
for specific ipv6 addresses, you will have to add the IPv6 address via
this command.
After adding an IPv6 address, you can set the reverse DNS for this
address using the [Update Reverse DNS](#vps-ip-addresses-put) API call.
operationId: Add IPv6 address to a VPS
requestBody:
content:
application/json:
schema:
example:
ipAddress: '2a01:7c8:3:1337::6'
properties:
ipAddress:
type: string
type: object
summary: Add IPv6 address to a VPS
'/vps/{vpsIdentifier}/ip-addresses/{ipAddress}':
delete:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: The IP address of the VPS
example: 37.97.254.6
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
IPv6 '2a01:0a0:aa00:00::1' cannot be deleted, your VPS
requires at least one IPv6 address.
schema:
example:
error: >-
IPv6 '2a01:0a0:aa00:00::1' cannot be deleted, your VPS
requires at least one IPv6 address.
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: >-
IPv6 address '2a01:0a0:aa00:00::1' is not found on VPS
'example-vps'
schema:
example:
error: >-
IPv6 address '2a01:0a0:aa00:00::1' is not found on VPS
'example-vps'
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method allows you to remove specific IPv6 addresses from the
registered list of IPv6 addresses within the VPS's `/64` IPv6 range.
Note that deleting an IP address will also wipe its reverse DNS
information.
operationId: Remove an IPv6 address from a VPS
summary: Remove an IPv6 address from a VPS
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: The IP address of the VPS
example: 37.97.254.6
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
ipAddress:
address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
schema:
properties:
ipAddress:
properties:
address:
description: The IP address
type: string
dnsResolvers:
description: The DNS resolvers you can use
items: {}
type: array
gateway:
description: Gateway
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
type: string
subnetMask:
description: Subnet mask
type: string
required:
- reverseDns
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: IP address '8.8.8.8' is not found on VPS 'example-vps'
schema:
example:
error: IP address '8.8.8.8' is not found on VPS 'example-vps'
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Only return network information for the specified IP address.
operationId: Get IP address info by address
summary: Get IP address info by address
put:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: The IP address of the VPS
example: 37.97.254.6
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: IP address '8.8.8.8' is not found on VPS 'example-vps'
schema:
example:
error: IP address '8.8.8.8' is not found on VPS 'example-vps'
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'This is not a valid hostname: ''test&@*#'''
schema:
example:
error: 'This is not a valid hostname: ''test&@*#'''
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Reverse DNS for IPv4 addresses as well as IPv6 addresses can be updated
using this API call.
operationId: Update reverse DNS for a VPS
requestBody:
content:
application/json:
schema:
example:
ipAddress:
address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
properties:
ipAddress:
properties:
address:
description: The IP address
type: string
dnsResolvers:
description: The DNS resolvers you can use
type: array
gateway:
description: Gateway
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
type: string
subnetMask:
description: Subnet mask
type: string
required:
- reverseDns
type: object
type: object
summary: Update reverse DNS for a VPS
'/vps/{vpsIdentifier}/licenses':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
licenses:
active:
- id: 42
keys:
- key: XXXXXXXXXXX
name: Cpanel license key
maxQuantity: 1
name: cpanel-admin
price: 1050
quantity: 1
recurringPrice: 1050
type: addon
available:
- maxQuantity: 1
minQuantity: 1
name: cpanel-pro
price: 2750
recurringPrice: 2750
type: operating-system
cancellable:
- id: 42
keys:
- key: XXXXXXXXXXX
name: Cpanel license key
maxQuantity: 1
name: cpanel-admin
price: 1050
quantity: 1
recurringPrice: 1050
type: addon
schema:
properties:
licenses:
properties:
active:
description: A list of licenses active on your VPS
items: {}
type: array
available:
description: >-
A list of available licenses that you can order or
switch to for your VPS
items: {}
type: array
cancellable:
description: >-
A list of licenses active on your VPS that you can
cancel
items: {}
type: array
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method will return all active, cancellable and available licenses
for a VPS.
Operating system licenses (type: `operating-system`) cannot be directly
purchased, or cancelled, they are attached to your VPS the moment you
install an operating system that requires a license. Operating systems
such as Plesk, DirectAdmin, cPanel and etc need a valid license. An
operating system license can only be upgraded or downgraded by using the
[Update an operating system license](#vps-licenses-put) API call.
Addon licenses (type: `addon`) can be purchased individually through the
[Order an addon license](#vps-licenses-post) API call.
operationId: List licenses for a VPS
summary: List licenses for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
License with name 'cpanel-premier-1000' is not orderable
as an addon license
schema:
example:
error: >-
License with name 'cpanel-premier-1000' is not orderable as
an addon license
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: License with name 'example-license' is not available
schema:
example:
error: License with name 'example-license' is not available
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
'500':
content:
application/json:
examples:
response:
value:
error: The license could not be ordered due to an internal error
schema:
example:
error: The license could not be ordered due to an internal error
properties:
error:
type: string
type: object
description: Internal Server Error
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
In order to purchase an addon license for your VPS, use this API call.
The licenses that can be ordered can be requested using the [get
licenses](#vps-vps-licenses-get) api call.
::: warning
**Warning**: This API call will create a
new invoice for the specified license
operationId: Order an addon license
requestBody:
content:
application/json:
schema:
example:
licenseName: microsoft-office-professional
quantity: 1
properties:
licenseName:
description: Name of the license that you want to order
type: string
quantity:
description: Quantity of the license that you want to order
type: number
type: object
summary: Order an addon license
'/vps/{vpsIdentifier}/licenses/{licenseId}':
delete:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: License Id
example: '18'
in: path
name: licenseId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: License with id '1' is not cancellable
schema:
example:
error: License with id '1' is not cancellable
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: License with id '123' does not exist
schema:
example:
error: License with id '123' does not exist
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
By using this API call, you can cancel a license by its id, specifying
the VPS name as well. Operating system licenses cannot be cancelled.
operationId: Cancel an addon license
summary: Cancel an addon license
put:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: License Id
example: '18'
in: path
name: licenseId
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: >-
Cannot downgrade to License with name 'cpanel-admin', due
to too many active cPanel users on the provided VPS
schema:
example:
error: >-
Cannot downgrade to License with name 'cpanel-admin', due to
too many active cPanel users on the provided VPS
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: License with id '1' is not attached to example-vps
schema:
example:
error: License with id '1' is not attached to example-vps
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: License with name 'microsoft-office-365' is not available
schema:
example:
error: License with name 'microsoft-office-365' is not available
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Switch between operating system licenses using this API call.
You must provide your current License Id in the `licenseId` parameter.
Provide your desired license name in the `newLicenseName` parameter within the request body for either to upgrade or downgrade.
::: warning
**Warning**: Changes made using this API
call will reflect on your next invoice
operationId: Update an operating system license
requestBody:
content:
application/json:
schema:
example:
newLicenseName: cpanel-premier
properties:
newLicenseName:
description: The name of the new license that you want to switch to
type: string
type: object
summary: Update an operating system license
'/vps/{vpsIdentifier}/operating-systems':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
operatingSystems:
- baseName: AlmaLinux
description: cPanel 90.0.5 + AlmaLinux 8
installFields:
- hostname
- hashedPassword
installFlavours:
- installer
- preinstallable
- cloudinit
isDefault: false
isPreinstallableImage: false
licenses:
- maxQuantity: 1
minQuantity: 1
name: cpanel-pro
price: 2750
recurringPrice: 2750
type: operating-system
name: CPanel-alma8-latest
price: 2000
version: '90.05'
schema:
properties:
operatingSystems:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
We offer a number of operating systems and preinstalled images ready to
be installed on any VPS. Using this API call, you can get a list of
operating systems and preinstalled images available.
Commercial operating systems (such as Windows Server editions) and
images shipping a commercial control panel contain the ‘price’
attribute, showing the price per month charged on top of the VPS itself.
A list with operating systems can also be found
[here](https://www.transip.nl/vps/)
operationId: List installable operating systems for a VPS
summary: List installable operating systems for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: License with name 'plesk-co-op-51' does not exist
schema:
example:
error: License with name 'plesk-co-op-51' does not exist
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Only one operating system license should be provided
schema:
example:
error: Only one operating system license should be provided
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
With this method you can install operating systems and preinstalled
images on a VPS.
A notable feature is the ability to specify if the installation should
be unattended using the `base64InstallText` parameter, allowing for
automatic deployment of operating systems.
Provide an installFlavour to choose whether a operating system should be
deployed with a regular installer or a preinstalled cloudinit image.
Check the GET operating-systems function to see what flavours are
available for you operating system.
When choosing `installer` the `base64InstallText` will be interpreted as a preseed or kickstart file, when choosing `cloudinit` it will be interpreted as cloudinit UserData.
SSHKeys are optional for a `cloudinit` installation, when no keys are
provided a OneTimePassword will be generated and emailed to you.
Provide a license to override the default license of a `preinstallable`
operating system. As an example, once a cPanel installation is complete,
the default cPanel license will allow you to create 5 user accounts. If
the cPanel Pro license is provided, the default license is replaced, and
after installation you are able to create 30 user accounts.
::: warning
**Warning**: This will create an invoice
when a non-free operating system or a non-free control panel is chosen.
operationId: Install an operating system on a VPS
requestBody:
content:
application/json:
schema:
example:
acronisTenantId: eede56d2-1dc6-4fbc-aa3e-ed73f0c41554
hashedPassword: $2y$10$kDwnrkGedxn4HtdAPl86D..sdtnW5aLeHzPuJ8UbAWOOiSiBDXYkm
installFlavour: cloudinit
licenses:
- cpanel-premier-200
operatingSystemName: ubuntu-22.04
sshKeys:
- ssh-rsa AAAAB3NzaC1yc2EAAA...
- ssh-ed25519 AAAAC3NzaC1l...
username: bob
properties:
acronisTenantId:
description: >-
Specify your Acronis Tenant Id if you would like to
automatically install the Acronis Client on your VPS.
type: string
base64InstallText:
description: >-
Base64 encoded preseed / kickstart / cloudinit instructions,
when installing unattended. The decoded string may be up to
49152 bytes (48 KiB) long.
type: string
hashedPassword:
description: password used for cloud init installation account.
type: string
hostname:
description: Hostname is required for preinstallable web controlpanels
type: string
installFlavour:
description: >-
Flavour of OS installation `installer`, `preinstallable` or
`cloudinit` check GET operating-system to see what flavours
of installation your OS supports.
type: string
licenses:
description: >-
Licenses you want to add to your `preinstallable`
installation flavor
type: array
operatingSystemName:
description: The name of the operating system
type: string
sshKeys:
description: >-
array of public ssh keys to use for account creating during
installation
type: array
username:
description: >-
username used for account creating during cloudinit
installation (max 32 chars)
type: string
type: object
summary: Install an operating system on a VPS
'/vps/{vpsIdentifier}/rescue-images':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
rescueImages:
- name: example
supportsSshKeys: true
schema:
properties:
rescueImages:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: VPS console for 'example-vps' is currently unavailable
schema:
example:
error: VPS console for 'example-vps' is currently unavailable
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Get the name of available Rescue Images for your VPS.
operationId: Get Rescue Images for your VPS
summary: Get Rescue Images for your VPS
patch:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
Rescue image name should be one of the following:
RescueLinux, RescueBSD
schema:
example:
error: >-
Rescue image name should be one of the following:
RescueLinux, RescueBSD
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Call this method to boot a specified Rescue image for designated VPS.
Some rescue images support ssh keys. When this is the case and ssh keys
are
provided the vps will be booted with the keys loaded. This can be used to gain root ssh access to the machine without manually adding the keys through the console.
operationId: Boot Rescue Image for a VPS
requestBody:
content:
application/json:
schema:
example:
name: rescueImageName
sshKeys:
- ssh-rsa AAAAB3NzaC1yc2EAAA...
- ssh-ed25519 AAAAC3NzaC1l...
properties:
name:
type: string
sshKeys:
description: array of public ssh key's to use for the rescue image
type: array
type: object
summary: Boot Rescue Image for a VPS
'/vps/{vpsIdentifier}/settings':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
settings:
- dataType: boolean
name: blockVpsMailPorts
readOnly: false
value:
valueBoolean: true
valueString: allow
schema:
properties:
settings:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Setting 'exampleSetting' is not an existing setting
schema:
example:
error: Setting 'exampleSetting' is not an existing setting
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This API call will return all available settings that could be toggled
for a VPS.
operationId: List All Settings for a VPS
summary: List All Settings for a VPS
'/vps/{vpsIdentifier}/settings/{setting}':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: The Setting for the VPS
example: blockVpsMailPorts
in: path
name: setting
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
setting:
dataType: boolean
name: blockVpsMailPorts
readOnly: false
value:
valueBoolean: true
valueString: allow
schema:
properties:
setting:
properties:
dataType:
description: Setting Datatype
type: string
name:
description: Setting Name
type: string
readOnly:
description: Setting ReadOnly
type: boolean
value:
description: Setting Value
properties:
valueBoolean:
description: Boolean Value
type: boolean
valueString:
description: String Value
type: string
required:
- valueBoolean
- valueString
type: object
required:
- value
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Setting 'exampleSetting' is not an existing setting
schema:
example:
error: Setting 'exampleSetting' is not an existing setting
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Returns the current value for the specified setting.
operationId: Get VPS Setting Information
summary: Get VPS Setting Information
put:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: The Setting for the VPS
example: blockVpsMailPorts
in: path
name: setting
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Setting with name 'settingName' does not exist
schema:
example:
error: Setting with name 'settingName' does not exist
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: Setting with name 'tcpMonitoringAvailable' is read only
schema:
example:
error: Setting with name 'tcpMonitoringAvailable' is read only
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: >-
VPS 'example-vps' has an action running, no modification
allowed
schema:
example:
error: >-
VPS 'example-vps' has an action running, no modification
allowed
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method allows you to update an available setting for the specified
VPS.
There are a couple of things to keep in mind while sending this request:
* You are able to set multiple value data types e.g. 'valueBoolean',
'valueString' however only the relevant datatype for the specified
setting will be used.
* You are not able to send an update request to a read only setting,
please make sure to check which settings are specified as read only.
* You are not able to send an update request without sending any values
or leaving the values empty e.g. null values.
* Please make sure that the setting name in the JSON body is equal to
the setting name in the URI.
operationId: Update a setting for the specified VPS
requestBody:
content:
application/json:
schema:
example:
setting:
dataType: boolean
name: blockVpsMailPorts
readOnly: false
value:
valueBoolean: true
valueString: allow
properties:
setting:
properties:
dataType:
description: Setting Datatype
type: string
name:
description: Setting Name
type: string
readOnly:
description: Setting ReadOnly
type: boolean
value:
description: Setting Value
properties:
valueBoolean:
description: Boolean Value
type: boolean
valueString:
description: String Value
type: string
required:
- valueBoolean
- valueString
type: object
required:
- value
type: object
type: object
summary: Update a setting for the specified VPS
'/vps/{vpsIdentifier}/snapshots':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
snapshots:
- dateTimeCreate: '2019-07-14 12:21:11'
description: before upgrade
diskSize: 314572800
name: '1572607577'
operatingSystem: ubuntu-18.04
status: creating
schema:
properties:
snapshots:
items: {}
type: array
type: object
description: OK
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method allows you to list all snapshots that are taken of your VPS
main disk.
A snapshot status can have the following values: ‘active‘, ‘creating‘,
‘reverting‘, ‘deleting‘, ‘pendingDeletion‘, ‘syncing‘, ‘moving‘ when
status is ‘active‘ you can perform actions on it.
operationId: List snapshots for a VPS
summary: List snapshots for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
With this API call you can create a snapshot of a VPS.
In case the creation of this snapshot leads to exceeding the maximum
allowed snapshots, the API call will return an error and the snapshot
will not be created - please order extra snapshots before proceeding.
Creating a snapshot allows for restoring it on another VPS using the
[Revert snapshot to a VPS](#vps-snapshots-patch) given that its
specifications equals or exceeds those of the snapshot's source VPS.
::: warning
We strongly recommend shutting the VPS down before taking a snapshot in
order to prevent data loss, etc.
operationId: Create snapshot of a VPS
requestBody:
content:
application/json:
schema:
example:
description: BeforeItsAllBroken
shouldStartVps: true
properties:
description:
type: string
shouldStartVps:
description: >-
Specify whether the VPS should be started immediately after
the snapshot was created, default is `true`
type: boolean
type: object
summary: Create snapshot of a VPS
'/vps/{vpsIdentifier}/snapshots/{snapshotName}':
delete:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: Name of the snapshot
example: '1500027671'
in: path
name: snapshotName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Delete a VPS snapshot using this API call.
operationId: Delete a snapshot
summary: Delete a snapshot
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: Name of the snapshot
example: '1500027671'
in: path
name: snapshotName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
snapshot:
dateTimeCreate: '2019-07-14 12:21:11'
description: before upgrade
diskSize: 314572800
name: '1572607577'
operatingSystem: ubuntu-18.04
status: creating
schema:
properties:
snapshot:
properties:
dateTimeCreate:
description: The snapshot creation date
type: string
description:
description: The snapshot description
type: string
diskSize:
description: The size of the snapshot in kB
type: number
name:
description: The snapshot name
type: string
operatingSystem:
description: The snapshot OperatingSystem
type: string
status:
description: >-
The snapshot status ('active', 'creating',
'reverting', 'deleting', 'pendingDeletion', 'syncing',
'moving')
type: string
type: object
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: Snapshot with name '1500027671' not found
schema:
example:
error: Snapshot with name '1500027671' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Specifying the snapshot ID and the VPS name it’s associated with, allows
for insight in snapshot details.
operationId: Get snapshot by name
summary: Get snapshot by name
patch:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: Name of the snapshot
example: '1500027671'
in: path
name: snapshotName
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
OperatingSystem 'example OS' is not supported on the
specifications of the provided Vps
schema:
example:
error: >-
OperatingSystem 'example OS' is not supported on the
specifications of the provided Vps
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This method can be used to revert a snapshot to a VPS. Specifying the
`destinationVpsName` attribute makes sure the snapshot is restored onto
another VPS.
Networking may be configured statically on the source VPS, therefore
breaking connectivity when restored onto another VPS with a new assigned
IP. You should be able to alter this through the KVM console in the
control panel in case SSH is unavailable.
operationId: Revert snapshot to a VPS
requestBody:
content:
application/json:
schema:
example:
destinationVpsName: destination-vps
properties:
destinationVpsName:
description: 'When set, revert the snapshot to this VPS'
type: string
type: object
summary: Revert snapshot to a VPS
'/vps/{vpsIdentifier}/tcp-monitors':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
tcpMonitors:
- allowedTimeouts: 1
contacts:
- enableEmail: true
enableSMS: false
id: 1
ignoreTimes:
- timeFrom: '18:00'
timeTo: '08:30'
interval: 6
ipAddress: 10.3.37.1
label: HTTP
ports:
- 80
- 443
schema:
properties:
tcpMonitors:
items: {}
type: array
type: object
description: OK
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Get an overview of all existing monitors attached to your VPS.
operationId: List all TCP monitors for a VPS
summary: List all TCP monitors for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: The contact with id '1' was not found
schema:
example:
error: The contact with id '1' was not found
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: IP address '%s' is not found on VPS '%s'
schema:
example:
error: IP address '%s' is not found on VPS '%s'
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The allowed timeouts value can only be a number between 1
- 5. Value `25` was provided
schema:
example:
error: >-
The allowed timeouts value can only be a number between 1 -
5. Value `25` was provided
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Create a TCP monitor and specify which ports you would like to monitor.
operationId: Create a TCP monitor for a VPS
requestBody:
content:
application/json:
schema:
example:
tcpMonitor:
allowedTimeouts: 1
contacts:
- enableEmail: true
enableSMS: false
id: 1
ignoreTimes:
- timeFrom: '18:00'
timeTo: '08:30'
interval: 6
ipAddress: 10.3.37.1
label: HTTP
ports:
- 80
- 443
properties:
tcpMonitor:
properties:
allowedTimeouts:
description: Allowed time outs (numbers 1-5)
type: number
contacts:
description: Contact that will be notified for this monitor
type: array
ignoreTimes:
description: >-
The hours when the TCP monitoring is ignored (no
notifications are sent out)
type: array
interval:
description: Checking interval in minutes (numbers 1-6)
type: number
ipAddress:
description: IP Address that is monitored
type: string
label:
description: Title of the monitor
type: string
ports:
description: Ports that are monitored
type: array
required:
- ipAddress
- label
- ports
- interval
- allowedTimeouts
- contacts
- ignoreTimes
type: object
type: object
summary: Create a TCP monitor for a VPS
'/vps/{vpsIdentifier}/tcp-monitors/{ipAddress}':
delete:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: IP Address that is monitored
example: 10.3.37.1
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
security:
- oauth2: []
tags:
- VPS
description: ''
operationId: Delete a TCP monitor for a VPS
summary: Delete a TCP monitor for a VPS
put:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
- description: IP Address that is monitored
example: 10.3.37.1
in: path
name: ipAddress
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: The contact with id '1' was not found
schema:
example:
error: The contact with id '1' was not found
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: >-
The allowed timeouts value can only be a number between 1
- 5. Value `25` was provided
schema:
example:
error: >-
The allowed timeouts value can only be a number between 1 -
5. Value `25` was provided
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: ''
operationId: Update a TCP monitor for a VPS
requestBody:
content:
application/json:
schema:
example:
tcpMonitor:
allowedTimeouts: 1
contacts:
- enableEmail: true
enableSMS: false
id: 1
ignoreTimes:
- timeFrom: '18:00'
timeTo: '08:30'
interval: 6
ipAddress: 10.3.37.1
label: HTTP
ports:
- 80
- 443
properties:
tcpMonitor:
properties:
allowedTimeouts:
description: Allowed time outs (numbers 1-5)
type: number
contacts:
description: Contact that will be notified for this monitor
type: array
ignoreTimes:
description: >-
The hours when the TCP monitoring is ignored (no
notifications are sent out)
type: array
interval:
description: Checking interval in minutes (numbers 1-6)
type: number
ipAddress:
description: IP Address that is monitored
type: string
label:
description: Title of the monitor
type: string
ports:
description: Ports that are monitored
type: array
required:
- ipAddress
- label
- ports
- interval
- allowedTimeouts
- contacts
- ignoreTimes
type: object
type: object
summary: Update a TCP monitor for a VPS
'/vps/{vpsIdentifier}/upgrades':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
upgrades:
- description: This is an example product
name: example-product-name
price: 499
recurringPrice: 799
schema:
properties:
upgrades:
items: {}
type: array
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
List all available product upgrades for a VPS.
Upgrades differentiate from add-ons in the sense that upgrades are VPS
products like the `vps-bladevps-pro-x16` VPS product.
operationId: List available upgrades for a VPS
summary: List available upgrades for a VPS
post:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'201':
description: Created
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: Actions on VPS 'example-vps' are temporary disabled
schema:
example:
error: Actions on VPS 'example-vps' are temporary disabled
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
This API call allows you to upgrade a VPS by name and productName.
It’s not possible to downgrade a VPS, as most upgrades cannot be
deallocated due to technical reasons (data loss when shrinking the disk
space).
Your current add-ons will be transferred to your selected package.
Add-ons that have become redundant are automatically cancelled and you
only pay for add-ons that you need after an upgrade. So, if you have a
BladeVPS X1 with an additional 100GB disk space Add-on then it will
automatically expire after an upgrade to a BladeVPS X4.
::: warning
**Warning**: This API call will create an
invoice for the upgrade.
operationId: Upgrade a VPS
requestBody:
content:
application/json:
schema:
example:
productName: vps-bladevps-pro-x16
properties:
productName:
type: string
type: object
summary: Upgrade a VPS
'/vps/{vpsIdentifier}/usage':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
usage:
cpu:
- date: 1574783109
percentage: 3.11
disk:
- date: 1574783109
iopsRead: 0.27
iopsWrite: 0.13
network:
- date: 1574783109
mbitIn: 249.93
mbitOut: 100.2
schema:
properties:
usage:
properties:
cpu:
items: {}
type: array
disk:
items: {}
type: array
network:
items: {}
type: array
required:
- cpu
- disk
- network
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: 'These are invalid usage types: invalid, type.'
schema:
example:
error: 'These are invalid usage types: invalid, type.'
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Use this API call to retrieve usage data for a specific VPS. Make sure
to specify the `dateTimeStart` and `dateTimeEnd` parameters in UNIX
timestamp format.
Please take the following into account:
* The `dateTimeStart` and `dateTimeEnd` parameters allow for gathering
information about a specific time period, when not specified the output
will contain data for the past 24 hours;
* The difference between `dateTimeStart` and `dateTimeEnd` parameters
may not exceed one month.
For traffic-related information and statistics, use the [Get traffic information for a VPS](#vps-traffic-get) API call.
operationId: Get usage data for a VPS
requestBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1500542619
dateTimeStart: 1500538995
types: 'cpu,disk,network'
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
types:
description: >-
The types of statistics that can be returned, `cpu`, `disk`
and `network` can be specified in a comma seperated way. If
not specified, all data will be returned.
type: string
type: object
summary: Get usage data for a VPS
'/vps/{vpsIdentifier}/vnc-data':
get:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
response:
value:
vncData:
host: vncproxy.transip.nl
password: fVpTyDrhMiuYBXxn
path: >-
websockify?token=esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch
token: >-
esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch
url: >-
https://vncproxy.transip.nl/websockify?token=esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch
schema:
properties:
vncData:
properties:
host:
description: Location of the VNC Proxy
type: string
password:
description: >-
Password to setup up the VNC connection (changes
dynamically)
type: string
path:
description: Websocket path including the token
type: string
token:
description: >-
Token to identify the VPS to connect to (changes
dynamically)
type: string
url:
description: Complete websocket URL
type: string
type: object
type: object
description: OK
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: VPS console for 'example-vps' is currently unavailable
schema:
example:
error: VPS console for 'example-vps' is currently unavailable
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: >-
Get the location, token and password in order to connect directly to the
VNC console of your VPS.
Please note, you cannot directly connect to the proxy using a VNC
client, use a client that supports websockets like
https://github.com/novnc/noVNC
Use the information as URL query parameters, or use the URL in the url
parameter directly. Then enter the password. See the link below for an
example of how to provide URL query parameters to a hosted novnc
instance.
By default novnc understands the following url parameters:
- **host** the host hosting the vnc proxy, this should be
`vncproxy.transip.nl`
- **path** the path to request on the host, `websockify?token=YOURTOKEN`
- **password** the vnc password
- **autoconnect** whether or not to start connecting once you loaded the
page
An example of all parameters together in one url would be https://novnc.com/noVNC/vnc.html?host=vncproxy.transip.nl&path=websockify?token=esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch&password=fVpTyDrhMiuYBXxn&autoconnect=true
::: warning
**Warning**: We do recommend running novnc locally or hosting your own novnc page, this way you can make sure your token and password remain private.
operationId: Get VNC data for a VPS
summary: Get VNC data for a VPS
patch:
parameters:
- description: VPS identifier (name or uuid)
example: example-vps
in: path
name: vpsIdentifier
required: true
schema:
type: string
responses:
'204':
description: No Content
headers: {}
'403':
content:
application/json:
examples:
response:
value:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
schema:
example:
error: 'VPS ''example-vps'' is blocked, no modification is allowed'
properties:
error:
type: string
type: object
description: Forbidden
headers: {}
'404':
content:
application/json:
examples:
response:
value:
error: VPS with name 'example-vps' not found
schema:
example:
error: VPS with name 'example-vps' not found
properties:
error:
type: string
type: object
description: Not Found
headers: {}
'409':
content:
application/json:
examples:
response:
value:
error: VPS console for 'example-vps' is currently unavailable
schema:
example:
error: VPS console for 'example-vps' is currently unavailable
properties:
error:
type: string
type: object
description: Conflict
headers: {}
security:
- oauth2: []
tags:
- VPS
description: Call this method to regenerate the VNC credentials for a VPS.
operationId: Regenerate VNC token for a vps
summary: Regenerate VNC token for a vps
/whitelabel:
post:
responses:
'201':
description: Created
headers: {}
'406':
content:
application/json:
examples:
response:
value:
error: You already have a whitelabel account.
schema:
example:
error: You already have a whitelabel account.
properties:
error:
type: string
type: object
description: Not Acceptable
headers: {}
security:
- oauth2: []
tags:
- Domains
description: >-
Order a whitelabel account from the API. Note that you do not need to
order a whitelabel account for every registered domain name.
Please check the TransIP control panel to view the cost for a whitelabel
account.
::: warning
**Warning**: This API call will create an
invoice!
operationId: Order a whitelabel account
summary: Order a whitelabel account
components:
requestBodies:
Add_a_new_single_DNS_entry_to_a_domainBody:
content:
application/json:
schema:
example:
dnsEntry:
content: 127.0.0.1
expire: 86400
name: www
type: A
properties:
dnsEntry:
properties:
content:
description: >-
The content of of the dns entry, for example '10 mail',
'127.0.0.1' or 'www'
type: string
expire:
description: >-
The expiration period of the dns entry, in seconds. For
example 86400 for a day of expiration
type: number
name:
description: 'The name of the dns entry, for example ''@'' or ''www'''
type: string
type:
description: >-
The type of dns entry. Possbible types are 'A', 'AAAA',
'CNAME', 'MX', 'NS', 'TXT', 'SRV', 'SSHFP', 'TLSA', 'CAA'
and 'NAPTR'
type: string
required:
- name
- expire
- type
- content
type: object
type: object
Cancel_a_VPSBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' (default) or ''immediately'''
type: string
type: object
Cancel_a_domainBody:
content:
application/json:
schema:
example:
endTime: end
properties:
endTime:
description: 'Cancellation time, either ''end'' or ''immediately'''
type: string
type: object
Create_a_TCP_monitor_for_a_VPSBody:
content:
application/json:
schema:
example:
tcpMonitor:
allowedTimeouts: 1
contacts:
- enableEmail: true
enableSMS: false
id: 1
ignoreTimes:
- timeFrom: '18:00'
timeTo: '08:30'
interval: 6
ipAddress: 10.3.37.1
label: HTTP
ports:
- 80
- 443
properties:
tcpMonitor:
properties:
allowedTimeouts:
description: Allowed time outs (numbers 1-5)
type: number
contacts:
description: Contact that will be notified for this monitor
type: array
ignoreTimes:
description: >-
The hours when the TCP monitoring is ignored (no
notifications are sent out)
type: array
interval:
description: Checking interval in minutes (numbers 1-6)
type: number
ipAddress:
description: IP Address that is monitored
type: string
label:
description: Title of the monitor
type: string
ports:
description: Ports that are monitored
type: array
required:
- ipAddress
- label
- ports
- interval
- allowedTimeouts
- contacts
- ignoreTimes
type: object
type: object
Get_big_storage_usage_statisticsBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1490064468
dateTimeStart: 1490023668
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
type: object
Get_usage_data_for_a_VPSBody:
content:
application/json:
schema:
example:
dateTimeEnd: 1500542619
dateTimeStart: 1500538995
types: 'cpu,disk,network'
properties:
dateTimeEnd:
description: The end date of the usage statistics
type: number
dateTimeStart:
description: The start date of the usage statistics
type: number
types:
description: >-
The types of statistics that can be returned, `cpu`, `disk`
and `network` can be specified in a comma seperated way. If
not specified, all data will be returned.
type: string
type: object
Handover_a_domainBody:
content:
application/json:
schema:
example:
action: handover
targetCustomerName: example2
properties:
action:
type: string
targetCustomerName:
type: string
type: object
Update_contacts_for_a_domainBody:
content:
application/json:
schema:
example:
contacts:
- city: Leiden
companyKvk: '83057825'
companyName: Example B.V.
companyType: BV
country: nl
email: example@example.com
faxNumber: +31 715241919
firstName: John
lastName: Doe
number: '12'
phoneNumber: +31 715241919
postalCode: 1337 XD
street: Easy street
type: registrant
properties:
contacts:
type: array
type: object
Update_reverse_DNS_for_a_VPSBody:
content:
application/json:
schema:
example:
ipAddress:
address: 37.97.254.6
dnsResolvers:
- 195.8.195.8
- 195.135.195.135
gateway: 37.97.254.1
reverseDns: example.com
subnetMask: 255.255.255.0
properties:
ipAddress:
properties:
address:
description: The IP address
type: string
dnsResolvers:
description: The DNS resolvers you can use
type: array
gateway:
description: Gateway
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
type: string
subnetMask:
description: Subnet mask
type: string
required:
- reverseDns
type: object
type: object
Upgrade_a_tenantBody:
content:
application/json:
schema:
example:
productName: acronis-250gb
properties:
productName:
type: string
type: object
schemas:
AccessRequest: {}
Action:
properties:
actionStartTime:
description: datetime for this action
example: '2022-08-31 07:58'
type: string
metadata:
description: metadata of this action
example: blob
type: string
name:
description: name of the action
example: Vps.restoreBackup
type: string
parentActionUuid:
description: holds uuid of parent when action is a child action.
example: afa08ad9-6c12-4e03-95dd-a888b97ffe22
type: string
resourceIdentifier:
description: Resource Identifier of the resource of this action
example: testuser-vps12
type: string
resourceType:
description: The externalType of the resource this action
example: vps
type: string
status:
description: status of this action
example: running
type: string
uuid:
description: uuid for this action
example: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
type: string
type: object
Actions: {}
Addons:
properties:
active:
description: A list of all active addons
items: {}
type: array
available:
description: A list of available addons that you can order
items: {}
type: array
cancellable:
description: A list of addons that you can cancel
items: {}
type: array
type: object
ApiTest: {}
AssignableUsers: {}
AuthCode: {}
Availability: {}
AvailabilityZone:
properties:
country:
description: The 2 letter code for the country the AvailabilityZone is in
example: nl
type: string
isDefault:
description: If true this is the default zone new VPSes and clones are created in
example: true
type: boolean
name:
description: Name of AvailabilityZone
example: ams0
type: string
type: object
Backups: {}
BigStorage:
properties:
availabilityZone:
description: The availability zone the bigstorage is located in
example: ams0
type: string
description:
description: Name that can be set by customer
example: Big storage description
type: string
diskSize:
description: Disk size of the big storage in kB
example: 2147483648
type: number
isLocked:
description: >-
Lock status of the big storage, when it is locked, it cannot be
attached or detached.
type: boolean
name:
description: Name of the big storage
example: example-bigstorage
type: string
offsiteBackups:
description: Whether a bigstorage has backups
example: true
type: boolean
serial:
description: >-
The serial of the big storage. This is a unique identifier that is
visible by the vps it has been attached to. On linux servers it is
visible using `udevadm info /dev/vdb` where it will be the value of
ID_SERIAL. A symlink will also be created in `/dev/disk-by-id/`
containing the serial. This is useful if you want to map a disk
inside a VPS to a big storage.
example: a4d857d3fe5e814f34bb
type: string
status:
description: >-
Status of the big storage can be 'active', 'attaching' or
'detaching'
example: active
type: string
vpsName:
description: The VPS that the big storage is attached to
example: example-vps
type: string
required:
- description
- vpsName
type: object
BigStorageBackup:
properties:
availabilityZone:
description: The name of the availability zone the backup is in
example: ams0
type: string
dateTimeCreate:
description: Date of the big storage backup
example: '2019-12-31 09:13:55'
type: string
diskSize:
description: The backup disk size in kB
example: 4294967296
type: number
id:
description: Id of the big storage
example: 1583
type: number
status:
description: >-
Status of the big storage backup ('active', 'creating', 'reverting',
'deleting', 'pendingDeletion', 'syncing', 'moving')
example: active
type: string
required:
- diskSize
type: object
Big_Storage_Backups: {}
Big_Storages: {}
BlockStorage:
properties:
availabilityZone:
description: The availability zone the block storage is located in
example: ams0
type: string
description:
description: Name that can be set by customer
example: Block storage description
type: string
isLocked:
description: >-
Lock status of the block storage, when it is locked, it cannot be
attached or detached.
type: boolean
name:
description: Name of the block storage
example: example-faststorage
type: string
offsiteBackups:
description: Whether a block storage has backups
example: true
type: boolean
productType:
description: Block storage type
example: fast-storage
type: string
serial:
description: >-
The serial of the block storage. This is a unique identifier that is
visible by the vps it has been attached to. On linux servers it is
visible using `udevadm info /dev/vdb` where it will be the value of
ID_SERIAL. A symlink will also be created in `/dev/disk-by-id/`
containing the serial. This is useful if you want to map a disk
inside a VPS to a block storage.
example: a4d857d3fe5e814f34bb
type: string
size:
description: Size of the block storage in kB
example: 2147483648
type: number
status:
description: >-
Status of the block storage can be 'active', 'attaching' or
'detaching'
example: active
type: string
vpsName:
description: The VPS that the block storage is attached to
example: example-vps
type: string
required:
- description
- productType
- vpsName
type: object
BlockStorageBackup:
properties:
availabilityZone:
description: The name of the availability zone the backup is in
example: ams0
type: string
dateTimeCreate:
description: Date of the block storage backup
example: '2019-12-31 09:13:55'
type: string
id:
description: Id of the block storage
example: 1583
type: number
size:
description: The backup size in kB
example: 4294967296
type: number
status:
description: >-
Status of the block storage backup ('active', 'creating',
'reverting', 'deleting', 'pendingDeletion', 'syncing', 'moving')
example: active
type: string
required:
- size
type: object
Block_Storage_Backups: {}
Block_Storages: {}
Branding: {}
Child_Actions: {}
Clusters: {}
Colocation:
properties:
ipRanges:
description: List of IP ranges
items: {}
type: array
name:
description: Colocation name
example: example2
type: string
required:
- name
- ipRanges
type: object
ColocationAccessRequest:
properties:
dateTime:
description: >-
The datetime of the wanted datacenter access, in YYYY-MM-DD hh:mm:ss
format
example: '2022-04-10 08:30:00'
type: string
duration:
description: 'The expected duration of the visit, in minutes'
example: 30
type: number
phoneNumber:
description: >-
If an SMS with access codes needs to be sent, set the phone number
of the receiving phone here
example: '+31612345678'
type: string
visitorNames:
description: >-
list of visitor names for this datacenter visit, must be at least 1
and at most 20
items: {}
type: array
required:
- dateTime
- duration
- visitorNames
type: object
Colocations: {}
Contact:
properties:
email:
description: Email address of the contact
example: j.wick@example.com
type: string
id:
description: Id number of the contact
example: 1
type: number
name:
description: Name of the contact
example: John Wick
type: string
telephone:
description: Telephone number of the contact
example: '+31612345678'
type: string
required:
- id
- name
- telephone
- email
type: object
ContactKey: {}
Contacts: {}
CustomDomains: {}
DNS: {}
DNSSEC: {}
DataCenterVisitor:
properties:
accessCode:
description: The accesscode of the visitor
example: wskxqqez
type: string
hasBeenRegisteredBefore:
description: >-
True if this visitor been registered before at the datacenter. If
true, does not need the accesscode
type: boolean
name:
description: The name of the visitor
example: Charly
type: string
reservationNumber:
description: The reservation number of the visitor
example: 2000003003
type: number
required:
- name
- reservationNumber
- accessCode
- hasBeenRegisteredBefore
type: object
Default_Contacts: {}
Details: {}
Disks: {}
DnsEntry:
properties:
content:
description: >-
The content of of the dns entry, for example '10 mail', '127.0.0.1'
or 'www'
example: 127.0.0.1
type: string
expire:
description: >-
The expiration period of the dns entry, in seconds. For example
86400 for a day of expiration
example: 86400
type: number
name:
description: 'The name of the dns entry, for example ''@'' or ''www'''
example: www
type: string
type:
description: >-
The type of dns entry. Possbible types are 'A', 'AAAA', 'CNAME',
'MX', 'NS', 'TXT', 'SRV', 'SSHFP', 'TLSA', 'CAA' and 'NAPTR'
example: A
type: string
required:
- name
- expire
- type
- content
type: object
DnsSecEntry:
properties:
algorithm:
description: >-
The algorithm type that is used, click
[here](https://www.transip.nl/vragen/461-domeinnaam-nameservers-gebruikt-beveiligen-dnssec/)
to see the possible options.
example: 8
type: number
flags:
description: >-
The signing key number, either 256 (Zone Signing Key) or 257 (Key
Signing Key)
example: 1
type: number
keyTag:
description: A 5-digit key of the Zonesigner
example: 67239
type: number
publicKey:
description: The public key
example: >-
AwEAAc31XDE3QWphFz6CR77Hp3ZjDRx7zqe1AXx1QMvqFKzrEKrX4oj2nv8zDquCotbQ1ObHI4KGLRf3ycaq0fYslXFJ1JxLxJUl/lpGvE8OkqdhGW3vj3YS9Mlbf0yYC2bNUY875UgDNRLqWtVSEXO/PCcqr3RIzpngu+6JF/1bfQB7ituFHxoanhAiWOpc24ZAnrhmyIsDwyy1k0iyvVTSyPugnYD/bF7CR7ObQCiuucjwCkSBHJ4gcihHvyPDU/DlsSJeEO/G31zFxzXwHjr3h3mdJE4mQuceS11e5/c9hht6rUL0PEGve1Ygknz+0ruAinlhFYnny2uxES5M9r0FIM=
type: string
required:
- keyTag
- flags
- algorithm
- publicKey
type: object
Domain:
properties:
tags:
description: The custom tags added to this domain.
items: {}
type: array
authCode:
description: The authcode for this domain as generated by the registry.
example: >-
kJqfuOXNOYQKqh/jO4bYSn54YDqgAt1ksCe+ZG4Ud4nfpzw8qBsfR2JqAj7Ce12SxKcGD09v+yXd6lrm
nullable: true
type: string
canEditDns:
description: Whether dns changes propagate to the nameservers.
type: boolean
cancellationDate:
description: >-
Cancellation data, in YYYY-mm-dd h:i:s format, null if the domain is
active.
example: '2020-01-01 12:00:00'
nullable: true
type: string
cancellationStatus:
description: >-
Cancellation status, null if the domain is active, 'cancelled' when
the domain is cancelled.
example: signed
nullable: true
type: string
contacts:
description: >-
The list of WhoisContacts for this domain (Only included if asked
for via the relevant call)
items: {}
type: array
hasAutoDns:
description: >-
Whether autoDNS is enabled for this domain. Dns entries will be
automatically updated when for example a webhosting packages is
ordered.
type: boolean
hasDnsSec:
description: Whether DNSSEC is active for this domain.
type: boolean
isDnsOnly:
description: Whether this domain is DNS only
type: boolean
isTransferLocked:
description: >-
If this domain supports transfer locking, this flag is true when the
domains ability to transfer is locked at the registry.
type: boolean
isWhitelabel:
description: If this domain is added to your whitelabel.
type: boolean
name:
description: 'The name, including the tld of this domain'
example: example.com
type: string
nameservers:
description: >-
The list of nameservers (with optional gluerecords) for this domain
(Only included if asked for via the relevant call)
items: {}
type: array
registrationDate:
description: 'Registration date of the domain, in YYYY-mm-dd format.'
example: '2016-01-01'
type: string
renewalDate:
description: 'Next renewal date of the domain, in YYYY-mm-dd format.'
example: '2020-01-01'
type: string
status:
description: >-
The status of a domain (Can be one of: `registered`, `gone`,
`dnsonly`, `inprogress`, `dropinprogress`)
example: registered
type: string
required:
- name
- nameservers
- contacts
- isTransferLocked
- isWhitelabel
- tags
type: object
DomainAction:
properties:
hasFailed:
description: 'If this action has failed, this field will be true.'
type: boolean
message:
description: >-
If this action has failed, this field will contain an descriptive
message.
example: success
type: string
name:
description: The name of this DomainAction.
example: changeNameservers
type: string
required:
- name
type: object
DomainBranding:
properties:
bannerLine1:
description: >-
The first generic bannerLine displayed in whois-branded whois
output.
example: Example B.V.
type: string
bannerLine2:
description: >-
The second generic bannerLine displayed in whois-branded whois
output.
example: Example
type: string
bannerLine3:
description: >-
The third generic bannerLine displayed in whois-branded whois
output.
example: 'http://www.example.com/products'
type: string
companyName:
description: The company name displayed in transfer-branded e-mails
example: Example B.V.
type: string
companyUrl:
description: The company url displayed in transfer-branded e-mails
example: www.example.com
type: string
supportEmail:
description: The support email used for transfer-branded e-mails
example: admin@example.com
type: string
termsOfUsageUrl:
description: The terms of usage url as displayed in transfer-branded e-mails
example: www.example.com/tou
nullable: true
type: string
required:
- companyName
- supportEmail
- companyUrl
- termsOfUsageUrl
- bannerLine1
- bannerLine2
- bannerLine3
type: object
DomainCheckResult:
properties:
actions:
description: >-
List of available actions to perform on this domain. Possible
actions are: 'register', 'transfer', 'internalpull' and
'internalpush'
items: {}
type: array
domainName:
description: The name of the domain
example: example.com
type: string
status:
description: >-
The status for this domain. Possible statuses are: 'inyouraccount',
'unavailable', 'notfree', 'free', 'internalpull' and 'internalpush'
example: free
type: string
required:
- domainName
- status
- actions
type: object
Domains: {}
Downgrades: {}
Download: {}
Elements: {}
Email: {}
Events: {}
FilehostingBackup:
properties:
backupSizeBytes:
description: Size of this disk backup in bytes
example: 29869959168
type: number
createdAt:
description: 'The creation date & time of the backup, in YYYY-mm-dd format'
example: '2024-10-03 12:00:00'
type: string
diskId:
description: Disk id of the disk
example: 32451
type: number
diskSizeBytes:
description: Size of the disk in bytes
example: 29869959168
type: number
id:
description: Id of the disk backup
example: 160277323
type: number
name:
description: Name of this disk backup
example: 32451@160277323
type: string
status:
description: Status of this disk backup
example: active
type: string
validUntil:
description: >-
The valid date & time before which the backup is valid, in
YYYY-mm-dd format
example: '2024-10-08 12:00:00'
type: string
type: object
FilehostingCustomDomainName:
properties:
createdAt:
description: Creation time of the custom domain name
example: '2024-10-03 12:00:00'
type: string
diskId:
description: Id of the filehosting disk that owns the custom domain name
example: 32451
type: number
domainName:
description: Domain name
example: studio-of-john.com
type: string
expiresAt:
description: Expiration time of the custom domain name certificate
example: '2025-01-25 12:08:40'
type: string
fqdn:
description: Fully qualified domain name
type: string
hostname:
description: Hostname
example: office
type: string
id:
description: Id of the custom domain name
example: 160277323
type: number
status:
description: Status of the custom domain name
example: active
type: string
type: object
FilehostingDisk:
properties:
createdAt:
description: The creation date time for the disk
example: '2024-10-08 12:00:00'
type: string
description:
description: Description of the disk
example: Johnwick's personal disk
type: string
diskSizeBytes:
description: Total capacity of the disk size in bytes
example: 5242880
type: number
freeBytes:
description: Current free space of the disk in bytes
example: 3145728
type: number
id:
description: Id of the disk
example: 4134
type: number
inUseBytes:
description: Current usage of the disk in bytes
example: 2097152
type: number
name:
description: Name of the disk
example: Johnwick
type: string
status:
description: Status of the disk
example: active
type: string
required:
- description
type: object
FilehostingUser:
properties:
createdAt:
description: The creation date & time of the user
example: '2024-08-03 12:00:00'
type: string
displayName:
description: Customized user display name
example: JohnIsMyRealName
type: string
freeBytes:
description: Free size of the user in bytes
example: 1097152
type: number
id:
description: Id of the disk user
example: 1
type: number
inUseBytes:
description: Current usage of the user in bytes
example: 1097152
type: number
quotaBytes:
description: Total assigned capacity for the user in bytes
example: 2097152
type: number
sizeBytes:
description: Total size of the user in bytes
example: 2343241341
type: number
username:
description: Username of the disk user
example: Johnwick the main user
type: string
type: object
HA-IP: {}
HA-IP_IP_Addresses: {}
HA-IP_StatusReports: {}
HA-IP_certificates: {}
HA-IP_port_configurations: {}
Haip:
properties:
description:
description: The description that can be set by the customer
example: frontend cluster
type: string
healthCheckInterval:
description: >-
The interval in milliseconds at which health checks are performed.
The interval may not be smaller than 2000ms.
example: 3000
type: number
httpHealthCheckPath:
description: The path (URI) of the page to check HTTP status code on
example: /status.php
type: string
httpHealthCheckPort:
description: >-
The port to perform the HTTP check on, this should be the port your
services are listening on
example: 443
type: number
httpHealthCheckSsl:
description: Whether to use SSL when performing the HTTP check
example: true
type: boolean
ipAddresses:
description: The IPs attached to this HA-IP
items: {}
type: array
ipSetup:
description: 'HA-IP IP setup: ''both'', ''noipv6'', ''ipv6to4'', ''ipv4to6'''
example: ipv6to4
type: string
ipv4Address:
description: HA-IP IPv4 address
example: 37.97.254.7
type: string
ipv6Address:
description: HA-IP IPv6 address
example: '2a01:7c8:3:1337::1'
type: string
isLoadBalancingEnabled:
description: Whether load balancing is enabled for this HA-IP
example: true
type: boolean
isLocked:
description: >-
Whether or not another process is already doing stuff with this
HA-IP
type: boolean
loadBalancingMode:
description: 'HA-IP load balancing mode: ''roundrobin'', ''cookie'', ''source'''
example: cookie
type: string
name:
description: HA-IP name
example: example-haip
type: string
ptrRecord:
description: The PTR record for the HA-IP
example: frontend.example.com
type: string
status:
description: 'HA-IP status, either ''active'', ''inactive'', ''creating'''
example: active
type: string
stickyCookieName:
description: Cookie name to pin sessions on when using cookie balancing mode
example: PHPSESSID
type: string
tlsMode:
description: 'HA-IP TLS Mode: ''tls12'''
example: tls12
type: string
required:
- tlsMode
type: object
HaipCertificate:
properties:
commonName:
description: 'The common name of the certificate, usually a domain name'
example: example.com
type: string
expirationDate:
description: The expiration date of the certificate in 'Y-m-d' format
example: '2019-11-23'
type: string
id:
description: The domain ssl certificate id
example: 25478
type: number
issuerType:
description: The type of issuer of this certificate. `non-free` or `letsencrypt`
example: letsencrypt
type: string
type: object
HaipPortConfiguration:
properties:
endpointSslMode:
description: >-
The mode determining how traffic between our load balancers and your
attached IP address(es) is encrypted: 'off', 'on', 'strict'
example: 'off'
type: string
id:
description: The port configuration Id
example: 9865
type: number
mode:
description: >-
The mode determining how traffic is processed and forwarded: 'tcp',
'http', 'https', 'http2_https', 'proxy'
example: http
type: string
name:
description: A name describing the port
example: Website Traffic
type: string
sourcePort:
description: The port at which traffic arrives on your HA-IP
example: 80
type: number
targetPort:
description: The port at which traffic arrives on your attached IP address(es)
example: 80
type: number
required:
- name
- sourcePort
- targetPort
- mode
- endpointSslMode
type: object
HaipStatusReport:
properties:
ipAddress:
description: Attached IP address this status report is for
example: 136.10.14.1
type: string
ipVersion:
description: 'IP Version 4,6'
example: 4
type: number
lastChange:
description: Last change in the state in Europe/Amsterdam timezone
example: '2019-09-29 16:51:18'
type: string
loadBalancerIp:
description: The IP address of the HA-IP load balancer
example: 136.144.151.255
type: string
loadBalancerName:
description: The name of the load balancer
example: lb0
type: string
port:
description: HA-IP PortConfiguration port
example: 80
type: number
state:
description: 'The state of the load balancer, either ''up'' or ''down'''
example: up
type: string
type: object
IP_Addresses: {}
IP_addresses: {}
Install: {}
InstallationTemplate:
properties:
name:
description: name of the template
example: cloud-init-sshkeys
type: string
template:
description: base64 encoded installer template
type: string
required:
- template
type: object
Installation_templates: {}
Invoice:
properties:
creationDate:
description: Invoice creation date
example: '2020-01-01'
type: string
currency:
description: Currency used for this invoice
example: EUR
type: string
dueDate:
description: Invoice deadline
example: '2020-02-01'
type: string
invoiceNumber:
description: Invoice number
example: F0000.1911.0000.0004
type: string
invoiceStatus:
description: Invoice status
example: waitsforpayment
type: string
payDate:
description: Invoice paid date
example: '2020-01-01'
type: string
totalAmount:
description: Invoice total (displayed in cents)
example: 1000
type: number
totalAmountInclVat:
description: Invoice total including VAT (displayed in cents)
example: 1240
type: number
required:
- invoiceNumber
- creationDate
- payDate
- dueDate
- invoiceStatus
- currency
- totalAmount
- totalAmountInclVat
type: object
InvoiceItem:
properties:
date:
description: Date when the order line item was up for invoicing
example: '2020-01-01'
type: string
description:
description: Product description
example: Big Storage Disk 2000 GB (example-bigstorage)
type: string
discounts:
description: Applied discounts
items: {}
type: array
isRecurring:
description: Payment is recurring
type: boolean
price:
description: Price excluding VAT (displayed in cents)
example: 1000
type: number
priceInclVat:
description: Price including VAT (displayed in cents)
example: 1210
type: number
product:
description: Product name
example: Big Storage Disk 2000 GB
type: string
quantity:
description: Quantity
example: 1
type: number
vat:
description: Amount of VAT charged
example: 210
type: number
vatPercentage:
description: Percentage used to calculate the VAT
example: 21
type: number
required:
- product
- description
- isRecurring
- date
- quantity
- price
- priceInclVat
- vat
- vatPercentage
- discounts
type: object
InvoiceItemDiscount:
properties:
amount:
description: Discounted amount (in cents)
example: -500
type: number
description:
description: Applied discount description
example: Korting (20% Black Friday)
type: string
discountedPrice:
description: Discount amount excluding VAT (in cents)
example: -500
type: number
discountedPriceInclVat:
description: Discount amount including VAT (in cents)
example: -605
type: number
discountedVat:
description: Vat amount (in cents)
example: 105
type: number
required:
- description
- amount
- discountedPrice
- discountedPriceInclVat
- discountedVat
type: object
InvoiceItems: {}
Invoices: {}
IpAddress:
properties:
address:
description: The IP address
example: 37.97.254.6
type: string
dnsResolvers:
description: The DNS resolvers you can use
items: {}
type: array
gateway:
description: Gateway
example: 37.97.254.1
type: string
reverseDns:
description: 'Reverse DNS, also known as the PTR record'
example: example.com
type: string
subnetMask:
description: Subnet mask
example: 255.255.255.0
type: string
required:
- reverseDns
type: object
KubeConfig:
properties:
encodedYaml:
description: KubeConfig base64 encoded YAML
example: >-
`WW91IHNwaW4gbWUgcmlnaHQgJ3JvdW5kLCBiYWJ5LCByaWdodCAncm91bmQKTGlrZSBhIHJlY29yZCwgYmFieSwgcmlnaHQgJ3JvdW5kLCAncm91bmQsICdyb3VuZApZb3Ugc3BpbiBtZSByaWdodCAncm91bmQsIGJhYnksIHJpZ2h0ICdyb3VuZApMaWtlIGEgcmVjb3JkLCBiYWJ5LCByaWdodCAncm91bmQsICdyb3VuZCwgJ3JvdW5k`\n
type: string
type: object
KubernetesBlockStorage:
properties:
availabilityZone:
description: AvailabilityZone where this volume is located
example: ams0
type: string
clusterName:
description: Name of the cluster this block storage belongs to
example: k888k
type: string
name:
description: User configurable unique identifier (max 64 chars)
example: pvc-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
type: string
nodeUuid:
description: Node Uuid this volume is attached to
example: 76743b28-f779-3e68-6aa1-00007fbb911d
type: string
pvcName:
description: Name of the persistent volume claim that this BlockStorage backs
example: pvc-123
type: string
pvcNamespace:
description: Defines the namespace the PVC is residing in
example: default
type: string
serial:
description: >-
The serial of the disk. This is a unique identifier that is visible
by the node it has been attached to
example: a4d857d3fe5e814f34bb
type: string
sizeInGib:
description: Size of volume in gibibytes
example: 20
type: number
status:
description: >-
Status of the volume 'creating', 'available', 'attaching',
'attached', 'detaching', 'deleting'
example: attached
type: string
type:
description: Type of storage
example: hdd
type: string
uuid:
description: Uuid of the Volume
example: 220887f0-db1a-76a9-2332-00004f589b19
type: string
required:
- clusterName
- nodeUuid
type: object
KubernetesCluster:
properties:
description:
description: 'cluster (string, optional) - Describes this cluster'
example: frontend
type: string
endpoint:
description: URL to connect to with kubectl
example: 'https://k888k.ooquu8ro.k8s.transip.dev:30298'
type: string
isBlocked:
description: Set to `true` when a project has been administratively blocked
type: boolean
isLocked:
description: >-
When an ongoing process blocks the project from being modified, this
is set to `true`
type: boolean
name:
description: Name of the cluster
example: k888k
type: string
version:
description: Version of kubernetes this cluster is running
example: 1.24.2
type: string
type: object
KubernetesClusterRelease:
properties:
endOfLifeDate:
description: The end of life date of the Kubernetes release
example: '2023-02-28'
type: string
isCompatibleUpgrade:
description: >-
Whether the Kubernetes release can be installed as an upgrade for
the selected cluster
type: boolean
maintenanceModeDate:
description: >-
The date that only security updates are issued for the Kubernetes
release
example: '2022-12-28'
type: string
releaseDate:
description: The release date of a Kubernetes release
example: '2022-03-11'
type: string
version:
description: Kubernetes release version
example: 1.23.5
type: string
required:
- releaseDate
- maintenanceModeDate
type: object
KubernetesEvent:
properties:
count:
description: The amount of times the event occured
example: 6
type: number
creationTimestamp:
description: Unix timestamp of when the event was created
example: 1683641890
type: number
firstTimestamp:
description: Unix timestamp of when the event was first see
example: 1683641890
type: number
involvedObjectKind:
description: The kind of object this event is about
example: Pod
type: string
involvedObjectName:
description: The name of the object this event is about
example: kube-proxy-g9ldg
type: string
lastTimestamp:
description: Unix timestamp of when the event was last seen
example: 1683641890
type: number
message:
description: A mesage about the event
example: Node is not ready
type: string
name:
description: The name of the event
example: kube-proxy-g9ldg.175d7f60d241f2c8
type: string
namespace:
description: The namespace of the event
example: default
type: string
reason:
description: The reason for the event
example: NodeNotReady
type: string
sourceComponent:
description: The emitter of this event
example: kubelet
type: string
type:
description: 'The type of event, e.g: `Warning` or `Normal`'
example: Warning
type: string
type: object
KubernetesIpAddress:
properties:
address:
description: The IP address
example: 37.97.254.6
type: string
subnetMask:
description: Subnet mask
example: 255.255.255.0
type: string
type:
description: external|internal|private
example: external
type: string
type: object
KubernetesLoadBalancer:
properties:
aggregatedStatus:
$ref: '#/components/schemas/KubernetesLoadBalancerAggregatedStatus'
description: LoadBalancer aggregated status
balancing:
$ref: '#/components/schemas/KubernetesLoadBalancerBalancing'
description: LoadBalancer load balancing mode
ipv4Address:
description: LoadBalancer IPv4 address
example: 37.97.254.7
type: string
ipv6Address:
description: LoadBalancer IPv6 address
example: '2a01:7c8:3:1337::1'
type: string
name:
description: User configurable unique identifier (max 64 chars)
example: lb-bbb0ddf8-8aeb-4f35-85ff-4e198a0faf80
type: string
nodes:
description: A mapping between IP addresses and UUIDs of attached nodes
example: '["76743b28-f779-3e68-6aa1-00007fbb911d"]'
type: string
ports:
description: LoadBalancer ports.
items: {}
type: array
serviceName:
description: The name of the service
example: nginx-5313
type: string
serviceNamespace:
description: Defines the namespace the service is residing in
example: default
type: string
status:
description: 'LoadBalancer status, either ''active'', ''creating'' or ''deleting'''
example: active
type: string
uuid:
description: LoadBalancer Uuid
example: 220887f0-db1a-76a9-2332-00004f589b19
type: string
type: object
KubernetesLoadBalancerAggregatedStatus:
properties:
total:
description: LoadBalancer's total amount of nodes
example: 3
type: number
up:
description: LoadBalancer's amount of healthy nodes
example: 2
type: number
type: object
KubernetesLoadBalancerBalancing:
properties:
cookieName:
description: LoadBalancer balancing cookie name
example: 220887f0-db1a-76a9-2332-00004f589b19
type: string
mode:
description: 'LoadBalancer balancing mode, either `roundrobin`, `cookie`, `source`'
example: roundrobin
type: string
type: object
KubernetesLoadBalancerConfig:
properties:
healthCheckInterval:
description: >-
The interval in milliseconds at which health checks are performed.
The interval may not be smaller than 2000ms.
example: 3000
type: number
httpHealthCheckPath:
description: The path (URI) of the page to check HTTP status code on
example: /status.php
type: string
httpHealthCheckPort:
description: >-
The port to perform the HTTP check on, this should be the port your
services are listening on
example: 443
type: number
httpHealthCheckSsl:
description: Whether to use SSL when performing the HTTP check
example: true
type: boolean
ipAddresses:
description: The IPs attached to this LoadBalancer
items: {}
type: array
ipSetup:
description: 'LoadBalancer IP setup: ''both'', ''noipv6'', ''ipv6to4'', ''ipv4to6'''
example: ipv6to4
type: string
loadBalancingMode:
description: 'LoadBalancer load balancing mode: ''roundrobin'', ''cookie'', ''source'''
example: cookie
type: string
portConfiguration:
description: Array with port configurations for this LoadBalancer
items: {}
type: array
ptrRecord:
description: The PTR record for the LoadBalancer
example: frontend.example.com
type: string
stickyCookieName:
description: Cookie name to pin sessions on when using cookie balancing mode
example: PHPSESSID
type: string
tlsMode:
description: 'LoadBalancer TLS Mode: ''tls10_11_12'', ''tls11_12'', ''tls12'''
example: tls12
type: string
required:
- tlsMode
- ipAddresses
- portConfiguration
type: object
KubernetesLoadBalancerPort:
properties:
mode:
description: >-
LoadBalancer port mode, either `tcp`, `http`, `https`, `http2_https`
or `proxy`
example: tcp
type: string
name:
description: LoadBalancer port name
example: http_kube_apiserver
type: string
port:
description: LoadBalancer port
example: 1337
type: number
type: object
KubernetesLoadBalancerStatusReport:
properties:
ipVersion:
description: IP version 4/6
example: 4
type: number
lastChange:
description: Last change in the state in Europe/Amsterdam timezone
example: '2019-09-29 16:51:18'
type: string
loadBalancerIp:
description: The IP address of the upstream load balancer
example: 136.144.151.255
type: string
loadBalancerName:
description: The name of the upstream load balancer
example: lb0
type: string
nodeIpAddress:
description: IP of the node that this report is for
example: 136.10.14.1
type: string
nodeUuid:
description: UUID of the node that this report is for
example: 76743b28-f779-3e68-6aa1-00007fbb911d
type: string
port:
description: Port
example: 80
type: number
state:
description: 'The state of this configuration, either ''up'' or ''down'''
example: up
type: string
type: object
KubernetesNode:
properties:
clusterName:
description: Name of the cluster the node is in
example: k888k
type: string
ipAddresses:
description: IP addresses assigned to this node
items: {}
type: array
nodePoolUuid:
description: Uuid of the nodePool the node is in
example: 402c2f84-c37d-9388-634d-00002b7c6a82
type: string
status:
description: Status of the Node
example: active
type: string
uuid:
description: Uuid of the Node
example: 76743b28-f779-3e68-6aa1-00007fbb911d
type: string
required:
- nodePoolUuid
- clusterName
type: object
KubernetesNodePool:
properties:
availabilityZone:
description: The availabilityZone the nodes of this nodePool are in
example: ams0
type: string
clusterName:
description: Name of the cluster the nodePool is in
example: k888k
type: string
description:
description: 'cluster (string, optional) - Describes this NodePool'
example: frontend
type: string
desiredNodeCount:
description: >-
The desired amount of nodes in this pool, might not always be the
actual count of nodes
example: 3
type: number
nodeSpec:
description: The specification of the Nodes in this NodePool
example: vps-bladevps-x4
type: string
nodes:
description: Nodes currently in NodePool
items: {}
type: array
status:
description: The NodePool status
example: creating
type: string
uuid:
description: Uuid of the NodePool
example: 402c2f84-c37d-9388-634d-00002b7c6a82
type: string
required:
- clusterName
- desiredNodeCount
type: object
KubernetesNodePoolLabel:
properties:
key:
description: Label key
example: key
type: string
modifiable:
description: wether this label can be modified through the API
example: true
type: boolean
value:
description: Label value
example: value
type: string
required:
- value
type: object
KubernetesNodePoolTaint:
properties:
effect:
description: 'Taint effect, either `NoSchedule`, `PreferNoSchedule` or `NoExecute`'
example: NoSchedule
type: string
key:
description: Taint key
example: key
type: string
modifiable:
description: wether this taint can be modified through the API
example: true
type: boolean
value:
description: Taint value
example: value
type: string
required:
- value
- effect
type: object
KubernetesPortConfiguration:
properties:
endpointSslMode:
description: >-
The mode determining how traffic between our load balancers and your
attached IP address(es) is encrypted: 'off', 'on', 'strict'
example: 'off'
type: string
mode:
description: >-
The mode determining how traffic is processed and forwarded: 'tcp',
'http', 'https', 'http2_https', 'proxy'
example: http
type: string
name:
description: A name describing the port
example: Website Traffic
type: string
sourcePort:
description: The port at which traffic arrives on your HA-IP
example: 80
type: number
targetPort:
description: The port at which traffic arrives on your attached IP address(es)
example: 80
type: number
required:
- name
- sourcePort
- targetPort
- mode
- endpointSslMode
type: object
KubernetesProduct:
properties:
description:
description: Description of product
example: Node K8 / 4 vCPUs / 8 GB RAM
type: string
name:
description: Product name
example: node-k8
type: string
periodPrices:
description: Product price information
items: {}
type: array
specs:
description: Specifications of the items
items: {}
type: array
type:
description: Kubernetes product type
example: workerNode
type: string
type: object
KubernetesProductPeriodPrice:
properties:
costCents:
description: The costs for the period described in this object
example: '0.0079'
type: string
currency:
description: The currency of the costs described in this object
example: EUR
type: string
isExact:
description: Whether the costs in this object is exact or an approximation
type: boolean
periodLength:
description: The amount of the period this object describes
example: 1
type: number
periodUnit:
description: The unit of the period this object describes
example: month
type: string
type: object
KubernetesProductSpec:
properties:
amount:
description: amount of the specification
example: 67108864
type: number
description:
description: Description of the specification
example: The amount of cores
type: string
name:
description: Name of the specification
example: memory
type: string
unit:
description: Specifies in what unit the amount is
example: KiB
type: string
type: object
KubernetesRelease:
properties:
endOfLifeDate:
description: The end of life date of the Kubernetes release
example: '2023-02-28'
type: string
maintenanceModeDate:
description: >-
The date that only security updates are issued for the Kubernetes
release
example: '2022-12-28'
type: string
releaseDate:
description: The release date of a Kubernetes release
example: '2022-03-11'
type: string
version:
description: Kubernetes release version
example: 1.23.5
type: string
required:
- releaseDate
- maintenanceModeDate
type: object
License:
properties:
id:
description: License Id
example: 42
type: number
keys:
description: License keys belonging to this specific License
items: {}
type: array
maxQuantity:
description: Maximum quantity you are allowed to purchase
example: 1
type: number
name:
description: License name
example: cpanel-admin
type: string
price:
description: Price in cents
example: 1050
type: number
quantity:
description: Quantity already purchased
example: 1
type: number
recurringPrice:
description: Recurring price in cents
example: 1050
type: number
type:
description: 'License type: ''operating-system'', ''addon'''
example: addon
type: string
required:
- id
- name
- price
- recurringPrice
- type
- quantity
- maxQuantity
- keys
type: object
LicenseKey:
properties:
key:
description: License key
example: XXXXXXXXXXX
type: string
name:
description: License key name
example: Cpanel license key
type: string
required:
- name
- key
type: object
LicenseProduct:
properties:
maxQuantity:
description: Maximum quantity you are allowed to purchase
example: 1
type: number
minQuantity:
description: Minimum quantity you have to purchase
example: 1
type: number
name:
description: License name
example: cpanel-pro
type: string
price:
description: Price in cents
example: 2750
type: number
recurringPrice:
description: Recurring price in cents
example: 2750
type: number
type:
description: 'License type: ''operating-system'', ''addon'''
example: operating-system
type: string
required:
- name
- price
- recurringPrice
- type
- minQuantity
- maxQuantity
type: object
Licenses:
properties:
active:
description: A list of licenses active on your VPS
items: {}
type: array
available:
description: >-
A list of available licenses that you can order or switch to for
your VPS
items: {}
type: array
cancellable:
description: A list of licenses active on your VPS that you can cancel
items: {}
type: array
type: object
LoadBalancers: {}
Login: {}
MailAddon:
properties:
canBeLinked:
description: >-
Indication of whether this addon can be linked, any addons that do
not add extra disk space cannot be linked.
type: boolean
diskSpace:
description: The amount of extra disk space this addon adds
example: 1024
type: number
id:
description: Identifier for the EmailAddon
example: 282154
type: number
linkedMailBox:
description: The mailbox that this addon is linked to
example: hello@example.com
type: string
mailboxes:
description: The amount of extra mailboxes this addon adds
example: 5
type: number
required:
- id
- diskSpace
- mailboxes
- canBeLinked
type: object
MailAddons: {}
MailForward:
properties:
domain:
description: >-
The domain to forward (will be combined with the alias to make the
full email address).
example: example.com
type: string
forwardTo:
description: The email address to forward to.
example: john.doe@example.com
type: string
id:
description: Unique identifier of the MailForward
example: '20143'
type: string
localPart:
description: local part of the mailbox for the forward
example: forwardme
type: string
status:
description: Status of the forward.
example: created
type: string
required:
- localPart
- domain
- forwardTo
type: object
MailList:
properties:
emailAddress:
description: The emailAddress of the list.
example: list@example.com
type: string
entries:
description: The Email Addresses in the list.
items: {}
type: array
id:
description: Unique identifier of the MailList
example: '20143'
type: string
name:
description: Name of the MailList
example: myname
type: string
required:
- name
- emailAddress
- entries
type: object
MailLists: {}
MailPackage:
properties:
domain:
description: Domain of the EmailPackage
example: example.com
type: string
status:
description: Current status of the EmailPackage
example: creating
type: string
required:
- domain
- status
type: object
MailServiceInformation:
properties:
dnsTxt:
description: x-transip-mail-auth DNS TXT record Value
example: 782d28c2fa0b0bdeadf979e7155a83a15632fcddb0149d510c09fb78a470f7d3
type: string
password:
description: The password of the mail service
example: KgDseBsmWJNTiGww
type: string
quota:
description: The quota of the mail service
example: 1000
type: number
usage:
description: The usage of the mail service
example: 54
type: number
username:
description: The username of the mail service
example: test@vps.transip.email
type: string
type: object
Mail_Forwards: {}
Mail_Service: {}
Mailbox:
properties:
availableDiskSpace:
description: Disk space that is available for the mailbox
example: '100.0'
type: string
domain:
description: Domain of the mailbox
example: example.com
type: string
forwardTo:
description: Email address to also forward the email to
example: test@example.com
type: string
identifier:
description: Identifier for the mailbox
example: test@example.com
type: string
imapPort:
description: IMAP port for IMAP server
example: '123'
type: string
imapServer:
description: IMAP server for mailbox
example: imap.example.com
type: string
isLocked:
description: Shows whether a mailbox is locked
example: 'true'
type: string
localPart:
description: Local part of the mailbox
example: test
type: string
pop3Port:
description: POP3 port for IMAP server
example: '123'
type: string
pop3Server:
description: POP3 server for mailbox
example: pop3.example.com
type: string
smtpPort:
description: SMTP port for SMTP server
example: '123'
type: string
smtpServer:
description: SMTP server for mailbox
example: smtp.example.com
type: string
status:
description: Current status of the mailbox
example: creating
type: string
usedDiskSpace:
description: Disk space that is used for the mailbox
example: '100.0'
type: string
webmailUrl:
description: Webmail url
example: 'https://transip.email/'
type: string
required:
- identifier
- localPart
- domain
- forwardTo
- availableDiskSpace
- usedDiskSpace
- status
- isLocked
- imapServer
- imapPort
- smtpServer
- smtpPort
- pop3Server
- pop3Port
- webmailUrl
type: object
Mailboxes: {}
Monitoring_Contacts: {}
Nameserver:
properties:
hostname:
description: The hostname of this nameserver
example: ns0.transip.nl
type: string
ipv4:
description: Optional ipv4 glue record for this nameserver
nullable: true
type: string
ipv6:
description: Optional ipv6 glue record for this nameserver
nullable: true
type: string
required:
- hostname
type: object
Nameservers: {}
NodePool_Labels: {}
NodePool_Taints: {}
NodePools: {}
Nodes: {}
ObjectStoreToken:
properties:
accessKey:
description: Object Store access key
example: humje06ga902xdl3kydifbhvfyr2
type: string
managementUrl:
description: Object Store management url
example: de976d041fa943babaa3af94f9ecbe2b.objectstore.eu
type: string
projectId:
description: Object Store project id
example: 139636c9a78c4c588285920f6cc4bb5a
type: string
secretKey:
description: Object Store secret key
example: 6d2ty55ec8bsq9cj6d3ll79a46omi
type: string
tokenId:
description: S3 token id
example: 883a4849fc7644dd749f7a300005d9757694382b27b185d5e1fbd54446fc3949
type: string
userId:
description: Token user id
example: 419636c9a72c4c588285920f6cc4bb2c
type: string
type: object
OpenStackProject:
properties:
description:
description: Describes this project
example: This is an example project
type: string
domain:
description: The domain in which a project is stored.
example: transip
type: string
id:
description: >-
The unique project id, this identifier can be used to modify a
project and modify access permissions for users
example: 7a7a3bcb46c6450f95c53edb8dcebc7b
type: string
isBlocked:
description: Set to `true` when a project has been administratively blocked
type: boolean
isLocked:
description: >-
When an ongoing process blocks the project from being modified, this
is set to `true`
type: boolean
name:
description: Name of the project
example: example-datacenter
type: string
region:
description: The region in which a project is stored.
example: AMS
type: string
type:
description: >-
Type of the project, either 'objectstore' or 'openstack' defaults to
'openstack' when not specified
example: objectstore
type: string
required:
- name
- type
type: object
OpenStackUser:
properties:
description:
description: Description
example: Supporter account
type: string
email:
description: Email address
example: support@example.com
type: string
id:
description: Identifier
example: 6322872d9c7e445dbbb49c1f9ca28adc
type: string
totpEnabled:
description: 'Whether TOTP (Time-based One-Time Password) is enabled, e.g., true'
example: true
type: boolean
username:
description: Login name
example: example-support
type: string
required:
- email
- totpEnabled
type: object
OperatingSystem:
properties:
baseName:
description: The baseName of the operating system
example: AlmaLinux
type: string
description:
description: Description
example: cPanel 90.0.5 + AlmaLinux 8
type: string
installFields:
description: required installation fields for this operating system
items: {}
type: array
installFlavours:
description: available flavours of installation for this operating system
items: {}
type: array
isDefault:
description: Specifies if Operating System is the default version in the list
type: boolean
isPreinstallableImage:
description: Specifies if Operating System is a preinstallable image
type: boolean
licenses:
description: available licenses for this operating system
items: {}
type: array
name:
description: The operating system name
example: CPanel-alma8-latest
type: string
price:
description: The monthly price of the operating system in cents
example: 2000
type: number
version:
description: The version of the operating system
example: '90.05'
type: string
required:
- name
type: object
OperatingSystems: {}
OperatingSystems_Filter: {}
Pdf: {}
PrivateNetwork:
properties:
connectedVpses:
description: The VPSes in this private network
items: {}
type: array
description:
description: The custom name that can be set by customer
example: FilesharingNetwork
type: string
isBlocked:
description: If the Private Network is administratively blocked
type: boolean
isLocked:
description: >-
When locked, another process is already working with this private
network
type: boolean
name:
description: The unique private network name
example: example-privatenetwork
type: string
vpsNames:
description: The names of VPSes in this private network
items: {}
type: array
required:
- description
- vpsNames
- connectedVpses
type: object
PrivateNetworkVps:
properties:
description:
description: The name that can be set by customer
example: example VPS
nullable: true
type: string
isBlocked:
description: If the VPS is administratively blocked
type: boolean
isCustomerLocked:
description: If this VPS is locked by the customer
type: boolean
isLocked:
description: Whether or not another process is already doing stuff with this VPS
type: boolean
macAddress:
description: The VPS macaddress
example: '52:54:00:3b:52:65'
type: string
name:
description: The unique VPS name
example: example-vps
type: string
uuid:
description: The unique identifier for the VPS
example: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
type: string
required:
- name
- uuid
type: object
Private_Networks: {}
Product:
properties:
description:
description: Describes this product
example: This is an example product
type: string
name:
description: Name of the product
example: example-product-name
type: string
price:
description: Price in cents
example: 499
type: number
recurringPrice:
description: The recurring price for the product in cents
example: 799
type: number
type: object
ProductElement:
properties:
amount:
description: Amount
example: 1
type: number
description:
description: Describes this product element
example: amount of ipv4Addresses for a vps
type: string
name:
description: Name of the product element
example: ipv4Addresses
type: string
type: object
Products:
properties:
bigStorage:
description: A list of big storage products
items: {}
type: array
haip:
description: A list of haip products
items: {}
type: array
privateNetworks:
description: A list of private network products
items: {}
type: array
vps:
description: A list of vps products
items: {}
type: array
vpsAddon:
description: A list of vps addons
items: {}
type: array
type: object
Projects: {}
Releases: {}
Releases_per_cluster: {}
RemoteHands:
properties:
coloName:
description: Name of the colocation contract
example: example2
type: string
contactName:
description: Name of the person that created the remote hands request
example: Herman Kaakdorst
type: string
expectedDuration:
description: Expected duration in minutes
example: 15
type: number
instructions:
description: The instructions for the datacenter engineer to perform
example: Reboot server with label Loadbalancer0
type: string
phoneNumber:
description: >-
Phonenumber to contact in case of questions regarding the
remotehands request
example: +31 612345678
type: string
type: object
Render_installation_template: {}
RescueImage:
properties:
name:
description: Name of Rescue Image
example: example
type: string
supportsSshKeys:
description: True if the rescue image supports ssh keys
example: true
type: boolean
type: object
Rescue_Images: {}
SSH_Keys: {}
SSL_Certificates: {}
Setting:
properties:
dataType:
description: Setting Datatype
example: boolean
type: string
name:
description: Setting Name
example: blockVpsMailPorts
type: string
readOnly:
description: Setting ReadOnly
type: boolean
value:
$ref: '#/components/schemas/SettingValue'
description: Setting Value
required:
- value
type: object
SettingValue:
properties:
valueBoolean:
description: Boolean Value
example: true
type: boolean
valueString:
description: String Value
example: allow
type: string
required:
- valueBoolean
- valueString
type: object
Snapshot:
properties:
dateTimeCreate:
description: The snapshot creation date
example: '2019-07-14 12:21:11'
type: string
description:
description: The snapshot description
example: before upgrade
type: string
diskSize:
description: The size of the snapshot in kB
example: 314572800
type: number
name:
description: The snapshot name
example: '1572607577'
type: string
operatingSystem:
description: The snapshot OperatingSystem
example: ubuntu-18.04
type: string
status:
description: >-
The snapshot status ('active', 'creating', 'reverting', 'deleting',
'pendingDeletion', 'syncing', 'moving')
example: creating
type: string
type: object
Snapshots: {}
SshKey:
properties:
creationDate:
description: 'Date when this SSH key was added (TimeZone: Europe/Amsterdam)'
example: '2020-12-01 15:25:01'
type: string
description:
description: SSH key description (max 255 chars)
example: Jim key
type: string
fingerprint:
description: MD5 fingerprint of SSH key
example: 'bb:22:43:69:2b:0d:3e:16:58:91:27:8a:62:29:97:d1'
type: string
id:
description: SSH key identifier
example: 123
type: number
isDefault:
description: Whether or not the key is flagged as default
example: true
type: boolean
key:
description: SSH key
example: >-
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDf2pxWX/yhUBDyk2LPhvRtI0LnVO8PyR5Zt6AHrnhtLGqK+8YG9EMlWbCCWrASR+Q1hFQG
example
type: string
required:
- id
- key
- isDefault
type: object
Ssl: {}
SslCertificate:
properties:
canReissue:
description: Whether the certificate can be reissued
example: 'true'
type: string
certificateId:
description: 'The id of the certificate, can be used to retrieve additional info'
example: 12358
type: number
commonName:
description: >-
The domain name that the SSL certificate is added to. Start with
'*.' when the certificate is a wildcard.
example: example.com
type: string
expirationDate:
description: Expiration date
example: '2019-10-24 12:59:59'
type: string
status:
description: >-
The current status, either 'active', 'inactive', 'busy' or 'expired'
Active: Certificate is not expired and can be
used
Inactive: Certificate is being processed
Busy: Order is in progress
Expired: Certificate
is malformed or gone.
example: active
type: string
required:
- certificateId
- commonName
- expirationDate
- status
- canReissue
type: object
SslCertificateData:
properties:
caBundleCrt:
description: The certificates ca bundle
type: string
certificateCrt:
description: The certificates crt
type: string
certificateKey:
description: The certificates private key
type: string
certificateP7b:
description: The certificates P7B
type: string
required:
- caBundleCrt
- certificateCrt
- certificateP7b
- certificateKey
type: object
SslCertificateDetails:
properties:
address:
description: Address for certificate holder
example: springfieldroad 123
type: string
authorityInformationAccess:
description: Authority information access of certificate extension
example: >-
OCSP - URI:http://r3.o.lencr.org CA Issuers -
URI:http://r3.i.lencr.org/
type: string
authorityKeyIdentifier:
description: Authority key identifier of certificate extension
example: 'keyid:A1:B2:C3:D4:E5:F6:G7:H8:I9:J1:K2:L3:M4:N5:O6:P7:Q8:R9:S0:T1'
type: string
basicConstraints:
description: Basic constraints of certificate extension
example: 'CA:FALSE'
type: string
certificatePolicies:
description: Certificate policies of certificate extension
example: >-
Policy: 1.23.456.7.8.9 Policy: 1.2.3.4.5.6.12345.3.2.1 CPS:
http://cps.letsencrypt.org
type: string
city:
description: City for certificate holder
example: The Hague
type: string
company:
description: Company affiliation of certificate holder
example: Company B.V.
type: string
countryCode:
description: Country code for certificate holder
example: NL
type: string
department:
description: Internal organization department/division name of certificate holder
example: IT
type: string
email:
description: Email for certificate holder
example: test@example.com
type: string
enhancedKeyUsage:
description: Enhanced key usage of certificate extension
example: 'TLS Web Server Authentication, TLS Web Client Authentication'
type: string
expirationDate:
description: Expiration date of certificate
example: '1970-01-01 00:00:00'
type: string
firstName:
description: First name for certificate holder
example: Johnny
type: string
hash:
description: Hash of certificate
example: 12abc4567
type: string
issuerCommonName:
description: Common name of issuer
example: R3
type: string
issuerCountry:
description: Country of issuer
example: US
type: string
issuerOrganization:
description: Organization of issuer
example: Let's Encrypt
type: string
keyUsage:
description: Key usage of certificate extension
example: 'Digital Signature, Key Encipherment'
type: string
lastName:
description: Last name for certificate holder
example: Sins
type: string
name:
description: Name of certificate
example: /CN=*.example.com
type: string
phoneNumber:
description: Phone number for certificate holder
example: +316 12345678
type: string
postbox:
description: Post office box address for certificate holder
example: springfieldroad 123
type: string
serialNumber:
description: Serial number of certificate
example: '0x03DEDF0EBA8C8BE53B082CB002579BCC134E'
type: string
serialNumberHex:
description: Serial hex number of certificate
example: 03DEDF0EBA8C8BE53B082CB002579BCC134E
type: string
signatureTypeLN:
description: Signature long name of certificate
example: sha256WithRSAEncryption
type: string
signatureTypeNID:
description: NID of certificate
example: '123'
type: string
signatureTypeSN:
description: Signature short name of certificate
example: RSA-SHA256
type: string
signedCertificateTimestamp:
description: Certificate timestamp of certificate extension
example: 'Signed Certificate Timestamp: Version : v1 (0x0) Log ID...'
type: string
state:
description: State for certificate holder
example: Noord-Holland
type: string
subjectAlternativeName:
description: Subject alternative name of certificate extension
example: 'DNS:*.example.com, DNS:example.com'
type: string
subjectCommonName:
description: Subject common name of certificate
example: '*.example.com'
type: string
subjectKeyIdentifier:
description: Subject key identifier of certificate extension
example: 'A1:B2:C3:D4:E5:F6:G7:H8:I9:J1:K2:L3:M4:N5:O6:P7:Q8:R9:S0:T1'
type: string
validFrom:
description: UTC timestamp start validity of certificate
example: 211012092403Z
type: string
validFromTimestamp:
description: unix timestamp start validity of certificate
example: '1647443313'
type: string
validTo:
description: UTC timestamp end validity of certificate
example: 220110092402Z
type: string
validToTimestamp:
description: unix timestamp end validity of certificate
example: '1647443313'
type: string
version:
description: Version of certificate
example: '2'
type: string
zipcode:
description: Zipcode for certificate holder
example: 2345 BB
type: string
required:
- company
- department
- postbox
- address
- zipcode
- city
- state
- countryCode
- firstName
- lastName
- email
- phoneNumber
- expirationDate
- name
- hash
- version
- serialNumber
- serialNumberHex
- validFrom
- validTo
- validFromTimestamp
- validToTimestamp
- signatureTypeSN
- signatureTypeLN
- signatureTypeNID
- subjectCommonName
- issuerCountry
- issuerOrganization
- issuerCommonName
- keyUsage
- basicConstraints
- enhancedKeyUsage
- subjectKeyIdentifier
- authorityKeyIdentifier
- authorityInformationAccess
- subjectAlternativeName
- certificatePolicies
- signedCertificateTimestamp
type: object
Stats: {}
StatusReports: {}
TCPMonitor:
properties:
allowedTimeouts:
description: Allowed time outs (numbers 1-5)
example: 1
type: number
contacts:
description: Contact that will be notified for this monitor
items: {}
type: array
ignoreTimes:
description: >-
The hours when the TCP monitoring is ignored (no notifications are
sent out)
items: {}
type: array
interval:
description: Checking interval in minutes (numbers 1-6)
example: 6
type: number
ipAddress:
description: IP Address that is monitored
example: 10.3.37.1
type: string
label:
description: Title of the monitor
example: HTTP
type: string
ports:
description: Ports that are monitored
items: {}
type: array
required:
- ipAddress
- label
- ports
- interval
- allowedTimeouts
- contacts
- ignoreTimes
type: object
TCPMonitorContact:
properties:
enableEmail:
description: Send emails to contact
example: true
type: boolean
enableSMS:
description: Send SMS text messages to contact
type: boolean
id:
description: Monitoring contact id
example: 1
type: number
required:
- id
- enableEmail
- enableSMS
type: object
TCPMonitorIgnoreTime:
properties:
timeFrom:
description: Start from (24 hour format)
example: '18:00'
type: string
timeTo:
description: End at (24 hour format)
example: '08:30'
type: string
required:
- timeFrom
- timeTo
type: object
TCP_Monitors: {}
Tenant:
properties:
description:
description: description of the tenant
example: My tenant description
type: string
isSelfManaged:
description: if this tenant is in self managed mode
type: boolean
name:
description: 'tenant (string, optional) - name of the tenant'
example: testuser
type: string
uuid:
description: uuid for this tenant
example: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
type: string
required:
- description
type: object
TenantUsage:
properties:
currentUsage:
description: The current usage of your acronis product
example: '200'
type: string
limit:
description: The usage limit of your acronis product
example: '500'
type: string
type: object
Tenants: {}
Tld:
properties:
cancelTimeFrame:
description: >-
Number of days a domain needs to be canceled before the renewal
date.
type: number
capabilities:
description: >-
A list of the capabilities that this Tld has (the things that can be
done with a domain under this tld). Possible capabilities are:
'requiresAuthCode', 'canRegister', 'canTransferWithOwnerChange',
'canTransferWithoutOwnerChange', 'canSetLock', 'canSetOwner',
'canSetContacts', 'canSetNameservers', 'supportsDnsSec'
items: {}
type: array
maxLength:
description: >-
The maximum amount of characters need for registering a domain under
this TLD.
example: 63
type: number
minLength:
description: >-
The minimum amount of characters need for registering a domain under
this TLD.
example: 2
type: number
name:
description: 'The name of this TLD, including the starting dot. E.g. .nl or .com.'
example: .nl
type: string
price:
description: Price of the TLD in cents
example: 399
type: number
recurringPrice:
description: Price for renewing the TLD in cents
example: 749
type: number
registrationPeriodLength:
description: Length in months of each registration or renewal period.
example: 12
type: number
required:
- name
type: object
Tlds: {}
Tokens: {}
Totp:
properties:
secretKey:
description: Secret key which can be used to create a QR code.
example: 883a4849fc7644dd749f7a300005d9757694382b27b185d5e1fbd54446fc3949
type: string
type: object
TrafficPool: {}
Uninstall: {}
Upgrades: {}
Usage:
properties:
cpu:
items: {}
type: array
disk:
items: {}
type: array
network:
items: {}
type: array
required:
- cpu
- disk
- network
type: object
User_assignments: {}
Users: {}
VPS: {}
VPS_Backups: {}
VPS_Firewall: {}
VPS_Licenses: {}
VPS_Settings: {}
VPS_VNC_Data: {}
Vps:
properties:
tags:
description: The custom tags added to this VPS
items: {}
type: array
availabilityZone:
description: The name of the availability zone the VPS is in
example: ams0
type: string
cpus:
description: The VPS cpu count
example: 2
type: number
createdAt:
description: The VPS creation datetime (UTC)
example: '2024-01-01 23:59:59'
type: string
currentSnapshots:
description: The amount of snapshots that is used on this VPS
example: 1
type: number
description:
description: The name that can be set by customer
example: example VPS
nullable: true
type: string
diskSize:
description: The VPS disk size in kB
example: 157286400
type: number
flavor:
description: 'The VPS flavor, either ''dedicated'', ''shared'' or ''flexible'''
example: shared
type: string
ipAddress:
description: The VPS main ipAddress
example: 37.97.254.6
type: string
isBlocked:
description: If the VPS is administratively blocked
type: boolean
isCustomerLocked:
description: If this VPS is locked by the customer
type: boolean
isLocked:
description: Whether or not another process is already doing stuff with this VPS
type: boolean
macAddress:
description: The VPS macaddress
example: '52:54:00:3b:52:65'
type: string
maxSnapshots:
description: The maximum amount of snapshots for this VPS
example: 10
type: number
memorySize:
description: The VPS memory size in kB
example: 4194304
type: number
name:
description: The unique VPS name
example: example-vps
type: string
operatingSystem:
description: The VPS OperatingSystem
example: ubuntu-18.04
nullable: true
type: string
productName:
description: The product name
example: vps-bladevps-x1
type: string
status:
description: >-
The VPS status, either 'created', 'installing', 'running', 'stopped'
or 'paused'
example: running
type: string
uuid:
description: The unique identifier for the VPS
example: bfa08ad9-6c12-4e03-95dd-a888b97ffe49
type: string
required:
- name
- uuid
- tags
type: object
VpsBackup:
properties:
availabilityZone:
description: The name of the availability zone the backup is in
example: ams0
type: string
dateTimeCreate:
description: The backup creation date
example: '2019-11-29 22:11:20'
type: string
diskSize:
description: The backup disk size in kB
example: 157286400
type: number
id:
description: The backup id
example: 712332
type: number
operatingSystem:
description: The backup operatingSystem
example: Ubuntu 19.10
type: string
retentionType:
description: 'The backup retention type (daily, weekly)'
example: weeklyBackupRetention
type: string
status:
description: >-
Status of the backup ('active', 'creating', 'reverting', 'deleting',
'pendingDeletion', 'syncing', 'moving')
example: active
type: string
required:
- id
- dateTimeCreate
- diskSize
- operatingSystem
- retentionType
type: object
VpsFirewall:
properties:
isEnabled:
description: Whether the firewall is enabled for this VPS
example: true
type: boolean
ruleSet:
description: Ruleset of the VPS
items: {}
type: array
required:
- isEnabled
- ruleSet
type: object
VpsFirewallRule:
properties:
description:
description: The rule name
example: HTTP
type: string
endPort:
description: The end port of this firewall rule
example: 80
type: number
protocol:
description: 'The protocol `tcp` , `udp` or `tcp_udp`'
example: tcp
type: string
startPort:
description: The start port of this firewall rule
example: 80
type: number
whitelist:
description: >-
Whitelisted IP's or ranges that are allowed to connect, empty to
allow all
items: {}
type: array
required:
- startPort
- endPort
- protocol
- whitelist
type: object
VpsOrder:
properties:
addons:
description: Array with additional addons
items: {}
type: array
availabilityZone:
description: The name of the availability zone where the vps should be created
example: ams0
type: string
base64InstallText:
description: >-
Base64 encoded preseed / kickstart instructions, when installing
unattended. The decoded string may be up to 49152 bytes (48 KiB)
long.
type: string
description:
description: The description of the VPS
example: example vps description
type: string
hashedPassword:
description: The hashedPassword for the specified user
example: $2y$10$kDwnrkGedxn4HtdAPl86D..sdtnW5aLeHzPuJ8UbAWOOiSiBDXYkm
type: string
hostname:
description: >-
The name for the host, only needed for installing a preinstallable
control panel image
type: string
installFlavour:
description: >-
The flavour of OS installation `installer`, `preinstallable` or
`cloudinit` check GET OperatingSystem to see what flavours your OS
supports
example: installer
type: string
licenses:
description: >-
Licenses you want to add to your `preinstallable` installation
flavor
items: {}
type: array
operatingSystem:
description: The name of the operating system to install
example: ubuntu-18.04
type: string
productName:
description: Name of the product
example: vps-bladevps-x8
type: string
sshKeys:
description: >-
Array of public ssh key's to use for account creating during
installation
items: {}
type: array
username:
description: VPS User
example: ubuntu-user
type: string
required:
- productName
type: object
VpsTrafficInformation:
properties:
endDate:
description: The end date in 'Y-m-d' format
example: '2019-07-22'
type: string
maxInBytes:
description: The maximum amount of bytes that can be used in this period
example: 1073741824000
type: number
startDate:
description: The start date in 'Y-m-d' format
example: '2019-06-22'
type: string
usedInBytes:
description: The usage in bytes for this period
example: 7860253754
type: number
usedTotalBytes:
description: The usage in bytes
example: 11935325369
type: number
required:
- startDate
- endDate
- usedInBytes
- usedTotalBytes
- maxInBytes
type: object
VpsTrafficPoolInformation:
properties:
endDate:
description: The end date in 'Y-m-d' format
example: '2019-07-22'
type: string
expectedBytes:
description: The expected amount of bytes that will be used in this period
example: 1073741824000
type: number
maxInBytes:
description: The maximum amount of bytes that can be used in this period
example: 1073741824000
type: number
startDate:
description: The start date in 'Y-m-d' format
example: '2019-06-22'
type: string
usedInBytes:
description: The usage in bytes for this period
example: 7860253754
type: number
required:
- startDate
- endDate
- usedInBytes
- maxInBytes
- expectedBytes
type: object
VpsUsageDataCpu:
properties:
date:
description: 'Date of the entry, by default in UNIX timestamp format'
example: 1574783109
type: number
percentage:
description: The percentage of CPU usage for this entry
example: 3.11
type: number
required:
- percentage
- date
type: object
VpsUsageDataDisk:
properties:
date:
description: 'Date of the entry, by default in UNIX timestamp format'
example: 1574783109
type: number
iopsRead:
description: The read IOPS for this entry
example: 0.27
type: number
iopsWrite:
description: The write IOPS for this entry
example: 0.13
type: number
required:
- iopsRead
- iopsWrite
- date
type: object
VpsUsageDataNetwork:
properties:
date:
description: 'Date of the entry, by default in UNIX timestamp format'
example: 1574783109
type: number
mbitIn:
description: The amount of inbound traffic in Mbps for this usage entry
example: 249.93
type: number
mbitOut:
description: The amount of outbound traffic in Mbps for this usage entry
example: 100.2
type: number
required:
- mbitOut
- mbitIn
- date
type: object
VpsVncData:
properties:
host:
description: Location of the VNC Proxy
example: vncproxy.transip.nl
type: string
password:
description: Password to setup up the VNC connection (changes dynamically)
example: fVpTyDrhMiuYBXxn
type: string
path:
description: Websocket path including the token
example: >-
websockify?token=esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch
type: string
token:
description: Token to identify the VPS to connect to (changes dynamically)
example: esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch
type: string
url:
description: Complete websocket URL
example: >-
https://vncproxy.transip.nl/websockify?token=esco024gzqwyeeb5nexayi2gve09paw9dytumyxqzurxj5t642o5p6myzisn5gch
type: string
type: object
Whitelabel: {}
Whois: {}
WhoisContact:
properties:
city:
description: The city part of the address of this Contact
example: Leiden
type: string
companyKvk:
description: 'The kvk number of this Contact, in case of a company'
example: '83057825'
type: string
companyName:
description: 'The companyName of this Contact, in case of a company'
example: Example B.V.
type: string
companyType:
description: >-
The type number of this Contact, in case of a company. Possible
types are: 'BV', 'BVI/O', 'COOP', 'CV', 'EENMANSZAAK', 'KERK', 'NV',
'OWM', 'REDR', 'STICHTING', 'VERENIGING', 'VOF', 'BEG', 'BRO',
'EESV' and 'ANDERS'
example: BV
type: string
country:
description: >-
The country of this Contact, one of the ISO 3166-1 2 letter country
codes, must be lowercase.
example: nl
type: string
email:
description: The email address of this Contact
example: example@example.com
type: string
faxNumber:
description: The faxNumber of this Contact
example: +31 715241919
nullable: true
type: string
firstName:
description: The firstName of this Contact
example: John
type: string
lastName:
description: The lastName of this Contact
example: Doe
type: string
number:
description: The number part of the address of this Contact
example: '12'
type: string
phoneNumber:
description: The phoneNumber of this Contact
example: +31 715241919
type: string
postalCode:
description: The postalCode part of the address of this Contact
example: 1337 XD
type: string
street:
description: The street of the address of this Contact
example: Easy street
type: string
type:
description: >-
The type of this Contact, 'registrant', 'administrative' or
'technical'
example: registrant
type: string
required:
- type
- firstName
- lastName
- companyName
- companyKvk
- companyType
- street
- number
- postalCode
- city
- phoneNumber
- email
- country
type: object
securitySchemes:
oauth2:
flows:
authorizationCode:
authorizationUrl: /
scopes: {}
tokenUrl: /
type: oauth2
tags:
- description: >-
Welcome to the API documentation.
**REST API V6**
With the new REST API, you can manage all of your products in a RESTful
way, this means that for most products we allow simple create, update,
delete HTTP requests to manage this product collection.
This API provides a number of products or actions on sub-products, which
we will call resources, an example of such a resource could be the Vps
Backup resource, accessible at the following endpoint:
`/v6/vps/{vpsName}/backups`
Each resource can host a number of different actions which are accessible
by different [HTTP methods](#header-requests). Every resource action has
documentation in which you can find using the panel on the left.
All requests and responses use JSON objects and arrays as data format.
## Requests
Every API call can be made using HTTP request to the resource URL and the
desired HTTP method.
All requests should be made using the HTTPS protocol.
### Methods
Method | Description
---------: |
-----------------------------------------------------------------------------------------------------------
**GET** | Used for retrieving one or more resources, the response
attributes can be used to modify the resource.
**POST** | Used for creating new resources, see the documentation for
the required and optional attributes.
**PUT** | Used for updating a resource with new data, all existing data
will be removed.
**PATCH** | Used for partially updating a resource or calling a resource
action like reverting a backup.
**DELETE** | Used for deleting resources.
If a **GET** action specifies request attributes, these could be put
behind the URL using the http query syntax like:
`?tags=test`
## Responses
Every response uses an HTTP status code, indicating the success or failure
of your request.
### HTTP statuses
In general, when a request succeeds, a 2xx HTTP status code is returned.
Code | Reason | Description
--------- | ------------ |
---------------------------------------------------------------------------------------------
**200** | OK | GET request succeeded.
**201** | Created | Resource is created using a POST request. The
response contains an empty body.
**204** | No content | PUT, PATCH or DELETE request succeeded. The
response contains an empty body.
In case of an error, the following status codes could be returned.
Code | Reason | Description
--------- | --------------------- |
------------------------------------------------------------------------------------
**400** | Bad Request | The API version or URL is invalid.
**401** | Unauthorized | There is something wrong with your
authentication
**403** | Forbidden | You don't have the necessary
permissions to perform an operation.
**404** | Not Found | A resource was not found.
**405** | Method Not Allowed | You're using an HTTP method on a
resource which does not support it.
**406** | Not Acceptable | One or more required parameters are
missing in the request.
**408** | Request Timeout | The request gets a timeout.
**409** | Conflict | Modification is not permitted at the
moment. E.g. when a VPS is locked.
**422** | Unprocessable Entity | The input attributes are invalid, e.g.
malformed JSON.
**429** | Too Many Request | The rate limit is exceeded.
**500** | Internal Server Error | There is a server error.
**501** | Not Implemented | The endpoint is not implemented.
## Links
GET requests may include additional links that can be used to navigate to
related resources or pages.
### Pages
Some resources allow pagination on their list requests. These would be GET
request without a resource identifier, like `/vps` or `/domains`.
The default page size is unlimited. On the resources that support
pagination, you can override this by setting using the `pageSize`
parameter.
For example: `/vps?pageSize=100`
When pagination is used, the following links will be shown:
* **first**: The first page of the result set.
* **previous**: The previous page of the result set.
* **next**: The next page of the result set.
* **last**: The last page of the result set.
These links will only be set when applicable. E.g. when the current page
is the last, no 'next' and 'last' links will be present.
For example, the links section in a response for the first page could look
like this:
```json
{
"_links": {
"pages": [
{
"rel": "next",
"link": "https://api.transip.nl/v6/domains?pageSize=25&page=2"
},
{
"rel": "last",
"link": "https://api.transip.nl/v6/domains?pageSize=25&page=9"
}
]
}
}
```
### Related resources
Responses of GET requests with an identifier may return additional links
to related resources.
For example, when retrieving info about a domain, the following links will
be rendered:
```json
{
"_links": [
{
"rel": "self",
"link": "https://api.transip.nl/v6/domains/example.com"
},
{
"rel": "branding",
"link": "https://api.transip.nl/v6/domains/example.com/branding"
},
{
"rel": "contacts",
"link": "https://api.transip.nl/v6/domains/example.com/contacts"
},
{
"rel": "dns",
"link": "https://api.transip.nl/v6/domains/example.com/dns"
},
{
"rel": "nameservers",
"link": "https://api.transip.nl/v6/domains/example.com/nameservers"
},
{
"rel": "actions",
"link": "https://api.transip.nl/v6/domains/example.com/actions"
}
]
}
```
## Authentication
In order to authenticate a request we make use of access tokens.
These access tokens make use of the JSON Web Token standard.
To get an access token, you should first generate a key pair using the
control
panel.
Then download the [PHP authentication
class](https://api.transip.nl/downloads/TransIP_AccessToken.tar.gz), and
put in your login username and private key.
You can also do this process manually by sending an HTTP POST request to
'https://api.transip.nl/v6/auth' with a body containing your login and a
nonce (any random string), and a signature header.
The signature header should consist of a sha512 asn.1 hash of the full
request body, sign using a private key that was generated in the control
panel and base64 encode the generated signature.
**Steps to create a signature**
1. json encode the request body (example request body below)
2. sign the json encoded request body (openssl dgst -sha512 -sign)
3. base64 encode the signature that openssl generated
4. make a request to 'https://api.transip.nl/v6/auth' with the header and
body like the examples below
**Example signature header**
```http
Signature:
W+alqMNFaKxNjRpRzGcjrk5q1PXf50usve85PMHqXDPcDZTmZksVkqAFyR30XtJAXELbg2bukUrckPe7fBR10LvMY55cCHLfKf4sA6tpC8Ck5HcT7uLN27XGiJH3i2oDe/Kb93pU2q9kP+vDIQYJX28xFEHWOibXYgcMksHSH3YiyCWcBiQFS65Jsg5M/XhyU3qMISD7icHmk7/WPw1tSYGiMqJZVjaovIqzskXQcu5iC22wZA+5evj3rlSPj9UGZsDjg+TdP69gGJ2y4nrG3qbM2BhMpUs4E3FDHJW1ZZ3VUko0rwfBBoltAT94NQrA5LCP6pXLyA9eszyouBs8ywQ==
```
**Example request body**
```json
{
"login": "test-user",
"nonce": "98475920834",
"read_only": false,
"expiration_time": "30 minutes",
"label": "add description",
"global_key": true
}
```
Setting the property `global_key` to false will generate a token that can
only be used by whitelisted IP's
Access tokens have a default expiration time of 30 minutes.
You can override this by setting the `expiration_time` property.
This has a maximum of 1 month.
The following example values are valid for the `expiration_time` property:
* `3600 seconds`
* `120 minutes`
* `1 hour`
* `48 hours`
* `1 day`
* `15 days`
* `1 week`
* `4 weeks`
You can add a custom name to your access tokens by setting the `label`
property.
All your active access tokens can be managed in the control
panel.
You can revoke your tokens and generate new ones.
Use a header containing your access token in every request:
```http
Authorization: Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImN3MiFSbDU2eDNoUnkjelM4YmdOIn0.eyJpc3MiOiJhcGkudHJhbnNpcC5ubCIsImF1ZCI6ImFwaS50cmFuc2lwLm5sIiwianRpIjoiY3cyIVJsNTZ4M2hSeSN6UzhiZ04iLCJpYXQiOjE1ODIyMDE1NTAsIm5iZiI6MTU4MjIwMTU1MCwiZXhwIjoyMTE4NzQ1NTUwLCJjaWQiOiI2MDQ0OSIsInJvIjpmYWxzZSwiZ2siOmZhbHNlLCJrdiI6dHJ1ZX0.fYBWV4O5WPXxGuWG-vcrFWqmRHBm9yp0PHiYh_oAWxWxCaZX2Rf6WJfc13AxEeZ67-lY0TA2kSaOCp0PggBb_MGj73t4cH8gdwDJzANVxkiPL1Saqiw2NgZ3IHASJnisUWNnZp8HnrhLLe5ficvb1D9WOUOItmFC2ZgfGObNhlL2y-AMNLT4X7oNgrNTGm-mespo0jD_qH9dK5_evSzS3K8o03gu6p19jxfsnIh8TIVRvNdluYC2wo4qDl5EW5BEZ8OSuJ121ncOT1oRpzXB0cVZ9e5_UVAEr9X3f26_Eomg52-PjrgcRJ_jPIUYbrlo06KjjX2h0fzMr21ZE023Gw
```
## Rate limit
The rate limit for this API uses a sliding window of 15 minutes.
Within this window, a maximum of 1000 requests can be made per user.
Every request returns the following headers, indicating the number of
requests made within this window,
the amount of requests remaining and the reset timestamp.
```http
X-Rate-Limit-Limit: 1000
X-Rate-Limit-Remaining: 650
X-Rate-Limit-Reset: 1485875578
```
When this rate limit is exceeded, the response contains an error with HTTP
status code: `429: Too many requests`.
## Test mode
In test mode every `GET` request is allowed, but all modification requests
are fake, they are validated, but the actual modification is skipped.
This means that you are able to test your api calls without doing any
modification to your production environment.
There are two different ways to test the api, you could use our test mode
token or you could provide a test parameter using your own token (and thus
play with your own data).
### Demo token
If you use the following authorization header, you authenticate yourself
as the demo user in test mode.
```http
Authorization: Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImN3MiFSbDU2eDNoUnkjelM4YmdOIn0.eyJpc3MiOiJhcGkudHJhbnNpcC5ubCIsImF1ZCI6ImFwaS50cmFuc2lwLm5sIiwianRpIjoiY3cyIVJsNTZ4M2hSeSN6UzhiZ04iLCJpYXQiOjE1ODIyMDE1NTAsIm5iZiI6MTU4MjIwMTU1MCwiZXhwIjoyMTE4NzQ1NTUwLCJjaWQiOiI2MDQ0OSIsInJvIjpmYWxzZSwiZ2siOmZhbHNlLCJrdiI6dHJ1ZX0.fYBWV4O5WPXxGuWG-vcrFWqmRHBm9yp0PHiYh_oAWxWxCaZX2Rf6WJfc13AxEeZ67-lY0TA2kSaOCp0PggBb_MGj73t4cH8gdwDJzANVxkiPL1Saqiw2NgZ3IHASJnisUWNnZp8HnrhLLe5ficvb1D9WOUOItmFC2ZgfGObNhlL2y-AMNLT4X7oNgrNTGm-mespo0jD_qH9dK5_evSzS3K8o03gu6p19jxfsnIh8TIVRvNdluYC2wo4qDl5EW5BEZ8OSuJ121ncOT1oRpzXB0cVZ9e5_UVAEr9X3f26_Eomg52-PjrgcRJ_jPIUYbrlo06KjjX2h0fzMr21ZE023Gw
```
### Test parameter
By providing the test parameter on any of your requests you can use the
test mode while you are authenticated as your own user.
To give you an example, when you request a `DELETE` on a vps with the
following url /v6/vps/test-vps2?test=1 the actual delete is skipped. The
same goes for any other type of modification.
## Order requests
Some API calls, as the pre-generated would automatically be accepted, will
generate an invoice.
In case direct debit is activated on the customer account associated with
the API key, payment will occur at a later stage.
This is mostly the case with products and add-ons with automatic
provisioning.
In order to prevent accidental orders, each API call that generates an
invoice has a warning outlined below its description in this API
documentation.
## Api specification
This documentation was generated from a api blueprint file. Download the
raw [APIB](blueprint.apib) or [OpenAPI](openapi.yaml) specification
name: Introduction
- name: General
- name: Account
- name: Domains
- name: VPS
- name: HA-IP
- name: Kubernetes
- name: Acronis
- name: Filehosting
- name: OpenStack
- name: SSL Certificates
- name: Colocations
- name: Email
- name: Actions