godo

package module
Version: v1.81.0 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2022 License: BSD-3-Clause, MIT Imports: 19 Imported by: 984

README

Godo

Build Status GoDoc

Godo is a Go client library for accessing the DigitalOcean V2 API.

You can view the client API docs here: http://godoc.org/github.com/digitalocean/godo

You can view DigitalOcean API docs here: https://docs.digitalocean.com/reference/api/api-reference/

Install

go get github.com/digitalocean/godo@vX.Y.Z

where X.Y.Z is the version you need.

or

go get github.com/digitalocean/godo

for non Go modules usage or latest version.

Usage

import "github.com/digitalocean/godo"

Create a new DigitalOcean client, then use the exposed services to access different parts of the DigitalOcean API.

Authentication

Currently, Personal Access Token (PAT) is the only method of authenticating with the API. You can manage your tokens at the DigitalOcean Control Panel Applications Page.

You can then use your token to create a new client:

package main

import (
    "github.com/digitalocean/godo"
)

func main() {
    client := godo.NewFromToken("my-digitalocean-api-token")
}

If you need to provide a context.Context to your new client, you should use godo.NewClient to manually construct a client instead.

Examples

To create a new Droplet:

dropletName := "super-cool-droplet"

createRequest := &godo.DropletCreateRequest{
    Name:   dropletName,
    Region: "nyc3",
    Size:   "s-1vcpu-1gb",
    Image: godo.DropletCreateImage{
        Slug: "ubuntu-20-04-x64",
    },
}

ctx := context.TODO()

newDroplet, _, err := client.Droplets.Create(ctx, createRequest)

if err != nil {
    fmt.Printf("Something bad happened: %s\n\n", err)
    return err
}
Pagination

If a list of items is paginated by the API, you must request pages individually. For example, to fetch all Droplets:

func DropletList(ctx context.Context, client *godo.Client) ([]godo.Droplet, error) {
    // create a list to hold our droplets
    list := []godo.Droplet{}

    // create options. initially, these will be blank
    opt := &godo.ListOptions{}
    for {
        droplets, resp, err := client.Droplets.List(ctx, opt)
        if err != nil {
            return nil, err
        }

        // append the current page's droplets to our list
        list = append(list, droplets...)

        // if we are at the last page, break out the for loop
        if resp.Links == nil || resp.Links.IsLastPage() {
            break
        }

        page, err := resp.Links.CurrentPage()
        if err != nil {
            return nil, err
        }

        // set the page we want for the next request
        opt.Page = page + 1
    }

    return list, nil
}

Some endpoints offer token based pagination. For example, to fetch all Registry Repositories:

func ListRepositoriesV2(ctx context.Context, client *godo.Client, registryName string) ([]*godo.RepositoryV2, error) {
    // create a list to hold our registries
    list := []*godo.RepositoryV2{}

    // create options. initially, these will be blank
    opt := &godo.TokenListOptions{}
    for {
        repositories, resp, err := client.Registry.ListRepositoriesV2(ctx, registryName, opt)
        if err != nil {
            return nil, err
        }

        // append the current page's registries to our list
        list = append(list, repositories...)

        // if we are at the last page, break out the for loop
        if resp.Links == nil || resp.Links.IsLastPage() {
            break
        }

        // grab the next page token
        nextPageToken, err := resp.Links.NextPageToken()
        if err != nil {
            return nil, err
        }

        // provide the next page token for the next request
        opt.Token = nextPageToken
    }

    return list, nil
}

Versioning

Each version of the client is tagged and the version is updated accordingly.

To see the list of past versions, run git tag.

Documentation

For a comprehensive list of examples, check out the API documentation.

For details on all the functionality in this library, see the GoDoc documentation.

Contributing

We love pull requests! Please see the contribution guidelines.

Documentation

Overview

Package godo is the DigitalOcean API v2 client for Go.

Index

Constants

View Source
const (

	// ActionInProgress is an in progress action status
	ActionInProgress = "in-progress"

	//ActionCompleted is a completed action status
	ActionCompleted = "completed"
)
View Source
const (
	SQLModeAllowInvalidDates     = "ALLOW_INVALID_DATES"
	SQLModeANSIQuotes            = "ANSI_QUOTES"
	SQLModeHighNotPrecedence     = "HIGH_NOT_PRECEDENCE"
	SQLModeIgnoreSpace           = "IGNORE_SPACE"
	SQLModeNoAuthCreateUser      = "NO_AUTO_CREATE_USER"
	SQLModeNoAutoValueOnZero     = "NO_AUTO_VALUE_ON_ZERO"
	SQLModeNoBackslashEscapes    = "NO_BACKSLASH_ESCAPES"
	SQLModeNoDirInCreate         = "NO_DIR_IN_CREATE"
	SQLModeNoEngineSubstitution  = "NO_ENGINE_SUBSTITUTION"
	SQLModeNoFieldOptions        = "NO_FIELD_OPTIONS"
	SQLModeNoKeyOptions          = "NO_KEY_OPTIONS"
	SQLModeNoTableOptions        = "NO_TABLE_OPTIONS"
	SQLModeNoUnsignedSubtraction = "NO_UNSIGNED_SUBTRACTION"
	SQLModeNoZeroDate            = "NO_ZERO_DATE"
	SQLModeNoZeroInDate          = "NO_ZERO_IN_DATE"
	SQLModeOnlyFullGroupBy       = "ONLY_FULL_GROUP_BY"
	SQLModePadCharToFullLength   = "PAD_CHAR_TO_FULL_LENGTH"
	SQLModePipesAsConcat         = "PIPES_AS_CONCAT"
	SQLModeRealAsFloat           = "REAL_AS_FLOAT"
	SQLModeStrictAllTables       = "STRICT_ALL_TABLES"
	SQLModeStrictTransTables     = "STRICT_TRANS_TABLES"
	SQLModeANSI                  = "ANSI"
	SQLModeDB2                   = "DB2"
	SQLModeMaxDB                 = "MAXDB"
	SQLModeMSSQL                 = "MSSQL"
	SQLModeMYSQL323              = "MYSQL323"
	SQLModeMYSQL40               = "MYSQL40"
	SQLModeOracle                = "ORACLE"
	SQLModePostgreSQL            = "POSTGRESQL"
	SQLModeTraditional           = "TRADITIONAL"
)

SQL Mode constants allow for MySQL-specific SQL flavor configuration.

View Source
const (
	SQLAuthPluginNative      = "mysql_native_password"
	SQLAuthPluginCachingSHA2 = "caching_sha2_password"
)

SQL Auth constants allow for MySQL-specific user auth plugins

View Source
const (
	EvictionPolicyNoEviction     = "noeviction"
	EvictionPolicyAllKeysLRU     = "allkeys_lru"
	EvictionPolicyAllKeysRandom  = "allkeys_random"
	EvictionPolicyVolatileLRU    = "volatile_lru"
	EvictionPolicyVolatileRandom = "volatile_random"
	EvictionPolicyVolatileTTL    = "volatile_ttl"
)

Redis eviction policies supported by the managed Redis product.

View Source
const (
	KubernetesClusterStatusProvisioning = KubernetesClusterStatusState("provisioning")
	KubernetesClusterStatusRunning      = KubernetesClusterStatusState("running")
	KubernetesClusterStatusDegraded     = KubernetesClusterStatusState("degraded")
	KubernetesClusterStatusError        = KubernetesClusterStatusState("error")
	KubernetesClusterStatusDeleted      = KubernetesClusterStatusState("deleted")
	KubernetesClusterStatusUpgrading    = KubernetesClusterStatusState("upgrading")
	KubernetesClusterStatusInvalid      = KubernetesClusterStatusState("invalid")
)

Possible states for a cluster.

View Source
const (
	DropletCPUUtilizationPercent        = "v1/insights/droplet/cpu"
	DropletMemoryUtilizationPercent     = "v1/insights/droplet/memory_utilization_percent"
	DropletDiskUtilizationPercent       = "v1/insights/droplet/disk_utilization_percent"
	DropletPublicOutboundBandwidthRate  = "v1/insights/droplet/public_outbound_bandwidth"
	DropletPublicInboundBandwidthRate   = "v1/insights/droplet/public_inbound_bandwidth"
	DropletPrivateOutboundBandwidthRate = "v1/insights/droplet/private_outbound_bandwidth"
	DropletPrivateInboundBandwidthRate  = "v1/insights/droplet/private_inbound_bandwidth"
	DropletDiskReadRate                 = "v1/insights/droplet/disk_read"
	DropletDiskWriteRate                = "v1/insights/droplet/disk_write"
	DropletOneMinuteLoadAverage         = "v1/insights/droplet/load_1"
	DropletFiveMinuteLoadAverage        = "v1/insights/droplet/load_5"
	DropletFifteenMinuteLoadAverage     = "v1/insights/droplet/load_15"

	LoadBalancerCPUUtilizationPercent        = "v1/insights/lbaas/avg_cpu_utilization_percent"
	LoadBalancerConnectionUtilizationPercent = "v1/insights/lbaas/connection_utilization_percent"
	LoadBalancerDropletHealth                = "v1/insights/lbaas/droplet_health"
	LoadBalancerTLSUtilizationPercent        = "v1/insights/lbaas/tls_connections_per_second_utilization_percent"
)
View Source
const (
	// GCTypeUntaggedManifestsOnly indicates that a garbage collection should
	// only delete untagged manifests.
	GCTypeUntaggedManifestsOnly = GarbageCollectionType("untagged manifests only")
	// GCTypeUnreferencedBlobsOnly indicates that a garbage collection should
	// only delete unreferenced blobs.
	GCTypeUnreferencedBlobsOnly = GarbageCollectionType("unreferenced blobs only")
	// GCTypeUntaggedManifestsAndUnreferencedBlobs indicates that a garbage
	// collection should delete both untagged manifests and unreferenced blobs.
	GCTypeUntaggedManifestsAndUnreferencedBlobs = GarbageCollectionType("untagged manifests and unreferenced blobs")
)
View Source
const (
	// DefaultProject is the ID you should use if you are working with your
	// default project.
	DefaultProject = "default"
)
View Source
const (

	// RegistryServer is the hostname of the DigitalOcean registry service
	RegistryServer = "registry.digitalocean.com"
)

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

Bool is a helper routine that allocates a new bool value to store v and returns a pointer to it.

func CheckResponse

func CheckResponse(r *http.Response) error

CheckResponse checks the API response for errors, and returns them if present. A response is considered an error if it has a status code outside the 200 range. API error responses are expected to have either no response body, or a JSON response body that maps to ErrorResponse. Any other response body will be silently ignored. If the API error response does not include the request ID in its body, the one from its header will be used.

func DoRequest added in v1.2.0

func DoRequest(ctx context.Context, req *http.Request) (*http.Response, error)

DoRequest submits an HTTP request.

func DoRequestWithClient added in v1.2.0

func DoRequestWithClient(
	ctx context.Context,
	client *http.Client,
	req *http.Request) (*http.Response, error)

DoRequestWithClient submits an HTTP request using the specified client.

func Int

func Int(v int) *int

Int is a helper routine that allocates a new int32 value to store v and returns a pointer to it, but unlike Int32 its argument value is an int.

func StreamToString

func StreamToString(stream io.Reader) string

StreamToString converts a reader to a string

func String

func String(v string) *string

String is a helper routine that allocates a new string value to store v and returns a pointer to it.

func Stringify

func Stringify(message interface{}) string

Stringify attempts to create a string representation of DigitalOcean types

func ToURN added in v1.6.0

func ToURN(resourceType string, id interface{}) string

ToURN converts the resource type and ID to a valid DO API URN.

Types

type Account added in v0.9.0

type Account struct {
	DropletLimit    int       `json:"droplet_limit,omitempty"`
	FloatingIPLimit int       `json:"floating_ip_limit,omitempty"`
	ReservedIPLimit int       `json:"reserved_ip_limit,omitempty"`
	VolumeLimit     int       `json:"volume_limit,omitempty"`
	Email           string    `json:"email,omitempty"`
	UUID            string    `json:"uuid,omitempty"`
	EmailVerified   bool      `json:"email_verified,omitempty"`
	Status          string    `json:"status,omitempty"`
	StatusMessage   string    `json:"status_message,omitempty"`
	Team            *TeamInfo `json:"team,omitempty"`
}

Account represents a DigitalOcean Account

func (Account) String added in v0.9.0

func (r Account) String() string

type AccountService added in v0.9.0

type AccountService interface {
	Get(context.Context) (*Account, *Response, error)
}

AccountService is an interface for interfacing with the Account endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Account

type AccountServiceOp added in v0.9.0

type AccountServiceOp struct {
	// contains filtered or unexported fields
}

AccountServiceOp handles communication with the Account related methods of the DigitalOcean API.

func (*AccountServiceOp) Get added in v0.9.0

Get DigitalOcean account info

type Action

type Action struct {
	ID           int        `json:"id"`
	Status       string     `json:"status"`
	Type         string     `json:"type"`
	StartedAt    *Timestamp `json:"started_at"`
	CompletedAt  *Timestamp `json:"completed_at"`
	ResourceID   int        `json:"resource_id"`
	ResourceType string     `json:"resource_type"`
	Region       *Region    `json:"region,omitempty"`
	RegionSlug   string     `json:"region_slug,omitempty"`
}

Action represents a DigitalOcean Action

func (Action) String

func (a Action) String() string

type ActionRequest

type ActionRequest map[string]interface{}

ActionRequest represents DigitalOcean Action Request

type ActionsService

type ActionsService interface {
	List(context.Context, *ListOptions) ([]Action, *Response, error)
	Get(context.Context, int) (*Action, *Response, error)
}

ActionsService handles communication with action related methods of the DigitalOcean API: https://docs.digitalocean.com/reference/api/api-reference/#tag/Actions

type ActionsServiceOp added in v0.3.0

type ActionsServiceOp struct {
	// contains filtered or unexported fields
}

ActionsServiceOp handles communication with the image action related methods of the DigitalOcean API.

func (*ActionsServiceOp) Get added in v0.3.0

func (s *ActionsServiceOp) Get(ctx context.Context, id int) (*Action, *Response, error)

Get an action by ID.

func (*ActionsServiceOp) List added in v0.3.0

func (s *ActionsServiceOp) List(ctx context.Context, opt *ListOptions) ([]Action, *Response, error)

List all actions

type Address added in v1.31.0

type Address struct {
	AddressLine1    string    `json:"address_line1"`
	AddressLine2    string    `json:"address_line2"`
	City            string    `json:"city"`
	Region          string    `json:"region"`
	PostalCode      string    `json:"postal_code"`
	CountryISO2Code string    `json:"country_iso2_code"`
	CreatedAt       time.Time `json:"created_at"`
	UpdatedAt       time.Time `json:"updated_at"`
}

Address represents the billing address of a customer

type AlertDestinationUpdateRequest added in v1.65.0

type AlertDestinationUpdateRequest struct {
	Emails        []string                `json:"emails"`
	SlackWebhooks []*AppAlertSlackWebhook `json:"slack_webhooks"`
}

AlertDestinationUpdateRequest represents a request to update alert destinations.

type AlertPolicy added in v1.64.0

type AlertPolicy struct {
	UUID        string          `json:"uuid"`
	Type        string          `json:"type"`
	Description string          `json:"description"`
	Compare     AlertPolicyComp `json:"compare"`
	Value       float32         `json:"value"`
	Window      string          `json:"window"`
	Entities    []string        `json:"entities"`
	Tags        []string        `json:"tags"`
	Alerts      Alerts          `json:"alerts"`
	Enabled     bool            `json:"enabled"`
}

AlertPolicy represents a DigitalOcean alert policy

type AlertPolicyComp added in v1.64.0

type AlertPolicyComp string

AlertPolicyComp represents an alert policy comparison operation

const (
	// GreaterThan is the comparison >
	GreaterThan AlertPolicyComp = "GreaterThan"
	// LessThan is the comparison <
	LessThan AlertPolicyComp = "LessThan"
)

type AlertPolicyCreateRequest added in v1.64.0

type AlertPolicyCreateRequest struct {
	Type        string          `json:"type"`
	Description string          `json:"description"`
	Compare     AlertPolicyComp `json:"compare"`
	Value       float32         `json:"value"`
	Window      string          `json:"window"`
	Entities    []string        `json:"entities"`
	Tags        []string        `json:"tags"`
	Alerts      Alerts          `json:"alerts"`
	Enabled     *bool           `json:"enabled"`
}

AlertPolicyCreateRequest holds the info for creating a new alert policy

type AlertPolicyUpdateRequest added in v1.64.0

type AlertPolicyUpdateRequest struct {
	Type        string          `json:"type"`
	Description string          `json:"description"`
	Compare     AlertPolicyComp `json:"compare"`
	Value       float32         `json:"value"`
	Window      string          `json:"window"`
	Entities    []string        `json:"entities"`
	Tags        []string        `json:"tags"`
	Alerts      Alerts          `json:"alerts"`
	Enabled     *bool           `json:"enabled"`
}

AlertPolicyUpdateRequest holds the info for updating an existing alert policy

type Alerts added in v1.64.0

type Alerts struct {
	Slack []SlackDetails `json:"slack"`
	Email []string       `json:"email"`
}

Alerts represents the alerts section of an alert policy

type App added in v1.39.0

type App struct {
	ID                      string       `json:"id,omitempty"`
	OwnerUUID               string       `json:"owner_uuid,omitempty"`
	Spec                    *AppSpec     `json:"spec"`
	LastDeploymentActiveAt  time.Time    `json:"last_deployment_active_at,omitempty"`
	DefaultIngress          string       `json:"default_ingress,omitempty"`
	CreatedAt               time.Time    `json:"created_at,omitempty"`
	UpdatedAt               time.Time    `json:"updated_at,omitempty"`
	ActiveDeployment        *Deployment  `json:"active_deployment,omitempty"`
	InProgressDeployment    *Deployment  `json:"in_progress_deployment,omitempty"`
	LastDeploymentCreatedAt time.Time    `json:"last_deployment_created_at,omitempty"`
	LiveURL                 string       `json:"live_url,omitempty"`
	Region                  *AppRegion   `json:"region,omitempty"`
	TierSlug                string       `json:"tier_slug,omitempty"`
	LiveURLBase             string       `json:"live_url_base,omitempty"`
	LiveDomain              string       `json:"live_domain,omitempty"`
	Domains                 []*AppDomain `json:"domains,omitempty"`
	PinnedDeployment        *Deployment  `json:"pinned_deployment,omitempty"`
}

App An application's configuration and status.

type AppAlert added in v1.65.0

type AppAlert struct {
	// The ID of the alert. This will be auto-generated by App Platform once the spec is submitted.
	ID string `json:"id,omitempty"`
	// Name of the component this alert applies to.
	ComponentName string        `json:"component_name,omitempty"`
	Spec          *AppAlertSpec `json:"spec,omitempty"`
	// Email destinations for the alert when triggered.
	Emails []string `json:"emails,omitempty"`
	// Slack webhook destinations for the alert when triggered.
	SlackWebhooks []*AppAlertSlackWebhook `json:"slack_webhooks,omitempty"`
	Phase         AppAlertPhase           `json:"phase,omitempty"`
	Progress      *AppAlertProgress       `json:"progress,omitempty"`
}

AppAlert Represents an alert configured for an app or component.

type AppAlertPhase added in v1.65.0

type AppAlertPhase string

AppAlertPhase the model 'AppAlertPhase'

const (
	AppAlertPhase_Unknown     AppAlertPhase = "UNKNOWN"
	AppAlertPhase_Pending     AppAlertPhase = "PENDING"
	AppAlertPhase_Configuring AppAlertPhase = "CONFIGURING"
	AppAlertPhase_Active      AppAlertPhase = "ACTIVE"
	AppAlertPhase_Error       AppAlertPhase = "ERROR"
)

List of AppAlertPhase

type AppAlertProgress added in v1.65.0

type AppAlertProgress struct {
	Steps []*AppAlertProgressStep `json:"steps,omitempty"`
}

AppAlertProgress struct for AppAlertProgress

type AppAlertProgressStep added in v1.65.0

type AppAlertProgressStep struct {
	Name      string                      `json:"name,omitempty"`
	Status    AppAlertProgressStepStatus  `json:"status,omitempty"`
	Steps     []*AppAlertProgressStep     `json:"steps,omitempty"`
	StartedAt time.Time                   `json:"started_at,omitempty"`
	EndedAt   time.Time                   `json:"ended_at,omitempty"`
	Reason    *AppAlertProgressStepReason `json:"reason,omitempty"`
}

AppAlertProgressStep struct for AppAlertProgressStep

type AppAlertProgressStepReason added in v1.65.0

type AppAlertProgressStepReason struct {
	Code    string `json:"code,omitempty"`
	Message string `json:"message,omitempty"`
}

AppAlertProgressStepReason struct for AppAlertProgressStepReason

type AppAlertProgressStepStatus added in v1.65.0

type AppAlertProgressStepStatus string

AppAlertProgressStepStatus the model 'AppAlertProgressStepStatus'

const (
	AppAlertProgressStepStatus_Unknown AppAlertProgressStepStatus = "UNKNOWN"
	AppAlertProgressStepStatus_Pending AppAlertProgressStepStatus = "PENDING"
	AppAlertProgressStepStatus_Running AppAlertProgressStepStatus = "RUNNING"
	AppAlertProgressStepStatus_Error   AppAlertProgressStepStatus = "ERROR"
	AppAlertProgressStepStatus_Success AppAlertProgressStepStatus = "SUCCESS"
)

List of AppAlertProgressStepStatus

type AppAlertSlackWebhook added in v1.65.0

type AppAlertSlackWebhook struct {
	// URL for the Slack webhook. The value will be encrypted on the app spec after it is submitted.
	URL string `json:"url,omitempty"`
	// Name of the Slack channel.
	Channel string `json:"channel,omitempty"`
}

AppAlertSlackWebhook Configuration of a Slack alerting destination.

type AppAlertSpec added in v1.65.0

type AppAlertSpec struct {
	Rule AppAlertSpecRule `json:"rule,omitempty"`
	// Determines whether or not the alert is disabled.
	Disabled bool                 `json:"disabled,omitempty"`
	Operator AppAlertSpecOperator `json:"operator,omitempty"`
	// The meaning is dependent upon the rule. It is used in conjunction with the operator and window to determine when an alert should trigger.
	Value  float32            `json:"value,omitempty"`
	Window AppAlertSpecWindow `json:"window,omitempty"`
}

AppAlertSpec Configuration of an alert for the app or a individual component.

type AppAlertSpecOperator added in v1.65.0

type AppAlertSpecOperator string

AppAlertSpecOperator the model 'AppAlertSpecOperator'

const (
	AppAlertSpecOperator_UnspecifiedOperator AppAlertSpecOperator = "UNSPECIFIED_OPERATOR"
	AppAlertSpecOperator_GreaterThan         AppAlertSpecOperator = "GREATER_THAN"
	AppAlertSpecOperator_LessThan            AppAlertSpecOperator = "LESS_THAN"
)

List of AppAlertSpecOperator

type AppAlertSpecRule added in v1.65.0

type AppAlertSpecRule string

