STORAGES

A storage device is a block device similar to a physical hard disk. It can be used to install an operating system or hold some other filesystem for a server.

Storages can be freely attached to any server within the same zone and under the same account. A maximum of four storage devices can be attached to a server at the same time.

Storage types

There are four different storage types: disk, cdrom, template and backup.

Normal storages

Normal storage resources are used to store operating system and application data. This is the only user writeable storage type.

CD-ROMs

CD-ROM resources are used as a read-only media, typically for server installations or crash recovery.

Templates

Templates are special storage resources which are used to create new servers with a preconfigured operating system.

Backups

Backups are storages containing a point-in-time backup of a normal storage. Data on a normal storage can be restored from one of its backups. Backups can also be cloned to create a new normal storage resource. Backups can be created manually or automatically using backup rules.

Storage tiers

Storage resources are divided into two tiers: hdd and maxiops. Storage tiers affect both the performance and price of the storage.

HDD storages

Data is stored on hard disks resulting in lower costs than MaxIOPS.

MaxIOPS storages

Data is stored on MaxIOPS storage arrays resulting in highest throughput and lowest response times.

Storage access types

Storage access types are public and private.

Public storages

Public storages are visible to all users. Public storages include CD-ROM images and templates. CD-ROM images can be used to install operating systems and to rescue unbootable systems. Templates are used to create servers with a preconfigured operating system.

Private storages

Private storages are visible only to the specific user account and sub-accounts. Users can only create private storages.

Storage states

The storage state indicates the storage's current status.

State Description
online The storage resource is ready for use. The storage can be attached or detached.
maintenance Maintenance work is currently performed on the storage. The storage may have been newly created or it is being updated by some API operation.
cloning The storage resource is currently the clone source for another storage.
backuping The storage resource is currently being backed up to another storage.
error The storage has encountered an error and is currently inaccessible.

Favorite storages

Storage templates can be added to a list of favorites. This is used to distinguish the most important templates amongst the many available. See List storages on how to retrieve a list of favorite storages. See Add storage to favorites and Remove storage from favorites on how to manage favorite storages.

List storages

Returns a list of all accessible storages. The list can be narrowed down by the storage's access type (public or private), storage type (normal, backup, cdrom or template) or favorite status.

Requests

GET /1.2/storage
GET /1.2/storage/public
GET /1.2/storage/private
GET /1.2/storage/normal
GET /1.2/storage/backup
GET /1.2/storage/cdrom
GET /1.2/storage/template
GET /1.2/storage/favorite

Normal response

HTTP/1.0 200 OK
{
  "storages": {
    "storage": [
      {
        "access": "private",
        "license": 0,
        "size": 10,
        "state": "online",
        "tier": "hdd",
        "title": "Operating system disk",
        "type": "normal",
        "uuid": "01eff7ad-168e-413e-83b0-054f6a28fa23",
        "zone": "uk-lon1"
      },
      {
        "access" : "private",
        "created" : "2019-09-17T14:34:43Z",
        "license" : 0,
        "origin" : "01eff7ad-168e-413e-83b0-054f6a28fa23",
        "size" : 10,
        "state" : "online",
        "title" : "On demand backup",
        "type" : "backup",
        "uuid" : "01287ad1-496c-4b5f-bb67-0fc2e3494740",
        "zone" : "uk-lon1"
      },
      {
        "access": "private",
        "license": 0,
        "part_of_plan": "yes",
        "size": 50,
        "state": "online",
        "tier": "maxiops",
        "title": "Databases",
        "type": "normal",
        "uuid": "01f3286c-a5ea-4670-8121-d0b9767d625b",
        "zone": "fi-hel1"
      }
    ]
  }
}

Get storage details

Returns detailed information about a specific storage resource.

The servers attached to this storage are listed in the servers block of the response body.

Request

GET /1.2/storage/01d4fcd4-e446-433b-8a9c-551a1284952e

Normal response

