Skip to main content

droplet_actions

Creates, updates, deletes, gets or lists a droplet_actions resource.

Overview

Namedroplet_actions
TypeResource
Iddigitalocean.compute.droplet_actions

Fields

The following fields are returned by SELECT queries:

The result will be a JSON object with an action key. This will be set to an action object containing the standard action attributes.

NameDatatypeDescription
idintegerA unique numeric ID that can be used to identify and reference an action.
resource_idintegerA unique identifier for the resource that the action is associated with.
completed_atstring (date-time)A time value given in ISO8601 combined date and time format that represents when the action was completed. (example: 2020-11-14T16:30:06Z)
regionobject
region_slugstringA human-readable string that is used as a unique identifier for each region. (example: nyc3)
resource_typestringThe type of resource that the action is associated with. (example: droplet)
started_atstring (date-time)A time value given in ISO8601 combined date and time format that represents when the action was initiated. (example: 2020-11-14T16:29:21Z)
statusstringThe current status of the action. This can be "in-progress", "completed", or "errored". (example: completed, default: in-progress)
typestringThis is the type of action that the object represents. For example, this could be "transfer" to represent the state of an image transfer action. (example: create)

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
droplet_actions_getselectdroplet_id, action_idTo retrieve a Droplet action, send a GET request to
/v2/droplets/$DROPLET_ID/actions/$ACTION_ID.

The response will be a JSON object with a key called action. The value will
be a Droplet action object.
droplet_actions_listselectdroplet_idper_page, pageTo retrieve a list of all actions that have been executed for a Droplet, send
a GET request to /v2/droplets/$DROPLET_ID/actions.

The results will be returned as a JSON object with an actions key. This will
be set to an array filled with action objects containing the standard
action attributes.
droplet_actions_postexecdroplet_idTo initiate an action on a Droplet send a POST request to
/v2/droplets/$DROPLET_ID/actions. In the JSON body to the request,
set the type attribute to on of the supported action types:

| Action | Details | Additionally Required Permission |
| ---------------------------------------- | ----------- | ----------- |
| <nobr>enable_backups</nobr> | Enables backups for a Droplet | |
| <nobr>disable_backups</nobr> | Disables backups for a Droplet | |
| <nobr>change_backup_policy</nobr> | Update the backup policy for a Droplet | |
| <nobr>reboot</nobr> | Reboots a Droplet. A reboot action is an attempt to reboot the Droplet in a graceful way, similar to using the reboot command from the console. | |
| <nobr>power_cycle</nobr> | Power cycles a Droplet. A powercycle action is similar to pushing the reset button on a physical machine, it's similar to booting from scratch. | |
| <nobr>shutdown</nobr> | Shutsdown a Droplet. A shutdown action is an attempt to shutdown the Droplet in a graceful way, similar to using the shutdown command from the console. Since a shutdown command can fail, this action guarantees that the command is issued, not that it succeeds. The preferred way to turn off a Droplet is to attempt a shutdown, with a reasonable timeout, followed by a power_off action to ensure the Droplet is off. | |
| <nobr>power_off</nobr> | Powers off a Droplet. A power_off event is a hard shutdown and should only be used if the shutdown action is not successful. It is similar to cutting the power on a server and could lead to complications. | |
| <nobr>power_on</nobr> | Powers on a Droplet. | |
| <nobr>restore</nobr> | Restore a Droplet using a backup image. The image ID that is passed in must be a backup of the current Droplet instance. The operation will leave any embedded SSH keys intact. | droplet:admin |
| <nobr>password_reset</nobr> | Resets the root password for a Droplet. A new password will be provided via email. It must be changed after first use. | droplet:admin |
| <nobr>resize</nobr> | Resizes a Droplet. Set the size attribute to a size slug. If a permanent resize with disk changes included is desired, set the disk attribute to true. | droplet:create |
| <nobr>rebuild</nobr> | Rebuilds a Droplet from a new base image. Set the image attribute to an image ID or slug. | droplet:admin |
| <nobr>rename</nobr> | Renames a Droplet. | |
| <nobr>change_kernel</nobr> | Changes a Droplet's kernel. Only applies to Droplets with externally managed kernels. All Droplets created after March 2017 use internal kernels by default. | |
| <nobr>enable_ipv6</nobr> | Enables IPv6 for a Droplet. Once enabled for a Droplet, IPv6 can not be disabled. When enabling IPv6 on an existing Droplet, additional OS-level configuration is required. | |
| <nobr>snapshot</nobr> | Takes a snapshot of a Droplet. | image:create |
droplet_actions_post_by_tagexectag_nameSome actions can be performed in bulk on tagged Droplets. The actions can be
initiated by sending a POST to /v2/droplets/actions?tag_name=$TAG_NAME with
the action arguments.