AppAlertSpecRule - CPU_UTILIZATION: Represents CPU for a given container instance. Only applicable at the component level. - MEM_UTILIZATION: Represents RAM for a given container instance. Only applicable at the component level. - RESTART_COUNT: Represents restart count for a given container instance. Only applicable at the component level. - DEPLOYMENT_FAILED: Represents whether a deployment has failed. Only applicable at the app level. - DEPLOYMENT_LIVE: Represents whether a deployment has succeeded. Only applicable at the app level. - DOMAIN_FAILED: Represents whether a domain configuration has failed. Only applicable at the app level. - DOMAIN_LIVE: Represents whether a domain configuration has succeeded. Only applicable at the app level. - FUNCTIONS_ACTIVATION_COUNT: Represents an activation count for a given functions instance. Only applicable to functions components. - FUNCTIONS_AVERAGE_DURATION_MS: Represents the average duration for function runtimes. Only applicable to functions components. - FUNCTIONS_ERROR_RATE_PER_MINUTE: Represents an error rate per minute for a given functions instance. Only applicable to functions components. - FUNCTIONS_AVERAGE_WAIT_TIME_MS: Represents the average wait time for functions. Only applicable to functions components. - FUNCTIONS_ERROR_COUNT: Represents an error count for a given functions instance. Only applicable to functions components. - FUNCTIONS_GB_RATE_PER_SECOND: Represents the rate of memory consumption (GB x seconds) for functions. Only applicable to functions components.

const (
	AppAlertSpecRule_UnspecifiedRule             AppAlertSpecRule = "UNSPECIFIED_RULE"
	AppAlertSpecRule_CPUUtilization              AppAlertSpecRule = "CPU_UTILIZATION"
	AppAlertSpecRule_MemUtilization              AppAlertSpecRule = "MEM_UTILIZATION"
	AppAlertSpecRule_RestartCount                AppAlertSpecRule = "RESTART_COUNT"
	AppAlertSpecRule_DeploymentFailed            AppAlertSpecRule = "DEPLOYMENT_FAILED"
	AppAlertSpecRule_DeploymentLive              AppAlertSpecRule = "DEPLOYMENT_LIVE"
	AppAlertSpecRule_DomainFailed                AppAlertSpecRule = "DOMAIN_FAILED"
	AppAlertSpecRule_DomainLive                  AppAlertSpecRule = "DOMAIN_LIVE"
	AppAlertSpecRule_FunctionsActivationCount    AppAlertSpecRule = "FUNCTIONS_ACTIVATION_COUNT"
	AppAlertSpecRule_FunctionsAverageDurationMS  AppAlertSpecRule = "FUNCTIONS_AVERAGE_DURATION_MS"
	AppAlertSpecRule_FunctionsErrorRatePerMinute AppAlertSpecRule = "FUNCTIONS_ERROR_RATE_PER_MINUTE"
	AppAlertSpecRule_FunctionsAverageWaitTimeMs  AppAlertSpecRule = "FUNCTIONS_AVERAGE_WAIT_TIME_MS"
	AppAlertSpecRule_FunctionsErrorCount         AppAlertSpecRule = "FUNCTIONS_ERROR_COUNT"
	AppAlertSpecRule_FunctionsGBRatePerSecond    AppAlertSpecRule = "FUNCTIONS_GB_RATE_PER_SECOND"
)

List of AppAlertSpecRule

type AppAlertSpecWindow added in v1.65.0

type AppAlertSpecWindow string

AppAlertSpecWindow the model 'AppAlertSpecWindow'

const (
	AppAlertSpecWindow_UnspecifiedWindow AppAlertSpecWindow = "UNSPECIFIED_WINDOW"
	AppAlertSpecWindow_FiveMinutes       AppAlertSpecWindow = "FIVE_MINUTES"
	AppAlertSpecWindow_TenMinutes        AppAlertSpecWindow = "TEN_MINUTES"
	AppAlertSpecWindow_ThirtyMinutes     AppAlertSpecWindow = "THIRTY_MINUTES"
	AppAlertSpecWindow_OneHour           AppAlertSpecWindow = "ONE_HOUR"
)

List of AppAlertSpecWindow

type AppCORSPolicy added in v1.48.0

type AppCORSPolicy struct {
	// The set of allowed CORS origins. This configures the Access-Control-Allow-Origin header.
	AllowOrigins []*AppStringMatch `json:"allow_origins,omitempty"`
	// The set of allowed HTTP methods. This configures the Access-Control-Allow-Methods header.
	AllowMethods []string `json:"allow_methods,omitempty"`
	// The set of allowed HTTP request headers. This configures the Access-Control-Allow-Headers header.
	AllowHeaders []string `json:"allow_headers,omitempty"`
	// The set of HTTP response headers that browsers are allowed to access. This configures the Access-Control-Expose-Headers  header.
	ExposeHeaders []string `json:"expose_headers,omitempty"`
	// An optional duration specifying how long browsers can cache the results of a preflight request. This configures the Access-Control-Max-Age header. Example: `5h30m`.
	MaxAge string `json:"max_age,omitempty"`
	// Whether browsers should expose the response to the client-side JavaScript code when the request's credentials mode is `include`. This configures the Access-Control-Allow-Credentials header.
	AllowCredentials bool `json:"allow_credentials,omitempty"`
}

AppCORSPolicy struct for AppCORSPolicy

type AppCreateRequest added in v1.39.0

type AppCreateRequest struct {
	Spec *AppSpec `json:"spec"`
}

AppCreateRequest struct for AppCreateRequest

type AppDatabaseSpec added in v1.39.0

type AppDatabaseSpec struct {
	// The name. Must be unique across all components within the same app.
	Name    string                `json:"name"`
	Engine  AppDatabaseSpecEngine `json:"engine,omitempty"`
	Version string                `json:"version,omitempty"`
	// Deprecated.
	Size string `json:"size,omitempty"`
	// Deprecated.
	NumNodes int64 `json:"num_nodes,omitempty"`
	// Whether this is a production or dev database.
	Production bool `json:"production,omitempty"`
	// The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned.
	ClusterName string `json:"cluster_name,omitempty"`
	// The name of the MySQL or PostgreSQL database to configure.
	DBName string `json:"db_name,omitempty"`
	// The name of the MySQL or PostgreSQL user to configure.
	DBUser string `json:"db_user,omitempty"`
}

AppDatabaseSpec struct for AppDatabaseSpec

type AppDatabaseSpecEngine added in v1.39.0

type AppDatabaseSpecEngine string

AppDatabaseSpecEngine the model 'AppDatabaseSpecEngine'

const (
	AppDatabaseSpecEngine_Unset   AppDatabaseSpecEngine = "UNSET"
	AppDatabaseSpecEngine_MySQL   AppDatabaseSpecEngine = "MYSQL"
	AppDatabaseSpecEngine_PG      AppDatabaseSpecEngine = "PG"
	AppDatabaseSpecEngine_Redis   AppDatabaseSpecEngine = "REDIS"
	AppDatabaseSpecEngine_MongoDB AppDatabaseSpecEngine = "MONGODB"
)

List of AppDatabaseSpecEngine

type AppDomain added in v1.56.0

type AppDomain struct {
	ID         string               `json:"id,omitempty"`
	Spec       *AppDomainSpec       `json:"spec,omitempty"`
	Phase      AppDomainPhase       `json:"phase,omitempty"`
	Progress   *AppDomainProgress   `json:"progress,omitempty"`
	Validation *AppDomainValidation `json:"validation,omitempty"`
}

AppDomain struct for AppDomain

type AppDomainPhase added in v1.56.0

type AppDomainPhase string

AppDomainPhase the model 'AppDomainPhase'

const (
	AppJobSpecKindPHASE_Unknown     AppDomainPhase = "UNKNOWN"
	AppJobSpecKindPHASE_Pending     AppDomainPhase = "PENDING"
	AppJobSpecKindPHASE_Configuring AppDomainPhase = "CONFIGURING"
	AppJobSpecKindPHASE_Active      AppDomainPhase = "ACTIVE"
	AppJobSpecKindPHASE_Error       AppDomainPhase = "ERROR"
)

List of AppDomainPhase

type AppDomainProgress added in v1.56.0

type AppDomainProgress struct {
	Steps []*AppDomainProgressStep `json:"steps,omitempty"`
}

AppDomainProgress struct for AppDomainProgress

type AppDomainProgressStep added in v1.56.0

type AppDomainProgressStep struct {
	Name      string                       `json:"name,omitempty"`
	Status    AppDomainProgressStepStatus  `json:"status,omitempty"`
	Steps     []*AppDomainProgressStep     `json:"steps,omitempty"`
	StartedAt time.Time                    `json:"started_at,omitempty"`
	EndedAt   time.Time                    `json:"ended_at,omitempty"`
	Reason    *AppDomainProgressStepReason `json:"reason,omitempty"`
}

AppDomainProgressStep struct for AppDomainProgressStep

type AppDomainProgressStepReason added in v1.56.0

type AppDomainProgressStepReason struct {
	Code    string `json:"code,omitempty"`
	Message string `json:"message,omitempty"`
}

AppDomainProgressStepReason struct for AppDomainProgressStepReason

type AppDomainProgressStepStatus added in v1.56.0

type AppDomainProgressStepStatus string

AppDomainProgressStepStatus the model 'AppDomainProgressStepStatus'

const (
	AppJobSpecKindProgressStepStatus_Unknown AppDomainProgressStepStatus = "UNKNOWN"
	AppJobSpecKindProgressStepStatus_Pending AppDomainProgressStepStatus = "PENDING"
	AppJobSpecKindProgressStepStatus_Running AppDomainProgressStepStatus = "RUNNING"
	AppJobSpecKindProgressStepStatus_Error   AppDomainProgressStepStatus = "ERROR"
	AppJobSpecKindProgressStepStatus_Success AppDomainProgressStepStatus = "SUCCESS"
)

List of AppDomainProgressStepStatus

type AppDomainSpec added in v1.39.0

type AppDomainSpec struct {
	Domain   string            `json:"domain"`
	Type     AppDomainSpecType `json:"type,omitempty"`
	Wildcard bool              `json:"wildcard,omitempty"`
	// Optional. If the domain uses DigitalOcean DNS and you would like App Platform to automatically manage it for you, set this to the name of the domain on your account.  For example, If the domain you are adding is `app.domain.com`, the zone could be `domain.com`.
	Zone        string `json:"zone,omitempty"`
	Certificate string `json:"certificate,omitempty"`
	// Optional. The minimum version of TLS a client application can use to access resources for the domain.  Must be one of the following values wrapped within quotations: `\"1.2\"` or `\"1.3\"`.
	MinimumTLSVersion string `json:"minimum_tls_version,omitempty"`
}

AppDomainSpec struct for AppDomainSpec

type AppDomainSpecType added in v1.43.0

type AppDomainSpecType string

AppDomainSpecType the model 'AppDomainSpecType'

const (
	AppDomainSpecType_Unspecified AppDomainSpecType = "UNSPECIFIED"
	AppDomainSpecType_Default     AppDomainSpecType = "DEFAULT"
	AppDomainSpecType_Primary     AppDomainSpecType = "PRIMARY"
	AppDomainSpecType_Alias       AppDomainSpecType = "ALIAS"
)

List of AppDomainSpecType

type AppDomainValidation added in v1.75.0

type AppDomainValidation struct {
	TXTName  string `json:"txt_name,omitempty"`
	TXTValue string `json:"txt_value,omitempty"`
}

AppDomainValidation struct for AppDomainValidation

type AppFunctionsSpec added in v1.74.0

type AppFunctionsSpec struct {
	// The name. Must be unique across all components within the same app.
	Name   string            `json:"name"`
	Git    *GitSourceSpec    `json:"git,omitempty"`
	GitHub *GitHubSourceSpec `json:"github,omitempty"`
	GitLab *GitLabSourceSpec `json:"gitlab,omitempty"`
	// An optional path to the working directory to use for the build. Must be relative to the root of the repo.
	SourceDir string `json:"source_dir,omitempty"`
	// A list of environment variables made available to the component.
	Envs []*AppVariableDefinition `json:"envs,omitempty"`
	// A list of HTTP routes that should be routed to this component.
	Routes []*AppRouteSpec `json:"routes,omitempty"`
	// A list of configured alerts the user has enabled.
	Alerts []*AppAlertSpec `json:"alerts,omitempty"`
	// A list of configured log forwarding destinations.
	LogDestinations []*AppLogDestinationSpec `json:"log_destinations,omitempty"`
	CORS            *AppCORSPolicy           `json:"cors,omitempty"`
}

AppFunctionsSpec struct for AppFunctionsSpec

type AppIngressSpec added in v1.77.0

type AppIngressSpec struct {
	LoadBalancer     AppIngressSpecLoadBalancer `json:"load_balancer,omitempty"`
	LoadBalancerSize int64                      `json:"load_balancer_size,omitempty"`
}

AppIngressSpec struct for AppIngressSpec

type AppIngressSpecLoadBalancer added in v1.77.0

type AppIngressSpecLoadBalancer string

AppIngressSpecLoadBalancer the model 'AppIngressSpecLoadBalancer'

const (
	AppIngressSpecLoadBalancer_Unknown      AppIngressSpecLoadBalancer = "UNKNOWN"
	AppIngressSpecLoadBalancer_DigitalOcean AppIngressSpecLoadBalancer = "DIGITALOCEAN"
)

List of AppIngressSpecLoadBalancer

type AppInstanceSize added in v1.48.0

type AppInstanceSize struct {
	Name            string                 `json:"name,omitempty"`
	Slug            string                 `json:"slug,omitempty"`
	CPUType         AppInstanceSizeCPUType `json:"cpu_type,omitempty"`
	CPUs            string                 `json:"cpus,omitempty"`
	MemoryBytes     string                 `json:"memory_bytes,omitempty"`
	USDPerMonth     string                 `json:"usd_per_month,omitempty"`
	USDPerSecond    string                 `json:"usd_per_second,omitempty"`
	TierSlug        string                 `json:"tier_slug,omitempty"`
	TierUpgradeTo   string                 `json:"tier_upgrade_to,omitempty"`
	TierDowngradeTo string                 `json:"tier_downgrade_to,omitempty"`
}

AppInstanceSize struct for AppInstanceSize

type AppInstanceSizeCPUType added in v1.48.0

type AppInstanceSizeCPUType string

AppInstanceSizeCPUType the model 'AppInstanceSizeCPUType'

const (
	AppInstanceSizeCPUType_Unspecified AppInstanceSizeCPUType = "UNSPECIFIED"
	AppInstanceSizeCPUType_Shared      AppInstanceSizeCPUType = "SHARED"
	AppInstanceSizeCPUType_Dedicated   AppInstanceSizeCPUType = "DEDICATED"
)

List of AppInstanceSizeCPUType

type AppJobSpec added in v1.43.0

type AppJobSpec struct {
	// The name. Must be unique across all components within the same app.
	Name   string            `json:"name"`
	Git    *GitSourceSpec    `json:"git,omitempty"`
	GitHub *GitHubSourceSpec `json:"github,omitempty"`
	Image  *ImageSourceSpec  `json:"image,omitempty"`
	GitLab *GitLabSourceSpec `json:"gitlab,omitempty"`
	// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
	DockerfilePath string `json:"dockerfile_path,omitempty"`
	// An optional build command to run while building this component from source.
	BuildCommand string `json:"build_command,omitempty"`
	// An optional run command to override the component's default.
	RunCommand string `json:"run_command,omitempty"`
	// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
	SourceDir string `json:"source_dir,omitempty"`
	// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
	EnvironmentSlug string `json:"environment_slug,omitempty"`
	// A list of environment variables made available to the component.
	Envs []*AppVariableDefinition `json:"envs,omitempty"`
	// The instance size to use for this component.
	InstanceSizeSlug string         `json:"instance_size_slug,omitempty"`
	InstanceCount    int64          `json:"instance_count,omitempty"`
	Kind             AppJobSpecKind `json:"kind,omitempty"`
	// A list of configured alerts which apply to the component.
	Alerts []*AppAlertSpec `json:"alerts,omitempty"`
	// A list of configured log forwarding destinations.
	LogDestinations []*AppLogDestinationSpec `json:"log_destinations,omitempty"`
}

AppJobSpec struct for AppJobSpec

type AppJobSpecKind added in v1.48.0

type AppJobSpecKind string

AppJobSpecKind - UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. - PRE_DEPLOY: Indicates a job that runs before an app deployment. - POST_DEPLOY: Indicates a job that runs after an app deployment. - FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy.

const (
	AppJobSpecKind_Unspecified  AppJobSpecKind = "UNSPECIFIED"
	AppJobSpecKind_PreDeploy    AppJobSpecKind = "PRE_DEPLOY"
	AppJobSpecKind_PostDeploy   AppJobSpecKind = "POST_DEPLOY"
	AppJobSpecKind_FailedDeploy AppJobSpecKind = "FAILED_DEPLOY"
)

List of AppJobSpecKind

type AppLogDestinationSpec added in v1.71.0

type AppLogDestinationSpec struct {
	Name        string                           `json:"name"`
	Papertrail  *AppLogDestinationSpecPapertrail `json:"papertrail,omitempty"`
	Datadog     *AppLogDestinationSpecDataDog    `json:"datadog,omitempty"`
	Logtail     *AppLogDestinationSpecLogtail    `json:"logtail,omitempty"`
	Endpoint    string                           `json:"endpoint,omitempty"`
	TLSInsecure bool                             `json:"tls_insecure,omitempty"`
	Headers     []*AppLogDestinationSpecHeader   `json:"headers,omitempty"`
}

AppLogDestinationSpec struct for AppLogDestinationSpec

type AppLogDestinationSpecDataDog added in v1.71.0

type AppLogDestinationSpecDataDog struct {
	// Datadog HTTP log intake endpoint.
	Endpoint string `json:"endpoint,omitempty"`
	// Datadog API key.
	ApiKey string `json:"api_key"`
}

AppLogDestinationSpecDataDog DataDog configuration.

type AppLogDestinationSpecHeader added in v1.75.0

type AppLogDestinationSpecHeader struct {
	// The name
	Key string `json:"key"`
	// The header value.
	Value string `json:"value,omitempty"`
}

AppLogDestinationSpecHeader struct for AppLogDestinationSpecHeader

type AppLogDestinationSpecLogtail added in v1.71.0

type AppLogDestinationSpecLogtail struct {
	// Logtail token.
	Token string `json:"token"`
}

AppLogDestinationSpecLogtail Logtail configuration.

type AppLogDestinationSpecPapertrail added in v1.71.0

type AppLogDestinationSpecPapertrail struct {
	// Papertrail syslog endpoint.
	Endpoint string `json:"endpoint"`
}

AppLogDestinationSpecPapertrail Papertrail configuration.

type AppLogType added in v1.39.0

type AppLogType string

AppLogType is the type of app logs.

const (
	// AppLogTypeBuild represents build logs.
	AppLogTypeBuild AppLogType = "BUILD"
	// AppLogTypeDeploy represents deploy logs.
	AppLogTypeDeploy AppLogType = "DEPLOY"
	// AppLogTypeRun represents run logs.
	AppLogTypeRun AppLogType = "RUN"
)

type AppLogs added in v1.39.0

type AppLogs struct {
	LiveURL      string   `json:"live_url"`
	HistoricURLs []string `json:"historic_urls"`
}

AppLogs represent app logs.

type AppProposeRequest added in v1.56.0

type AppProposeRequest struct {
	Spec *AppSpec `json:"spec"`
	// An optional ID of an existing app. If set, the spec will be treated as a proposed update to the specified app. The existing app is not modified using this method.
	AppID string `json:"app_id,omitempty"`
}

AppProposeRequest struct for AppProposeRequest

type AppProposeResponse added in v1.56.0

type AppProposeResponse struct {
	// Deprecated. Please use AppIsStarter instead.
	AppIsStatic bool `json:"app_is_static,omitempty"`
	// Indicates whether the app name is available.
	AppNameAvailable bool `json:"app_name_available,omitempty"`
	// If the app name is unavailable, this will be set to a suggested available name.
	AppNameSuggestion string `json:"app_name_suggestion,omitempty"`
	// Deprecated. Please use ExistingStarterApps instead.
	ExistingStaticApps string `json:"existing_static_apps,omitempty"`
	// Deprecated. Please use MaxFreeStarterApps instead.
	MaxFreeStaticApps string   `json:"max_free_static_apps,omitempty"`
	Spec              *AppSpec `json:"spec,omitempty"`
	// The monthly cost of the proposed app in USD.
	AppCost float32 `json:"app_cost,omitempty"`
	// The monthly cost of the proposed app in USD using the next pricing plan tier. For example, if you propose an app that uses the Basic tier, the `AppTierUpgradeCost` field displays the monthly cost of the app if it were to use the Professional tier. If the proposed app already uses the most expensive tier, the field is empty.
	AppTierUpgradeCost float32 `json:"app_tier_upgrade_cost,omitempty"`
	// The monthly cost of the proposed app in USD using the previous pricing plan tier. For example, if you propose an app that uses the Professional tier, the `AppTierDowngradeCost` field displays the monthly cost of the app if it were to use the Basic tier. If the proposed app already uses the lest expensive tier, the field is empty.
	AppTierDowngradeCost float32 `json:"app_tier_downgrade_cost,omitempty"`
	// The number of existing starter tier apps the account has.
	ExistingStarterApps string `json:"existing_starter_apps,omitempty"`
	// The maximum number of free starter apps the account can have. Any additional starter apps will be charged for. These include apps with only static sites, functions, and databases.
	MaxFreeStarterApps string `json:"max_free_starter_apps,omitempty"`
	// Indicates whether the app is a starter tier app.
	AppIsStarter bool `json:"app_is_starter,omitempty"`
}

AppProposeResponse struct for AppProposeResponse

type AppRegion added in v1.45.0

type AppRegion struct {
	Slug        string   `json:"slug,omitempty"`
	Label       string   `json:"label,omitempty"`
	Flag        string   `json:"flag,omitempty"`
	Continent   string   `json:"continent,omitempty"`
	Disabled    bool     `json:"disabled,omitempty"`
	DataCenters []string `json:"data_centers,omitempty"`
	Reason      string   `json:"reason,omitempty"`
	// Whether or not the region is presented as the default.
	Default bool `json:"default,omitempty"`
}

AppRegion struct for AppRegion

type AppRouteSpec added in v1.39.0

type AppRouteSpec struct {
	// An HTTP path prefix. Paths must start with / and must be unique across all components within an app.
	Path string `json:"path,omitempty"`
	// An optional flag to preserve the path that is forwarded to the backend service. By default, the HTTP request path will be trimmed from the left when forwarded to the component. For example, a component with `path=/api` will have requests to `/api/list` trimmed to `/list`. If this value is `true`, the path will remain `/api/list`. Note: this is not applicable for Functions Components.
	PreservePathPrefix bool `json:"preserve_path_prefix,omitempty"`
}

AppRouteSpec struct for AppRouteSpec

type AppServiceSpec added in v1.39.0

type AppServiceSpec struct {
	// The name. Must be unique across all components within the same app.
	Name   string            `json:"name"`
	Git    *GitSourceSpec    `json:"git,omitempty"`
	GitHub *GitHubSourceSpec `json:"github,omitempty"`
	Image  *ImageSourceSpec  `json:"image,omitempty"`
	GitLab *GitLabSourceSpec `json:"gitlab,omitempty"`
	// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
	DockerfilePath string `json:"dockerfile_path,omitempty"`
	// An optional build command to run while building this component from source.
	BuildCommand string `json:"build_command,omitempty"`
	// An optional run command to override the component's default.
	RunCommand string `json:"run_command,omitempty"`
	// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
	SourceDir string `json:"source_dir,omitempty"`
	// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
	EnvironmentSlug string `json:"environment_slug,omitempty"`
	// A list of environment variables made available to the component.
	Envs             []*AppVariableDefinition `json:"envs,omitempty"`
	InstanceSizeSlug string                   `json:"instance_size_slug,omitempty"`
	InstanceCount    int64                    `json:"instance_count,omitempty"`
	// The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name `PORT`, one will be automatically added with its value set to the value of this field.
	HTTPPort int64 `json:"http_port,omitempty"`
	// A list of HTTP routes that should be routed to this component.
	Routes      []*AppRouteSpec            `json:"routes,omitempty"`
	HealthCheck *AppServiceSpecHealthCheck `json:"health_check,omitempty"`
	CORS        *AppCORSPolicy             `json:"cors,omitempty"`
	// The ports on which this service will listen for internal traffic.
	InternalPorts []int64 `json:"internal_ports,omitempty"`
	// A list of configured alerts which apply to the component.
	Alerts []*AppAlertSpec `json:"alerts,omitempty"`
	// A list of configured log forwarding destinations.
	LogDestinations []*AppLogDestinationSpec `json:"log_destinations,omitempty"`
}

