digitalocean

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	Email        string `json:"email"`
	UUID         string `json:"uuid"`
	Status       string `json:"status"`
	DropletLimit int    `json:"droplet_limit"`
}

Account represents a DigitalOcean account

type Client

type Client struct {
	Token string

	BaseURL string
	// contains filtered or unexported fields
}

func NewClient

func NewClient(http core.HTTPContext, ctx core.IntegrationContext) (*Client, error)

func (*Client) CreateDroplet

func (c *Client) CreateDroplet(req CreateDropletRequest) (*Droplet, error)

CreateDroplet creates a new droplet

func (*Client) GetAccount

func (c *Client) GetAccount() (*Account, error)

GetAccount validates the API token by fetching account info

func (*Client) GetDroplet

func (c *Client) GetDroplet(dropletID int) (*Droplet, error)

GetDroplet retrieves a droplet by its ID

func (*Client) ListActions

func (c *Client) ListActions(resourceType string) ([]DOAction, error)

ListActions retrieves actions filtered by resource type. The DigitalOcean /v2/actions API does not support resource_type as a query parameter, so we fetch all recent actions and filter client-side.

func (*Client) ListImages

func (c *Client) ListImages(imageType string) ([]Image, error)

ListImages retrieves images of a given type (e.g., "distribution")

func (*Client) ListRegions

func (c *Client) ListRegions() ([]Region, error)

ListRegions retrieves all available regions

func (*Client) ListSizes

func (c *Client) ListSizes() ([]Size, error)

ListSizes retrieves all available droplet sizes

type Configuration

type Configuration struct {
	APIToken string `json:"apiToken"`
}

type CreateDroplet

type CreateDroplet struct{}

func (*CreateDroplet) Actions

func (c *CreateDroplet) Actions() []core.Action

func (*CreateDroplet) Cancel

func (c *CreateDroplet) Cancel(ctx core.ExecutionContext) error

func (*CreateDroplet) Cleanup

func (c *CreateDroplet) Cleanup(ctx core.SetupContext) error

func (*CreateDroplet) Color

func (c *CreateDroplet) Color() string

func (*CreateDroplet) Configuration

func (c *CreateDroplet) Configuration() []configuration.Field

func (*CreateDroplet) Description

func (c *CreateDroplet) Description() string

func (*CreateDroplet) Documentation

func (c *CreateDroplet) Documentation() string

func (*CreateDroplet) ExampleOutput

func (c *CreateDroplet) ExampleOutput() map[string]any

func (*CreateDroplet) Execute

func (c *CreateDroplet) Execute(ctx core.ExecutionContext) error

func (*CreateDroplet) HandleAction

func (c *CreateDroplet) HandleAction(ctx core.ActionContext) error

func (*CreateDroplet) HandleWebhook

func (c *CreateDroplet) HandleWebhook(ctx core.WebhookRequestContext) (int, error)

func (*CreateDroplet) Icon

func (c *CreateDroplet) Icon() string

func (*CreateDroplet) Label

func (c *CreateDroplet) Label() string

func (*CreateDroplet) Name

func (c *CreateDroplet) Name() string

func (*CreateDroplet) OutputChannels

func (c *CreateDroplet) OutputChannels(configuration any) []core.OutputChannel

func (*CreateDroplet) ProcessQueueItem

func (c *CreateDroplet) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*CreateDroplet) Setup

func (c *CreateDroplet) Setup(ctx core.SetupContext) error

type CreateDropletRequest

type CreateDropletRequest struct {
	Name     string   `json:"name"`
	Region   string   `json:"region"`
	Size     string   `json:"size"`
	Image    string   `json:"image"`
	SSHKeys  []string `json:"ssh_keys,omitempty"`
	Tags     []string `json:"tags,omitempty"`
	UserData string   `json:"user_data,omitempty"`
}

CreateDropletRequest is the payload for creating a droplet

type CreateDropletSpec

type CreateDropletSpec struct {
	Name     string   `json:"name"`
	Region   string   `json:"region"`
	Size     string   `json:"size"`
	Image    string   `json:"image"`
	SSHKeys  []string `json:"sshKeys"`
	Tags     []string `json:"tags"`
	UserData string   `json:"userData"`
}