Only a sub-set of action types are supported:

- power_cycle
- power_on
- power_off
- shutdown
- enable_ipv6
- enable_backups
- disable_backups
- snapshot (also requires image:create permission)

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
action_idintegerA unique numeric ID that can be used to identify and reference an action. (example: 36804636)
droplet_idintegerA unique identifier for a Droplet instance. (example: 3164444)
pageintegerWhich 'page' of paginated results to return. (example: 1)
per_pageintegerNumber of items returned per page (example: 2)
tag_namestringUsed to filter Droplets by a specific tag. Can not be combined with name or type.
Requires tag:read scope. (example: env:prod)

SELECT examples

To retrieve a Droplet action, send a GET request to
/v2/droplets/$DROPLET_ID/actions/$ACTION_ID.

The response will be a JSON object with a key called action. The value will
be a Droplet action object.

SELECT
id,
resource_id,
completed_at,
region,
region_slug,
resource_type,
started_at,
status,
type
FROM digitalocean.compute.droplet_actions
WHERE droplet_id = '{{ droplet_id }}' -- required
AND action_id = '{{ action_id }}' -- required;

Lifecycle Methods

To initiate an action on a Droplet send a POST request to
/v2/droplets/$DROPLET_ID/actions. In the JSON body to the request,
set the type attribute to on of the supported action types:

| Action | Details | Additionally Required Permission |
| ---------------------------------------- | ----------- | ----------- |
| <nobr>enable_backups</nobr> | Enables backups for a Droplet | |
| <nobr>disable_backups</nobr> | Disables backups for a Droplet | |
| <nobr>change_backup_policy</nobr> | Update the backup policy for a Droplet | |
| <nobr>reboot</nobr> | Reboots a Droplet. A reboot action is an attempt to reboot the Droplet in a graceful way, similar to using the reboot command from the console. | |
| <nobr>power_cycle</nobr> | Power cycles a Droplet. A powercycle action is similar to pushing the reset button on a physical machine, it's similar to booting from scratch. | |
| <nobr>shutdown</nobr> | Shutsdown a Droplet. A shutdown action is an attempt to shutdown the Droplet in a graceful way, similar to using the shutdown command from the console. Since a shutdown command can fail, this action guarantees that the command is issued, not that it succeeds. The preferred way to turn off a Droplet is to attempt a shutdown, with a reasonable timeout, followed by a power_off action to ensure the Droplet is off. | |
| <nobr>power_off</nobr> | Powers off a Droplet. A power_off event is a hard shutdown and should only be used if the shutdown action is not successful. It is similar to cutting the power on a server and could lead to complications. | |
| <nobr>power_on</nobr> | Powers on a Droplet. | |
| <nobr>restore</nobr> | Restore a Droplet using a backup image. The image ID that is passed in must be a backup of the current Droplet instance. The operation will leave any embedded SSH keys intact. | droplet:admin |
| <nobr>password_reset</nobr> | Resets the root password for a Droplet. A new password will be provided via email. It must be changed after first use. | droplet:admin |
| <nobr>resize</nobr> | Resizes a Droplet. Set the size attribute to a size slug. If a permanent resize with disk changes included is desired, set the disk attribute to true. | droplet:create |
| <nobr>rebuild</nobr> | Rebuilds a Droplet from a new base image. Set the image attribute to an image ID or slug. | droplet:admin |
| <nobr>rename</nobr> | Renames a Droplet. | |
| <nobr>change_kernel</nobr> | Changes a Droplet's kernel. Only applies to Droplets with externally managed kernels. All Droplets created after March 2017 use internal kernels by default. | |
| <nobr>enable_ipv6</nobr> | Enables IPv6 for a Droplet. Once enabled for a Droplet, IPv6 can not be disabled. When enabling IPv6 on an existing Droplet, additional OS-level configuration is required. | |
| <nobr>snapshot</nobr> | Takes a snapshot of a Droplet. | image:create |

EXEC digitalocean.compute.droplet_actions.droplet_actions_post 
@droplet_id='{{ droplet_id }}' --required;