AppServiceSpec struct for AppServiceSpec

type AppServiceSpecHealthCheck added in v1.43.0

type AppServiceSpecHealthCheck struct {
	// Deprecated. Use http_path instead.
	Path string `json:"path,omitempty"`
	// The number of seconds to wait before beginning health checks.
	InitialDelaySeconds int32 `json:"initial_delay_seconds,omitempty"`
	// The number of seconds to wait between health checks.
	PeriodSeconds int32 `json:"period_seconds,omitempty"`
	// The number of seconds after which the check times out.
	TimeoutSeconds int32 `json:"timeout_seconds,omitempty"`
	// The number of successful health checks before considered healthy.
	SuccessThreshold int32 `json:"success_threshold,omitempty"`
	// The number of failed health checks before considered unhealthy.
	FailureThreshold int32 `json:"failure_threshold,omitempty"`
	// The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead.
	HTTPPath string `json:"http_path,omitempty"`
	// The port on which the health check will be performed. If not set, the health check will be performed on the component's http_port.
	Port int64 `json:"port,omitempty"`
}

AppServiceSpecHealthCheck struct for AppServiceSpecHealthCheck

type AppSpec added in v1.39.0

type AppSpec struct {
	// The name of the app. Must be unique across all apps in the same account.
	Name string `json:"name"`
	// Workloads which expose publicly-accessible HTTP services.
	Services []*AppServiceSpec `json:"services,omitempty"`
	// Content which can be rendered to static web assets.
	StaticSites []*AppStaticSiteSpec `json:"static_sites,omitempty"`
	// Workloads which do not expose publicly-accessible HTTP services.
	Workers []*AppWorkerSpec `json:"workers,omitempty"`
	// Pre and post deployment workloads which do not expose publicly-accessible HTTP routes.
	Jobs []*AppJobSpec `json:"jobs,omitempty"`
	// Workloads which expose publicly-accessible HTTP services via Functions Components.
	Functions []*AppFunctionsSpec `json:"functions,omitempty"`
	// Database instances which can provide persistence to workloads within the application.
	Databases []*AppDatabaseSpec `json:"databases,omitempty"`
	// A set of hostnames where the application will be available.
	Domains []*AppDomainSpec `json:"domains,omitempty"`
	Region  string           `json:"region,omitempty"`
	// A list of environment variables made available to all components in the app.
	Envs []*AppVariableDefinition `json:"envs,omitempty"`
	// A list of alerts which apply to the app.
	Alerts   []*AppAlertSpec `json:"alerts,omitempty"`
	Ingress  *AppIngressSpec `json:"ingress,omitempty"`
	Features []string        `json:"features,omitempty"`
}

AppSpec The desired configuration of an application.

type AppStaticSiteSpec added in v1.39.0

type AppStaticSiteSpec struct {
	// The name. Must be unique across all components within the same app.
	Name   string            `json:"name"`
	Git    *GitSourceSpec    `json:"git,omitempty"`
	GitHub *GitHubSourceSpec `json:"github,omitempty"`
	GitLab *GitLabSourceSpec `json:"gitlab,omitempty"`
	// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
	DockerfilePath string `json:"dockerfile_path,omitempty"`
	// An optional build command to run while building this component from source.
	BuildCommand string `json:"build_command,omitempty"`
	// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
	SourceDir string `json:"source_dir,omitempty"`
	// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
	EnvironmentSlug string `json:"environment_slug,omitempty"`
	// An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: `_static`, `dist`, `public`, `build`.
	OutputDir     string `json:"output_dir,omitempty"`
	IndexDocument string `json:"index_document,omitempty"`
	// The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one.
	ErrorDocument string `json:"error_document,omitempty"`
	// A list of environment variables made available to the component.
	Envs []*AppVariableDefinition `json:"envs,omitempty"`
	// A list of HTTP routes that should be routed to this component.
	Routes []*AppRouteSpec `json:"routes,omitempty"`
	CORS   *AppCORSPolicy  `json:"cors,omitempty"`
	// The name of the document to use as the fallback for any requests to documents that are not found when serving this static site. Only 1 of `catchall_document` or `error_document` can be set.
	CatchallDocument string `json:"catchall_document,omitempty"`
}

AppStaticSiteSpec struct for AppStaticSiteSpec

type AppStringMatch added in v1.48.0

type AppStringMatch struct {
	// Exact string match. Only 1 of `exact`, `prefix`, or `regex` must be set.
	Exact string `json:"exact,omitempty"`
	// Prefix-based match. Only 1 of `exact`, `prefix`, or `regex` must be set.
	Prefix string `json:"prefix,omitempty"`
	Regex  string `json:"regex,omitempty"`
}

AppStringMatch struct for AppStringMatch

type AppTier added in v1.48.0

type AppTier struct {
	Name                 string `json:"name,omitempty"`
	Slug                 string `json:"slug,omitempty"`
	EgressBandwidthBytes string `json:"egress_bandwidth_bytes,omitempty"`
	BuildSeconds         string `json:"build_seconds,omitempty"`
}

AppTier struct for AppTier

type AppUpdateRequest added in v1.39.0

type AppUpdateRequest struct {
	Spec *AppSpec `json:"spec"`
}

AppUpdateRequest represents a request to update an app.

type AppVariableDefinition added in v1.39.0

type AppVariableDefinition struct {
	// The name
	Key string `json:"key"`
	// The value. If the type is `SECRET`, the value will be encrypted on first submission. On following submissions, the encrypted value should be used.
	Value string           `json:"value,omitempty"`
	Scope AppVariableScope `json:"scope,omitempty"`
	Type  AppVariableType  `json:"type,omitempty"`
}

AppVariableDefinition struct for AppVariableDefinition

type AppVariableScope added in v1.45.0

type AppVariableScope string

AppVariableScope the model 'AppVariableScope'

const (
	AppVariableScope_Unset           AppVariableScope = "UNSET"
	AppVariableScope_RunTime         AppVariableScope = "RUN_TIME"
	AppVariableScope_BuildTime       AppVariableScope = "BUILD_TIME"
	AppVariableScope_RunAndBuildTime AppVariableScope = "RUN_AND_BUILD_TIME"
)

List of AppVariableScope

type AppVariableType added in v1.45.0

type AppVariableType string

AppVariableType the model 'AppVariableType'

const (
	AppVariableType_General AppVariableType = "GENERAL"
	AppVariableType_Secret  AppVariableType = "SECRET"
)

List of AppVariableType

type AppWorkerSpec added in v1.39.0

type AppWorkerSpec struct {
	// The name. Must be unique across all components within the same app.
	Name   string            `json:"name"`
	Git    *GitSourceSpec    `json:"git,omitempty"`
	GitHub *GitHubSourceSpec `json:"github,omitempty"`
	Image  *ImageSourceSpec  `json:"image,omitempty"`
	GitLab *GitLabSourceSpec `json:"gitlab,omitempty"`
	// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
	DockerfilePath string `json:"dockerfile_path,omitempty"`
	// An optional build command to run while building this component from source.
	BuildCommand string `json:"build_command,omitempty"`
	// An optional run command to override the component's default.
	RunCommand string `json:"run_command,omitempty"`
	// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
	SourceDir string `json:"source_dir,omitempty"`
	// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
	EnvironmentSlug string `json:"environment_slug,omitempty"`
	// A list of environment variables made available to the component.
	Envs []*AppVariableDefinition `json:"envs,omitempty"`
	// The instance size to use for this component.
	InstanceSizeSlug string `json:"instance_size_slug,omitempty"`
	InstanceCount    int64  `json:"instance_count,omitempty"`
	// A list of configured alerts which apply to the component.
	Alerts []*AppAlertSpec `json:"alerts,omitempty"`
	// A list of configured log forwarding destinations.
	LogDestinations []*AppLogDestinationSpec `json:"log_destinations,omitempty"`
}

AppWorkerSpec struct for AppWorkerSpec

type AppsService added in v1.39.0

type AppsService interface {
	Create(ctx context.Context, create *AppCreateRequest) (*App, *Response, error)
	Get(ctx context.Context, appID string) (*App, *Response, error)
	List(ctx context.Context, opts *ListOptions) ([]*App, *Response, error)
	Update(ctx context.Context, appID string, update *AppUpdateRequest) (*App, *Response, error)
	Delete(ctx context.Context, appID string) (*Response, error)
	Propose(ctx context.Context, propose *AppProposeRequest) (*AppProposeResponse, *Response, error)

	GetDeployment(ctx context.Context, appID, deploymentID string) (*Deployment, *Response, error)
	ListDeployments(ctx context.Context, appID string, opts *ListOptions) ([]*Deployment, *Response, error)
	CreateDeployment(ctx context.Context, appID string, create ...*DeploymentCreateRequest) (*Deployment, *Response, error)

	GetLogs(ctx context.Context, appID, deploymentID, component string, logType AppLogType, follow bool, tailLines int) (*AppLogs, *Response, error)

	ListRegions(ctx context.Context) ([]*AppRegion, *Response, error)

	ListTiers(ctx context.Context) ([]*AppTier, *Response, error)
	GetTier(ctx context.Context, slug string) (*AppTier, *Response, error)

	ListInstanceSizes(ctx context.Context) ([]*AppInstanceSize, *Response, error)
	GetInstanceSize(ctx context.Context, slug string) (*AppInstanceSize, *Response, error)

	ListAlerts(ctx context.Context, appID string) ([]*AppAlert, *Response, error)
	UpdateAlertDestinations(ctx context.Context, appID, alertID string, update *AlertDestinationUpdateRequest) (*AppAlert, *Response, error)
}

AppsService is an interface for interfacing with the App Platform endpoints of the DigitalOcean API.

type AppsServiceOp added in v1.39.0

type AppsServiceOp struct {
	// contains filtered or unexported fields
}

AppsServiceOp handles communication with Apps methods of the DigitalOcean API.

func (*AppsServiceOp) Create added in v1.39.0

func (s *AppsServiceOp) Create(ctx context.Context, create *AppCreateRequest) (*App, *Response, error)

Create an app.

func (*AppsServiceOp) CreateDeployment added in v1.39.0

func (s *AppsServiceOp) CreateDeployment(ctx context.Context, appID string, create ...*DeploymentCreateRequest) (*Deployment, *Response, error)

CreateDeployment creates an app deployment.

func (*AppsServiceOp) Delete added in v1.39.0

func (s *AppsServiceOp) Delete(ctx context.Context, appID string) (*Response, error)

Delete an app.

func (*AppsServiceOp) Get added in v1.39.0

func (s *AppsServiceOp) Get(ctx context.Context, appID string) (*App, *Response, error)

Get an app.

func (*AppsServiceOp) GetDeployment added in v1.39.0

func (s *AppsServiceOp) GetDeployment(ctx context.Context, appID, deploymentID string) (*Deployment, *Response, error)

GetDeployment gets an app deployment.

func (*AppsServiceOp) GetInstanceSize added in v1.49.0

func (s *AppsServiceOp) GetInstanceSize(ctx context.Context, slug string) (*AppInstanceSize, *Response, error)

GetInstanceSize retrieves information about a specific instance size for service, worker, and job components.

func (*AppsServiceOp) GetLogs added in v1.39.0

func (s *AppsServiceOp) GetLogs(ctx context.Context, appID, deploymentID, component string, logType AppLogType, follow bool, tailLines int) (*AppLogs, *Response, error)

GetLogs retrieves app logs.

func (*AppsServiceOp) GetTier added in v1.49.0

func (s *AppsServiceOp) GetTier(ctx context.Context, slug string) (*AppTier, *Response, error)

GetTier retrieves information about a specific app tier.

func (*AppsServiceOp) List added in v1.39.0

func (s *AppsServiceOp) List(ctx context.Context, opts *ListOptions) ([]*App, *Response, error)

List apps.

func (*AppsServiceOp) ListAlerts added in v1.65.0

func (s *AppsServiceOp) ListAlerts(ctx context.Context, appID string) ([]*AppAlert, *Response, error)

ListAlerts retrieves a list of alerts on an app

func (*AppsServiceOp) ListDeployments added in v1.39.0

func (s *AppsServiceOp) ListDeployments(ctx context.Context, appID string, opts *ListOptions) ([]*Deployment, *Response, error)

ListDeployments lists an app deployments.

func (*AppsServiceOp) ListInstanceSizes added in v1.49.0

func (s *AppsServiceOp) ListInstanceSizes(ctx context.Context) ([]*AppInstanceSize, *Response, error)

ListInstanceSizes lists available instance sizes for service, worker, and job components.

func (*AppsServiceOp) ListRegions added in v1.49.0

func (s *AppsServiceOp) ListRegions(ctx context.Context) ([]*AppRegion, *Response, error)

ListRegions lists all regions supported by App Platform.

func (*AppsServiceOp) ListTiers added in v1.49.0

func (s *AppsServiceOp) ListTiers(ctx context.Context) ([]*AppTier, *Response, error)

ListTiers lists available app tiers.

func (*AppsServiceOp) Propose added in v1.56.0

Propose an app.

func (*AppsServiceOp) Update added in v1.39.0

func (s *AppsServiceOp) Update(ctx context.Context, appID string, update *AppUpdateRequest) (*App, *Response, error)

Update an app.

func (*AppsServiceOp) UpdateAlertDestinations added in v1.65.0

func (s *AppsServiceOp) UpdateAlertDestinations(ctx context.Context, appID, alertID string, update *AlertDestinationUpdateRequest) (*AppAlert, *Response, error)

UpdateAlertDestinations updates the alert destinations of an app's alert

type ArgError added in v0.9.0

type ArgError struct {
	// contains filtered or unexported fields
}

ArgError is an error that represents an error with an input to godo. It identifies the argument and the cause (if possible).

func NewArgError added in v0.9.0

func NewArgError(arg, reason string) *ArgError

NewArgError creates an InputError.

func (*ArgError) Error added in v0.9.0

func (e *ArgError) Error() string

type AssociatedResource added in v1.58.0

type AssociatedResource struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

AssociatedResource is the object to represent a Kubernetes cluster associated resource's ID and Name.

type BackupWindow added in v1.0.0

type BackupWindow struct {
	Start *Timestamp `json:"start,omitempty"`
	End   *Timestamp `json:"end,omitempty"`
}

BackupWindow object

type Balance added in v1.29.0

type Balance struct {
	MonthToDateBalance string    `json:"month_to_date_balance"`
	AccountBalance     string    `json:"account_balance"`
	MonthToDateUsage   string    `json:"month_to_date_usage"`
	GeneratedAt        time.Time `json:"generated_at"`
}

Balance represents a DigitalOcean Balance

func (Balance) String added in v1.29.0

func (r Balance) String() string

type BalanceService added in v1.29.0

type BalanceService interface {
	Get(context.Context) (*Balance, *Response, error)
}

BalanceService is an interface for interfacing with the Balance endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#operation/get_customer_balance

type BalanceServiceOp added in v1.29.0

type BalanceServiceOp struct {
	// contains filtered or unexported fields
}

BalanceServiceOp handles communication with the Balance related methods of the DigitalOcean API.

func (*BalanceServiceOp) Get added in v1.29.0

Get DigitalOcean balance info

type BillingHistory added in v1.33.0

type BillingHistory struct {
	BillingHistory []BillingHistoryEntry `json:"billing_history"`
	Links          *Links                `json:"links"`
	Meta           *Meta                 `json:"meta"`
}

BillingHistory represents a DigitalOcean Billing History

func (BillingHistory) String added in v1.33.0

func (b BillingHistory) String() string

type BillingHistoryEntry added in v1.33.0

type BillingHistoryEntry struct {
	Description string    `json:"description"`
	Amount      string    `json:"amount"`
	InvoiceID   *string   `json:"invoice_id"`
	InvoiceUUID *string   `json:"invoice_uuid"`
	Date        time.Time `json:"date"`
	Type        string    `json:"type"`
}

BillingHistoryEntry represents an entry in a customer's Billing History

type BillingHistoryService added in v1.33.0

type BillingHistoryService interface {
	List(context.Context, *ListOptions) (*BillingHistory, *Response, error)
}

BillingHistoryService is an interface for interfacing with the BillingHistory endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#operation/list_billing_history

type BillingHistoryServiceOp added in v1.33.0

type BillingHistoryServiceOp struct {
	// contains filtered or unexported fields
}

BillingHistoryServiceOp handles communication with the BillingHistory related methods of the DigitalOcean API.

func (*BillingHistoryServiceOp) List added in v1.33.0

List the Billing History for a customer

type Blob added in v1.73.0

type Blob struct {
	Digest              string `json:"digest,omitempty"`
	CompressedSizeBytes uint64 `json:"compressed_size_bytes,omitempty"`
}

Blob represents a registry blob

type CDN added in v1.4.0

type CDN struct {
	ID            string    `json:"id"`
	Origin        string    `json:"origin"`
	Endpoint      string    `json:"endpoint"`
	CreatedAt     time.Time `json:"created_at"`
	TTL           uint32    `json:"ttl"`
	CertificateID string    `json:"certificate_id,omitempty"`
	CustomDomain  string    `json:"custom_domain,omitempty"`
}

CDN represents a DigitalOcean CDN

type CDNCreateRequest added in v1.4.0

type CDNCreateRequest struct {
	Origin        string `json:"origin"`
	TTL           uint32 `json:"ttl"`
	CustomDomain  string `json:"custom_domain,omitempty"`
	CertificateID string `json:"certificate_id,omitempty"`
}

CDNCreateRequest represents a request to create a CDN.

type CDNFlushCacheRequest added in v1.4.0

type CDNFlushCacheRequest struct {
	Files []string `json:"files"`
}

CDNFlushCacheRequest represents a request to flush cache of a CDN.

type CDNService added in v1.4.0

CDNService is an interface for managing Spaces CDN with the DigitalOcean API.

type CDNServiceOp added in v1.4.0

type CDNServiceOp struct {
	// contains filtered or unexported fields
}

CDNServiceOp handles communication with the CDN related methods of the DigitalOcean API.

func (CDNServiceOp) Create added in v1.4.0

func (c CDNServiceOp) Create(ctx context.Context, createRequest *CDNCreateRequest) (*CDN, *Response, error)

Create a new CDN

func (CDNServiceOp) Delete added in v1.4.0

func (c CDNServiceOp) Delete(ctx context.Context, id string) (*Response, error)

Delete an individual CDN

func (CDNServiceOp) FlushCache added in v1.4.0

func (c CDNServiceOp) FlushCache(ctx context.Context, id string, flushCacheRequest *CDNFlushCacheRequest) (*Response, error)

FlushCache flushes the cache of an individual CDN. Requires a non-empty slice of file paths and/or wildcards

func (CDNServiceOp) Get added in v1.4.0

func (c CDNServiceOp) Get(ctx context.Context, id string) (*CDN, *Response, error)

Get individual CDN. It requires a non-empty cdn id.

func (CDNServiceOp) List added in v1.4.0

func (c CDNServiceOp) List(ctx context.Context, opt *ListOptions) ([]CDN, *Response, error)

List all CDN endpoints

func (CDNServiceOp) UpdateCustomDomain added in v1.7.5

func (c CDNServiceOp) UpdateCustomDomain(ctx context.Context, id string, updateRequest *CDNUpdateCustomDomainRequest) (*CDN, *Response, error)

UpdateCustomDomain sets or removes the custom domain of an individual CDN

func (CDNServiceOp) UpdateTTL added in v1.4.0

func (c CDNServiceOp) UpdateTTL(ctx context.Context, id string, updateRequest *CDNUpdateTTLRequest) (*CDN, *Response, error)

UpdateTTL updates the ttl of an individual CDN

type CDNUpdateCustomDomainRequest added in v1.7.5

type CDNUpdateCustomDomainRequest struct {
	CustomDomain  string `json:"custom_domain"`
	CertificateID string `json:"certificate_id"`
}

CDNUpdateCustomDomainRequest represents a request to update the custom domain of a CDN.

type CDNUpdateTTLRequest added in v1.7.5

type CDNUpdateTTLRequest struct {
	TTL uint32 `json:"ttl"`
}

CDNUpdateTTLRequest represents a request to update the ttl of a CDN.

type Certificate added in v1.0.0

type Certificate struct {
	ID              string   `json:"id,omitempty"`
	Name            string   `json:"name,omitempty"`
	DNSNames        []string `json:"dns_names,omitempty"`
	NotAfter        string   `json:"not_after,omitempty"`
	SHA1Fingerprint string   `json:"sha1_fingerprint,omitempty"`
	Created         string   `json:"created_at,omitempty"`
	State           string   `json:"state,omitempty"`
	Type            string   `json:"type,omitempty"`
}

Certificate represents a DigitalOcean certificate configuration.

type CertificateRequest added in v1.0.0

type CertificateRequest struct {
	Name             string   `json:"name,omitempty"`
	DNSNames         []string `json:"dns_names,omitempty"`
	PrivateKey       string   `json:"private_key,omitempty"`
	LeafCertificate  string   `json:"leaf_certificate,omitempty"`
	CertificateChain string   `json:"certificate_chain,omitempty"`
	Type             string   `json:"type,omitempty"`
}

CertificateRequest represents configuration for a new certificate.

type CertificatesService added in v1.0.0

CertificatesService is an interface for managing certificates with the DigitalOcean API. See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Certificates

type CertificatesServiceOp added in v1.0.0

type CertificatesServiceOp struct {
	// contains filtered or unexported fields
}

CertificatesServiceOp handles communication with certificates methods of the DigitalOcean API.

func (*CertificatesServiceOp) Create added in v1.0.0

Create a new certificate with provided configuration.

func (*CertificatesServiceOp) Delete added in v1.0.0

func (c *CertificatesServiceOp) Delete(ctx context.Context, cID string) (*Response, error)

Delete a certificate by its identifier.

func (*CertificatesServiceOp) Get added in v1.0.0

Get an existing certificate by its identifier.

func (*CertificatesServiceOp) List added in v1.0.0

List all certificates.

type Client

type Client struct {

	// Base URL for API requests.
	BaseURL *url.URL

	// User agent for client
	UserAgent string

	// Rate contains the current rate limit for the client as determined by the most recent
	// API call. It is not thread-safe. Please consider using GetRate() instead.
	Rate Rate

	// Services used for communicating with the API
	Account           AccountService
	Actions           ActionsService
	Apps              AppsService
	Balance           BalanceService
	BillingHistory    BillingHistoryService
	CDNs              CDNService
	Domains           DomainsService
	Droplets          DropletsService
	DropletActions    DropletActionsService
	Images            ImagesService
	ImageActions      ImageActionsService
	Invoices          InvoicesService
	Keys              KeysService
	Regions           RegionsService
	Sizes             SizesService
	FloatingIPs       FloatingIPsService
	FloatingIPActions FloatingIPActionsService
	ReservedIPs       ReservedIPsService
	ReservedIPActions ReservedIPActionsService
	Snapshots         SnapshotsService
	Storage           StorageService
	StorageActions    StorageActionsService
	Tags              TagsService
	LoadBalancers     LoadBalancersService
	Certificates      CertificatesService
	Firewalls         FirewallsService
	Projects          ProjectsService
	Kubernetes        KubernetesService
	Registry          RegistryService
	Databases         DatabasesService
	VPCs              VPCsService
	OneClick          OneClickService
	Monitoring        MonitoringService
	// contains filtered or unexported fields
}