type DOAPIError

type DOAPIError struct {
	StatusCode int
	Body       []byte
}

func (*DOAPIError) Error

func (e *DOAPIError) Error() string

type DOAction

type DOAction struct {
	ID           int    `json:"id"`
	Status       string `json:"status"`
	Type         string `json:"type"`
	StartedAt    string `json:"started_at"`
	CompletedAt  string `json:"completed_at"`
	ResourceID   int    `json:"resource_id"`
	ResourceType string `json:"resource_type"`
	RegionSlug   string `json:"region_slug"`
}

DOAction represents a DigitalOcean action

type DigitalOcean

type DigitalOcean struct{}

func (*DigitalOcean) Actions

func (d *DigitalOcean) Actions() []core.Action

func (*DigitalOcean) Cleanup

func (*DigitalOcean) Components

func (d *DigitalOcean) Components() []core.Component

func (*DigitalOcean) Configuration

func (d *DigitalOcean) Configuration() []configuration.Field

func (*DigitalOcean) Description

func (d *DigitalOcean) Description() string

func (*DigitalOcean) HandleAction

func (d *DigitalOcean) HandleAction(ctx core.IntegrationActionContext) error

func (*DigitalOcean) HandleRequest

func (d *DigitalOcean) HandleRequest(ctx core.HTTPRequestContext)

func (*DigitalOcean) Icon

func (d *DigitalOcean) Icon() string

func (*DigitalOcean) Instructions

func (d *DigitalOcean) Instructions() string

func (*DigitalOcean) Label

func (d *DigitalOcean) Label() string

func (*DigitalOcean) ListResources

func (d *DigitalOcean) ListResources(resourceType string, ctx core.ListResourcesContext) ([]core.IntegrationResource, error)

func (*DigitalOcean) Name

func (d *DigitalOcean) Name() string

func (*DigitalOcean) Sync

func (d *DigitalOcean) Sync(ctx core.SyncContext) error

func (*DigitalOcean) Triggers

func (d *DigitalOcean) Triggers() []core.Trigger

type Droplet

type Droplet struct {
	ID       int             `json:"id"`
	Name     string          `json:"name"`
	Memory   int             `json:"memory"`
	VCPUs    int             `json:"vcpus"`
	Disk     int             `json:"disk"`
	Status   string          `json:"status"`
	Region   DropletRegion   `json:"region"`
	Image    DropletImage    `json:"image"`
	SizeSlug string          `json:"size_slug"`
	Networks DropletNetworks `json:"networks"`
	Tags     []string        `json:"tags"`
}

Droplet represents a DigitalOcean droplet

type DropletImage

type DropletImage struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
	Slug string `json:"slug"`
}

type DropletNetworkV4

type DropletNetworkV4 struct {
	IPAddress string `json:"ip_address"`
	Type      string `json:"type"`
}

type DropletNetworks

type DropletNetworks struct {
	V4 []DropletNetworkV4 `json:"v4"`
}

type DropletRegion

type DropletRegion struct {
	Name string `json:"name"`
	Slug string `json:"slug"`
}

type Image

type Image struct {
	ID           int    `json:"id"`
	Name         string `json:"name"`
	Slug         string `json:"slug"`
	Type         string `json:"type"`
	Distribution string `json:"distribution"`
}

Image represents a DigitalOcean image

type Metadata

type Metadata struct {
	AccountEmail string `json:"accountEmail"`
	AccountUUID  string `json:"accountUUID"`
}

type Region

type Region struct {
	Slug      string `json:"slug"`
	Name      string `json:"name"`
	Available bool   `json:"available"`
}

Region represents a DigitalOcean region

type Size

type Size struct {
	Slug         string  `json:"slug"`
	Memory       int     `json:"memory"`
	VCPUs        int     `json:"vcpus"`
	Disk         int     `json:"disk"`
	PriceMonthly float64 `json:"price_monthly"`
	Available    bool    `json:"available"`
}

Size represents a DigitalOcean droplet size

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL