openapi: 3.0.0 info: description: '' title: TransIP API version: '6.45' servers: - url: 'https://api.transip.nl/v6' paths: /acronis/tenants: get: responses: '200': content: application/json: examples: response: value: tenants: - 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 '/acronis/tenants/{tenantUuid}': 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: name: testuser uuid: bfa08ad9-6c12-4e03-95dd-a888b97ffe49 schema: properties: tenant: properties: name: description: name of the tenant type: string uuid: description: uuid for this tenant type: string 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 '/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}/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 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 ::: 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 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 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 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' 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) 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: Tld '.com' does not allow this action schema: example: error: Tld '.com' does not allow this action properties: error: type: string type: object description: Not Found headers: {} security: - oauth2: [] tags: - Domains description: This method will return the auth-code for a domain name. 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: Tld '.com' does not allow this action schema: example: error: Tld '.com' does not allow this action properties: error: type: string type: object description: Not Found headers: {} security: - oauth2: [] tags: - Domains description: |- This method will request an auth-code for a domain name at the registry. The registry will send the auth-code to the domain owner. 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/{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 /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 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) 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 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 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 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 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 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 '/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 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 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 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 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 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 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 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: 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: 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: example-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 too 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 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 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 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: {} 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: {} 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: {} Download: {} Elements: {} Email: {} Events: {} 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 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 required: - description - amount 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 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: {} 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: {} 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 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: name: description: name of the tenant example: testuser type: string uuid: description: uuid for this tenant example: bfa08ad9-6c12-4e03-95dd-a888b97ffe49 type: string 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 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: OpenStack - name: SSL Certificates - name: Colocations - name: Email - name: Actions