Client manages communication with DigitalOcean V2 API.

func New added in v1.0.0

func New(httpClient *http.Client, opts ...ClientOpt) (*Client, error)

New returns a new DigitalOcean API client instance.

func NewClient

func NewClient(httpClient *http.Client) *Client

NewClient returns a new DigitalOcean API client, using the given http.Client to perform all requests.

Users who wish to pass their own http.Client should use this method. If you're in need of further customization, the godo.New method allows more options, such as setting a custom URL or a custom user agent string.

func NewFromToken added in v1.31.0

func NewFromToken(token string) *Client

NewFromToken returns a new DigitalOcean API client with the given API token.

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *http.Request, v interface{}) (*Response, error)

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response will be written to v, without attempting to decode it.

func (*Client) GetRate added in v1.40.0

func (c *Client) GetRate() Rate

GetRate returns the current rate limit for the client as determined by the most recent API call. It is thread-safe.

func (*Client) NewRequest

func (c *Client) NewRequest(ctx context.Context, method, urlStr string, body interface{}) (*http.Request, error)

NewRequest creates an API request. A relative URL can be provided in urlStr, which will be resolved to the BaseURL of the Client. Relative URLS should always be specified without a preceding slash. If specified, the value pointed to by body is JSON encoded and included in as the request body.

func (*Client) OnRequestCompleted added in v0.9.0

func (c *Client) OnRequestCompleted(rc RequestCompletionCallback)

OnRequestCompleted sets the DO API request completion callback

type ClientOpt added in v1.0.0

type ClientOpt func(*Client) error

ClientOpt are options for New.

func SetBaseURL added in v1.0.0

func SetBaseURL(bu string) ClientOpt

SetBaseURL is a client option for setting the base URL.

func SetRequestHeaders added in v1.55.0

func SetRequestHeaders(headers map[string]string) ClientOpt

SetRequestHeaders sets optional HTTP headers on the client that are sent on each HTTP request.

func SetUserAgent added in v1.0.0

func SetUserAgent(ua string) ClientOpt

SetUserAgent is a client option for setting the user agent.

type ClusterlintDiagnostic added in v1.53.0

type ClusterlintDiagnostic struct {
	CheckName string             `json:"check_name"`
	Severity  string             `json:"severity"`
	Message   string             `json:"message"`
	Object    *ClusterlintObject `json:"object"`
}

ClusterlintDiagnostic is a diagnostic returned from clusterlint.

type ClusterlintObject added in v1.53.0

type ClusterlintObject struct {
	Kind      string              `json:"kind"`
	Name      string              `json:"name"`
	Namespace string              `json:"namespace"`
	Owners    []*ClusterlintOwner `json:"owners,omitempty"`
}

ClusterlintObject is the object a clusterlint diagnostic refers to.

type ClusterlintOwner added in v1.53.0

type ClusterlintOwner struct {
	Kind string `json:"kind"`
	Name string `json:"name"`
}

ClusterlintOwner indicates the resource that owns the offending object.

type CreateProjectRequest added in v1.6.0

type CreateProjectRequest struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	Purpose     string `json:"purpose"`
	Environment string `json:"environment"`
}

CreateProjectRequest represents the request to create a new project.

type CustomImageCreateRequest added in v1.7.1

type CustomImageCreateRequest struct {
	Name         string   `json:"name"`
	Url          string   `json:"url"`
	Region       string   `json:"region"`
	Distribution string   `json:"distribution,omitempty"`
	Description  string   `json:"description,omitempty"`
	Tags         []string `json:"tags,omitempty"`
}

CustomImageCreateRequest represents a request to create a custom image.

type Database added in v1.10.0

type Database struct {
	ID                 string                     `json:"id,omitempty"`
	Name               string                     `json:"name,omitempty"`
	EngineSlug         string                     `json:"engine,omitempty"`
	VersionSlug        string                     `json:"version,omitempty"`
	Connection         *DatabaseConnection        `json:"connection,omitempty"`
	PrivateConnection  *DatabaseConnection        `json:"private_connection,omitempty"`
	Users              []DatabaseUser             `json:"users,omitempty"`
	NumNodes           int                        `json:"num_nodes,omitempty"`
	SizeSlug           string                     `json:"size,omitempty"`
	DBNames            []string                   `json:"db_names,omitempty"`
	RegionSlug         string                     `json:"region,omitempty"`
	Status             string                     `json:"status,omitempty"`
	MaintenanceWindow  *DatabaseMaintenanceWindow `json:"maintenance_window,omitempty"`
	CreatedAt          time.Time                  `json:"created_at,omitempty"`
	PrivateNetworkUUID string                     `json:"private_network_uuid,omitempty"`
	Tags               []string                   `json:"tags,omitempty"`
	ProjectID          string                     `json:"project_id,omitempty"`
}

Database represents a DigitalOcean managed database product. These managed databases are usually comprised of a cluster of database nodes, a primary and 0 or more replicas. The EngineSlug is a string which indicates the type of database service. Some examples are "pg", "mysql" or "redis". A Database also includes connection information and other properties of the service like region, size and current status.

func (Database) URN added in v1.18.0

func (d Database) URN() string

URN returns a URN identifier for the database

type DatabaseBackup added in v1.10.0

type DatabaseBackup struct {
	CreatedAt     time.Time `json:"created_at,omitempty"`
	SizeGigabytes float64   `json:"size_gigabytes,omitempty"`
}

DatabaseBackup represents a database backup.

type DatabaseBackupRestore added in v1.60.0

type DatabaseBackupRestore struct {
	DatabaseName    string `json:"database_name,omitempty"`
	BackupCreatedAt string `json:"backup_created_at,omitempty"`
}

DatabaseBackupRestore contains information needed to restore a backup.

type DatabaseCA added in v1.61.0

type DatabaseCA struct {
	Certificate []byte `json:"certificate"`
}

DatabaseCA represents a database ca.

type DatabaseConnection added in v1.10.0

type DatabaseConnection struct {
	URI      string `json:"uri,omitempty"`
	Database string `json:"database,omitempty"`
	Host     string `json:"host,omitempty"`
	Port     int    `json:"port,omitempty"`
	User     string `json:"user,omitempty"`
	Password string `json:"password,omitempty"`
	SSL      bool   `json:"ssl,omitempty"`
}

DatabaseConnection represents a database connection

type DatabaseCreateDBRequest added in v1.10.0

type DatabaseCreateDBRequest struct {
	Name string `json:"name"`
}

DatabaseCreateDBRequest is used to create a new engine-specific database within the cluster

type DatabaseCreatePoolRequest added in v1.10.0

type DatabaseCreatePoolRequest struct {
	User     string `json:"user"`
	Name     string `json:"name"`
	Size     int    `json:"size"`
	Database string `json:"db"`
	Mode     string `json:"mode"`
}

DatabaseCreatePoolRequest is used to create a new database connection pool

type DatabaseCreateReplicaRequest added in v1.10.0

type DatabaseCreateReplicaRequest struct {
	Name               string   `json:"name"`
	Region             string   `json:"region"`
	Size               string   `json:"size"`
	PrivateNetworkUUID string   `json:"private_network_uuid"`
	Tags               []string `json:"tags,omitempty"`
}

DatabaseCreateReplicaRequest is used to create a new read-only replica

type DatabaseCreateRequest added in v1.10.0

type DatabaseCreateRequest struct {
	Name               string                 `json:"name,omitempty"`
	EngineSlug         string                 `json:"engine,omitempty"`
	Version            string                 `json:"version,omitempty"`
	SizeSlug           string                 `json:"size,omitempty"`
	Region             string                 `json:"region,omitempty"`
	NumNodes           int                    `json:"num_nodes,omitempty"`
	PrivateNetworkUUID string                 `json:"private_network_uuid"`
	Tags               []string               `json:"tags,omitempty"`
	BackupRestore      *DatabaseBackupRestore `json:"backup_restore,omitempty"`
	ProjectID          string                 `json:"project_id"`
}

DatabaseCreateRequest represents a request to create a database cluster

type DatabaseCreateUserRequest added in v1.10.0

type DatabaseCreateUserRequest struct {
	Name          string                     `json:"name"`
	MySQLSettings *DatabaseMySQLUserSettings `json:"mysql_settings,omitempty"`
}

DatabaseCreateUserRequest is used to create a new database user

type DatabaseDB added in v1.10.0

type DatabaseDB struct {
	Name string `json:"name"`
}

DatabaseDB represents an engine-specific database created within a database cluster. For SQL databases like PostgreSQL or MySQL, a "DB" refers to a database created on the RDBMS. For instance, a PostgreSQL database server can contain many database schemas, each with its own settings, access permissions and data. ListDBs will return all databases present on the server.

type DatabaseFirewallRule added in v1.23.0

type DatabaseFirewallRule struct {
	UUID        string    `json:"uuid"`
	ClusterUUID string    `json:"cluster_uuid"`
	Type        string    `json:"type"`
	Value       string    `json:"value"`
	CreatedAt   time.Time `json:"created_at"`
}

DatabaseFirewallRule is a rule describing an inbound source to a database

type DatabaseMaintenanceWindow added in v1.10.0

type DatabaseMaintenanceWindow struct {
	Day         string   `json:"day,omitempty"`
	Hour        string   `json:"hour,omitempty"`
	Pending     bool     `json:"pending,omitempty"`
	Description []string `json:"description,omitempty"`
}

DatabaseMaintenanceWindow represents the maintenance_window of a database cluster

type DatabaseMigrateRequest added in v1.10.0

type DatabaseMigrateRequest struct {
	Region             string `json:"region,omitempty"`
	PrivateNetworkUUID string `json:"private_network_uuid"`
}

DatabaseMigrateRequest can be used to initiate a database migrate operation.

type DatabaseMySQLUserSettings added in v1.27.0

type DatabaseMySQLUserSettings struct {
	AuthPlugin string `json:"auth_plugin"`
}

DatabaseMySQLUserSettings contains MySQL-specific user settings

type DatabasePool added in v1.10.0

type DatabasePool struct {
	User              string              `json:"user"`
	Name              string              `json:"name"`
	Size              int                 `json:"size"`
	Database          string              `json:"db"`
	Mode              string              `json:"mode"`
	Connection        *DatabaseConnection `json:"connection"`
	PrivateConnection *DatabaseConnection `json:"private_connection,omitempty"`
}

DatabasePool represents a database connection pool

type DatabaseReplica added in v1.10.0

type DatabaseReplica struct {
	Name               string              `json:"name"`
	Connection         *DatabaseConnection `json:"connection"`
	PrivateConnection  *DatabaseConnection `json:"private_connection,omitempty"`
	Region             string              `json:"region"`
	Status             string              `json:"status"`
	CreatedAt          time.Time           `json:"created_at"`
	PrivateNetworkUUID string              `json:"private_network_uuid,omitempty"`
	Tags               []string            `json:"tags,omitempty"`
}

DatabaseReplica represents a read-only replica of a particular database

type DatabaseResetUserAuthRequest added in v1.32.0

type DatabaseResetUserAuthRequest struct {
	MySQLSettings *DatabaseMySQLUserSettings `json:"mysql_settings,omitempty"`
}

DatabaseResetUserAuthRequest is used to reset a users DB auth

type DatabaseResizeRequest added in v1.10.0

type DatabaseResizeRequest struct {
	SizeSlug string `json:"size,omitempty"`
	NumNodes int    `json:"num_nodes,omitempty"`
}

DatabaseResizeRequest can be used to initiate a database resize operation.

type DatabaseUpdateFirewallRulesRequest added in v1.23.0

type DatabaseUpdateFirewallRulesRequest struct {
	Rules []*DatabaseFirewallRule `json:"rules"`
}

DatabaseUpdateFirewallRulesRequest is used to set the firewall rules for a database

type DatabaseUpdateMaintenanceRequest added in v1.10.0

type DatabaseUpdateMaintenanceRequest struct {
	Day  string `json:"day,omitempty"`
	Hour string `json:"hour,omitempty"`
}

DatabaseUpdateMaintenanceRequest can be used to update the database's maintenance window.

type DatabaseUser added in v1.10.0

type DatabaseUser struct {
	Name          string                     `json:"name,omitempty"`
	Role          string                     `json:"role,omitempty"`
	Password      string                     `json:"password,omitempty"`
	MySQLSettings *DatabaseMySQLUserSettings `json:"mysql_settings,omitempty"`
}

DatabaseUser represents a user in the database

type DatabasesService added in v1.10.0

type DatabasesService interface {
	List(context.Context, *ListOptions) ([]Database, *Response, error)
	Get(context.Context, string) (*Database, *Response, error)
	GetCA(context.Context, string) (*DatabaseCA, *Response, error)
	Create(context.Context, *DatabaseCreateRequest) (*Database, *Response, error)
	Delete(context.Context, string) (*Response, error)
	Resize(context.Context, string, *DatabaseResizeRequest) (*Response, error)
	Migrate(context.Context, string, *DatabaseMigrateRequest) (*Response, error)
	UpdateMaintenance(context.Context, string, *DatabaseUpdateMaintenanceRequest) (*Response, error)
	ListBackups(context.Context, string, *ListOptions) ([]DatabaseBackup, *Response, error)
	GetUser(context.Context, string, string) (*DatabaseUser, *Response, error)
	ListUsers(context.Context, string, *ListOptions) ([]DatabaseUser, *Response, error)
	CreateUser(context.Context, string, *DatabaseCreateUserRequest) (*DatabaseUser, *Response, error)
	DeleteUser(context.Context, string, string) (*Response, error)
	ResetUserAuth(context.Context, string, string, *DatabaseResetUserAuthRequest) (*DatabaseUser, *Response, error)
	ListDBs(context.Context, string, *ListOptions) ([]DatabaseDB, *Response, error)
	CreateDB(context.Context, string, *DatabaseCreateDBRequest) (*DatabaseDB, *Response, error)
	GetDB(context.Context, string, string) (*DatabaseDB, *Response, error)
	DeleteDB(context.Context, string, string) (*Response, error)
	ListPools(context.Context, string, *ListOptions) ([]DatabasePool, *Response, error)
	CreatePool(context.Context, string, *DatabaseCreatePoolRequest) (*DatabasePool, *Response, error)
	GetPool(context.Context, string, string) (*DatabasePool, *Response, error)
	DeletePool(context.Context, string, string) (*Response, error)
	GetReplica(context.Context, string, string) (*DatabaseReplica, *Response, error)
	ListReplicas(context.Context, string, *ListOptions) ([]DatabaseReplica, *Response, error)
	CreateReplica(context.Context, string, *DatabaseCreateReplicaRequest) (*DatabaseReplica, *Response, error)
	DeleteReplica(context.Context, string, string) (*Response, error)
	GetEvictionPolicy(context.Context, string) (string, *Response, error)
	SetEvictionPolicy(context.Context, string, string) (*Response, error)
	GetSQLMode(context.Context, string) (string, *Response, error)
	SetSQLMode(context.Context, string, ...string) (*Response, error)
	GetFirewallRules(context.Context, string) ([]DatabaseFirewallRule, *Response, error)
	UpdateFirewallRules(context.Context, string, *DatabaseUpdateFirewallRulesRequest) (*Response, error)
}

The DatabasesService provides access to the DigitalOcean managed database suite of products through the public API. Customers can create new database clusters, migrate them between regions, create replicas and interact with their configurations. Each database service is referred to as a Database. A SQL database service can have multiple databases residing in the system. To help make these entities distinct from Databases in godo, we refer to them here as DatabaseDBs.

See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Databases

type DatabasesServiceOp added in v1.10.0

type DatabasesServiceOp struct {
	// contains filtered or unexported fields
}

DatabasesServiceOp handles communication with the Databases related methods of the DigitalOcean API.

func (*DatabasesServiceOp) Create added in v1.10.0

Create creates a database cluster

func (*DatabasesServiceOp) CreateDB added in v1.10.0

func (svc *DatabasesServiceOp) CreateDB(ctx context.Context, databaseID string, createDB *DatabaseCreateDBRequest) (*DatabaseDB, *Response, error)

CreateDB will create a new database

func (*DatabasesServiceOp) CreatePool added in v1.10.0

func (svc *DatabasesServiceOp) CreatePool(ctx context.Context, databaseID string, createPool *DatabaseCreatePoolRequest) (*DatabasePool, *Response, error)

CreatePool will create a new database connection pool

func (*DatabasesServiceOp) CreateReplica added in v1.10.0

func (svc *DatabasesServiceOp) CreateReplica(ctx context.Context, databaseID string, createReplica *DatabaseCreateReplicaRequest) (*DatabaseReplica, *Response, error)

CreateReplica will create a new database connection pool

func (*DatabasesServiceOp) CreateUser added in v1.10.0

func (svc *DatabasesServiceOp) CreateUser(ctx context.Context, databaseID string, createUser *DatabaseCreateUserRequest) (*DatabaseUser, *Response, error)

CreateUser will create a new database user

func (*DatabasesServiceOp) Delete added in v1.10.0

func (svc *DatabasesServiceOp) Delete(ctx context.Context, databaseID string) (*Response, error)

Delete deletes a database cluster. There is no way to recover a cluster once it has been destroyed.

func (*DatabasesServiceOp) DeleteDB added in v1.10.0

func (svc *DatabasesServiceOp) DeleteDB(ctx context.Context, databaseID, name string) (*Response, error)

DeleteDB will delete an existing database

func (*DatabasesServiceOp) DeletePool added in v1.10.0

func (svc *DatabasesServiceOp) DeletePool(ctx context.Context, databaseID, name string) (*Response, error)

DeletePool will delete an existing database connection pool

func (*DatabasesServiceOp) DeleteReplica added in v1.10.0

func (svc *DatabasesServiceOp) DeleteReplica(ctx context.Context, databaseID, name string) (*Response, error)

DeleteReplica will delete an existing database replica

func (*DatabasesServiceOp) DeleteUser added in v1.10.0

func (svc *DatabasesServiceOp) DeleteUser(ctx context.Context, databaseID, userID string) (*Response, error)

DeleteUser will delete an existing database user

func (*DatabasesServiceOp) Get added in v1.10.0

func (svc *DatabasesServiceOp) Get(ctx context.Context, databaseID string) (*Database, *Response, error)

Get retrieves the details of a database cluster

func (*DatabasesServiceOp) GetCA added in v1.61.0

func (svc *DatabasesServiceOp) GetCA(ctx context.Context, databaseID string) (*DatabaseCA, *Response, error)

GetCA retrieves the CA of a database cluster.

func (*DatabasesServiceOp) GetDB added in v1.10.0

func (svc *DatabasesServiceOp) GetDB(ctx context.Context, databaseID, name string) (*DatabaseDB, *Response, error)

GetDB returns a single database by name

func (*DatabasesServiceOp) GetEvictionPolicy added in v1.17.0

func (svc *DatabasesServiceOp) GetEvictionPolicy(ctx context.Context, databaseID string) (string, *Response, error)

GetEvictionPolicy loads the eviction policy for a given Redis cluster.

func (*DatabasesServiceOp) GetFirewallRules added in v1.23.0

func (svc *DatabasesServiceOp) GetFirewallRules(ctx context.Context, databaseID string) ([]DatabaseFirewallRule, *Response, error)

GetFirewallRules loads the inbound sources for a given cluster.

func (*DatabasesServiceOp) GetPool added in v1.10.0

func (svc *DatabasesServiceOp) GetPool(ctx context.Context, databaseID, name string) (*DatabasePool, *Response, error)

GetPool returns a single database connection pool by name

func (*DatabasesServiceOp) GetReplica added in v1.10.0

func (svc *DatabasesServiceOp) GetReplica(ctx context.Context, databaseID, name string) (*DatabaseReplica, *Response, error)

GetReplica returns a single database replica

func (*DatabasesServiceOp) GetSQLMode added in v1.26.0

func (svc *DatabasesServiceOp) GetSQLMode(ctx context.Context, databaseID string) (string, *Response, error)

GetSQLMode loads the SQL Mode settings for a given MySQL cluster.

func (*DatabasesServiceOp) GetUser added in v1.10.0

func (svc *DatabasesServiceOp) GetUser(ctx context.Context, databaseID, userID string) (*DatabaseUser, *Response, error)

GetUser returns the database user identified by userID

func (*DatabasesServiceOp) List added in v1.10.0

func (svc *DatabasesServiceOp) List(ctx context.Context, opts *ListOptions) ([]Database, *Response, error)

List returns a list of the Databases visible with the caller's API token

func (*DatabasesServiceOp) ListBackups added in v1.10.0

func (svc *DatabasesServiceOp) ListBackups(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabaseBackup, *Response, error)

ListBackups returns a list of the current backups of a database

func (*DatabasesServiceOp) ListDBs added in v1.10.0

func (svc *DatabasesServiceOp) ListDBs(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabaseDB, *Response, error)

ListDBs returns all databases for a given database cluster

func (*DatabasesServiceOp) ListPools added in v1.10.0

func (svc *DatabasesServiceOp) ListPools(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabasePool, *Response, error)

ListPools returns all connection pools for a given database cluster

func (*DatabasesServiceOp) ListReplicas added in v1.10.0

func (svc *DatabasesServiceOp) ListReplicas(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabaseReplica, *Response, error)

ListReplicas returns all read-only replicas for a given database cluster

func (*DatabasesServiceOp) ListUsers added in v1.10.0

func (svc *DatabasesServiceOp) ListUsers(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabaseUser, *Response, error)

ListUsers returns all database users for the database

func (*DatabasesServiceOp) Migrate added in v1.10.0

func (svc *DatabasesServiceOp) Migrate(ctx context.Context, databaseID string, migrate *DatabaseMigrateRequest) (*Response, error)

Migrate migrates a database cluster to a new region

func (*DatabasesServiceOp) ResetUserAuth added in v1.32.0

func (svc *DatabasesServiceOp) ResetUserAuth(ctx context.Context, databaseID, userID string, resetAuth *DatabaseResetUserAuthRequest) (*DatabaseUser, *Response, error)

ResetUserAuth will reset user authentication

func (*DatabasesServiceOp) Resize added in v1.10.0

func (svc *DatabasesServiceOp) Resize(ctx context.Context, databaseID string, resize *DatabaseResizeRequest) (*Response, error)

Resize resizes a database cluster by number of nodes or size

func (*DatabasesServiceOp) SetEvictionPolicy added in v1.17.0

func (svc *DatabasesServiceOp) SetEvictionPolicy(ctx context.Context, databaseID, policy string) (*Response, error)

SetEvictionPolicy updates the eviction policy for a given Redis cluster.

The valid eviction policies are documented by the exported string constants with the prefix `EvictionPolicy`.

func (*DatabasesServiceOp) SetSQLMode added in v1.26.0

func (svc *DatabasesServiceOp) SetSQLMode(ctx context.Context, databaseID string, sqlModes ...string) (*Response, error)

SetSQLMode updates the SQL Mode settings for a given MySQL cluster.

func (*DatabasesServiceOp) UpdateFirewallRules added in v1.23.0

func (svc *DatabasesServiceOp) UpdateFirewallRules(ctx context.Context, databaseID string, firewallRulesReq *DatabaseUpdateFirewallRulesRequest) (*Response, error)

UpdateFirewallRules sets the inbound sources for a given cluster.

func (*DatabasesServiceOp) UpdateMaintenance added in v1.10.0

func (svc *DatabasesServiceOp) UpdateMaintenance(ctx context.Context, databaseID string, maintenance *DatabaseUpdateMaintenanceRequest) (*Response, error)

UpdateMaintenance updates the maintenance window on a cluster

type Deployment added in v1.39.0

type Deployment struct {
	ID                   string                  `json:"id,omitempty"`
	Spec                 *AppSpec                `json:"spec,omitempty"`
	Services             []*DeploymentService    `json:"services,omitempty"`
	StaticSites          []*DeploymentStaticSite `json:"static_sites,omitempty"`
	Workers              []*DeploymentWorker     `json:"workers,omitempty"`
	Jobs                 []*DeploymentJob        `json:"jobs,omitempty"`
	Functions            []*DeploymentFunctions  `json:"functions,omitempty"`
	PhaseLastUpdatedAt   time.Time               `json:"phase_last_updated_at,omitempty"`
	CreatedAt            time.Time               `json:"created_at,omitempty"`
	UpdatedAt            time.Time               `json:"updated_at,omitempty"`
	Cause                string                  `json:"cause,omitempty"`
	ClonedFrom           string                  `json:"cloned_from,omitempty"`
	Progress             *DeploymentProgress     `json:"progress,omitempty"`
	Phase                DeploymentPhase         `json:"phase,omitempty"`
	TierSlug             string                  `json:"tier_slug,omitempty"`
	PreviousDeploymentID string                  `json:"previous_deployment_id,omitempty"`
	CauseDetails         *DeploymentCauseDetails `json:"cause_details,omitempty"`
	LoadBalancerID       string                  `json:"load_balancer_id,omitempty"`
}

Deployment struct for Deployment

type DeploymentCauseDetails added in v1.65.0

type DeploymentCauseDetails struct {
	DigitalOceanUserAction *DeploymentCauseDetailsDigitalOceanUserAction `json:"digitalocean_user_action,omitempty"`
	GitPush                *DeploymentCauseDetailsGitPush                `json:"git_push,omitempty"`
	Internal               bool                                          `json:"internal,omitempty"`
	Type                   DeploymentCauseDetailsType                    `json:"type,omitempty"`
}

DeploymentCauseDetails struct for DeploymentCauseDetails

type DeploymentCauseDetailsDigitalOceanUser added in v1.65.0

type DeploymentCauseDetailsDigitalOceanUser struct {
	UUID     string `json:"uuid,omitempty"`
	Email    string `json:"email,omitempty"`
	FullName string `json:"full_name,omitempty"`
}

DeploymentCauseDetailsDigitalOceanUser struct for DeploymentCauseDetailsDigitalOceanUser

type DeploymentCauseDetailsDigitalOceanUserAction added in v1.65.0

type DeploymentCauseDetailsDigitalOceanUserAction struct {
	User *DeploymentCauseDetailsDigitalOceanUser          `json:"user,omitempty"`
	Name DeploymentCauseDetailsDigitalOceanUserActionName `json:"name,omitempty"`
}

DeploymentCauseDetailsDigitalOceanUserAction struct for DeploymentCauseDetailsDigitalOceanUserAction

type DeploymentCauseDetailsDigitalOceanUserActionName added in v1.65.0

type DeploymentCauseDetailsDigitalOceanUserActionName string

DeploymentCauseDetailsDigitalOceanUserActionName the model 'CauseDetailsDigitalOceanUserActionName'

const (
	DeploymentCauseDetailsDigitalOceanUserActionName_Unknown               DeploymentCauseDetailsDigitalOceanUserActionName = "UNKNOWN"
	DeploymentCauseDetailsDigitalOceanUserActionName_CreateDeployment      DeploymentCauseDetailsDigitalOceanUserActionName = "CREATE_DEPLOYMENT"
	DeploymentCauseDetailsDigitalOceanUserActionName_UpdateSpec            DeploymentCauseDetailsDigitalOceanUserActionName = "UPDATE_SPEC"
	DeploymentCauseDetailsDigitalOceanUserActionName_ResetDatabasePassword DeploymentCauseDetailsDigitalOceanUserActionName = "RESET_DATABASE_PASSWORD"
	DeploymentCauseDetailsDigitalOceanUserActionName_RollbackApp           DeploymentCauseDetailsDigitalOceanUserActionName = "ROLLBACK_APP"
	DeploymentCauseDetailsDigitalOceanUserActionName_RevertAppRollback     DeploymentCauseDetailsDigitalOceanUserActionName = "REVERT_APP_ROLLBACK"
)

List of DeploymentCauseDetailsDigitalOceanUserActionName

type DeploymentCauseDetailsGitPush added in v1.65.0

type DeploymentCauseDetailsGitPush struct {
	GitHub        *GitHubSourceSpec `json:"github,omitempty"`
	GitLab        *GitLabSourceSpec `json:"gitlab,omitempty"`
	Username      string            `json:"username,omitempty"`
	CommitAuthor  string            `json:"commit_author,omitempty"`
	CommitSHA     string            `json:"commit_sha,omitempty"`
	CommitMessage string            `json:"commit_message,omitempty"`
}

DeploymentCauseDetailsGitPush struct for DeploymentCauseDetailsGitPush

type DeploymentCauseDetailsType added in v1.65.0

type DeploymentCauseDetailsType string

DeploymentCauseDetailsType - MANUAL: A deployment that was manually created - DEPLOY_ON_PUSH: A deployment that was automatically created by a Deploy on Push hook - MAINTENANCE: A deployment created for App Platform maintenance - MANUAL_ROLLBACK: A rollback deployment that was manually created - AUTO_ROLLBACK: An automatic rollback deployment created as a result of a previous deployment failing - UPDATE_DATABASE_TRUSTED_SOURCES: A deployment that was created due to an update in database trusted sources.

const (
	DeploymentCauseDetailsType_Unknown                      DeploymentCauseDetailsType = "UNKNOWN"
	DeploymentCauseDetailsType_Manual                       DeploymentCauseDetailsType = "MANUAL"
	DeploymentCauseDetailsType_DeployOnPush                 DeploymentCauseDetailsType = "DEPLOY_ON_PUSH"
	DeploymentCauseDetailsType_Maintenance                  DeploymentCauseDetailsType = "MAINTENANCE"
	DeploymentCauseDetailsType_ManualRollback               DeploymentCauseDetailsType = "MANUAL_ROLLBACK"
	DeploymentCauseDetailsType_AutoRollback                 DeploymentCauseDetailsType = "AUTO_ROLLBACK"
	DeploymentCauseDetailsType_UpdateDatabaseTrustedSources DeploymentCauseDetailsType = "UPDATE_DATABASE_TRUSTED_SOURCES"
)

List of DeploymentCauseDetailsType

type DeploymentCreateRequest added in v1.52.0

type DeploymentCreateRequest struct {
	ForceBuild bool `json:"force_build"`
}

DeploymentCreateRequest represents a request to create a deployment.

type DeploymentFunctions added in v1.74.0

type DeploymentFunctions struct {
	Name string `json:"name,omitempty"`
	// The commit hash of the repository that was used to build this functions component.
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
	// The namespace where the functions are deployed.
	Namespace string `json:"namespace,omitempty"`
}

DeploymentFunctions struct for DeploymentFunctions

type DeploymentJob added in v1.43.0

type DeploymentJob struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
}

DeploymentJob struct for DeploymentJob

type DeploymentPhase added in v1.45.0

type DeploymentPhase string

DeploymentPhase the model 'DeploymentPhase'

const (
	DeploymentPhase_Unknown       DeploymentPhase = "UNKNOWN"
	DeploymentPhase_PendingBuild  DeploymentPhase = "PENDING_BUILD"
	DeploymentPhase_Building      DeploymentPhase = "BUILDING"
	DeploymentPhase_PendingDeploy DeploymentPhase = "PENDING_DEPLOY"
	DeploymentPhase_Deploying     DeploymentPhase = "DEPLOYING"
	DeploymentPhase_Active        DeploymentPhase = "ACTIVE"
	DeploymentPhase_Superseded    DeploymentPhase = "SUPERSEDED"
	DeploymentPhase_Error         DeploymentPhase = "ERROR"
	DeploymentPhase_Canceled      DeploymentPhase = "CANCELED"
)

List of DeploymentPhase

type DeploymentProgress added in v1.39.0

type DeploymentProgress struct {
	PendingSteps int32                     `json:"pending_steps,omitempty"`
	RunningSteps int32                     `json:"running_steps,omitempty"`
	SuccessSteps int32                     `json:"success_steps,omitempty"`
	ErrorSteps   int32                     `json:"error_steps,omitempty"`
	TotalSteps   int32                     `json:"total_steps,omitempty"`
	Steps        []*DeploymentProgressStep `json:"steps,omitempty"`
	SummarySteps []*DeploymentProgressStep `json:"summary_steps,omitempty"`
}

DeploymentProgress struct for DeploymentProgress

type DeploymentProgressStep added in v1.39.0

type DeploymentProgressStep struct {
	Name          string                        `json:"name,omitempty"`
	Status        DeploymentProgressStepStatus  `json:"status,omitempty"`
	Steps         []*DeploymentProgressStep     `json:"steps,omitempty"`
	StartedAt     time.Time                     `json:"started_at,omitempty"`
	EndedAt       time.Time                     `json:"ended_at,omitempty"`
	Reason        *DeploymentProgressStepReason `json:"reason,omitempty"`
	ComponentName string                        `json:"component_name,omitempty"`
	// The base of a human-readable description of the step intended to be combined with the component name for presentation. For example:  `message_base` = \"Building service\" `component_name` = \"api\"
	MessageBase string `json:"message_base,omitempty"`
}

DeploymentProgressStep struct for DeploymentProgressStep

type DeploymentProgressStepReason added in v1.45.0

type DeploymentProgressStepReason struct {
	Code    string `json:"code,omitempty"`
	Message string `json:"message,omitempty"`
}

DeploymentProgressStepReason struct for DeploymentProgressStepReason

type DeploymentProgressStepStatus added in v1.45.0

type DeploymentProgressStepStatus string

DeploymentProgressStepStatus the model 'DeploymentProgressStepStatus'

const (
	DeploymentProgressStepStatus_Unknown DeploymentProgressStepStatus = "UNKNOWN"
	DeploymentProgressStepStatus_Pending DeploymentProgressStepStatus = "PENDING"
	DeploymentProgressStepStatus_Running DeploymentProgressStepStatus = "RUNNING"
	DeploymentProgressStepStatus_Error   DeploymentProgressStepStatus = "ERROR"
	DeploymentProgressStepStatus_Success DeploymentProgressStepStatus = "SUCCESS"
)

List of DeploymentProgressStepStatus

type DeploymentService added in v1.39.0

type DeploymentService struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
}

DeploymentService struct for DeploymentService

type DeploymentStaticSite added in v1.39.0

type DeploymentStaticSite struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
}

DeploymentStaticSite struct for DeploymentStaticSite

type DeploymentWorker added in v1.39.0

type DeploymentWorker struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
}

DeploymentWorker struct for DeploymentWorker

type Destinations added in v1.1.0

type Destinations struct {
	Addresses        []string `json:"addresses,omitempty"`
	Tags             []string `json:"tags,omitempty"`
	DropletIDs       []int    `json:"droplet_ids,omitempty"`
	LoadBalancerUIDs []string `json:"load_balancer_uids,omitempty"`
	KubernetesIDs    []string `json:"kubernetes_ids,omitempty"`
}

Destinations represents a DigitalOcean Firewall OutboundRule destinations.

type DockerCredentials added in v1.25.0

type DockerCredentials struct {
	DockerConfigJSON []byte
}

DockerCredentials is the content of a Docker config file that is used by the docker CLI See: https://docs.docker.com/engine/reference/commandline/cli/#configjson-properties

type Domain added in v0.3.0

type Domain struct {
	Name     string `json:"name"`
	TTL      int    `json:"ttl"`
	ZoneFile string `json:"zone_file"`
}

Domain represents a DigitalOcean domain

func (Domain) String added in v0.3.0

func (d Domain) String() string

func (Domain) URN added in v1.6.0

func (d Domain) URN() string

URN returns the domain name in a valid DO API URN form.

type DomainCreateRequest added in v0.3.0

type DomainCreateRequest struct {
	Name      string `json:"name"`
	IPAddress string `json:"ip_address,omitempty"`
}

DomainCreateRequest represents a request to create a domain.

type DomainRecord

type DomainRecord struct {
	ID       int    `json:"id,omitempty"`
	Type     string `json:"type,omitempty"`
	Name     string `json:"name,omitempty"`
	Data     string `json:"data,omitempty"`
	Priority int    `json:"priority"`
	Port     int    `json:"port"`
	TTL      int    `json:"ttl,omitempty"`
	Weight   int    `json:"weight"`
	Flags    int    `json:"flags"`
	Tag      string `json:"tag,omitempty"`
}

DomainRecord represents a DigitalOcean DomainRecord

func (DomainRecord) String

func (d DomainRecord) String() string

Converts a DomainRecord to a string.

type DomainRecordEditRequest

type DomainRecordEditRequest struct {
	Type     string `json:"type,omitempty"`
	Name     string `json:"name,omitempty"`
	Data     string `json:"data,omitempty"`
	Priority int    `json:"priority"`
	Port     int    `json:"port"`
	TTL      int    `json:"ttl,omitempty"`
	Weight   int    `json:"weight"`
	Flags    int    `json:"flags"`
	Tag      string `json:"tag,omitempty"`
}

DomainRecordEditRequest represents a request to update a domain record.

func (DomainRecordEditRequest) String

func (d DomainRecordEditRequest) String() string

Converts a DomainRecordEditRequest to a string.

type DomainsServiceOp added in v0.3.0

type DomainsServiceOp struct {
	// contains filtered or unexported fields
}

DomainsServiceOp handles communication with the domain related methods of the DigitalOcean API.

func (*DomainsServiceOp) Create added in v0.3.0

func (s *DomainsServiceOp) Create(ctx context.Context, createRequest *DomainCreateRequest) (*Domain, *Response, error)

Create a new domain

func (*DomainsServiceOp) CreateRecord added in v0.3.0

func (s *DomainsServiceOp) CreateRecord(ctx context.Context,
	domain string,
	createRequest *DomainRecordEditRequest) (*DomainRecord, *Response, error)

CreateRecord creates a record using a DomainRecordEditRequest

func (*DomainsServiceOp) Delete added in v0.3.0

func (s *DomainsServiceOp) Delete(ctx context.Context, name string) (*Response, error)

Delete domain

func (*DomainsServiceOp) DeleteRecord added in v0.3.0

func (s *DomainsServiceOp) DeleteRecord(ctx context.Context, domain string, id int) (*Response, error)

DeleteRecord deletes a record from a domain identified by id

func (*DomainsServiceOp) EditRecord added in v0.3.0

func (s *DomainsServiceOp) EditRecord(ctx context.Context,
	domain string,
	id int,
	editRequest *DomainRecordEditRequest,
) (*DomainRecord, *Response, error)

EditRecord edits a record using a DomainRecordEditRequest

func (*DomainsServiceOp) Get added in v0.3.0

func (s *DomainsServiceOp) Get(ctx context.Context, name string) (*Domain, *Response, error)

Get individual domain. It requires a non-empty domain name.

func (DomainsServiceOp) List added in v0.3.0

func (s DomainsServiceOp) List(ctx context.Context, opt *ListOptions) ([]Domain, *Response, error)

List all domains.

func (*DomainsServiceOp) Record added in v0.3.0

func (s *DomainsServiceOp) Record(ctx context.Context, domain string, id int) (*DomainRecord, *Response, error)

Record returns the record id from a domain

func (*DomainsServiceOp) Records added in v0.3.0

func (s *DomainsServiceOp) Records(ctx context.Context, domain string, opt *ListOptions) ([]DomainRecord, *Response, error)

Records returns a slice of DomainRecord for a domain.

func (*DomainsServiceOp) RecordsByName added in v1.38.0

func (s *DomainsServiceOp) RecordsByName(ctx context.Context, domain, name string, opt *ListOptions) ([]DomainRecord, *Response, error)

RecordsByName returns a slice of DomainRecord for a domain matched by record name.

func (*DomainsServiceOp) RecordsByType added in v1.38.0

func (s *DomainsServiceOp) RecordsByType(ctx context.Context, domain, ofType string, opt *ListOptions) ([]DomainRecord, *Response, error)

RecordsByType returns a slice of DomainRecord for a domain matched by record type.

func (*DomainsServiceOp) RecordsByTypeAndName added in v1.38.0

func (s *DomainsServiceOp) RecordsByTypeAndName(ctx context.Context, domain, ofType, name string, opt *ListOptions) ([]DomainRecord, *Response, error)

RecordsByTypeAndName returns a slice of DomainRecord for a domain matched by record type and name.

type Droplet

type Droplet struct {
	ID               int           `json:"id,float64,omitempty"`
	Name             string        `json:"name,omitempty"`
	Memory           int           `json:"memory,omitempty"`
	Vcpus            int           `json:"vcpus,omitempty"`
	Disk             int           `json:"disk,omitempty"`
	Region           *Region       `json:"region,omitempty"`
	Image            *Image        `json:"image,omitempty"`
	Size             *Size         `json:"size,omitempty"`
	SizeSlug         string        `json:"size_slug,omitempty"`
	BackupIDs        []int         `json:"backup_ids,omitempty"`
	NextBackupWindow *BackupWindow `json:"next_backup_window,omitempty"`
	SnapshotIDs      []int         `json:"snapshot_ids,omitempty"`
	Features         []string      `json:"features,omitempty"`
	Locked           bool          `json:"locked,bool,omitempty"`
	Status           string        `json:"status,omitempty"`
	Networks         *Networks     `json:"networks,omitempty"`
	Created          string        `json:"created_at,omitempty"`
	Kernel           *Kernel       `json:"kernel,omitempty"`
	Tags             []string      `json:"tags,omitempty"`
	VolumeIDs        []string      `json:"volume_ids"`
	VPCUUID          string        `json:"vpc_uuid,omitempty"`
}

Droplet represents a DigitalOcean Droplet

func (*Droplet) PrivateIPv4 added in v1.0.0

func (d *Droplet) PrivateIPv4() (string, error)

PrivateIPv4 returns the private IPv4 address for the Droplet.

func (*Droplet) PublicIPv4 added in v1.0.0

func (d *Droplet) PublicIPv4() (string, error)

PublicIPv4 returns the public IPv4 address for the Droplet.

func (*Droplet) PublicIPv6 added in v1.0.0

func (d *Droplet) PublicIPv6() (string, error)

PublicIPv6 returns the public IPv6 address for the Droplet.

func (Droplet) String

func (d Droplet) String() string

Convert Droplet to a string

func (Droplet) URN added in v1.6.0

func (d Droplet) URN() string

URN returns the droplet ID in a valid DO API URN form.

type DropletActionsService

type DropletActionsService interface {
	Shutdown(context.Context, int) (*Action, *Response, error)
	ShutdownByTag(context.Context, string) ([]Action, *Response, error)
	PowerOff(context.Context, int) (*Action, *Response, error)
	PowerOffByTag(context.Context, string) ([]Action, *Response, error)
	PowerOn(context.Context, int) (*Action, *Response, error)
	PowerOnByTag(context.Context, string) ([]Action, *Response, error)
	PowerCycle(context.Context, int) (*Action, *Response, error)
	PowerCycleByTag(context.Context, string) ([]Action, *Response, error)
	Reboot(context.Context, int) (*Action, *Response, error)
	Restore(context.Context, int, int) (*Action, *Response, error)
	Resize(context.Context, int, string, bool) (*Action, *Response, error)
	Rename(context.Context, int, string) (*Action, *Response, error)
	Snapshot(context.Context, int, string) (*Action, *Response, error)
	SnapshotByTag(context.Context, string, string) ([]Action, *Response, error)
	EnableBackups(context.Context, int) (*Action, *Response, error)
	EnableBackupsByTag(context.Context, string) ([]Action, *Response, error)
	DisableBackups(context.Context, int) (*Action, *Response, error)
	DisableBackupsByTag(context.Context, string) ([]Action, *Response, error)
	PasswordReset(context.Context, int) (*Action, *Response, error)
	RebuildByImageID(context.Context, int, int) (*Action, *Response, error)
	RebuildByImageSlug(context.Context, int, string) (*Action, *Response, error)
	ChangeKernel(context.Context, int, int) (*Action, *Response, error)
	EnableIPv6(context.Context, int) (*Action, *Response, error)
	EnableIPv6ByTag(context.Context, string) ([]Action, *Response, error)
	EnablePrivateNetworking(context.Context, int) (*Action, *Response, error)
	EnablePrivateNetworkingByTag(context.Context, string) ([]Action, *Response, error)
	Get(context.Context, int, int) (*Action, *Response, error)
	GetByURI(context.Context, string) (*Action, *Response, error)
}

DropletActionsService is an interface for interfacing with the Droplet actions endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Droplet-Actions

type DropletActionsServiceOp added in v0.3.0

type DropletActionsServiceOp struct {
	// contains filtered or unexported fields
}

DropletActionsServiceOp handles communication with the Droplet action related methods of the DigitalOcean API.

func (*DropletActionsServiceOp) ChangeKernel added in v0.9.0

func (s *DropletActionsServiceOp) ChangeKernel(ctx context.Context, id, kernelID int) (*Action, *Response, error)

ChangeKernel changes the kernel for a Droplet.

func (*DropletActionsServiceOp) DisableBackups added in v0.9.0

func (s *DropletActionsServiceOp) DisableBackups(ctx context.Context, id int) (*Action, *Response, error)

DisableBackups disables backups for a Droplet.

func (*DropletActionsServiceOp) DisableBackupsByTag added in v1.0.0

func (s *DropletActionsServiceOp) DisableBackupsByTag(ctx context.Context, tag string) ([]Action, *Response, error)

DisableBackupsByTag disables backups for Droplet matched by a Tag.

func (*DropletActionsServiceOp) EnableBackups added in v1.0.0

func (s *DropletActionsServiceOp) EnableBackups(ctx context.Context, id int) (*Action, *Response, error)

EnableBackups enables backups for a Droplet.

func (*DropletActionsServiceOp) EnableBackupsByTag added in v1.0.0

func (s *DropletActionsServiceOp) EnableBackupsByTag(ctx context.Context, tag string) ([]Action, *Response, error)

EnableBackupsByTag enables backups for Droplets matched by a Tag.

func (*DropletActionsServiceOp) EnableIPv6 added in v0.9.0

func (s *DropletActionsServiceOp) EnableIPv6(ctx context.Context, id int) (*Action, *Response, error)

EnableIPv6 enables IPv6 for a Droplet.

func (*DropletActionsServiceOp) EnableIPv6ByTag added in v1.0.0

func (s *DropletActionsServiceOp) EnableIPv6ByTag(ctx context.Context, tag string) ([]Action, *Response, error)

EnableIPv6ByTag enables IPv6 for Droplets matched by a Tag.

func (*DropletActionsServiceOp) EnablePrivateNetworking added in v0.9.0

func (s *DropletActionsServiceOp) EnablePrivateNetworking(ctx context.Context, id int) (*Action, *Response, error)