HTTP/1.0 200 OK
{
  "storage": {
    "access": "private",
    "backup_rule": "",
    "backups": {
      "backup": []
    },
    "license": 0,
    "servers": {
      "server": [
        "00798b85-efdc-41ca-8021-f6ef457b8531"
      ]
    },
    "size": 10,
    "state": "online",
    "tier": "maxiops",
    "title": "Operating system disk",
    "type": "normal",
    "uuid": "01d4fcd4-e446-433b-8a9c-551a1284952e",
    "zone": "fi-hel1"
  }
}

Create storage

Creates a new storage resource.

Storages are always created to a specific zone. Storages can be attached to servers within the same zone. See List available zones on how to retrieve a list of available zones.

A newly created storage is not attached to any server. See Attach storage to server.

Request

POST /1.2/storage
{
  "storage": {
    "size": "10",
    "tier": "maxiops",
    "title": "My data collection",
    "zone": "fi-hel1",
    "backup_rule": {
      "interval": "daily",
      "time": "0430",
      "retention": "365"
    }
  }
}

Attributes

Attribute Accepted values Default value Required Description
size 10-2048 yes The size of the storage in gigabytes.
tier hdd / maxiops hdd no The storage tier to use. See Storage tiers.
title 0-64 characters yes A short, informational description.
zone A valid zone identifier yes The zone in which the storage will be created, e.g. fi-hel1. See Zones.
backup_rule A backup_rule block no The backup_rule block defines when the storage device is backed up automatically.

The backup_rule block contains the following attributes.

Attribute Accepted values Default value Required Description
interval daily / mon / tue / wed / thu / fri / sat / sun yes The weekday when the backup is created. If daily is selected, backups are made every day at the same time.
time 0000-2359 yes The time of day when the backup is created.
retention 1-1095 yes The number of days before a backup is automatically deleted. The maximum retention period is three years (1095 days).

If one of the interval, time or retention attributes is specified, others must also be specified. The backup_rule block can also be left empty.

Normal response

HTTP/1.0 201 Created
{
  "storage": {
    "access": "private",
    "backup_rule": {
      "interval": "daily",
      "hour": "0430",
      "retention": "365"
    },
    "backups": {
      "backup": []
    },
    "license": 0,
    "servers": {
      "server": []
    },
    "size": 10,
    "state": "online",
    "tier": "maxiops",
    "title": "test",
    "type": "normal",
    "uuid": "01d4fcd4-e446-433b-8a9c-551a1284952e",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request BACKUP_RULE_INVALID The backup_rule block has an invalid value.
400 Bad Request INTERVAL_INVALID The attribute interval has an invalid value.
400 Bad Request INTERVAL_MISSING The required attribute interval is missing from the request.
400 Bad Request HOUR_INVALID The attribute hour has an invalid value.
400 Bad Request HOUR_MISSING The required attribute hour is missing from the request.
400 Bad Request RETENTION_INVALID The attribute retention has an invalid value.
400 Bad Request RETENTION_MISSING The required attribute retention is missing from the request.
400 Bad Request SIZE_INVALID The attribute size has an invalid value.
400 Bad Request SIZE_MISSING The required attribute size is missing from the request.
400 Bad Request TIER_INVALID The attribute tier has an invalid value.
400 Bad Request TITLE_INVALID The attribute title has an invalid value.
400 Bad Request TITLE_MISSING The required attribute title is missing from the request.
400 Bad Request ZONE_INVALID The attribute zone has an invalid value.
400 Bad Request ZONE_MISSING The required attribute zone is missing from the request.
402 Payment Required INSUFFICIENT_CREDITS There are not enough credits to perform the requested action. See Credits.
404 Not Found ZONE_NOT_FOUND The zone does not exist.
409 Conflict STORAGE_RESOURCES_UNAVAILABLE There are not enough storage resources available in the specified zone and tier to create the requested storage.

Modify storage

Modifies an existing storage resource. This operation is used to rename or resize the storage.

If the storage is going to be resized, the new size must be greater than the old size. The storage state must be online and the storage needs to be detached from any servers. Note that neither the partition table nor the file system on the storage device is resized and such changes have to be made once the storage is attached to a server. A partition table change and a filesystem resize is required to use the available space.

Transferring storage resources between zones is possible using the Clone storage operation.

Request

PUT /1.2/storage/011d671f-e803-484d-920a-c25b4bb05c01
{
  "storage": {
    "size": "20",
    "title": "A larger storage"
  }
}

Attributes

Attribute Accepted values Default value Required Description
backup_rule A backup_rule block. no A backup rule used to schedule automatic backups on the storage.
size 10-1024 no The size of the storage in gigabytes.
title 0-64 characters no A short, informational description.

The backup_rule block contains the following attributes.

Attribute Accepted values Default value Required Description
interval daily / mon / tue / wed / thu / fri / sat / sun yes The weekday when the backup is created. If daily is selected, backups are made every day at the same time.
time 0000-2359 yes The time of day when the backup is created.
retention 1-1095 yes The number of days before a backup is automatically deleted. The maximum retention period is three years (1095 days).

If one of the interval, time or retention attributes is specified, others must also be specified. The backup_rule block can also be left empty.

Normal response

HTTP/1.0 202 Accepted
{
  "storage": {
    "access": "private",
    "backup_rule": "",
    "backups": {
      "backup": []
    },
    "license": 0,
    "servers": {
      "server": []
    },
    "size": 20,
    "state": "online",
    "tier": "maxiops",
    "title": "A larger storage",
    "type": "normal",
    "uuid": "011d671f-e803-484d-920a-c25b4bb05c01",
    "zone": "uk-lon1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request BACKUP_RULE_INVALID The backup_rule block has an invalid value.
400 Bad Request INTERVAL_INVALID The attribute interval has an invalid value.
400 Bad Request INTERVAL_MISSING The required attribute interval is missing from the request.
400 Bad Request HOUR_INVALID The attribute hour has an invalid value.
400 Bad Request HOUR_MISSING The required attribute hour is missing from the request.
400 Bad Request RETENTION_INVALID The attribute retention has an invalid value.
400 Bad Request RETENTION_MISSING The required attribute retention is missing from the request.
400 Bad Request SIZE_INVALID The attribute size has an invalid value. If action is clone, size must be greater than the size of the cloned storage.
400 Bad Request STORAGE_INVALID The attribute storage has an invalid value.
400 Bad Request TITLE_INVALID The attribute title has an invalid value.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
409 Conflict STORAGE_ATTACHED The storage is currently attached to a server. To resize a storage, it must first be detached from any servers.
409 Conflict STORAGE_RESOURCES_UNAVAILABLE There are not enough storage resources available in the specified zone to resize the storage.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict STORAGE_TYPE_ILLEGAL The type of the storage to be attached is illegal. Only storages of type normal can be resized. See Storage types.

Attach storage

Attaches a storage as a device to a server.

Attaching normal storages

In order to attach an IDE device, the server state must be stopped. SCSI and virtio devices may also be attached while the server state is started.

Attaching CD-ROM devices

A storage resource can be attached as a disk or a cdrom. Only one cdrom device may attached on a server at the same time. A CD-ROM device can be empty, i.e. it does not need to have a storage loaded. The storage loaded to the CD-ROM device may be changed by using the Eject CD-ROM and Load CD-ROM operations.

In order to attach a CD-ROM device, the server state must be stopped.

Request

POST /1.2/server/009d64ef-31d1-4684-a26b-c86c955cbf46/storage/attach
{
  "storage_device": {
    "type": "disk",
    "address": "scsi",
    "storage": "00798b85-efdc-41ca-8021-f6ef457b8531",
    "boot_disk": "0"
  }
}

Attributes

Attribute Accepted values Default value Required Description
type disk / cdrom disk no The type of the attached storage.
address ide[:[01]:[01]] / scsi[:0:[0-7]] / virtio[:[0-7]] Next available no The address where the storage device is attached on the server. Specify only the bus name (ide/scsi/virtio) to auto-select next available address from that bus.
storage A valid storage UUID yes if type is disk The UUID of the storage to attach.
boot_disk 0/1 0 no If the value is 1 the storage device will be used as a boot disk, unless overridden with the server boot_order attribute.

Normal response

HTTP/1.0 200 OK
{
  "server": {
    "boot_order": "disk",
    "core_number": "4",
    "firewall": "on",
    "hostname": "debian.example.com",
    "host": 8055964291,
    "ip_addresses": {
      "ip_address": [
        {
            "access": "private",
            "address": "10.0.0.0",
            "family": "IPv4"
        },
        {
            "access": "public",
            "address": "x.x.x.x",
            "family": "IPv4"
        },
        {
            "access": "public",
            "address": "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx",
            "family": "IPv6"
        }
      ]
    },
    "license": 0,
    "memory_amount": "8192",
    "nic_model": "virtio",
    "plan": "custom",
    "plan_ipv4_bytes": "0",
    "plan_ipv6_bytes": "0",
    "state": "started",
    "storage_devices": {
      "storage_device": [
        {
          "address": "scsi:0:0",
          "storage": "00798b85-efdc-41ca-8021-f6ef457b8531",
          "storage_size": "10",
          "storage_title": "Debian from a template",
          "type": "disk",
          "boot_disk": "0"
        }
      ]
    },
    "tags": {
      "tag": []
    },
    "timezone": "UTC",
    "title": "My Debian server",
    "uuid": "00c78863-db86-44ea-af70-d6edc4d162bf",
    "video_model": "cirrus",
    "vnc_password": "aabbccdd",
    "vnc": "off",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request ADDRESS_INVALID The attribute address has an invalid value.
400 Bad Request SERVER_INVALID The server UUID has an invalid value.
400 Bad Request STORAGE_INVALID The attribute storage has an invalid value.
400 Bad Request STORAGE_MISSING The required attribute storage is missing from the request.
400 Bad Request TYPE_INVALID The attribute type has an invalid value.
403 Forbidden SERVER_FORBIDDEN The server exists, but is owned by another account.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found SERVER_NOT_FOUND The server does not exist.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
409 Conflict CDROM_DEVICE_IN_USE There is already a CD-ROM device attached on the server. Only one CD-ROM device can be attached per server.
409 Conflict CDROM_HOTPLUG_UNSUPPORTED Hotplugging CD-ROM devices is not supported.
409 Conflict DEVICE_ADDRESS_IN_USE The device address is already in use.
409 Conflict IDE_HOTPLUG_UNSUPPORTED Hotplugging IDE devices is not supported.
409 Conflict PUBLIC_STORAGE_ATTACH Attaching a storage of access type public is not allowed. See Storage access types.
409 Conflict SERVER_STATE_ILLEGAL The server is in a state in which it cannot be used. See Server states.
409 Conflict STORAGE_ATTACHED The storage is already attached to the specified server.
409 Conflict STORAGE_ATTACHED_AS_CDROM The storage to be attached as a disk is already attached to some server as a CD-ROM.
409 Conflict STORAGE_ATTACHED_AS_DISK The storage to be attached as a CD-ROM is already attached to some server as a disk.
409 Conflict STORAGE_DEVICE_LIMIT_REACHED The limit of the number of attached devices has been reached. It is possible to attach four storage devices per server.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict STORAGE_TYPE_ILLEGAL The type of the storage to be attached is illegal. Attaching a cdrom or a template as a disk is not possible. See Storage types.
409 Conflict ZONE_MISMATCH The storage is located in a different zone than the one the server is created in.
409 Conflict TOO_MANY_BOOT_DISKS Too many boot disks: Only one storage can have boot_disk defined.

Detach storage

Detaches a storage resource from a server.

The detached storage is identified by the device address on the attached server.

IDE devices cannot be detached while the server state is started.

Request

POST /1.2/server/009d64ef-31d1-4684-a26b-c86c955cbf46/storage/detach
{
  "storage_device": {
    "address": "scsi:0:0"
  }
}

Attributes

Attribute Accepted values Default value Required Description
address "ide:[01]:[01] /scsi:0:[0-7] / virtio:[0-7]" yes Detach the storage attached to this address.

Normal response

HTTP/1.0 200 OK
{
  "server": {
    "boot_order": "disk",
    "core_number": "4",
    "firewall": "on",
    "hostname": "debian.example.com",
    "host": 8055964291,
    "ip_addresses": {
      "ip_address": [
        {
          "access": "private",
          "address": "10.0.0.0",
          "family": "IPv4"
        },
        {
          "access": "public",
          "address": "x.x.x.x",
          "family": "IPv4"
        },
        {
          "access": "public",
          "address": "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx",
          "family": "IPv6"
        }
      ]
    },
    "license": 0,
    "memory_amount": "8192",
    "nic_model": "virtio",
    "plan": "custom",
    "plan_ipv4_bytes": "0",
    "plan_ipv6_bytes": "0",
    "state": "stopped",
    "storage_devices": {
      "storage_device": [ ]
    },
    "tags": {
      "tag": []
    },
    "timezone": "UTC",
    "title": "My Debian server",
    "uuid": "00c78863-db86-44ea-af70-d6edc4d162bf",
    "video_model": "cirrus",
    "vnc": "off",
    "vnc_password": "aabbccdd",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request ADDRESS_INVALID The attribute address has an invalid value.
400 Bad Request ADDRESS_MISSING The required attribute address is missing from the request.
400 Bad Request SERVER_INVALID The server UUID has an invalid value.
403 Forbidden SERVER_FORBIDDEN The server exists, but is owned by another account.
404 Not Found SERVER_NOT_FOUND The server does not exist.
409 Conflict CDROM_HOTPLUG_UNSUPPORTED Hotplugging CD-ROM devices is not supported.
409 Conflict DEVICE_ADDRESS_NOT_IN_USE There was no storage device attached to the specified device address.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict SERVER_STATE_ILLEGAL The server is in a state in which it cannot be used. See Server states.
409 Conflict IDE_HOTPLUG_UNSUPPORTED Hotplugging IDE devices is not supported.
511 Operation Failed HOTPLUG_FAILED The hotplug operation failed.

Load CD-ROM

Loads a storage as a CD-ROM in the CD-ROM device of a server.

This operation requires that a CD-ROM device is attached to the server. A CD-ROM device can be attached using the Attach storage operation.

Any storage of type normal, cdrom or backup can be loaded as a CD-ROM.

Request

POST /1.2/server/00798b85-efdc-41ca-8021-f6ef457b8531/cdrom/load
{
  "storage_device": {
    "storage": "01000000-0000-4000-8000-000060010101"
  }
}

Attributes

Attribute Accepted values Default value Required Description
storage UUID of a storage of type normal, cdrom or backup. yes The UUID of the storage to be loaded in the CD-ROM device.

Normal response

HTTP/1.0 200 OK
{
  "server": {
    "boot_order": "cdrom,disk",
    "core_number": "0",
    "firewall": "on",
    "hostname": "test.example.com",
    "host": 8055964291,
    "ip_addresses": {
      "ip_address": [
        {
          "access": "private",
          "address": "10.0.0.0",
          "family": "IPv4"
        },
        {
          "access": "public",
          "address": "x.x.x.x",
          "family": "IPv4"
        },
        {
          "access": "public",
          "address": "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx",
          "family": "IPv6"
        }
      ]
    },
    "license": 0,
    "memory_amount": "512",
    "nic_model": "virtio",
    "state": "started",
    "storage_devices": {
      "storage_device": [
        {
          "type": "cdrom",
          "address": "ide:0:1",
          "storage": "01000000-0000-4000-8000-000060010101"
        },
        {
          "type": "disk",
          "address": "ide:0:0",
          "storage": "01d4fcd4-e446-433b-8a9c-551a1284952e"
        }
      ]
    },
    "tags": {
      "tag": []
    },
    "timezone": "UTC",
    "title": "Example server",
    "uuid": "00798b85-efdc-41ca-8021-f6ef457b8531",
    "video_model": "cirrus",
    "vnc_password": "aabbccdd",
    "vnc": "off",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The attribute storage has an invalid value.
400 Bad Request STORAGE_MISSING The required attribute storage is missing from the request.
400 Bad Request SERVER_INVALID The server UUID has an invalid value.
403 Forbidden SERVER_FORBIDDEN The server exists, but it is owned by another account.
403 Forbidden STORAGE_FORBIDDEN The server exists, but is owned by another account.
404 Not Found SERVER_NOT_FOUND The server does not exist.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
409 Conflict NO_CDROM_DEVICE There is no CD-ROM device attached to the server.
409 Conflict SERVER_STATE_ILLEGAL The server is in a state in which it cannot be used. See Server states.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict STORAGE_TYPE_ILLEGAL The type of the storage to be attached is illegal. Only storages of type normal and cdrom can be loaded as CD-ROMs.
409 Conflict STORAGE_ATTACHED The specified storage is already loaded as a CD-ROM in the specified server.
409 Conflict STORAGE_ATTACHED_AS_DISK The storage to be loaded is already attached to some server as a disk.
409 Conflict ZONE_MISMATCH The storage is located in a different zone than the server.

Eject CD-ROM

Ejects the storage from the CD-ROM device of a server.

Request

POST /1.2/server/00798b85-efdc-41ca-8021-f6ef457b8531/cdrom/eject

Normal response

HTTP/1.0 200 OK
{
  "server": {
    "boot_order": "cdrom,disk",
    "core_number": "1",
    "firewall": "on",
    "hostname": "test.example.com",
    "ip_addresses": {
      "ip_address": [
        {
          "access": "private",
          "address": "10.0.0.0",
          "family": "IPv4"
        },
        {
          "access": "public",
          "address": "x.x.x.x",
          "family": "IPv4"
        },
        {
          "access": "public",
          "address": "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx",
          "family": "IPv6"
        }
      ]
    },
    "license": 0,
    "memory_amount": "512",
    "nic_model": "virtio",
    "state": "started",
    "storage_devices": {
      "storage_device": [
        {
          "type": "cdrom",
          "address": "ide:0:1",
          "storage": ""
        },
        {
          "type": "disk",
          "address": "ide:0:0",
          "storage": "01d4fcd4-e446-433b-8a9c-551a1284952e"
        }
      ]
    },
    "tags": {
      "tag": []
    },
    "timezone": "UTC",
    "title": "Example server",
    "uuid": "00798b85-efdc-41ca-8021-f6ef457b8531",
    "video_model": "cirrus",
    "vnc_password": "aabbccdd",
    "vnc": "off",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request SERVER_INVALID The server UUID has an invalid value.
403 Forbidden SERVER_FORBIDDEN The server exists, but is owned by another account.
404 Not Found SERVER_NOT_FOUND The server does not exist.
409 Conflict NO_CDROM_DEVICE There is no CD-ROM device attached to the server.
409 Conflict SERVER_STATE_ILLEGAL The server is in a state in which it cannot be used. See Server states.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
511 Operation Failed CDROM_EJECT_FAILED Could not eject the CD-ROM. It may still be mounted on the server.

Clone storage

Creates an exact copy of an existing storage resource.

The speed of the clone operation depends on the size of the storage and whether the source and target storages are in the same zone. A clone operation between different zones takes a considerably longer time than a clone operation within the same zone.

This operation is asynchronous. The state of the cloned storage is maintenance and changes to online after the clone process is complete. The status of the operation can be monitored by polling the storage with the Get storage details operation.

Cloning can be cancelled while in progress by issuing the Cancel storage operation request.

Request

POST /1.2/storage/01eff7ad-168e-413e-83b0-054f6a28fa23/clone
{
  "storage": {
    "zone": "fi-hel1",
    "tier": "maxiops",
    "title": "Clone of operating system disk"
  }
}

Attributes

Attribute Accepted values Default value Required Description
zone Valid zone id yes The zone in which the storage will be created, e.g. fi-hel1. See Zones.
tier hdd / maxiops hdd no The storage tier to use. See Storage tiers.
title 0-64 characters yes A short, informational description.

Normal response

HTTP/1.0 201 Created
{
  "storage": {
    "access": "private",
    "license": 0,
    "servers": {
      "server": []
    },
    "size": "10",
    "state": "maintenance",
    "tier": "maxiops",
    "title": "Clone of operating system disk",
    "type": "normal",
    "uuid": "01f3286c-a5ea-4670-8121-d0b9767d625b",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
400 Bad Request TIER_INVALID The attribute tier has an invalid value.
400 Bad Request TITLE_INVALID The attribute title has an invalid value.
400 Bad Request TITLE_INVALID The required attribute title is missing from the request.
400 Bad Request ZONE_INVALID The attribute zone has an invalid value.
400 Bad Request ZONE_MISSING The required attribute zone is missing from the request.
402 Payment Required INSUFFICIENT_CREDITS There are not enough credits to perform the requested action. See Credits.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
404 Not Found ZONE_NOT_FOUND The zone does not exist.
409 Conflict STORAGE_RESOURCES_UNAVAILABLE There were not enough storage resources available in the specified zone to create the storage.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict STORAGE_TYPE_ILLEGAL The of the storage to be attached is illegal. See Storage types.

Cancel storage operation

Cancels a running cloning operation and deletes the incomplete copy.

A running cloning operation can be cancelled if it is e.g. taking too much time or was not intentional. Cancelling the cloning will stop the cloning operation, remove the incomplete new storage and return the source storage back to online state.

Note that it might take several seconds to source storage to reset back to online state after the cancellation request is completed.

Request

POST /1.2/storage/01f3286c-a5ea-4670-8121-d0b9767d625b/cancel

Normal response

HTTP/1.0 204 No Content

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict UNABLE_TO_CANCEL The cancellation was not successful.

Templatize storage

Creates an exact copy of an existing storage resource which can be used as a template for creating new servers.

The speed of the operation depends on the size of the storage. Only maxiops-type storages can be templatized.

This operation is asynchronous and similar to cloning. The state of the templatized storage is maintenance and changes to online after the process is complete. The status of the operation can be monitored by polling the storage with the Get storage details operation.

Request

POST /1.2/storage/01eff7ad-168e-413e-83b0-054f6a28fa23/templatize
{
  "storage": {
    "title": "My server template"
  }
}

Attributes

Attribute Accepted values Default value Required Description
title 0-64 characters yes A short, informational description.

Normal response

HTTP/1.0 201 Created
{
  "storage": {
    "access": "private",
    "license": 0,
    "servers": {
        "server": []
    },
    "size": 10,
    "state": "maintenance",
    "tier": "maxiops",
    "title": "My server template",
    "type": "template",
    "uuid": "012cfe08-ed18-4dce-93c0-c7e39e6276c8",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
400 Bad Request TITLE_INVALID The attribute title has an invalid value.
400 Bad Request TITLE_MISSING The required attribute title is missing from the request.
402 Payment Required INSUFFICIENT_CREDITS There are not enough credits to perform the requested action. See Credits.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
409 Conflict STORAGE_RESOURCES_UNAVAILABLE There were not enough storage resources available in the specified zone to create the storage.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. Storage should not be attached to running server.
409 Conflict STORAGE_TIER_ILLEGAL Only maxiops storages can be templatized.

Create backup

Creates a point-in-time backup of a storage resource. For automatic, scheduled backups, see backup_rule in Create storage or Modify storage.

This operation is asynchronous. The state of the storage changes to backuping and changes back to online after the backup process is complete. The status of the operation can be monitored by polling the storage with the Get storage details operation.

Request

POST /1.2/storage/01eff7ad-168e-413e-83b0-054f6a28fa23/backup
{
  "storage": {
    "title": "Manually created backup"
  }
}

Attributes

Attribute Accepted values Default value Required Description
title 0-64 characters yes A short, informational description.

Normal response

HTTP/1.0 201 Created
{
  "storage": {
    "access": "private",
    "created": "2015-03-27T10:02:05Z",
    "license": 0,
    "origin": "01eff7ad-168e-413e-83b0-054f6a28fa23",
    "progress": "0",
    "servers": {
      "server": []
    },
    "size": "10",
    "state": "maintenance",
    "title": "Manually created backup",
    "type": "normal",
    "uuid": "01f3286c-a5ea-4670-8121-d0b9767d625b",
    "zone": "fi-hel1"
  }
}

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
400 Bad Request TITLE_INVALID The attribute title has an invalid value.
400 Bad Request TITLE_MISSING The required attribute title is missing from the request.
402 Payment Required INSUFFICIENT_CREDITS There are not enough credits to perform the requested action. See Credits.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
409 Conflict STORAGE_RESOURCES_UNAVAILABLE There were not enough storage resources available in the specified zone to create the storage.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict STORAGE_TYPE_ILLEGAL The type of the storage to be attached is illegal. See Storage types.

Restore backup

Restores the origin storage with data from the specified backup storage.

If the origin storage is attached to a server, the server must first be stopped.

Request

POST /1.2/storage/01f3286c-a5ea-4670-8121-d0b9767d625b/restore

Response

HTTP/1.0 204 No Content

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
400 Bad Request TITLE_INVALID The attribute title has an invalid value.
400 Bad Request TITLE_INVALID The required attribute title is missing from the request.
400 Bad Request ZONE_INVALID The attribute zone has an invalid value.
400 Bad Request ZONE_MISSING The required attribute zone is missing from the request.
402 Payment Required INSUFFICIENT_CREDITS There are not enough credits to perform the requested action. See Credits.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
404 Not Found ZONE_NOT_FOUND The zone does not exist.
409 Conflict SERVER_STATE_ILLEGAL The origin storage is attached to a started server. The server must be stopped in order to revert the storage.
409 Conflict STORAGE_RESOURCES_UNAVAILABLE There were not enough storage resources available in the specified zone to create the storage.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used. See Storage states.
409 Conflict STORAGE_TYPE_ILLEGAL The type of the storage to be attached is illegal. See Storage types.

Add storage to favorites

Adds a storage to the list of favorite storages. To list favorite storages, see List storages. This operations succeeds even if the storage is already on the list of favorites.

Request

POST /1.2/storage/01f3286c-a5ea-4670-8121-d0b9767d625b/favorite

Response

HTTP/1.0 204 No Content

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.

Remove storage from favorites

Adds a storage to the list of favorite storages. To list favorite storages, see List storages. This operations succeeds even if the storage is already on the list of favorites.

Request

DELETE /1.2/storage/01f3286c-a5ea-4670-8121-d0b9767d625b/favorite

Response

HTTP/1.0 204 No Content

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The storage UUID has an invalid value.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.

Delete storage

Deleted an existing storage resource.

The state of the storage must be online. The storage must not be attached to any server.

Backups of the deleted storage resource are not deleted and can be used to restore the deleted storage resource.

Request

DELETE /1.2/storage/01d4fcd4-e446-433b-8a9c-551a1284952e

Normal response

HTTP/1.0 204 No Content

Error responses

HTTP status Error code Description
400 Bad Request STORAGE_INVALID The attribute storage has an invalid value.
403 Forbidden STORAGE_FORBIDDEN The storage exists, but is owned by another account.
404 Not Found STORAGE_NOT_FOUND The storage does not exist.
409 Conflict STORAGE_ATTACHED The storage is currently attached to a server.
409 Conflict STORAGE_STATE_ILLEGAL The storage is in a state in which it cannot be used.