pydo.volume_actions.post_by_id()

Description

To initiate an action on a block storage volume by Id, send a POST request to ~/v2/volumes/$VOLUME_ID/actions. The body should contain the appropriate attributes for the respective action.

Attach a Block Storage Volume to a Droplet

Attribute Details
type This must be attach
droplet_id Set to the Droplet’s ID
region Set to the slug representing the region where the volume is located

Each volume may only be attached to a single Droplet. However, up to fifteen volumes may be attached to a Droplet at a time. Pre-formatted volumes will be automatically mounted to Ubuntu, Debian, Fedora, Fedora Atomic, and CentOS Droplets created on or after April 26, 2018 when attached. On older Droplets, additional configuration is required.

Remove a Block Storage Volume from a Droplet

Attribute Details
type This must be detach
droplet_id Set to the Droplet’s ID
region Set to the slug representing the region where the volume is located

Resize a Volume

Attribute Details
type This must be resize
size_gigabytes The new size of the block storage volume in GiB (1024^3)
region Set to the slug representing the region where the volume is located

Volumes may only be resized upwards. The maximum size for a volume is 16TiB.

Parameters

Name Type Required Description Default Value
volume_id string True The ID of the block storage volume.
per_page integer False Number of items returned per page 20
page integer False Which ‘page’ of paginated results to return. 1
body JSON or IO[bytes] True

Request Sample

import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "type": "attach",
  "droplet_id": 11612190,
  "region": "nyc1",
  "tags": [
    "aninterestingtag"
  ]
}

resp = client.volume_actions.post_by_id(volume_id="7724db7c", body=req)

Responses

See the API spec for this endpoint to view additional detail on responses, headers, parameters, and more.

The response will be an object with a key called action. The value of this will be an object that contains the standard volume action attributes

Click to expand an example response for volume_action_attach_response.
{
  "value": {
    "action": {
      "id": 72531856,
      "status": "completed",
      "type": "attach_volume",
      "started_at": "2020-11-12T17:51:03Z",
      "completed_at": "2020-11-12T17:51:14Z",
      "resource_type": "volume",
      "region": {
        "name": "New York 1",
        "slug": "nyc1",
        "sizes": [
          "s-1vcpu-1gb",
          "s-1vcpu-2gb",
          "s-1vcpu-3gb",
          "s-2vcpu-2gb",
          "s-3vcpu-1gb",
          "s-2vcpu-4gb",
          "s-4vcpu-8gb",
          "s-6vcpu-16gb",
          "s-8vcpu-32gb",
          "s-12vcpu-48gb",
          "s-16vcpu-64gb",
          "s-20vcpu-96gb",
          "s-24vcpu-128gb",
          "s-32vcpu-192gb"
        ],
        "features": [
          "private_networking",
          "backups",
          "ipv6",
          "metadata"
        ],
        "available": true
      },
      "region_slug": "nyc1"
    }
  }
}
Click to expand an example response for VolumeActionDetachResponse.
{
  "value": {
    "action": {
      "id": 68212773,
      "status": "in-progress",
      "type": "detach_volume",
      "started_at": "2015-10-15T17:46:15Z",
      "completed_at": null,
      "resource_id": null,
      "resource_type": "backend",
      "region": {
        "name": "New York 1",
        "slug": "nyc1",
        "sizes": [
          "s-1vcpu-1gb",
          "s-1vcpu-2gb",
          "s-1vcpu-3gb",
          "s-2vcpu-2gb",
          "s-3vcpu-1gb",
          "s-2vcpu-4gb",
          "s-4vcpu-8gb",
          "s-6vcpu-16gb",
          "s-8vcpu-32gb",
          "s-12vcpu-48gb",
          "s-16vcpu-64gb",
          "s-20vcpu-96gb",
          "s-24vcpu-128gb",
          "s-32vcpu-192gb"
        ],
        "features": [
          "private_networking",
          "backups",
          "ipv6",
          "metadata"
        ],
        "available": true
      },
      "region_slug": "nyc1"
    }
  }
}

Unauthorized

Click to expand an example response.
{
  "id": "unauthorized",
  "message": "Unable to authenticate you."
}

The resource was not found.

Click to expand an example response.
{
  "id": "not_found",
  "message": "The resource you requested could not be found."
}

API Rate limit exceeded

Click to expand an example response.
{
  "id": "too_many_requests",
  "message": "API Rate limit exceeded."
}

Server error.

Click to expand an example response.
{
  "id": "server_error",
  "message": "Unexpected server-side error"
}

Unexpected error

Click to expand an example response.
{
  "id": "example_error",
  "message": "some error message"
}