EnablePrivateNetworking enables private networking for a Droplet.

func (*DropletActionsServiceOp) EnablePrivateNetworkingByTag added in v1.0.0

func (s *DropletActionsServiceOp) EnablePrivateNetworkingByTag(ctx context.Context, tag string) ([]Action, *Response, error)

EnablePrivateNetworkingByTag enables private networking for Droplets matched by a Tag.

func (*DropletActionsServiceOp) Get added in v0.3.0

func (s *DropletActionsServiceOp) Get(ctx context.Context, dropletID, actionID int) (*Action, *Response, error)

Get an action for a particular Droplet by id.

func (*DropletActionsServiceOp) GetByURI added in v0.3.0

func (s *DropletActionsServiceOp) GetByURI(ctx context.Context, rawurl string) (*Action, *Response, error)

GetByURI gets an action for a particular Droplet by id.

func (*DropletActionsServiceOp) PasswordReset added in v0.9.0

func (s *DropletActionsServiceOp) PasswordReset(ctx context.Context, id int) (*Action, *Response, error)

PasswordReset resets the password for a Droplet.

func (*DropletActionsServiceOp) PowerCycle added in v0.3.0

func (s *DropletActionsServiceOp) PowerCycle(ctx context.Context, id int) (*Action, *Response, error)

PowerCycle a Droplet

func (*DropletActionsServiceOp) PowerCycleByTag added in v1.0.0

func (s *DropletActionsServiceOp) PowerCycleByTag(ctx context.Context, tag string) ([]Action, *Response, error)

PowerCycleByTag power cycles Droplets matched by a Tag.

func (*DropletActionsServiceOp) PowerOff added in v0.3.0

func (s *DropletActionsServiceOp) PowerOff(ctx context.Context, id int) (*Action, *Response, error)

PowerOff a Droplet

func (*DropletActionsServiceOp) PowerOffByTag added in v1.0.0

func (s *DropletActionsServiceOp) PowerOffByTag(ctx context.Context, tag string) ([]Action, *Response, error)

PowerOffByTag powers off Droplets matched by a Tag.

func (*DropletActionsServiceOp) PowerOn added in v0.4.0

func (s *DropletActionsServiceOp) PowerOn(ctx context.Context, id int) (*Action, *Response, error)

PowerOn a Droplet

func (*DropletActionsServiceOp) PowerOnByTag added in v1.0.0

func (s *DropletActionsServiceOp) PowerOnByTag(ctx context.Context, tag string) ([]Action, *Response, error)

PowerOnByTag powers on Droplets matched by a Tag.

func (*DropletActionsServiceOp) Reboot added in v0.3.0

func (s *DropletActionsServiceOp) Reboot(ctx context.Context, id int) (*Action, *Response, error)

Reboot a Droplet

func (*DropletActionsServiceOp) RebuildByImageID added in v0.9.0

func (s *DropletActionsServiceOp) RebuildByImageID(ctx context.Context, id, imageID int) (*Action, *Response, error)

RebuildByImageID rebuilds a Droplet from an image with a given id.

func (*DropletActionsServiceOp) RebuildByImageSlug added in v0.9.0

func (s *DropletActionsServiceOp) RebuildByImageSlug(ctx context.Context, id int, slug string) (*Action, *Response, error)

RebuildByImageSlug rebuilds a Droplet from an Image matched by a given Slug.

func (*DropletActionsServiceOp) Rename added in v0.3.0

func (s *DropletActionsServiceOp) Rename(ctx context.Context, id int, name string) (*Action, *Response, error)

Rename a Droplet

func (*DropletActionsServiceOp) Resize added in v0.3.0

func (s *DropletActionsServiceOp) Resize(ctx context.Context, id int, sizeSlug string, resizeDisk bool) (*Action, *Response, error)

Resize a Droplet

func (*DropletActionsServiceOp) Restore added in v0.3.0

func (s *DropletActionsServiceOp) Restore(ctx context.Context, id, imageID int) (*Action, *Response, error)

Restore an image to a Droplet

func (*DropletActionsServiceOp) Shutdown added in v0.3.0

func (s *DropletActionsServiceOp) Shutdown(ctx context.Context, id int) (*Action, *Response, error)

Shutdown a Droplet

func (*DropletActionsServiceOp) ShutdownByTag added in v1.0.0

func (s *DropletActionsServiceOp) ShutdownByTag(ctx context.Context, tag string) ([]Action, *Response, error)

ShutdownByTag shuts down Droplets matched by a Tag.

func (*DropletActionsServiceOp) Snapshot added in v0.6.0

func (s *DropletActionsServiceOp) Snapshot(ctx context.Context, id int, name string) (*Action, *Response, error)

Snapshot a Droplet.

func (*DropletActionsServiceOp) SnapshotByTag added in v1.0.0

func (s *DropletActionsServiceOp) SnapshotByTag(ctx context.Context, tag string, name string) ([]Action, *Response, error)

SnapshotByTag snapshots Droplets matched by a Tag.

type DropletBandwidthMetricsRequest added in v1.70.0

type DropletBandwidthMetricsRequest struct {
	DropletMetricsRequest
	Interface string
	Direction string
}

DropletBandwidthMetricsRequest holds the information needed to retrieve Droplet bandwidth metrics.

type DropletCreateImage added in v0.9.0

type DropletCreateImage struct {
	ID   int
	Slug string
}

DropletCreateImage identifies an image for the create request. It prefers slug over ID.

func (DropletCreateImage) MarshalJSON added in v0.9.0

func (d DropletCreateImage) MarshalJSON() ([]byte, error)

MarshalJSON returns either the slug or id of the image. It returns the id if the slug is empty.

type DropletCreateRequest

type DropletCreateRequest struct {
	Name              string                `json:"name"`
	Region            string                `json:"region"`
	Size              string                `json:"size"`
	Image             DropletCreateImage    `json:"image"`
	SSHKeys           []DropletCreateSSHKey `json:"ssh_keys"`
	Backups           bool                  `json:"backups"`
	IPv6              bool                  `json:"ipv6"`
	PrivateNetworking bool                  `json:"private_networking"`
	Monitoring        bool                  `json:"monitoring"`
	UserData          string                `json:"user_data,omitempty"`
	Volumes           []DropletCreateVolume `json:"volumes,omitempty"`
	Tags              []string              `json:"tags"`
	VPCUUID           string                `json:"vpc_uuid,omitempty"`
	WithDropletAgent  *bool                 `json:"with_droplet_agent,omitempty"`
}

DropletCreateRequest represents a request to create a Droplet.

func (DropletCreateRequest) String

func (d DropletCreateRequest) String() string

type DropletCreateSSHKey added in v0.9.0

type DropletCreateSSHKey struct {
	ID          int
	Fingerprint string
}

DropletCreateSSHKey identifies a SSH Key for the create request. It prefers fingerprint over ID.

func (DropletCreateSSHKey) MarshalJSON added in v0.9.0

func (d DropletCreateSSHKey) MarshalJSON() ([]byte, error)

MarshalJSON returns either the fingerprint or id of the ssh key. It returns the id if the fingerprint is empty.

type DropletCreateVolume added in v1.0.0

type DropletCreateVolume struct {
	ID string
	// Deprecated: You must pass the volume's ID when creating a Droplet.
	Name string
}

DropletCreateVolume identifies a volume to attach for the create request.

func (DropletCreateVolume) MarshalJSON added in v1.0.0

func (d DropletCreateVolume) MarshalJSON() ([]byte, error)

MarshalJSON returns an object with either the ID or name of the volume. It prefers the ID over the name.

type DropletMetricsRequest added in v1.70.0

type DropletMetricsRequest struct {
	HostID string
	Start  time.Time
	End    time.Time
}

DropletMetricsRequest holds the information needed to retrieve Droplet various metrics.

type DropletMultiCreateRequest added in v1.0.0

type DropletMultiCreateRequest struct {
	Names             []string              `json:"names"`
	Region            string                `json:"region"`
	Size              string                `json:"size"`
	Image             DropletCreateImage    `json:"image"`
	SSHKeys           []DropletCreateSSHKey `json:"ssh_keys"`
	Backups           bool                  `json:"backups"`
	IPv6              bool                  `json:"ipv6"`
	PrivateNetworking bool                  `json:"private_networking"`
	Monitoring        bool                  `json:"monitoring"`
	UserData          string                `json:"user_data,omitempty"`
	Tags              []string              `json:"tags"`
	VPCUUID           string                `json:"vpc_uuid,omitempty"`
	WithDropletAgent  *bool                 `json:"with_droplet_agent,omitempty"`
}

DropletMultiCreateRequest is a request to create multiple Droplets.

func (DropletMultiCreateRequest) String added in v1.0.0

func (d DropletMultiCreateRequest) String() string

type DropletsService

DropletsService is an interface for interfacing with the Droplet endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Droplets

type DropletsServiceOp added in v0.3.0

type DropletsServiceOp struct {
	// contains filtered or unexported fields
}

DropletsServiceOp handles communication with the Droplet related methods of the DigitalOcean API.

func (*DropletsServiceOp) Actions added in v0.9.0

func (s *DropletsServiceOp) Actions(ctx context.Context, dropletID int, opt *ListOptions) ([]Action, *Response, error)

Actions lists the actions for a Droplet.

func (*DropletsServiceOp) Backups added in v0.9.0

func (s *DropletsServiceOp) Backups(ctx context.Context, dropletID int, opt *ListOptions) ([]Image, *Response, error)

Backups lists the backups for a Droplet.

func (*DropletsServiceOp) Create added in v0.3.0

func (s *DropletsServiceOp) Create(ctx context.Context, createRequest *DropletCreateRequest) (*Droplet, *Response, error)

Create Droplet

func (*DropletsServiceOp) CreateMultiple added in v1.0.0

func (s *DropletsServiceOp) CreateMultiple(ctx context.Context, createRequest *DropletMultiCreateRequest) ([]Droplet, *Response, error)

CreateMultiple creates multiple Droplets.

func (*DropletsServiceOp) Delete added in v0.3.0

func (s *DropletsServiceOp) Delete(ctx context.Context, dropletID int) (*Response, error)

Delete Droplet.

func (*DropletsServiceOp) DeleteByTag added in v1.0.0

func (s *DropletsServiceOp) DeleteByTag(ctx context.Context, tag string) (*Response, error)

DeleteByTag deletes Droplets matched by a Tag.

func (*DropletsServiceOp) Get added in v0.3.0

func (s *DropletsServiceOp) Get(ctx context.Context, dropletID int) (*Droplet, *Response, error)

Get individual Droplet.

func (*DropletsServiceOp) Kernels added in v0.9.0

func (s *DropletsServiceOp) Kernels(ctx context.Context, dropletID int, opt *ListOptions) ([]Kernel, *Response, error)

Kernels lists kernels available for a Droplet.

func (*DropletsServiceOp) List added in v0.3.0

List all Droplets.

func (*DropletsServiceOp) ListByTag added in v1.0.0

func (s *DropletsServiceOp) ListByTag(ctx context.Context, tag string, opt *ListOptions) ([]Droplet, *Response, error)

ListByTag lists all Droplets matched by a Tag.

func (*DropletsServiceOp) Neighbors added in v0.9.0

func (s *DropletsServiceOp) Neighbors(ctx context.Context, dropletID int) ([]Droplet, *Response, error)

Neighbors lists the neighbors for a Droplet.

func (*DropletsServiceOp) Snapshots added in v0.9.0

func (s *DropletsServiceOp) Snapshots(ctx context.Context, dropletID int, opt *ListOptions) ([]Image, *Response, error)

Snapshots lists the snapshots available for a Droplet.

type ErrorResponse

type ErrorResponse struct {
	// HTTP response that caused this error
	Response *http.Response

	// Error message
	Message string `json:"message"`

	// RequestID returned from the API, useful to contact support.
	RequestID string `json:"request_id"`
}

An ErrorResponse reports the error caused by an API request

func (*ErrorResponse) Error

func (r *ErrorResponse) Error() string

type Firewall added in v1.1.0

type Firewall struct {
	ID             string          `json:"id"`
	Name           string          `json:"name"`
	Status         string          `json:"status"`
	InboundRules   []InboundRule   `json:"inbound_rules"`
	OutboundRules  []OutboundRule  `json:"outbound_rules"`
	DropletIDs     []int           `json:"droplet_ids"`
	Tags           []string        `json:"tags"`
	Created        string          `json:"created_at"`
	PendingChanges []PendingChange `json:"pending_changes"`
}

Firewall represents a DigitalOcean Firewall configuration.

func (Firewall) String added in v1.1.0

func (fw Firewall) String() string

String creates a human-readable description of a Firewall.

func (Firewall) URN added in v1.6.0

func (fw Firewall) URN() string

URN returns the firewall name in a valid DO API URN form.

type FirewallRequest added in v1.1.0

type FirewallRequest struct {
	Name          string         `json:"name"`
	InboundRules  []InboundRule  `json:"inbound_rules"`
	OutboundRules []OutboundRule `json:"outbound_rules"`
	DropletIDs    []int          `json:"droplet_ids"`
	Tags          []string       `json:"tags"`
}

FirewallRequest represents the configuration to be applied to an existing or a new Firewall.

type FirewallRulesRequest added in v1.1.0

type FirewallRulesRequest struct {
	InboundRules  []InboundRule  `json:"inbound_rules"`
	OutboundRules []OutboundRule `json:"outbound_rules"`
}

FirewallRulesRequest represents rules configuration to be applied to an existing Firewall.

type FirewallsService added in v1.1.0

FirewallsService is an interface for managing Firewalls with the DigitalOcean API. See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Firewalls

type FirewallsServiceOp added in v1.1.0

type FirewallsServiceOp struct {
	// contains filtered or unexported fields
}

FirewallsServiceOp handles communication with Firewalls methods of the DigitalOcean API.

func (*FirewallsServiceOp) AddDroplets added in v1.1.0

func (fw *FirewallsServiceOp) AddDroplets(ctx context.Context, fID string, dropletIDs ...int) (*Response, error)

AddDroplets to a Firewall.

func (*FirewallsServiceOp) AddRules added in v1.1.0

AddRules to a Firewall.

func (*FirewallsServiceOp) AddTags added in v1.1.0

func (fw *FirewallsServiceOp) AddTags(ctx context.Context, fID string, tags ...string) (*Response, error)

AddTags to a Firewall.

func (*FirewallsServiceOp) Create added in v1.1.0

Create a new Firewall with a given configuration.

func (*FirewallsServiceOp) Delete added in v1.1.0

func (fw *FirewallsServiceOp) Delete(ctx context.Context, fID string) (*Response, error)

Delete a Firewall by its identifier.

func (*FirewallsServiceOp) Get added in v1.1.0

Get an existing Firewall by its identifier.

func (*FirewallsServiceOp) List added in v1.1.0

List Firewalls.

func (*FirewallsServiceOp) ListByDroplet added in v1.1.0

func (fw *FirewallsServiceOp) ListByDroplet(ctx context.Context, dID int, opt *ListOptions) ([]Firewall, *Response, error)

ListByDroplet Firewalls.

func (*FirewallsServiceOp) RemoveDroplets added in v1.1.0

func (fw *FirewallsServiceOp) RemoveDroplets(ctx context.Context, fID string, dropletIDs ...int) (*Response, error)

RemoveDroplets from a Firewall.

func (*FirewallsServiceOp) RemoveRules added in v1.1.0

func (fw *FirewallsServiceOp) RemoveRules(ctx context.Context, fID string, rr *FirewallRulesRequest) (*Response, error)

RemoveRules from a Firewall.

func (*FirewallsServiceOp) RemoveTags added in v1.1.0

func (fw *FirewallsServiceOp) RemoveTags(ctx context.Context, fID string, tags ...string) (*Response, error)

RemoveTags from a Firewall.

func (*FirewallsServiceOp) Update added in v1.1.0

Update an existing Firewall with new configuration.

type FloatingIP added in v1.0.0

type FloatingIP struct {
	Region  *Region  `json:"region"`
	Droplet *Droplet `json:"droplet"`
	IP      string   `json:"ip"`
}

FloatingIP represents a Digital Ocean floating IP.

func (FloatingIP) String added in v1.0.0

func (f FloatingIP) String() string

func (FloatingIP) URN added in v1.6.0

func (f FloatingIP) URN() string

URN returns the floating IP in a valid DO API URN form.

type FloatingIPActionsService added in v1.0.0

type FloatingIPActionsService interface {
	Assign(ctx context.Context, ip string, dropletID int) (*Action, *Response, error)
	Unassign(ctx context.Context, ip string) (*Action, *Response, error)
	Get(ctx context.Context, ip string, actionID int) (*Action, *Response, error)
	List(ctx context.Context, ip string, opt *ListOptions) ([]Action, *Response, error)
}

FloatingIPActionsService is an interface for interfacing with the floating IPs actions endpoints of the Digital Ocean API. See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Floating-IP-Actions

type FloatingIPActionsServiceOp added in v1.0.0

type FloatingIPActionsServiceOp struct {
	// contains filtered or unexported fields
}

FloatingIPActionsServiceOp handles communication with the floating IPs action related methods of the DigitalOcean API.

func (*FloatingIPActionsServiceOp) Assign added in v1.0.0

func (s *FloatingIPActionsServiceOp) Assign(ctx context.Context, ip string, dropletID int) (*Action, *Response, error)

Assign a floating IP to a droplet.

func (*FloatingIPActionsServiceOp) Get added in v1.0.0

func (s *FloatingIPActionsServiceOp) Get(ctx context.Context, ip string, actionID int) (*Action, *Response, error)

Get an action for a particular floating IP by id.

func (*FloatingIPActionsServiceOp) List added in v1.0.0

List the actions for a particular floating IP.

func (*FloatingIPActionsServiceOp) Unassign added in v1.0.0

Unassign a floating IP from the droplet it is currently assigned to.

type FloatingIPCreateRequest added in v1.0.0

type FloatingIPCreateRequest struct {
	Region    string `json:"region,omitempty"`
	DropletID int    `json:"droplet_id,omitempty"`
}

FloatingIPCreateRequest represents a request to create a floating IP. Specify DropletID to assign the floating IP to a Droplet or Region to reserve it to the region.

type FloatingIPsService added in v1.0.0

FloatingIPsService is an interface for interfacing with the floating IPs endpoints of the Digital Ocean API. See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Floating-IPs

type FloatingIPsServiceOp added in v1.0.0

type FloatingIPsServiceOp struct {
	// contains filtered or unexported fields
}

FloatingIPsServiceOp handles communication with the floating IPs related methods of the DigitalOcean API.

func (*FloatingIPsServiceOp) Create added in v1.0.0

Create a floating IP. If the DropletID field of the request is not empty, the floating IP will also be assigned to the droplet.

func (*FloatingIPsServiceOp) Delete added in v1.0.0

func (f *FloatingIPsServiceOp) Delete(ctx context.Context, ip string) (*Response, error)

Delete a floating IP.

func (*FloatingIPsServiceOp) Get added in v1.0.0

Get an individual floating IP.

func (*FloatingIPsServiceOp) List added in v1.0.0

List all floating IPs.

type ForwardingRule added in v1.0.0

type ForwardingRule struct {
	EntryProtocol  string `json:"entry_protocol,omitempty"`
	EntryPort      int    `json:"entry_port,omitempty"`
	TargetProtocol string `json:"target_protocol,omitempty"`
	TargetPort     int    `json:"target_port,omitempty"`
	CertificateID  string `json:"certificate_id,omitempty"`
	TlsPassthrough bool   `json:"tls_passthrough,omitempty"`
}

ForwardingRule represents load balancer forwarding rules.

func (ForwardingRule) String added in v1.0.0

func (f ForwardingRule) String() string

String creates a human-readable description of a ForwardingRule.

type GarbageCollection added in v1.50.0

type GarbageCollection struct {
	UUID         string                `json:"uuid"`
	RegistryName string                `json:"registry_name"`
	Status       string                `json:"status"`
	Type         GarbageCollectionType `json:"type"`
	CreatedAt    time.Time             `json:"created_at"`
	UpdatedAt    time.Time             `json:"updated_at"`
	BlobsDeleted uint64                `json:"blobs_deleted"`
	FreedBytes   uint64                `json:"freed_bytes"`
}

GarbageCollection represents a garbage collection.

type GarbageCollectionType added in v1.54.0

type GarbageCollectionType string

type GitHubSourceSpec added in v1.39.0

type GitHubSourceSpec struct {
	Repo         string `json:"repo,omitempty"`
	Branch       string `json:"branch,omitempty"`
	DeployOnPush bool   `json:"deploy_on_push,omitempty"`
}

GitHubSourceSpec struct for GitHubSourceSpec

type GitLabSourceSpec added in v1.57.0

type GitLabSourceSpec struct {
	Repo         string `json:"repo,omitempty"`
	Branch       string `json:"branch,omitempty"`
	DeployOnPush bool   `json:"deploy_on_push,omitempty"`
}

GitLabSourceSpec struct for GitLabSourceSpec

type GitSourceSpec added in v1.39.0

type GitSourceSpec struct {
	RepoCloneURL string `json:"repo_clone_url,omitempty"`
	Branch       string `json:"branch,omitempty"`
}

GitSourceSpec struct for GitSourceSpec

type HealthCheck added in v1.0.0

type HealthCheck struct {
	Protocol               string `json:"protocol,omitempty"`
	Port                   int    `json:"port,omitempty"`
	Path                   string `json:"path,omitempty"`
	CheckIntervalSeconds   int    `json:"check_interval_seconds,omitempty"`
	ResponseTimeoutSeconds int    `json:"response_timeout_seconds,omitempty"`
	HealthyThreshold       int    `json:"healthy_threshold,omitempty"`
	UnhealthyThreshold     int    `json:"unhealthy_threshold,omitempty"`
}

HealthCheck represents optional load balancer health check rules.

func (HealthCheck) String added in v1.0.0

func (h HealthCheck) String() string

String creates a human-readable description of a HealthCheck.

type Image

type Image struct {
	ID            int      `json:"id,float64,omitempty"`
	Name          string   `json:"name,omitempty"`
	Type          string   `json:"type,omitempty"`
	Distribution  string   `json:"distribution,omitempty"`
	Slug          string   `json:"slug,omitempty"`
	Public        bool     `json:"public,omitempty"`
	Regions       []string `json:"regions,omitempty"`
	MinDiskSize   int      `json:"min_disk_size,omitempty"`
	SizeGigaBytes float64  `json:"size_gigabytes,omitempty"`
	Created       string   `json:"created_at,omitempty"`
	Description   string   `json:"description,omitempty"`
	Tags          []string `json:"tags,omitempty"`
	Status        string   `json:"status,omitempty"`
	ErrorMessage  string   `json:"error_message,omitempty"`
}

Image represents a DigitalOcean Image

func (Image) String

func (i Image) String() string

type ImageActionsService

type ImageActionsService interface {
	Get(context.Context, int, int) (*Action, *Response, error)
	Transfer(context.Context, int, *ActionRequest) (*Action, *Response, error)
	Convert(context.Context, int) (*Action, *Response, error)
}

ImageActionsService is an interface for interfacing with the image actions endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Image-Actions

type ImageActionsServiceOp added in v0.3.0

type ImageActionsServiceOp struct {
	// contains filtered or unexported fields
}

ImageActionsServiceOp handles communication with the image action related methods of the DigitalOcean API.

func (*ImageActionsServiceOp) Convert added in v1.0.0

func (i *ImageActionsServiceOp) Convert(ctx context.Context, imageID int) (*Action, *Response, error)

Convert an image to a snapshot

func (*ImageActionsServiceOp) Get added in v0.3.0

func (i *ImageActionsServiceOp) Get(ctx context.Context, imageID, actionID int) (*Action, *Response, error)

Get an action for a particular image by id.

func (*ImageActionsServiceOp) Transfer added in v0.3.0

func (i *ImageActionsServiceOp) Transfer(ctx context.Context, imageID int, transferRequest *ActionRequest) (*Action, *Response, error)

Transfer an image

type ImageSourceSpec added in v1.52.0

type ImageSourceSpec struct {
	RegistryType ImageSourceSpecRegistryType `json:"registry_type,omitempty"`
	// The registry name. Must be left empty for the `DOCR` registry type.  Required for the `DOCKER_HUB` registry type.
	Registry string `json:"registry,omitempty"`
	// The repository name.
	Repository string `json:"repository,omitempty"`
	// The repository tag. Defaults to `latest` if not provided.
	Tag string `json:"tag,omitempty"`
}

ImageSourceSpec struct for ImageSourceSpec

type ImageSourceSpecRegistryType added in v1.52.0

type ImageSourceSpecRegistryType string

ImageSourceSpecRegistryType - DOCR: The DigitalOcean container registry type. - DOCKER_HUB: The DockerHub container registry type.

const (
	ImageSourceSpecRegistryType_Unspecified ImageSourceSpecRegistryType = "UNSPECIFIED"
	ImageSourceSpecRegistryType_DOCR        ImageSourceSpecRegistryType = "DOCR"
	ImageSourceSpecRegistryType_DockerHub   ImageSourceSpecRegistryType = "DOCKER_HUB"
)

List of ImageSourceSpecRegistryType

type ImageUpdateRequest added in v0.9.0

type ImageUpdateRequest struct {
	Name         string `json:"name,omitempty"`
	Distribution string `json:"distribution,omitempty"`
	Description  string `json:"description,omitempty"`
}

ImageUpdateRequest represents a request to update an image.

type ImagesService

type ImagesService interface {
	List(context.Context, *ListOptions) ([]Image, *Response, error)
	ListDistribution(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)
	ListApplication(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)
	ListUser(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)
	ListByTag(ctx context.Context, tag string, opt *ListOptions) ([]Image, *Response, error)
	GetByID(context.Context, int) (*Image, *Response, error)
	GetBySlug(context.Context, string) (*Image, *Response, error)
	Create(context.Context, *CustomImageCreateRequest) (*Image, *Response, error)
	Update(context.Context, int, *ImageUpdateRequest) (*Image, *Response, error)
	Delete(context.Context, int) (*Response, error)
}

ImagesService is an interface for interfacing with the images endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Images

type ImagesServiceOp added in v0.3.0

type ImagesServiceOp struct {
	// contains filtered or unexported fields
}

ImagesServiceOp handles communication with the image related methods of the DigitalOcean API.

func (*ImagesServiceOp) Create added in v1.7.1

func (s *ImagesServiceOp) Create(ctx context.Context, createRequest *CustomImageCreateRequest) (*Image, *Response, error)

Create a new image

func (*ImagesServiceOp) Delete added in v0.9.0

func (s *ImagesServiceOp) Delete(ctx context.Context, imageID int) (*Response, error)

Delete an image.

func (*ImagesServiceOp) GetByID added in v0.9.0

func (s *ImagesServiceOp) GetByID(ctx context.Context, imageID int) (*Image, *Response, error)

GetByID retrieves an image by id.

func (*ImagesServiceOp) GetBySlug added in v0.9.0

func (s *ImagesServiceOp) GetBySlug(ctx context.Context, slug string) (*Image, *Response, error)

GetBySlug retrieves an image by slug.

func (*ImagesServiceOp) List added in v0.3.0

func (s *ImagesServiceOp) List(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)

List lists all the images available.

func (*ImagesServiceOp) ListApplication added in v0.9.0

func (s *ImagesServiceOp) ListApplication(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)

ListApplication lists all the application images.

func (*ImagesServiceOp) ListByTag added in v1.7.1

func (s *ImagesServiceOp) ListByTag(ctx context.Context, tag string, opt *ListOptions) ([]Image, *Response, error)

ListByTag lists all images with a specific tag applied.

func (*ImagesServiceOp) ListDistribution added in v0.9.0

func (s *ImagesServiceOp) ListDistribution(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)

ListDistribution lists all the distribution images.

func (*ImagesServiceOp) ListUser added in v0.9.0

func (s *ImagesServiceOp) ListUser(ctx context.Context, opt *ListOptions) ([]Image, *Response, error)

ListUser lists all the user images.

func (*ImagesServiceOp) Update added in v0.9.0

func (s *ImagesServiceOp) Update(ctx context.Context, imageID int, updateRequest *ImageUpdateRequest) (*Image, *Response, error)

Update an image name.

type InboundRule added in v1.1.0

type InboundRule struct {
	Protocol  string   `json:"protocol,omitempty"`
	PortRange string   `json:"ports,omitempty"`
	Sources   *Sources `json:"sources"`
}

InboundRule represents a DigitalOcean Firewall inbound rule.

type InstallKubernetesAppsRequest added in v1.38.0

type InstallKubernetesAppsRequest struct {
	Slugs       []string `json:"addon_slugs"`
	ClusterUUID string   `json:"cluster_uuid"`
}

InstallKubernetesAppsRequest represents a request required to install 1-click kubernetes apps

type InstallKubernetesAppsResponse added in v1.38.0

type InstallKubernetesAppsResponse struct {
	Message string `json:"message"`
}

InstallKubernetesAppsResponse is the response of a kubernetes 1-click install request

type Invoice added in v1.31.0

type Invoice struct {
	InvoiceItems []InvoiceItem `json:"invoice_items"`
	Links        *Links        `json:"links"`
	Meta         *Meta         `json:"meta"`
}

Invoice represents a DigitalOcean Invoice

func (Invoice) String added in v1.31.0

func (i Invoice) String() string

type InvoiceItem added in v1.31.0

type InvoiceItem struct {
	Product          string    `json:"product"`
	ResourceID       string    `json:"resource_id"`
	ResourceUUID     string    `json:"resource_uuid"`
	GroupDescription string    `json:"group_description"`
	Description      string    `json:"description"`
	Amount           string    `json:"amount"`
	Duration         string    `json:"duration"`
	DurationUnit     string    `json:"duration_unit"`
	StartTime        time.Time `json:"start_time"`
	EndTime          time.Time `json:"end_time"`
	ProjectName      string    `json:"project_name"`
	Category         string    `json:"category"`
}

InvoiceItem represents a line-item on a DigitalOcean Invoice

type InvoiceList added in v1.31.0

type InvoiceList struct {
	Invoices       []InvoiceListItem `json:"invoices"`
	InvoicePreview InvoiceListItem   `json:"invoice_preview"`
	Links          *Links            `json:"links"`
	Meta           *Meta             `json:"meta"`
}

InvoiceList contains a paginated list of all of a customer's invoices. The InvoicePreview is the month-to-date usage generated by DigitalOcean.

type InvoiceListItem added in v1.31.0

type InvoiceListItem struct {
	InvoiceUUID   string    `json:"invoice_uuid"`
	Amount        string    `json:"amount"`
	InvoicePeriod string    `json:"invoice_period"`
	UpdatedAt     time.Time `json:"updated_at"`
}

InvoiceListItem contains a small list of information about a customer's invoice. More information can be found in the Invoice or InvoiceSummary

type InvoiceSummary added in v1.31.0

type InvoiceSummary struct {
	InvoiceUUID           string                  `json:"invoice_uuid"`
	BillingPeriod         string                  `json:"billing_period"`
	Amount                string                  `json:"amount"`
	UserName              string                  `json:"user_name"`
	UserBillingAddress    Address                 `json:"user_billing_address"`
	UserCompany           string                  `json:"user_company"`
	UserEmail             string                  `json:"user_email"`
	ProductCharges        InvoiceSummaryBreakdown `json:"product_charges"`
	Overages              InvoiceSummaryBreakdown `json:"overages"`
	Taxes                 InvoiceSummaryBreakdown `json:"taxes"`
	CreditsAndAdjustments InvoiceSummaryBreakdown `json:"credits_and_adjustments"`
}

InvoiceSummary contains metadata and summarized usage for an invoice generated by DigitalOcean

type InvoiceSummaryBreakdown added in v1.31.0

type InvoiceSummaryBreakdown struct {
	Name   string                        `json:"name"`
	Amount string                        `json:"amount"`
	Items  []InvoiceSummaryBreakdownItem `json:"items"`
}

InvoiceSummaryBreakdown is a grouped set of InvoiceItems from an invoice

type InvoiceSummaryBreakdownItem added in v1.31.0

type InvoiceSummaryBreakdownItem struct {
	Name   string `json:"name"`
	Amount string `json:"amount"`
	Count  string `json:"count"`
}

InvoiceSummaryBreakdownItem further breaks down the InvoiceSummary by product

type InvoicesService added in v1.31.0

InvoicesService is an interface for interfacing with the Invoice endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Billing

type InvoicesServiceOp added in v1.31.0

type InvoicesServiceOp struct {
	// contains filtered or unexported fields
}

InvoicesServiceOp handles communication with the Invoice related methods of the DigitalOcean API.

func (*InvoicesServiceOp) Get added in v1.31.0

func (s *InvoicesServiceOp) Get(ctx context.Context, invoiceUUID string, opt *ListOptions) (*Invoice, *Response, error)

Get detailed invoice items for an Invoice

func (*InvoicesServiceOp) GetCSV added in v1.31.0

func (s *InvoicesServiceOp) GetCSV(ctx context.Context, invoiceUUID string) ([]byte, *Response, error)

GetCSV returns the csv for an Invoice

func (*InvoicesServiceOp) GetPDF added in v1.31.0

func (s *InvoicesServiceOp) GetPDF(ctx context.Context, invoiceUUID string) ([]byte, *Response, error)

GetPDF returns the pdf for an Invoice

func (*InvoicesServiceOp) GetSummary added in v1.31.0

func (s *InvoicesServiceOp) GetSummary(ctx context.Context, invoiceUUID string) (*InvoiceSummary, *Response, error)

GetSummary returns a summary of metadata and summarized usage for an Invoice

func (*InvoicesServiceOp) List added in v1.31.0

List invoices for a customer

type Kernel added in v0.9.0

type Kernel struct {
	ID      int    `json:"id,float64,omitempty"`
	Name    string `json:"name,omitempty"`
	Version string `json:"version,omitempty"`
}

Kernel object

type Key

type Key struct {
	ID          int    `json:"id,float64,omitempty"`
	Name        string `json:"name,omitempty"`
	Fingerprint string `json:"fingerprint,omitempty"`
	PublicKey   string `json:"public_key,omitempty"`
}

Key represents a DigitalOcean Key.

func (Key) String

func (s Key) String() string

type KeyCreateRequest

type KeyCreateRequest struct {
	Name      string `json:"name"`
	PublicKey string `json:"public_key"`
}

KeyCreateRequest represents a request to create a new key.

type KeyUpdateRequest added in v0.9.0

type KeyUpdateRequest struct {
	Name string `json:"name"`
}

KeyUpdateRequest represents a request to update a DigitalOcean key.

type KeysService

type KeysService interface {
	List(context.Context, *ListOptions) ([]Key, *Response, error)
	GetByID(context.Context, int) (*Key, *Response, error)
	GetByFingerprint(context.Context, string) (*Key, *Response, error)
	Create(context.Context, *KeyCreateRequest) (*Key, *Response, error)
	UpdateByID(context.Context, int, *KeyUpdateRequest) (*Key, *Response, error)
	UpdateByFingerprint(context.Context, string, *KeyUpdateRequest) (*Key, *Response, error)
	DeleteByID(context.Context, int) (*Response, error)
	DeleteByFingerprint(context.Context, string) (*Response, error)
}

KeysService is an interface for interfacing with the keys endpoints of the DigitalOcean API See: https://docs.digitalocean.com/reference/api/api-reference/#tag/SSH-Keys

type KeysServiceOp added in v0.3.0

type KeysServiceOp struct {
	// contains filtered or unexported fields
}

KeysServiceOp handles communication with key related method of the DigitalOcean API.

func (*KeysServiceOp) Create added in v0.3.0

func (s *KeysServiceOp) Create(ctx context.Context, createRequest *KeyCreateRequest) (*Key, *Response, error)

Create a key using a KeyCreateRequest

func (*KeysServiceOp) DeleteByFingerprint added in v0.3.0

func (s *KeysServiceOp) DeleteByFingerprint(ctx context.Context, fingerprint string) (*Response, error)

DeleteByFingerprint deletes a key by its fingerprint

func (*KeysServiceOp) DeleteByID added in v0.3.0

func (s *KeysServiceOp) DeleteByID(ctx context.Context, keyID int) (*Response, error)

DeleteByID deletes a key by its id

func (*KeysServiceOp) GetByFingerprint added in v0.3.0

func (s *KeysServiceOp) GetByFingerprint(ctx context.Context, fingerprint string) (*Key, *Response, error)

GetByFingerprint gets a Key by fingerprint

func (*KeysServiceOp) GetByID added in v0.3.0

func (s *KeysServiceOp) GetByID(ctx context.Context, keyID int) (*Key, *Response, error)

GetByID gets a Key by id

func (*KeysServiceOp) List added in v0.3.0

func (s *KeysServiceOp) List(ctx context.Context, opt *ListOptions) ([]Key, *Response, error)

List all keys

func (*KeysServiceOp) UpdateByFingerprint added in v0.9.0

func (s *KeysServiceOp) UpdateByFingerprint(ctx context.Context, fingerprint string, updateRequest *KeyUpdateRequest) (*Key, *Response, error)

UpdateByFingerprint updates a key name by fingerprint.

func (*KeysServiceOp) UpdateByID added in v0.9.0

func (s *KeysServiceOp) UpdateByID(ctx context.Context, keyID int, updateRequest *KeyUpdateRequest) (*Key, *Response, error)

UpdateByID updates a key name by ID.

type KubernetesAssociatedResources added in v1.57.0

type KubernetesAssociatedResources struct {
	Volumes         []*AssociatedResource `json:"volumes"`
	VolumeSnapshots []*AssociatedResource `json:"volume_snapshots"`
	LoadBalancers   []*AssociatedResource `json:"load_balancers"`
}

KubernetesAssociatedResources represents a cluster's associated resources

type KubernetesCluster added in v1.7.0

type KubernetesCluster struct {
	ID            string   `json:"id,omitempty"`
	Name          string   `json:"name,omitempty"`
	RegionSlug    string   `json:"region,omitempty"`
	VersionSlug   string   `json:"version,omitempty"`
	ClusterSubnet string   `json:"cluster_subnet,omitempty"`
	ServiceSubnet string   `json:"service_subnet,omitempty"`
	IPv4          string   `json:"ipv4,omitempty"`
	Endpoint      string   `json:"endpoint,omitempty"`
	Tags          []string `json:"tags,omitempty"`
	VPCUUID       string   `json:"vpc_uuid,omitempty"`

	// Cluster runs a highly available control plane
	HA bool `json:"ha,omitempty"`

	NodePools []*KubernetesNodePool `json:"node_pools,omitempty"`

	MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy,omitempty"`
	AutoUpgrade       bool                         `json:"auto_upgrade,omitempty"`
	SurgeUpgrade      bool                         `json:"surge_upgrade,omitempty"`
	RegistryEnabled   bool                         `json:"registry_enabled,omitempty"`

	Status    *KubernetesClusterStatus `json:"status,omitempty"`
	CreatedAt time.Time                `json:"created_at,omitempty"`
	UpdatedAt time.Time                `json:"updated_at,omitempty"`
}

KubernetesCluster represents a Kubernetes cluster.

func (KubernetesCluster) URN added in v1.60.0

func (kc KubernetesCluster) URN() string

URN returns the Kubernetes cluster's ID in the format of DigitalOcean URN.

type KubernetesClusterConfig added in v1.7.0

type KubernetesClusterConfig struct {
	KubeconfigYAML []byte
}

KubernetesClusterConfig is the content of a Kubernetes config file, which can be used to interact with your Kubernetes cluster using `kubectl`. See: https://kubernetes.io/docs/tasks/tools/install-kubectl/

type KubernetesClusterCreateRequest added in v1.7.0

type KubernetesClusterCreateRequest struct {
	Name        string   `json:"name,omitempty"`
	RegionSlug  string   `json:"region,omitempty"`
	VersionSlug string   `json:"version,omitempty"`
	Tags        []string `json:"tags,omitempty"`
	VPCUUID     string   `json:"vpc_uuid,omitempty"`

	// Create cluster with highly available control plane
	HA bool `json:"ha"`

	NodePools []*KubernetesNodePoolCreateRequest `json:"node_pools,omitempty"`

	MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy"`
	AutoUpgrade       bool                         `json:"auto_upgrade"`
	SurgeUpgrade      bool                         `json:"surge_upgrade"`
}

KubernetesClusterCreateRequest represents a request to create a Kubernetes cluster.

type KubernetesClusterCredentials added in v1.22.0

type KubernetesClusterCredentials struct {
	Server                   string    `json:"server"`
	CertificateAuthorityData []byte    `json:"certificate_authority_data"`
	ClientCertificateData    []byte    `json:"client_certificate_data"`
	ClientKeyData            []byte    `json:"client_key_data"`
	Token                    string    `json:"token"`
	ExpiresAt                time.Time `json:"expires_at"`
}

KubernetesClusterCredentials represents Kubernetes cluster credentials.

type KubernetesClusterCredentialsGetRequest added in v1.22.0

type KubernetesClusterCredentialsGetRequest struct {
	ExpirySeconds *int `json:"expiry_seconds,omitempty"`
}

KubernetesClusterCredentialsGetRequest is a request to get cluster credentials.

type KubernetesClusterDeleteSelectiveRequest added in v1.57.0

type KubernetesClusterDeleteSelectiveRequest struct {
	Volumes         []string `json:"volumes"`
	VolumeSnapshots []string `json:"volume_snapshots"`
	LoadBalancers   []string `json:"load_balancers"`
}

KubernetesClusterDeleteSelectiveRequest represents a delete selective request to delete a cluster and it's associated resources.

type KubernetesClusterRegistryRequest added in v1.47.0

type KubernetesClusterRegistryRequest struct {
	ClusterUUIDs []string `json:"cluster_uuids,omitempty"`
}

KubernetesClusterRegistryRequest represents clusters to integrate with docr registry

type KubernetesClusterStatus added in v1.7.0

type KubernetesClusterStatus struct {
	State   KubernetesClusterStatusState `json:"state,omitempty"`
	Message string                       `json:"message,omitempty"`
}

KubernetesClusterStatus describes the status of a cluster.

type KubernetesClusterStatusState added in v1.7.1

type KubernetesClusterStatusState string

KubernetesClusterStatusState represents states for a cluster.

func (*KubernetesClusterStatusState) UnmarshalText added in v1.7.1

func (s *KubernetesClusterStatusState) UnmarshalText(text []byte) error

UnmarshalText unmarshals the state.

type KubernetesClusterUpdateRequest added in v1.7.0

type KubernetesClusterUpdateRequest struct {
	Name              string                       `json:"name,omitempty"`
	Tags              []string                     `json:"tags,omitempty"`
	MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy,omitempty"`
	AutoUpgrade       *bool                        `json:"auto_upgrade,omitempty"`
	SurgeUpgrade      bool                         `json:"surge_upgrade,omitempty"`
}

KubernetesClusterUpdateRequest represents a request to update a Kubernetes cluster.

type KubernetesClusterUpgradeRequest added in v1.14.0

type KubernetesClusterUpgradeRequest struct {
	VersionSlug string `json:"version,omitempty"`
}

KubernetesClusterUpgradeRequest represents a request to upgrade a Kubernetes cluster.

type KubernetesClusterUser added in v1.20.0

type KubernetesClusterUser struct {
	Username string   `json:"username,omitempty"`
	Groups   []string `json:"groups,omitempty"`
}

KubernetesClusterUser represents a Kubernetes cluster user.

type KubernetesGetClusterlintRequest added in v1.53.0

type KubernetesGetClusterlintRequest struct {
	RunId string `json:"run_id"`
}

type KubernetesMaintenancePolicy added in v1.12.0

type KubernetesMaintenancePolicy struct {
	StartTime string                         `json:"start_time"`
	Duration  string                         `json:"duration"`
	Day       KubernetesMaintenancePolicyDay `json:"day"`
}

KubernetesMaintenancePolicy is a configuration to set the maintenance window of a cluster

type KubernetesMaintenancePolicyDay added in v1.12.0

type KubernetesMaintenancePolicyDay int

KubernetesMaintenancePolicyDay represents the possible days of a maintenance window

const (
	// KubernetesMaintenanceDayAny sets the KubernetesMaintenancePolicyDay to any
	// day of the week
	KubernetesMaintenanceDayAny KubernetesMaintenancePolicyDay = iota

	// KubernetesMaintenanceDayMonday sets the KubernetesMaintenancePolicyDay to
	// Monday
	KubernetesMaintenanceDayMonday

	// KubernetesMaintenanceDayTuesday sets the KubernetesMaintenancePolicyDay to
	// Tuesday
	KubernetesMaintenanceDayTuesday

	// KubernetesMaintenanceDayWednesday sets the KubernetesMaintenancePolicyDay to
	// Wednesday
	KubernetesMaintenanceDayWednesday

	// KubernetesMaintenanceDayThursday sets the KubernetesMaintenancePolicyDay to
	// Thursday
	KubernetesMaintenanceDayThursday

	// KubernetesMaintenanceDayFriday sets the KubernetesMaintenancePolicyDay to
	// Friday
	KubernetesMaintenanceDayFriday

	// KubernetesMaintenanceDaySaturday sets the KubernetesMaintenancePolicyDay to
	// Saturday
	KubernetesMaintenanceDaySaturday

	// KubernetesMaintenanceDaySunday sets the KubernetesMaintenancePolicyDay to
	// Sunday
	KubernetesMaintenanceDaySunday
)

func KubernetesMaintenanceToDay added in v1.12.0

func KubernetesMaintenanceToDay(day string) (KubernetesMaintenancePolicyDay, error)

KubernetesMaintenanceToDay returns the appropriate KubernetesMaintenancePolicyDay for the given string.

func (KubernetesMaintenancePolicyDay) MarshalJSON added in v1.12.0

func (k KubernetesMaintenancePolicyDay) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON string for KubernetesMaintenancePolicyDay

func (KubernetesMaintenancePolicyDay) String added in v1.12.0

func (*KubernetesMaintenancePolicyDay) UnmarshalJSON added in v1.12.0

func (k *KubernetesMaintenancePolicyDay) UnmarshalJSON(data []byte) error

UnmarshalJSON parses the JSON string into KubernetesMaintenancePolicyDay

type KubernetesNode added in v1.7.0

type KubernetesNode struct {
	ID        string                `json:"id,omitempty"`
	Name      string                `json:"name,omitempty"`
	Status    *KubernetesNodeStatus `json:"status,omitempty"`
	DropletID string                `json:"droplet_id,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

KubernetesNode represents a Node in a node pool in a Kubernetes cluster.

type KubernetesNodeDeleteRequest added in v1.16.0

type KubernetesNodeDeleteRequest struct {
	// Replace will cause a new node to be created to replace the deleted node.
	Replace bool `json:"replace,omitempty"`

	// SkipDrain skips draining the node before deleting it.
	SkipDrain bool `json:"skip_drain,omitempty"`
}

KubernetesNodeDeleteRequest is a request to delete a specific node in a node pool.

type KubernetesNodePool added in v1.7.0

type KubernetesNodePool struct {
	ID        string            `json:"id,omitempty"`
	Name      string            `json:"name,omitempty"`
	Size      string            `json:"size,omitempty"`
	Count     int               `json:"count,omitempty"`
	Tags      []string          `json:"tags,omitempty"`
	Labels    map[string]string `json:"labels,omitempty"`
	Taints    []Taint           `json:"taints,omitempty"`
	AutoScale bool              `json:"auto_scale,omitempty"`
	MinNodes  int               `json:"min_nodes,omitempty"`
	MaxNodes  int               `json:"max_nodes,omitempty"`

	Nodes []*KubernetesNode `json:"nodes,omitempty"`
}

KubernetesNodePool represents a node pool in a Kubernetes cluster.

type KubernetesNodePoolCreateRequest added in v1.7.0

type KubernetesNodePoolCreateRequest struct {
	Name      string            `json:"name,omitempty"`
	Size      string            `json:"size,omitempty"`
	Count     int               `json:"count,omitempty"`
	Tags      []string          `json:"tags,omitempty"`
	Labels    map[string]string `json:"labels,omitempty"`
	Taints    []Taint           `json:"taints,omitempty"`
	AutoScale bool              `json:"auto_scale,omitempty"`
	MinNodes  int               `json:"min_nodes,omitempty"`
	MaxNodes  int               `json:"max_nodes,omitempty"`
}

KubernetesNodePoolCreateRequest represents a request to create a node pool for a Kubernetes cluster.

type KubernetesNodePoolRecycleNodesRequest added in v1.7.0

type KubernetesNodePoolRecycleNodesRequest struct {
	Nodes []string `json:"nodes,omitempty"`
}

KubernetesNodePoolRecycleNodesRequest is DEPRECATED please use DeleteNode The type will be removed in godo 2.0.

type KubernetesNodePoolUpdateRequest added in v1.7.0

type KubernetesNodePoolUpdateRequest struct {
	Name      string            `json:"name,omitempty"`
	Count     *int              `json:"count,omitempty"`
	Tags      []string          `json:"tags,omitempty"`
	Labels    map[string]string `json:"labels,omitempty"`
	Taints    *[]Taint          `json:"taints,omitempty"`
	AutoScale *bool             `json:"auto_scale,omitempty"`
	MinNodes  *int              `json:"min_nodes,omitempty"`
	MaxNodes  *int              `json:"max_nodes,omitempty"`
}

KubernetesNodePoolUpdateRequest represents a request to update a node pool in a Kubernetes cluster.

type KubernetesNodeSize added in v1.7.2

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

KubernetesNodeSize is a node sizes supported for Kubernetes clusters.

type KubernetesNodeStatus added in v1.7.0

type KubernetesNodeStatus struct {
	State   string `json:"state,omitempty"`
	Message string `json:"message,omitempty"`
}

KubernetesNodeStatus represents the status of a particular Node in a Kubernetes cluster.

type KubernetesOptions added in v1.7.0

type KubernetesOptions struct {
	Versions []*KubernetesVersion  `json:"versions,omitempty"`
	Regions  []*KubernetesRegion   `json:"regions,omitempty"`
	Sizes    []*KubernetesNodeSize `json:"sizes,omitempty"`
}

KubernetesOptions represents options available for creating Kubernetes clusters.

type KubernetesRegion added in v1.7.2

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

KubernetesRegion is a region usable by Kubernetes clusters.

type KubernetesRunClusterlintRequest added in v1.53.0

type KubernetesRunClusterlintRequest struct {
	IncludeGroups []string `json:"include_groups"`
	ExcludeGroups []string `json:"exclude_groups"`
	IncludeChecks []string `json:"include_checks"`
	ExcludeChecks []string `json:"exclude_checks"`
}

type KubernetesService added in v1.7.0

type KubernetesService interface {
	Create(context.Context, *KubernetesClusterCreateRequest) (*KubernetesCluster, *Response, error)
	Get(context.Context, string) (*KubernetesCluster, *Response, error)
	GetUser(context.Context, string) (*KubernetesClusterUser, *Response, error)
	GetUpgrades(context.Context, string) ([]*KubernetesVersion, *Response, error)
	GetKubeConfig(context.Context, string) (*KubernetesClusterConfig, *Response, error)
	GetKubeConfigWithExpiry(context.Context, string, int64) (*KubernetesClusterConfig, *Response, error)
	GetCredentials(context.Context, string, *KubernetesClusterCredentialsGetRequest) (*KubernetesClusterCredentials, *Response, error)
	List(context.Context, *ListOptions) ([]*KubernetesCluster, *Response, error)
	Update(context.Context, string, *KubernetesClusterUpdateRequest) (*KubernetesCluster, *Response, error)
	Upgrade(context.Context, string, *KubernetesClusterUpgradeRequest) (*Response, error)
	Delete(context.Context, string) (*Response, error)
	DeleteSelective(context.Context, string, *KubernetesClusterDeleteSelectiveRequest) (*Response, error)
	DeleteDangerous(context.Context, string) (*Response, error)
	ListAssociatedResourcesForDeletion(context.Context, string) (*KubernetesAssociatedResources, *Response, error)

	CreateNodePool(ctx context.Context, clusterID string, req *KubernetesNodePoolCreateRequest) (*KubernetesNodePool, *Response, error)
	GetNodePool(ctx context.Context, clusterID, poolID string) (*KubernetesNodePool, *Response, error)
	ListNodePools(ctx context.Context, clusterID string, opts *ListOptions) ([]*KubernetesNodePool, *Response, error)
	UpdateNodePool(ctx context.Context, clusterID, poolID string, req *KubernetesNodePoolUpdateRequest) (*KubernetesNodePool, *Response, error)
	// RecycleNodePoolNodes is DEPRECATED please use DeleteNode
	// The method will be removed in godo 2.0.
	RecycleNodePoolNodes(ctx context.Context, clusterID, poolID string, req *KubernetesNodePoolRecycleNodesRequest) (*Response, error)
	DeleteNodePool(ctx context.Context, clusterID, poolID string) (*Response, error)
	DeleteNode(ctx context.Context, clusterID, poolID, nodeID string, req *KubernetesNodeDeleteRequest) (*Response, error)

	GetOptions(context.Context) (*KubernetesOptions, *Response, error)
	AddRegistry(ctx context.Context, req *KubernetesClusterRegistryRequest) (*Response, error)
	RemoveRegistry(ctx context.Context, req *KubernetesClusterRegistryRequest) (*Response, error)

	RunClusterlint(ctx context.Context, clusterID string, req *KubernetesRunClusterlintRequest) (string, *Response, error)
	GetClusterlintResults(ctx context.Context, clusterID string, req *KubernetesGetClusterlintRequest) ([]*ClusterlintDiagnostic, *Response, error)
}

KubernetesService is an interface for interfacing with the Kubernetes endpoints of the DigitalOcean API. See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Kubernetes

type KubernetesServiceOp added in v1.7.0

type KubernetesServiceOp struct {
	// contains filtered or unexported fields
}

KubernetesServiceOp handles communication with Kubernetes methods of the DigitalOcean API.

func (*KubernetesServiceOp) AddRegistry added in v1.47.0

AddRegistry integrates docr registry with all the specified clusters

func (*KubernetesServiceOp) Create added in v1.7.0

Create creates a Kubernetes cluster.

func (*KubernetesServiceOp) CreateNodePool added in v1.7.0

CreateNodePool creates a new node pool in an existing Kubernetes cluster.

func (*KubernetesServiceOp) Delete added in v1.7.0

func (svc *KubernetesServiceOp) Delete(ctx context.Context, clusterID string) (*Response, error)

Delete deletes a Kubernetes cluster. There is no way to recover a cluster once it has been destroyed.

func (*KubernetesServiceOp) DeleteDangerous added in v1.57.0

func (svc *KubernetesServiceOp) DeleteDangerous(ctx context.Context, clusterID string) (*Response, error)

DeleteDangerous deletes a Kubernetes cluster and all its associated resources. There is no way to recover a cluster or it's associated resources once destroyed.

func (*KubernetesServiceOp) DeleteNode added in v1.16.0

func (svc *KubernetesServiceOp) DeleteNode(ctx context.Context, clusterID, poolID, nodeID string, deleteReq *KubernetesNodeDeleteRequest) (*Response, error)

DeleteNode deletes a specific node in a node pool.

func (*KubernetesServiceOp) DeleteNodePool added in v1.7.0

func (svc *KubernetesServiceOp) DeleteNodePool(ctx context.Context, clusterID, poolID string) (*Response, error)

DeleteNodePool deletes a node pool, and subsequently all the nodes in that pool.

func (*KubernetesServiceOp) DeleteSelective added in v1.57.0

func (svc *KubernetesServiceOp) DeleteSelective(ctx context.Context, clusterID string, request *KubernetesClusterDeleteSelectiveRequest) (*Response, error)

DeleteSelective deletes a Kubernetes cluster and the specified associated resources. Users can choose to delete specific volumes, volume snapshots or load balancers along with the cluster There is no way to recover a cluster or the specified resources once destroyed.

func (*KubernetesServiceOp) Get added in v1.7.0

func (svc *KubernetesServiceOp) Get(ctx context.Context, clusterID string) (*KubernetesCluster, *Response, error)

Get retrieves the details of a Kubernetes cluster.

func (*KubernetesServiceOp) GetClusterlintResults added in v1.53.0

func (svc *KubernetesServiceOp) GetClusterlintResults(ctx context.Context, clusterID string, req *KubernetesGetClusterlintRequest) ([]*ClusterlintDiagnostic, *Response, error)

GetClusterlintResults fetches the diagnostics after clusterlint run completes

func (*KubernetesServiceOp) GetCredentials added in v1.22.0

GetCredentials returns a Kubernetes API server credentials for the specified cluster.

func (*KubernetesServiceOp) GetKubeConfig added in v1.7.0

func (svc *KubernetesServiceOp) GetKubeConfig(ctx context.Context, clusterID string) (*KubernetesClusterConfig, *Response, error)

GetKubeConfig returns a Kubernetes config file for the specified cluster.

func (*KubernetesServiceOp) GetKubeConfigWithExpiry added in v1.47.0

func (svc *KubernetesServiceOp) GetKubeConfigWithExpiry(ctx context.Context, clusterID string, expirySeconds int64) (*KubernetesClusterConfig, *Response, error)

GetKubeConfigWithExpiry returns a Kubernetes config file for the specified cluster with expiry_seconds.

func (*KubernetesServiceOp) GetNodePool added in v1.7.0

func (svc *KubernetesServiceOp) GetNodePool(ctx context.Context, clusterID, poolID string) (*KubernetesNodePool, *Response, error)

GetNodePool retrieves an existing node pool in a Kubernetes cluster.

func (*KubernetesServiceOp) GetOptions added in v1.7.0

GetOptions returns options about the Kubernetes service, such as the versions available for cluster creation.

func (*KubernetesServiceOp) GetUpgrades added in v1.14.0

func (svc *KubernetesServiceOp) GetUpgrades(ctx context.Context, clusterID string) ([]*KubernetesVersion, *Response, error)

GetUpgrades retrieves versions a Kubernetes cluster can be upgraded to. An upgrade can be requested using `Upgrade`.

func (*KubernetesServiceOp) GetUser added in v1.20.0

func (svc *KubernetesServiceOp) GetUser(ctx context.Context, clusterID string) (*KubernetesClusterUser, *Response, error)

GetUser retrieves the details of a Kubernetes cluster user.

func (*KubernetesServiceOp) List added in v1.7.0

List returns a list of the Kubernetes clusters visible with the caller's API token.

func (*KubernetesServiceOp) ListAssociatedResourcesForDeletion added in v1.57.0

func (svc *KubernetesServiceOp) ListAssociatedResourcesForDeletion(ctx context.Context, clusterID string) (*KubernetesAssociatedResources, *Response, error)

ListAssociatedResourcesForDeletion lists a Kubernetes cluster's resources that can be selected for deletion along with the cluster. See DeleteSelective Associated resources include volumes, volume snapshots and load balancers.

func (*KubernetesServiceOp) ListNodePools added in v1.7.0

func (svc *KubernetesServiceOp) ListNodePools(ctx context.Context, clusterID string, opts *ListOptions) ([]*KubernetesNodePool, *Response, error)

ListNodePools lists all the node pools found in a Kubernetes cluster.

func (*KubernetesServiceOp) RecycleNodePoolNodes added in v1.7.0

func (svc *KubernetesServiceOp) RecycleNodePoolNodes(ctx context.Context, clusterID, poolID string, recycle *KubernetesNodePoolRecycleNodesRequest) (*Response, error)

RecycleNodePoolNodes is DEPRECATED please use DeleteNode The method will be removed in godo 2.0.

func (*KubernetesServiceOp) RemoveRegistry added in v1.47.0

RemoveRegistry removes docr registry support for all the specified clusters

func (*KubernetesServiceOp) RunClusterlint added in v1.53.0

func (svc *KubernetesServiceOp) RunClusterlint(ctx context.Context, clusterID string, req *KubernetesRunClusterlintRequest) (string, *Response, error)

RunClusterlint schedules a clusterlint run for the specified cluster

func (*KubernetesServiceOp) Update added in v1.7.0

Update updates a Kubernetes cluster's properties.

func (*KubernetesServiceOp) UpdateNodePool added in v1.7.0

func (svc *KubernetesServiceOp) UpdateNodePool(ctx context.Context, clusterID, poolID string, update *KubernetesNodePoolUpdateRequest) (*KubernetesNodePool, *Response, error)

UpdateNodePool updates the details of an existing node pool.

func (*KubernetesServiceOp) Upgrade added in v1.14.0

func (svc *KubernetesServiceOp) Upgrade(ctx context.Context, clusterID string, upgrade *KubernetesClusterUpgradeRequest) (*Response, error)

Upgrade upgrades a Kubernetes cluster to a new version. Valid upgrade versions for a given cluster can be retrieved with `GetUpgrades`.

type KubernetesVersion added in v1.7.0

type KubernetesVersion struct {
	Slug              string   `json:"slug,omitempty"`
	KubernetesVersion string   `json:"kubernetes_version,omitempty"`
	SupportedFeatures []string `json:"supported_features,omitempty"`
}

KubernetesVersion is a DigitalOcean Kubernetes release.

type LinkAction added in v0.3.0

type LinkAction struct {
	ID   int    `json:"id,omitempty"`
	Rel  string `json:"rel,omitempty"`
	HREF string `json:"href,omitempty"`
}

LinkAction is a pointer to an action

func (*LinkAction) Get added in v0.3.0

func (la *LinkAction) Get(ctx context.Context, client *Client) (*Action, *Response, error)

Get a link action by id.

type Links struct {
	Pages   *Pages       `json:"pages,omitempty"`
	Actions []LinkAction `json:"actions,omitempty"`
}

Links manages links that are returned along with a List

func (*Links) CurrentPage added in v0.3.0

func (l *Links) CurrentPage() (int, error)

CurrentPage is current page of the list

func (*Links) IsLastPage added in v0.3.0

func (l *Links) IsLastPage() bool

IsLastPage returns true if the current page is the last

func (*Links) NextPageToken added in v1.73.0

func (l *Links) NextPageToken() (string, error)

NextPageToken is the page token to request the next page of the list

func (*Links) PrevPageToken added in v1.73.0

func (l *Links) PrevPageToken() (string, error)

PrevPageToken is the page token to request the previous page of the list

type ListOptions

type ListOptions struct {
	// For paginated result sets, page of results to retrieve.
	Page int `url:"page,omitempty"`

	// For paginated result sets, the number of results to include per page.
	PerPage int `url:"per_page,omitempty"`
}

ListOptions specifies the optional parameters to various List methods that support pagination.

type ListVolumeParams added in v1.0.0

type ListVolumeParams struct {
	Region      string       `json:"region"`
	Name        string       `json:"name"`
	ListOptions *ListOptions `json:"list_options,omitempty"`
}

ListVolumeParams stores the options you can set for a ListVolumeCall

type LoadBalancer added in v1.0.0

type LoadBalancer struct {
	ID   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
	IP   string `json:"ip,omitempty"`
	// SizeSlug is mutually exclusive with SizeUnit. Only one should be specified
	SizeSlug string `json:"size,omitempty"`
	// SizeUnit is mutually exclusive with SizeSlug. Only one should be specified
	SizeUnit                     uint32           `json:"size_unit,omitempty"`
	Algorithm                    string           `json:"algorithm,omitempty"`
	Status                       string           `json:"status,omitempty"`
	Created                      string           `json:"created_at,omitempty"`
	ForwardingRules              []ForwardingRule `json:"forwarding_rules,omitempty"`
	HealthCheck                  *HealthCheck     `json:"health_check,omitempty"`
	StickySessions               *StickySessions  `json:"sticky_sessions,omitempty"`
	Region                       *Region          `json:"region,omitempty"`
	DropletIDs                   []int            `json:"droplet_ids,omitempty"`
	Tag                          string           `json:"tag,omitempty"`
	Tags                         []string         `json:"tags,omitempty"`
	RedirectHttpToHttps          bool             `json:"redirect_http_to_https,omitempty"`
	EnableProxyProtocol          bool             `json:"enable_proxy_protocol,omitempty"`
	EnableBackendKeepalive       bool             `json:"enable_backend_keepalive,omitempty"`
	VPCUUID                      string           `json:"vpc_uuid,omitempty"`
	DisableLetsEncryptDNSRecords *bool            `json:"disable_lets_encrypt_dns_records,omitempty"`
	ValidateOnly                 bool             `json:"validate_only,omitempty"`
}

LoadBalancer represents a DigitalOcean load balancer configuration. Tags can only be provided upon the creation of a Load Balancer.

func (LoadBalancer) AsRequest added in v1.1.1

func (l LoadBalancer) AsRequest() *LoadBalancerRequest

AsRequest creates a LoadBalancerRequest that can be submitted to Update with the current values of the LoadBalancer. Modifying the returned LoadBalancerRequest will not modify the original LoadBalancer.

func (LoadBalancer) String added in v1.0.0

func (l LoadBalancer) String() string

String creates a human-readable description of a LoadBalancer.

func (LoadBalancer) URN added in v1.6.0

func (l LoadBalancer) URN() string

URN returns the load balancer ID in a valid DO API URN form.

type LoadBalancerRequest added in v1.0.0

type LoadBalancerRequest struct {
	Name      string `json:"name,omitempty"`
	Algorithm string `json:"algorithm,omitempty"`
	Region    string `json:"region,omitempty"`
	// SizeSlug is mutually exclusive with SizeUnit. Only one should be specified
	SizeSlug string `json:"size,omitempty"`
	// SizeUnit is mutually exclusive with SizeSlug. Only one should be specified
	SizeUnit                     uint32           `json:"size_unit,omitempty"`
	ForwardingRules              []ForwardingRule `json:"forwarding_rules,omitempty"`
	HealthCheck                  *HealthCheck     `json:"health_check,omitempty"`
	StickySessions               *StickySessions  `json:"sticky_sessions,omitempty"`
	DropletIDs                   []int            `json:"droplet_ids,omitempty"`
	Tag                          string           `json:"tag,omitempty"`
	Tags                         []string         `json:"tags,omitempty"`
	RedirectHttpToHttps          bool             `json:"redirect_http_to_https,omitempty"`
	EnableProxyProtocol          bool             `json:"enable_proxy_protocol,omitempty"`
	EnableBackendKeepalive       bool             `json:"enable_backend_keepalive,omitempty"`
	VPCUUID                      string           `json:"vpc_uuid,omitempty"`
	DisableLetsEncryptDNSRecords *bool            `json:"disable_lets_encrypt_dns_records,omitempty"`
	ValidateOnly                 bool             `json:"validate_only,omitempty"`
}

LoadBalancerRequest represents the configuration to be applied to an existing or a new load balancer.

func (LoadBalancerRequest) String added in v1.0.0

func (l LoadBalancerRequest) String() string

String creates a human-readable description of a LoadBalancerRequest.

type LoadBalancersService added in v1.0.0

type LoadBalancersService interface {
	Get(context.Context, string) (*LoadBalancer, *Response, error)
	List(context.Context, *ListOptions) ([]LoadBalancer, *Response, error)
	Create(context.Context, *LoadBalancerRequest) (*LoadBalancer, *Response, error)
	Update(ctx context.Context, lbID string, lbr *LoadBalancerRequest) (*LoadBalancer, *Response, error)
	Delete(ctx context.Context, lbID string) (*Response, error)
	AddDroplets(ctx context.Context, lbID string, dropletIDs ...int) (*Response, error)
	RemoveDroplets(ctx context.Context, lbID string, dropletIDs ...int) (*Response, error)
	AddForwardingRules(ctx context.Context, lbID string, rules ...ForwardingRule) (*Response, error)
	RemoveForwardingRules(ctx context.Context, lbID string, rules ...ForwardingRule) (*Response, error)
}

LoadBalancersService is an interface for managing load balancers with the DigitalOcean API. See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Load-Balancers

type LoadBalancersServiceOp added in v1.0.0

type LoadBalancersServiceOp struct {
	// contains filtered or unexported fields
}

LoadBalancersServiceOp handles communication with load balancer-related methods of the DigitalOcean API.

func (*LoadBalancersServiceOp) AddDroplets added in v1.0.0

func (l *LoadBalancersServiceOp) AddDroplets(ctx context.Context, lbID string, dropletIDs ...int) (*Response, error)

AddDroplets adds droplets to a load balancer.

func (*LoadBalancersServiceOp) AddForwardingRules added in v1.0.0

func (l *LoadBalancersServiceOp) AddForwardingRules(ctx context.Context, lbID string, rules ...ForwardingRule) (*Response, error)

AddForwardingRules adds forwarding rules to a load balancer.

func (*LoadBalancersServiceOp) Create added in v1.0.0

Create a new load balancer with a given configuration.

func (*LoadBalancersServiceOp) Delete added in v1.0.0

func (l *LoadBalancersServiceOp) Delete(ctx context.Context, ldID string) (*Response, error)

Delete a load balancer by its identifier.

func (*LoadBalancersServiceOp) Get added in v1.0.0

Get an existing load balancer by its identifier.

func (*LoadBalancersServiceOp) List added in v1.0.0

List load balancers, with optional pagination.

func (*LoadBalancersServiceOp) RemoveDroplets added in v1.0.0

func (l *LoadBalancersServiceOp) RemoveDroplets(ctx context.Context, lbID string, dropletIDs ...int) (*Response, error)

RemoveDroplets removes droplets from a load balancer.

func (*LoadBalancersServiceOp) RemoveForwardingRules added in v1.0.0

func (l *LoadBalancersServiceOp) RemoveForwardingRules(ctx context.Context, lbID string, rules ...ForwardingRule) (*Response, error)

RemoveForwardingRules removes forwarding rules from a load balancer.

func (*LoadBalancersServiceOp) Update added in v1.0.0

Update an existing load balancer with new configuration.

type Meta added in v1.29.0

type Meta struct {
	Total int `json:"total"`
}

Meta describes generic information about a response.

type MetricsData added in v1.70.0

type MetricsData struct {
	ResultType string                 `json:"resultType"`
	Result     []metrics.SampleStream `json:"result"`
}

MetricsData holds the data portion of a Metrics response.

type MetricsResponse added in v1.70.0

type MetricsResponse struct {
	Status string      `json:"status"`
	Data   MetricsData `json:"data"`
}

MetricsResponse holds a Metrics query response.

type MonitoringService added in v1.64.0