go_api_abrha

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2025 License: BSD-3-Clause, MIT Imports: 22 Imported by: 0

README

go-api-abrha

GitHub Actions CI GoDoc

go-api-abrha is a Go client library for accessing the Abrha V1 API.

You can view the client API docs here: http://godoc.org/github.com/abrhacom/go-api-abrha

You can view Abrha API docs here: https://docs.parspack.com/api/

Install

go get github.com/abrhacom/go-api-abrha@vX.Y.Z

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

or

go get github.com/abrhacom/go-api-abrha

for non Go modules usage or latest version.

Usage

import "github.com/abrhacom/go-api-abrha"

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

Authentication

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

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

package main

import (
    goApiAbrha "github.com/abrhacom/go-api-abrha"
)

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

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

Examples

To create a new Vm:

vmName := "super-cool-vm"

createRequest := &goApiAbrha.VmCreateRequest{
    Name:   vmName,
    Region: "nyc3",
    Size:   "s-1vcpu-1gb",
    Image: goApiAbrha.VmCreateImage{
        Slug: "ubuntu-20-04-x64",
    },
}

ctx := context.TODO()

newVm, _, err := client.Vms.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 Vms:

func VmList(ctx context.Context, client *goApiAbrha.Client) ([]goApiAbrha.Vm, error) {
    // create a list to hold our vms
    list := []goApiAbrha.Vm{}

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

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

        // 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 *goApiAbrha.Client, registryName string) ([]*goApiAbrha.RepositoryV2, error) {
    // create a list to hold our registries
    list := []*goApiAbrha.RepositoryV2{}

    // create options. initially, these will be blank
    opt := &goApiAbrha.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
}
Automatic Retries and Exponential Backoff

The go-api-abrha client can be configured to use automatic retries and exponentional backoff for requests that fail with 429 or 500-level response codes via go-retryablehttp. To configure go-api-abrha to enable usage of go-retryablehttp, the RetryConfig.RetryMax must be set.

tokenSrc := oauth2.StaticTokenSource(&oauth2.Token{
    AccessToken: "dop_v1_xxxxxx",
})

oauth_client := oauth2.NewClient(oauth2.NoContext, tokenSrc)

waitMax := goApiAbrha.PtrTo(6.0)
waitMin := goApiAbrha.PtrTo(3.0)

retryConfig := goApiAbrha.RetryConfig{
    RetryMax:     3,
    RetryWaitMin: waitMin,
    RetryWaitMax: waitMax,
}

client, err := goApiAbrha.New(oauth_client, goApiAbrha.WithRetryAndBackoffs(retryConfig))

Please refer to the RetryConfig go-api-abrha documentation for more information.

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 go-api-abrha is the Abrha 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 (
	// Load Balancer types
	LoadBalancerTypeGlobal          = "GLOBAL"
	LoadBalancerTypeRegional        = "REGIONAL"
	LoadBalancerTypeRegionalNetwork = "REGIONAL_NETWORK"

	// Load Balancer network types
	LoadBalancerNetworkTypeExternal = "EXTERNAL"
	LoadBalancerNetworkTypeInternal = "INTERNAL"
)
View Source
const (
	VmCPUUtilizationPercent        = "v1/insights/vm/cpu"
	VmMemoryUtilizationPercent     = "v1/insights/vm/memory_utilization_percent"
	VmDiskUtilizationPercent       = "v1/insights/vm/disk_utilization_percent"
	VmPublicOutboundBandwidthRate  = "v1/insights/vm/public_outbound_bandwidth"
	VmPublicInboundBandwidthRate   = "v1/insights/vm/public_inbound_bandwidth"
	VmPrivateOutboundBandwidthRate = "v1/insights/vm/private_outbound_bandwidth"
	VmPrivateInboundBandwidthRate  = "v1/insights/vm/private_inbound_bandwidth"
	VmDiskReadRate                 = "v1/insights/vm/disk_read"
	VmDiskWriteRate                = "v1/insights/vm/disk_write"
	VmOneMinuteLoadAverage         = "v1/insights/vm/load_1"
	VmFiveMinuteLoadAverage        = "v1/insights/vm/load_5"
	VmFifteenMinuteLoadAverage     = "v1/insights/vm/load_15"

	LoadBalancerCPUUtilizationPercent                = "v1/insights/lbaas/avg_cpu_utilization_percent"
	LoadBalancerConnectionUtilizationPercent         = "v1/insights/lbaas/connection_utilization_percent"
	LoadBalancerVmHealth                             = "v1/insights/lbaas/vm_health"
	LoadBalancerTLSUtilizationPercent                = "v1/insights/lbaas/tls_connections_per_second_utilization_percent"
	LoadBalancerIncreaseInHTTPErrorRatePercentage5xx = "v1/insights/lbaas/increase_in_http_error_rate_percentage_5xx"
	LoadBalancerIncreaseInHTTPErrorRatePercentage4xx = "v1/insights/lbaas/increase_in_http_error_rate_percentage_4xx"
	LoadBalancerIncreaseInHTTPErrorRateCount5xx      = "v1/insights/lbaas/increase_in_http_error_rate_count_5xx"
	LoadBalancerIncreaseInHTTPErrorRateCount4xx      = "v1/insights/lbaas/increase_in_http_error_rate_count_4xx"
	LoadBalancerHighHttpResponseTime                 = "v1/insights/lbaas/high_http_request_response_time"
	LoadBalancerHighHttpResponseTime50P              = "v1/insights/lbaas/high_http_request_response_time_50p"
	LoadBalancerHighHttpResponseTime95P              = "v1/insights/lbaas/high_http_request_response_time_95p"
	LoadBalancerHighHttpResponseTime99P              = "v1/insights/lbaas/high_http_request_response_time_99p"

	DbaasFifteenMinuteLoadAverage = "v1/dbaas/alerts/load_15_alerts"
	DbaasMemoryUtilizationPercent = "v1/dbaas/alerts/memory_utilization_alerts"
	DbaasDiskUtilizationPercent   = "v1/dbaas/alerts/disk_utilization_alerts"
	DbaasCPUUtilizationPercent    = "v1/dbaas/alerts/cpu_alerts"
)
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 Abrha registry service
	RegistryServer = "registry.abrha.com"
)

Variables

This section is empty.

Functions

func Bool deprecated

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.

Deprecated: Use PtrTo instead.

func CIDRSourceFirewall

func CIDRSourceFirewall(cidr string) string

CIDRSourceFirewall takes a CIDR notation IP address and prefix length string like "192.0.2.0/24" and returns a formatted cidr source firewall rule

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

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

DoRequest submits an HTTP request.

func DoRequestWithClient

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

DoRequestWithClient submits an HTTP request using the specified client.

func ForEachAppSpecComponent

func ForEachAppSpecComponent[T any](s *AppSpec, fn func(component T) error) error

ForEachAppSpecComponent loops over each component spec that matches the provided interface type. The type constraint is intentionally set to `any` to allow use of arbitrary interfaces to match the desired component types.

Examples:

  • interface constraint go_api_abrha.ForEachAppSpecComponent(spec, func(component go_api_abrha.AppBuildableComponentSpec) error { ... })
  • struct type constraint go_api_abrha.ForEachAppSpecComponent(spec, func(component *goApiAbrha.AppStaticSiteSpec) error { ... })

func GetAppSpecComponent

func GetAppSpecComponent[T interface {
	GetName() string
}](s *AppSpec, name string) (T, error)

GetAppSpecComponent returns an app spec component by type and name.

Examples:

  • interface constraint goApiAbrha.GetAppSpecComponent[goApiAbrha.AppBuildableComponentSpec](spec, "component-name")
  • struct type constraint goApiAbrha.GetAppSpecComponent[*goApiAbrha.AppServiceSpec](spec, "component-name")

func IPSourceFirewall

func IPSourceFirewall(ip string) string

IPSourceFirewall takes an IP (string) and returns a formatted ip source firewall rule

func Int deprecated

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.

Deprecated: Use PtrTo instead.

func PtrTo

func PtrTo[T any](v T) *T

PtrTo returns a pointer to the provided input.

func StreamToString

func StreamToString(stream io.Reader) string

StreamToString converts a reader to a string

func String deprecated

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.

Deprecated: Use PtrTo instead.

func Stringify

func Stringify(message interface{}) string

Stringify attempts to create a string representation of Abrha types

func ToURN

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

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

Types

type Account

type Account struct {
	VmLimit         int       `json:"vm_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"`
	Name            string    `json:"name,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 Abrha Account

func (Account) String

func (r Account) String() string

type AccountService

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

AccountService is an interface for interfacing with the Account endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Account

type AccountServiceOp

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

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

func (*AccountServiceOp) Get

Get Abrha 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   string     `json:"resource_id"`
	ResourceType string     `json:"resource_type"`
	Region       *Region    `json:"region,omitempty"`
	RegionSlug   string     `json:"region_slug,omitempty"`
}

Action represents a Abrha Action

func (Action) String

func (a Action) String() string

type ActionRequest

type ActionRequest map[string]interface{}

ActionRequest represents Abrha 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 See: https://docs.parspack.com/api/#tag/Actions

type ActionsServiceOp

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

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

func (*ActionsServiceOp) Get

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

Get an action by ID.

func (*ActionsServiceOp) List

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

List all actions

type Address

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

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

AlertDestinationUpdateRequest represents a request to update alert destinations.

type AlertPolicy

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 Abrha alert policy

type AlertPolicyComp

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

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

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

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

Alerts represents the alerts section of an alert policy

type App

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"`
	PendingDeployment       *Deployment     `json:"pending_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"`
	BuildConfig             *AppBuildConfig `json:"build_config,omitempty"`
	// The id of the project for the app. This will be empty if there is a fleet (project) lookup failure.
	ProjectID string `json:"project_id,omitempty"`
	// The dedicated egress ip addresses associated with the app.
	DedicatedIps []*AppDedicatedIp `json:"dedicated_ips,omitempty"`
}

App An application's configuration and status.

func (*App) GetActiveDeployment

func (a *App) GetActiveDeployment() *Deployment

GetActiveDeployment returns the ActiveDeployment field.

func (*App) GetBuildConfig

func (a *App) GetBuildConfig() *AppBuildConfig

GetBuildConfig returns the BuildConfig field.

func (*App) GetCreatedAt

func (a *App) GetCreatedAt() time.Time

GetCreatedAt returns the CreatedAt field.

func (*App) GetDedicatedIps

func (a *App) GetDedicatedIps() []*AppDedicatedIp

GetDedicatedIps returns the DedicatedIps field.

func (*App) GetDefaultIngress

func (a *App) GetDefaultIngress() string

GetDefaultIngress returns the DefaultIngress field.

func (*App) GetDomains

func (a *App) GetDomains() []*AppDomain

GetDomains returns the Domains field.

func (*App) GetID

func (a *App) GetID() string

GetID returns the ID field.

func (*App) GetInProgressDeployment

func (a *App) GetInProgressDeployment() *Deployment

GetInProgressDeployment returns the InProgressDeployment field.

func (*App) GetLastDeploymentActiveAt

func (a *App) GetLastDeploymentActiveAt() time.Time

GetLastDeploymentActiveAt returns the LastDeploymentActiveAt field.

func (*App) GetLastDeploymentCreatedAt

func (a *App) GetLastDeploymentCreatedAt() time.Time

GetLastDeploymentCreatedAt returns the LastDeploymentCreatedAt field.

func (*App) GetLiveDomain

func (a *App) GetLiveDomain() string

GetLiveDomain returns the LiveDomain field.

func (*App) GetLiveURL

func (a *App) GetLiveURL() string

GetLiveURL returns the LiveURL field.

func (*App) GetLiveURLBase

func (a *App) GetLiveURLBase() string

GetLiveURLBase returns the LiveURLBase field.

func (*App) GetOwnerUUID

func (a *App) GetOwnerUUID() string

GetOwnerUUID returns the OwnerUUID field.

func (*App) GetPendingDeployment

func (a *App) GetPendingDeployment() *Deployment

GetPendingDeployment returns the PendingDeployment field.

func (*App) GetPinnedDeployment

func (a *App) GetPinnedDeployment() *Deployment

GetPinnedDeployment returns the PinnedDeployment field.

func (*App) GetProjectID

func (a *App) GetProjectID() string

GetProjectID returns the ProjectID field.

func (*App) GetRegion

func (a *App) GetRegion() *AppRegion

GetRegion returns the Region field.

func (*App) GetSpec

func (a *App) GetSpec() *AppSpec

GetSpec returns the Spec field.

func (*App) GetTierSlug

func (a *App) GetTierSlug() string

GetTierSlug returns the TierSlug field.

func (*App) GetUpdatedAt

func (a *App) GetUpdatedAt() time.Time

GetUpdatedAt returns the UpdatedAt field.

func (App) URN

func (a App) URN() string

URN returns a URN identifier for the app

type AppAlert

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.

func (*AppAlert) GetComponentName

func (a *AppAlert) GetComponentName() string

GetComponentName returns the ComponentName field.

func (*AppAlert) GetEmails

func (a *AppAlert) GetEmails() []string

GetEmails returns the Emails field.

func (*AppAlert) GetID

func (a *AppAlert) GetID() string

GetID returns the ID field.

func (*AppAlert) GetPhase

func (a *AppAlert) GetPhase() AppAlertPhase

GetPhase returns the Phase field.

func (*AppAlert) GetProgress

func (a *AppAlert) GetProgress() *AppAlertProgress

GetProgress returns the Progress field.

func (*AppAlert) GetSlackWebhooks

func (a *AppAlert) GetSlackWebhooks() []*AppAlertSlackWebhook

GetSlackWebhooks returns the SlackWebhooks field.

func (*AppAlert) GetSpec

func (a *AppAlert) GetSpec() *AppAlertSpec

GetSpec returns the Spec field.

type AppAlertPhase

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

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

AppAlertProgress struct for AppAlertProgress

func (*AppAlertProgress) GetSteps

func (a *AppAlertProgress) GetSteps() []*AppAlertProgressStep

GetSteps returns the Steps field.

type AppAlertProgressStep

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

func (*AppAlertProgressStep) GetEndedAt

func (a *AppAlertProgressStep) GetEndedAt() time.Time

GetEndedAt returns the EndedAt field.

func (*AppAlertProgressStep) GetName

func (a *AppAlertProgressStep) GetName() string

GetName returns the Name field.

func (*AppAlertProgressStep) GetReason

GetReason returns the Reason field.

func (*AppAlertProgressStep) GetStartedAt

func (a *AppAlertProgressStep) GetStartedAt() time.Time

GetStartedAt returns the StartedAt field.

func (*AppAlertProgressStep) GetStatus

GetStatus returns the Status field.

func (*AppAlertProgressStep) GetSteps

func (a *AppAlertProgressStep) GetSteps() []*AppAlertProgressStep

GetSteps returns the Steps field.

type AppAlertProgressStepReason

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

AppAlertProgressStepReason struct for AppAlertProgressStepReason

func (*AppAlertProgressStepReason) GetCode

func (a *AppAlertProgressStepReason) GetCode() string

GetCode returns the Code field.

func (*AppAlertProgressStepReason) GetMessage

func (a *AppAlertProgressStepReason) GetMessage() string

GetMessage returns the Message field.

type AppAlertProgressStepStatus

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

type AppAlertSlackWebhook struct {
	// URL for the Slack webhook.
	URL string `json:"url,omitempty"`
	// Name of the Slack channel.
	Channel string `json:"channel,omitempty"`
}

AppAlertSlackWebhook Configuration of a Slack alerting destination.

func (*AppAlertSlackWebhook) GetChannel

func (a *AppAlertSlackWebhook) GetChannel() string

GetChannel returns the Channel field.

func (*AppAlertSlackWebhook) GetURL

func (a *AppAlertSlackWebhook) GetURL() string

GetURL returns the URL field.

type AppAlertSpec

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.

func (*AppAlertSpec) GetDisabled

func (a *AppAlertSpec) GetDisabled() bool

GetDisabled returns the Disabled field.

func (*AppAlertSpec) GetOperator

func (a *AppAlertSpec) GetOperator() AppAlertSpecOperator

GetOperator returns the Operator field.

func (*AppAlertSpec) GetRule

func (a *AppAlertSpec) GetRule() AppAlertSpecRule

GetRule returns the Rule field.

func (*AppAlertSpec) GetValue

func (a *AppAlertSpec) GetValue() float32

GetValue returns the Value field.

func (*AppAlertSpec) GetWindow

func (a *AppAlertSpec) GetWindow() AppAlertSpecWindow

GetWindow returns the Window field.

type AppAlertSpecOperator

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

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. - DEPLOYMENT_STARTED: Represents whether a deployment has started. Only applicable at the app level. - DEPLOYMENT_CANCELED: Represents whether a deployment has been canceled. 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_DeploymentStarted           AppAlertSpecRule = "DEPLOYMENT_STARTED"
	AppAlertSpecRule_DeploymentCanceled          AppAlertSpecRule = "DEPLOYMENT_CANCELED"
	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

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 AppAutoscalingSpec

type AppAutoscalingSpec struct {
	// The minimum amount of instances for this component.
	MinInstanceCount int64 `json:"min_instance_count,omitempty"`
	// The maximum amount of instances for this component.
	MaxInstanceCount int64                      `json:"max_instance_count,omitempty"`
	Metrics          *AppAutoscalingSpecMetrics `json:"metrics,omitempty"`
}

AppAutoscalingSpec struct for AppAutoscalingSpec

func (*AppAutoscalingSpec) GetMaxInstanceCount

func (a *AppAutoscalingSpec) GetMaxInstanceCount() int64

GetMaxInstanceCount returns the MaxInstanceCount field.

func (*AppAutoscalingSpec) GetMetrics

GetMetrics returns the Metrics field.

func (*AppAutoscalingSpec) GetMinInstanceCount

func (a *AppAutoscalingSpec) GetMinInstanceCount() int64

GetMinInstanceCount returns the MinInstanceCount field.

type AppAutoscalingSpecMetricCPU

type AppAutoscalingSpecMetricCPU struct {
	// The average target CPU utilization for the component.
	Percent int64 `json:"percent,omitempty"`
}

AppAutoscalingSpecMetricCPU struct for AppAutoscalingSpecMetricCPU

func (*AppAutoscalingSpecMetricCPU) GetPercent

func (a *AppAutoscalingSpecMetricCPU) GetPercent() int64

GetPercent returns the Percent field.

type AppAutoscalingSpecMetrics

type AppAutoscalingSpecMetrics struct {
	CPU *AppAutoscalingSpecMetricCPU `json:"cpu,omitempty"`
}

AppAutoscalingSpecMetrics struct for AppAutoscalingSpecMetrics

func (*AppAutoscalingSpecMetrics) GetCPU

GetCPU returns the CPU field.

type AppBuildConfig

type AppBuildConfig struct {
	CNBVersioning *AppBuildConfigCNBVersioning `json:"cnb_versioning,omitempty"`
}

AppBuildConfig struct for AppBuildConfig

func (*AppBuildConfig) GetCNBVersioning

func (a *AppBuildConfig) GetCNBVersioning() *AppBuildConfigCNBVersioning

GetCNBVersioning returns the CNBVersioning field.

type AppBuildConfigCNBVersioning

type AppBuildConfigCNBVersioning struct {
	// List of versioned buildpacks used for the application.  Buildpacks are only versioned based on the major semver version, therefore exact versions will not be available at the app build config.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
	// A version id that represents the underlying CNB stack. The version of the stack indicates what buildpacks are supported.
	StackID string `json:"stack_id,omitempty"`
}

AppBuildConfigCNBVersioning struct for AppBuildConfigCNBVersioning

func (*AppBuildConfigCNBVersioning) GetBuildpacks

func (a *AppBuildConfigCNBVersioning) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

func (*AppBuildConfigCNBVersioning) GetStackID

func (a *AppBuildConfigCNBVersioning) GetStackID() string

GetStackID returns the StackID field.

type AppBuildableComponentSpec

type AppBuildableComponentSpec interface {
	AppComponentSpec

	GetGit() *GitSourceSpec
	GetGitHub() *GitHubSourceSpec
	GetGitLab() *GitLabSourceSpec
	GetBitbucket() *BitbucketSourceSpec

	GetSourceDir() string

	GetEnvs() []*AppVariableDefinition
}

AppBuildableComponentSpec is a component that is buildable from source.

type AppCNBBuildableComponentSpec

type AppCNBBuildableComponentSpec interface {
	AppBuildableComponentSpec

	GetBuildCommand() string
}

AppCNBBuildableComponentSpec is a component that is buildable from source using cloud native buildpacks.

type AppCORSPolicy

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

func (*AppCORSPolicy) GetAllowCredentials

func (a *AppCORSPolicy) GetAllowCredentials() bool

GetAllowCredentials returns the AllowCredentials field.

func (*AppCORSPolicy) GetAllowHeaders

func (a *AppCORSPolicy) GetAllowHeaders() []string

GetAllowHeaders returns the AllowHeaders field.

func (*AppCORSPolicy) GetAllowMethods

func (a *AppCORSPolicy) GetAllowMethods() []string

GetAllowMethods returns the AllowMethods field.

func (*AppCORSPolicy) GetAllowOrigins

func (a *AppCORSPolicy) GetAllowOrigins() []*AppStringMatch

GetAllowOrigins returns the AllowOrigins field.

func (*AppCORSPolicy) GetExposeHeaders

func (a *AppCORSPolicy) GetExposeHeaders() []string

GetExposeHeaders returns the ExposeHeaders field.

func (*AppCORSPolicy) GetMaxAge

func (a *AppCORSPolicy) GetMaxAge() string

GetMaxAge returns the MaxAge field.

type AppComponentSpec

type AppComponentSpec interface {
	GetName() string
	GetType() AppComponentType
}

AppComponentSpec represents a component's spec.

type AppComponentType

type AppComponentType string

AppComponentType is an app component type.

const (
	// AppComponentTypeService is the type for a service component.
	AppComponentTypeService AppComponentType = "service"
	// AppComponentTypeWorker is the type for a worker component.
	AppComponentTypeWorker AppComponentType = "worker"
	// AppComponentTypeJob is the type for a job component.
	AppComponentTypeJob AppComponentType = "job"
	// AppComponentTypeStaticSite is the type for a static site component.
	AppComponentTypeStaticSite AppComponentType = "static_site"
	// AppComponentTypeDatabase is the type for a database component.
	AppComponentTypeDatabase AppComponentType = "database"
	// AppComponentTypeFunctions is the type for a functions component.
	AppComponentTypeFunctions AppComponentType = "functions"
)

type AppContainerComponentSpec

type AppContainerComponentSpec interface {
	AppBuildableComponentSpec

	GetImage() *ImageSourceSpec
	GetRunCommand() string
	GetInstanceSizeSlug() string
	GetInstanceCount() int64
}

AppContainerComponentSpec is a component that runs in a cluster.

type AppCreateRequest

type AppCreateRequest struct {
	Spec *AppSpec `json:"spec"`
	// Optional. The UUID of the project the app should be assigned.
	ProjectID string `json:"project_id,omitempty"`
}

AppCreateRequest struct for AppCreateRequest

func (*AppCreateRequest) GetProjectID

func (a *AppCreateRequest) GetProjectID() string

GetProjectID returns the ProjectID field.

func (*AppCreateRequest) GetSpec

func (a *AppCreateRequest) GetSpec() *AppSpec

GetSpec returns the Spec field.

type AppDatabaseSpec

type AppDatabaseSpec struct {
	// The database's name. The name must be unique across all components within the same app and cannot use capital letters.
	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 Abrha 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

func (*AppDatabaseSpec) GetClusterName

func (a *AppDatabaseSpec) GetClusterName() string

GetClusterName returns the ClusterName field.

func (*AppDatabaseSpec) GetDBName

func (a *AppDatabaseSpec) GetDBName() string

GetDBName returns the DBName field.

func (*AppDatabaseSpec) GetDBUser

func (a *AppDatabaseSpec) GetDBUser() string

GetDBUser returns the DBUser field.

func (*AppDatabaseSpec) GetEngine

func (a *AppDatabaseSpec) GetEngine() AppDatabaseSpecEngine

GetEngine returns the Engine field.

func (*AppDatabaseSpec) GetName

func (a *AppDatabaseSpec) GetName() string

GetName returns the Name field.

func (*AppDatabaseSpec) GetNumNodes

func (a *AppDatabaseSpec) GetNumNodes() int64

GetNumNodes returns the NumNodes field.

func (*AppDatabaseSpec) GetProduction

func (a *AppDatabaseSpec) GetProduction() bool

GetProduction returns the Production field.

func (*AppDatabaseSpec) GetSize

func (a *AppDatabaseSpec) GetSize() string

GetSize returns the Size field.

func (*AppDatabaseSpec) GetType

func (s *AppDatabaseSpec) GetType() AppComponentType

GetType returns the Database component type.

func (*AppDatabaseSpec) GetVersion

func (a *AppDatabaseSpec) GetVersion() string

GetVersion returns the Version field.

type AppDatabaseSpecEngine

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"
	AppDatabaseSpecEngine_Kafka      AppDatabaseSpecEngine = "KAFKA"
	AppDatabaseSpecEngine_Opensearch AppDatabaseSpecEngine = "OPENSEARCH"
)

List of AppDatabaseSpecEngine

type AppDedicatedIp

type AppDedicatedIp struct {
	// The ip address of the dedicated egress ip.
	Ip string `json:"ip,omitempty"`
	// The id of the dedictated egress ip.
	ID     string               `json:"id,omitempty"`
	Status AppDedicatedIpStatus `json:"status,omitempty"`
}

AppDedicatedIp Represents a dedicated egress ip.

func (*AppDedicatedIp) GetID

func (a *AppDedicatedIp) GetID() string

GetID returns the ID field.

func (*AppDedicatedIp) GetIp

func (a *AppDedicatedIp) GetIp() string

GetIp returns the Ip field.

func (*AppDedicatedIp) GetStatus

func (a *AppDedicatedIp) GetStatus() AppDedicatedIpStatus

GetStatus returns the Status field.

type AppDedicatedIpStatus

type AppDedicatedIpStatus string

AppDedicatedIpStatus the model 'AppDedicatedIpStatus'

const (
	APPDEDICATEDIPSTATUS_Unknown   AppDedicatedIpStatus = "UNKNOWN"
	APPDEDICATEDIPSTATUS_Assigning AppDedicatedIpStatus = "ASSIGNING"
	APPDEDICATEDIPSTATUS_Assigned  AppDedicatedIpStatus = "ASSIGNED"
	APPDEDICATEDIPSTATUS_Removed   AppDedicatedIpStatus = "REMOVED"
)

List of AppDedicatedIPStatus

type AppDockerBuildableComponentSpec

type AppDockerBuildableComponentSpec interface {
	AppBuildableComponentSpec

	GetDockerfilePath() string
}

AppDockerBuildableComponentSpec is a component that is buildable from source using Docker.

type AppDomain

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"`
	Validations             []*AppDomainValidation `json:"validations,omitempty"`
	RotateValidationRecords bool                   `json:"rotate_validation_records,omitempty"`
	CertificateExpiresAt    time.Time              `json:"certificate_expires_at,omitempty"`
}

AppDomain struct for AppDomain

func (*AppDomain) GetCertificateExpiresAt

func (a *AppDomain) GetCertificateExpiresAt() time.Time

GetCertificateExpiresAt returns the CertificateExpiresAt field.

func (*AppDomain) GetID

func (a *AppDomain) GetID() string

GetID returns the ID field.

func (*AppDomain) GetPhase

func (a *AppDomain) GetPhase() AppDomainPhase

GetPhase returns the Phase field.

func (*AppDomain) GetProgress

func (a *AppDomain) GetProgress() *AppDomainProgress

GetProgress returns the Progress field.

func (*AppDomain) GetRotateValidationRecords

func (a *AppDomain) GetRotateValidationRecords() bool

GetRotateValidationRecords returns the RotateValidationRecords field.

func (*AppDomain) GetSpec

func (a *AppDomain) GetSpec() *AppDomainSpec

GetSpec returns the Spec field.

func (*AppDomain) GetValidation

func (a *AppDomain) GetValidation() *AppDomainValidation

GetValidation returns the Validation field.

func (*AppDomain) GetValidations

func (a *AppDomain) GetValidations() []*AppDomainValidation

GetValidations returns the Validations field.

type AppDomainPhase

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

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

AppDomainProgress struct for AppDomainProgress

func (*AppDomainProgress) GetSteps

func (a *AppDomainProgress) GetSteps() []*AppDomainProgressStep

GetSteps returns the Steps field.

type AppDomainProgressStep

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

func (*AppDomainProgressStep) GetEndedAt

func (a *AppDomainProgressStep) GetEndedAt() time.Time

GetEndedAt returns the EndedAt field.

func (*AppDomainProgressStep) GetName

func (a *AppDomainProgressStep) GetName() string

GetName returns the Name field.

func (*AppDomainProgressStep) GetReason

GetReason returns the Reason field.

func (*AppDomainProgressStep) GetStartedAt

func (a *AppDomainProgressStep) GetStartedAt() time.Time

GetStartedAt returns the StartedAt field.

func (*AppDomainProgressStep) GetStatus

GetStatus returns the Status field.

func (*AppDomainProgressStep) GetSteps

GetSteps returns the Steps field.

type AppDomainProgressStepReason

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

AppDomainProgressStepReason struct for AppDomainProgressStepReason

func (*AppDomainProgressStepReason) GetCode

func (a *AppDomainProgressStepReason) GetCode() string

GetCode returns the Code field.

func (*AppDomainProgressStepReason) GetMessage

func (a *AppDomainProgressStepReason) GetMessage() string

GetMessage returns the Message field.

type AppDomainProgressStepStatus

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

type AppDomainSpec struct {
	Domain   string            `json:"domain"`
	Type     AppDomainSpecType `json:"type,omitempty"`
	Wildcard bool              `json:"wildcard,omitempty"`
	// Optional. If the domain uses Abrha 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

func (*AppDomainSpec) GetCertificate

func (a *AppDomainSpec) GetCertificate() string

GetCertificate returns the Certificate field.

func (*AppDomainSpec) GetDomain

func (a *AppDomainSpec) GetDomain() string

GetDomain returns the Domain field.

func (*AppDomainSpec) GetMinimumTLSVersion

func (a *AppDomainSpec) GetMinimumTLSVersion() string

GetMinimumTLSVersion returns the MinimumTLSVersion field.

func (*AppDomainSpec) GetType

func (a *AppDomainSpec) GetType() AppDomainSpecType

GetType returns the Type field.

func (*AppDomainSpec) GetWildcard

func (a *AppDomainSpec) GetWildcard() bool

GetWildcard returns the Wildcard field.

func (*AppDomainSpec) GetZone

func (a *AppDomainSpec) GetZone() string

GetZone returns the Zone field.

type AppDomainSpecType

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

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

AppDomainValidation struct for AppDomainValidation

func (*AppDomainValidation) GetTXTName

func (a *AppDomainValidation) GetTXTName() string

GetTXTName returns the TXTName field.

func (*AppDomainValidation) GetTXTValue

func (a *AppDomainValidation) GetTXTValue() string

GetTXTValue returns the TXTValue field.

type AppEgressSpec

type AppEgressSpec struct {
	Type AppEgressSpecType `json:"type,omitempty"`
}

AppEgressSpec Specification for app egress configurations.

func (*AppEgressSpec) GetType

func (a *AppEgressSpec) GetType() AppEgressSpecType

GetType returns the Type field.

type AppEgressSpecType

type AppEgressSpecType string

AppEgressSpecType the model 'AppEgressSpecType'

const (
	APPEGRESSSPECTYPE_Autoassign  AppEgressSpecType = "AUTOASSIGN"
	APPEGRESSSPECTYPE_DedicatedIp AppEgressSpecType = "DEDICATED_IP"
)

List of AppEgressSpecType

type AppExec

type AppExec struct {
	URL string `json:"url"`
}

AppExec represents the websocket URL used for sending/receiving console input and output.

type AppFunctionsSpec

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"`
	Bitbucket *BitbucketSourceSpec `json:"bitbucket,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"`
	// (Deprecated) 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

func (*AppFunctionsSpec) GetAlerts

func (a *AppFunctionsSpec) GetAlerts() []*AppAlertSpec

GetAlerts returns the Alerts field.

func (*AppFunctionsSpec) GetBitbucket

func (a *AppFunctionsSpec) GetBitbucket() *BitbucketSourceSpec

GetBitbucket returns the Bitbucket field.

func (*AppFunctionsSpec) GetCORS

func (a *AppFunctionsSpec) GetCORS() *AppCORSPolicy

GetCORS returns the CORS field.

func (*AppFunctionsSpec) GetEnvs

func (a *AppFunctionsSpec) GetEnvs() []*AppVariableDefinition

GetEnvs returns the Envs field.

func (*AppFunctionsSpec) GetGit

func (a *AppFunctionsSpec) GetGit() *GitSourceSpec

GetGit returns the Git field.

func (*AppFunctionsSpec) GetGitHub

func (a *AppFunctionsSpec) GetGitHub() *GitHubSourceSpec

GetGitHub returns the GitHub field.

func (*AppFunctionsSpec) GetGitLab

func (a *AppFunctionsSpec) GetGitLab() *GitLabSourceSpec

GetGitLab returns the GitLab field.

func (*AppFunctionsSpec) GetLogDestinations

func (a *AppFunctionsSpec) GetLogDestinations() []*AppLogDestinationSpec

GetLogDestinations returns the LogDestinations field.

func (*AppFunctionsSpec) GetName

func (a *AppFunctionsSpec) GetName() string

GetName returns the Name field.

func (*AppFunctionsSpec) GetRoutes

func (a *AppFunctionsSpec) GetRoutes() []*AppRouteSpec

GetRoutes returns the Routes field.

func (*AppFunctionsSpec) GetSourceDir

func (a *AppFunctionsSpec) GetSourceDir() string

GetSourceDir returns the SourceDir field.

func (*AppFunctionsSpec) GetType

func (s *AppFunctionsSpec) GetType() AppComponentType

GetType returns the Functions component type.

type AppIngressSpec

type AppIngressSpec struct {
	LoadBalancer     AppIngressSpecLoadBalancer `json:"load_balancer,omitempty"`
	LoadBalancerSize int64                      `json:"load_balancer_size,omitempty"`
	// Rules for configuring HTTP ingress for component routes, CORS, rewrites, and redirects.
	Rules []*AppIngressSpecRule `json:"rules,omitempty"`
}

AppIngressSpec Specification for app ingress configurations.

func (*AppIngressSpec) GetLoadBalancer

func (a *AppIngressSpec) GetLoadBalancer() AppIngressSpecLoadBalancer

GetLoadBalancer returns the LoadBalancer field.

func (*AppIngressSpec) GetLoadBalancerSize

func (a *AppIngressSpec) GetLoadBalancerSize() int64

GetLoadBalancerSize returns the LoadBalancerSize field.

func (*AppIngressSpec) GetRules

func (a *AppIngressSpec) GetRules() []*AppIngressSpecRule

GetRules returns the Rules field.

type AppIngressSpecLoadBalancer

type AppIngressSpecLoadBalancer string

AppIngressSpecLoadBalancer the model 'AppIngressSpecLoadBalancer'

const (
	AppIngressSpecLoadBalancer_Unknown AppIngressSpecLoadBalancer = "UNKNOWN"
	AppIngressSpecLoadBalancer_Abrha   AppIngressSpecLoadBalancer = "PARSPACK"
)

List of AppIngressSpecLoadBalancer

type AppIngressSpecRule

type AppIngressSpecRule struct {
	Match     *AppIngressSpecRuleMatch            `json:"match,omitempty"`
	Component *AppIngressSpecRuleRoutingComponent `json:"component,omitempty"`
	Redirect  *AppIngressSpecRuleRoutingRedirect  `json:"redirect,omitempty"`
	CORS      *AppCORSPolicy                      `json:"cors,omitempty"`
}

AppIngressSpecRule A rule that configures component routes, rewrites, redirects and cors.

func (*AppIngressSpecRule) GetCORS

func (a *AppIngressSpecRule) GetCORS() *AppCORSPolicy

GetCORS returns the CORS field.

func (*AppIngressSpecRule) GetComponent

GetComponent returns the Component field.

func (*AppIngressSpecRule) GetMatch

GetMatch returns the Match field.

func (*AppIngressSpecRule) GetRedirect

GetRedirect returns the Redirect field.

type AppIngressSpecRuleMatch

type AppIngressSpecRuleMatch struct {
	Path *AppIngressSpecRuleStringMatch `json:"path,omitempty"`
}

AppIngressSpecRuleMatch The match configuration for a rule.

func (*AppIngressSpecRuleMatch) GetPath

GetPath returns the Path field.

type AppIngressSpecRuleRoutingComponent

type AppIngressSpecRuleRoutingComponent struct {
	// The name of the component to route to.
	Name string `json:"name,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 and is mutually exclusive with `rewrite`.
	PreservePathPrefix bool `json:"preserve_path_prefix,omitempty"`
	// An optional field that will rewrite the path of the component to be what is specified here. 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 you specified the rewrite to be `/v1/`, requests to `/api/list` would be rewritten to `/v1/list`. Note: this is mutually exclusive with `preserve_path_prefix`.
	Rewrite string `json:"rewrite,omitempty"`
}

AppIngressSpecRuleRoutingComponent The component routing configuration.

func (*AppIngressSpecRuleRoutingComponent) GetName

GetName returns the Name field.

func (*AppIngressSpecRuleRoutingComponent) GetPreservePathPrefix

func (a *AppIngressSpecRuleRoutingComponent) GetPreservePathPrefix() bool

GetPreservePathPrefix returns the PreservePathPrefix field.

func (*AppIngressSpecRuleRoutingComponent) GetRewrite

GetRewrite returns the Rewrite field.

type AppIngressSpecRuleRoutingRedirect

type AppIngressSpecRuleRoutingRedirect struct {
	// An optional URI path to redirect to. Note: if this is specified the whole URI of the original request will be overwritten to this value, irrespective of the original request URI being matched.
	Uri string `json:"uri,omitempty"`
	// The authority/host to redirect to. This can be a hostname or IP address. Note: use `port` to set the port.
	Authority string `json:"authority,omitempty"`
	// The port to redirect to.
	Port int64 `json:"port,omitempty"`
	// The scheme to redirect to. Supported values are `http` or `https`. Default: `https`.
	Scheme string `json:"scheme,omitempty"`
	// The redirect code to use. Defaults to `302`. Supported values are 300, 301, 302, 303, 304, 307, 308.
	RedirectCode int64 `json:"redirect_code,omitempty"`
}

AppIngressSpecRuleRoutingRedirect The redirect routing configuration.

func (*AppIngressSpecRuleRoutingRedirect) GetAuthority

func (a *AppIngressSpecRuleRoutingRedirect) GetAuthority() string

GetAuthority returns the Authority field.

func (*AppIngressSpecRuleRoutingRedirect) GetPort

GetPort returns the Port field.

func (*AppIngressSpecRuleRoutingRedirect) GetRedirectCode

func (a *AppIngressSpecRuleRoutingRedirect) GetRedirectCode() int64

GetRedirectCode returns the RedirectCode field.

func (*AppIngressSpecRuleRoutingRedirect) GetScheme

GetScheme returns the Scheme field.

func (*AppIngressSpecRuleRoutingRedirect) GetUri

GetUri returns the Uri field.

type AppIngressSpecRuleStringMatch

type AppIngressSpecRuleStringMatch struct {
	// Prefix-based match. For example, `/api` will match `/api`, `/api/`, and any nested paths such as `/api/v1/endpoint`.
	Prefix string `json:"prefix,omitempty"`
}

AppIngressSpecRuleStringMatch The string match configuration.

func (*AppIngressSpecRuleStringMatch) GetPrefix

func (a *AppIngressSpecRuleStringMatch) GetPrefix() string

GetPrefix returns the Prefix field.

type AppInstanceSize

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"`
	// (Deprecated) The slug of the corresponding upgradable instance size on the higher tier.
	TierUpgradeTo string `json:"tier_upgrade_to,omitempty"`
	// (Deprecated) The slug of the corresponding downgradable instance size on the lower tier.
	TierDowngradeTo string `json:"tier_downgrade_to,omitempty"`
	// Indicates if the tier instance size can enable autoscaling.
	Scalable bool `json:"scalable,omitempty"`
	// (Deprecated) Indicates if the tier instance size is in feature preview state.
	FeaturePreview bool `json:"feature_preview,omitempty"`
	// Indicates if the tier instance size allows more than one instance.
	SingleInstanceOnly bool `json:"single_instance_only,omitempty"`
	// Indicates if the tier instance size is intended for deprecation.
	DeprecationIntent bool `json:"deprecation_intent,omitempty"`
	// The bandwidth allowance in GiB for the tier instance size.
	BandwidthAllowanceGib string `json:"bandwidth_allowance_gib,omitempty"`
}

AppInstanceSize struct for AppInstanceSize

func (*AppInstanceSize) GetBandwidthAllowanceGib

func (a *AppInstanceSize) GetBandwidthAllowanceGib() string

GetBandwidthAllowanceGib returns the BandwidthAllowanceGib field.

func (*AppInstanceSize) GetCPUType

func (a *AppInstanceSize) GetCPUType() AppInstanceSizeCPUType

GetCPUType returns the CPUType field.

func (*AppInstanceSize) GetCPUs

func (a *AppInstanceSize) GetCPUs() string

GetCPUs returns the CPUs field.

func (*AppInstanceSize) GetDeprecationIntent

func (a *AppInstanceSize) GetDeprecationIntent() bool

GetDeprecationIntent returns the DeprecationIntent field.

func (*AppInstanceSize) GetFeaturePreview

func (a *AppInstanceSize) GetFeaturePreview() bool

GetFeaturePreview returns the FeaturePreview field.

func (*AppInstanceSize) GetMemoryBytes

func (a *AppInstanceSize) GetMemoryBytes() string

GetMemoryBytes returns the MemoryBytes field.

func (*AppInstanceSize) GetName

func (a *AppInstanceSize) GetName() string

GetName returns the Name field.

func (*AppInstanceSize) GetScalable

func (a *AppInstanceSize) GetScalable() bool

GetScalable returns the Scalable field.

func (*AppInstanceSize) GetSingleInstanceOnly

func (a *AppInstanceSize) GetSingleInstanceOnly() bool

GetSingleInstanceOnly returns the SingleInstanceOnly field.

func (*AppInstanceSize) GetSlug

func (a *AppInstanceSize) GetSlug() string

GetSlug returns the Slug field.

func (*AppInstanceSize) GetTierDowngradeTo

func (a *AppInstanceSize) GetTierDowngradeTo() string

GetTierDowngradeTo returns the TierDowngradeTo field.

func (*AppInstanceSize) GetTierSlug

func (a *AppInstanceSize) GetTierSlug() string

GetTierSlug returns the TierSlug field.

func (*AppInstanceSize) GetTierUpgradeTo

func (a *AppInstanceSize) GetTierUpgradeTo() string

GetTierUpgradeTo returns the TierUpgradeTo field.

func (*AppInstanceSize) GetUSDPerMonth

func (a *AppInstanceSize) GetUSDPerMonth() string

GetUSDPerMonth returns the USDPerMonth field.

func (*AppInstanceSize) GetUSDPerSecond

func (a *AppInstanceSize) GetUSDPerSecond() string

GetUSDPerSecond returns the USDPerSecond field.

type AppInstanceSizeCPUType

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

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"`
	Bitbucket *BitbucketSourceSpec `json:"bitbucket,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.parspack.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"`
	Termination     *AppJobSpecTermination   `json:"termination,omitempty"`
}

AppJobSpec struct for AppJobSpec

func (*AppJobSpec) GetAlerts

func (a *AppJobSpec) GetAlerts() []*AppAlertSpec

GetAlerts returns the Alerts field.

func (*AppJobSpec) GetBitbucket

func (a *AppJobSpec) GetBitbucket() *BitbucketSourceSpec

GetBitbucket returns the Bitbucket field.

func (*AppJobSpec) GetBuildCommand

func (a *AppJobSpec) GetBuildCommand() string

GetBuildCommand returns the BuildCommand field.

func (*AppJobSpec) GetDockerfilePath

func (a *AppJobSpec) GetDockerfilePath() string

GetDockerfilePath returns the DockerfilePath field.

func (*AppJobSpec) GetEnvironmentSlug

func (a *AppJobSpec) GetEnvironmentSlug() string

GetEnvironmentSlug returns the EnvironmentSlug field.

func (*AppJobSpec) GetEnvs

func (a *AppJobSpec) GetEnvs() []*AppVariableDefinition

GetEnvs returns the Envs field.

func (*AppJobSpec) GetGit

func (a *AppJobSpec) GetGit() *GitSourceSpec

GetGit returns the Git field.

func (*AppJobSpec) GetGitHub

func (a *AppJobSpec) GetGitHub() *GitHubSourceSpec

GetGitHub returns the GitHub field.

func (*AppJobSpec) GetGitLab

func (a *AppJobSpec) GetGitLab() *GitLabSourceSpec

GetGitLab returns the GitLab field.

func (*AppJobSpec) GetImage

func (a *AppJobSpec) GetImage() *ImageSourceSpec

GetImage returns the Image field.

func (*AppJobSpec) GetInstanceCount

func (a *AppJobSpec) GetInstanceCount() int64

GetInstanceCount returns the InstanceCount field.

func (*AppJobSpec) GetInstanceSizeSlug

func (a *AppJobSpec) GetInstanceSizeSlug() string

GetInstanceSizeSlug returns the InstanceSizeSlug field.

func (*AppJobSpec) GetKind

func (a *AppJobSpec) GetKind() AppJobSpecKind

GetKind returns the Kind field.

func (*AppJobSpec) GetLogDestinations

func (a *AppJobSpec) GetLogDestinations() []*AppLogDestinationSpec

GetLogDestinations returns the LogDestinations field.

func (*AppJobSpec) GetName

func (a *AppJobSpec) GetName() string

GetName returns the Name field.

func (*AppJobSpec) GetRunCommand

func (a *AppJobSpec) GetRunCommand() string

GetRunCommand returns the RunCommand field.

func (*AppJobSpec) GetSourceDir

func (a *AppJobSpec) GetSourceDir() string

GetSourceDir returns the SourceDir field.

func (*AppJobSpec) GetTermination

func (a *AppJobSpec) GetTermination() *AppJobSpecTermination

GetTermination returns the Termination field.

func (*AppJobSpec) GetType

func (s *AppJobSpec) GetType() AppComponentType

GetType returns the Job component type.

type AppJobSpecKind

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 AppJobSpecTermination

type AppJobSpecTermination struct {
	// The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
	GracePeriodSeconds int32 `json:"grace_period_seconds,omitempty"`
}

AppJobSpecTermination struct for AppJobSpecTermination

func (*AppJobSpecTermination) GetGracePeriodSeconds

func (a *AppJobSpecTermination) GetGracePeriodSeconds() int32

GetGracePeriodSeconds returns the GracePeriodSeconds field.

type AppLogDestinationSpec

type AppLogDestinationSpec struct {
	// Name of the log destination.
	Name        string                           `json:"name"`
	Papertrail  *AppLogDestinationSpecPapertrail `json:"papertrail,omitempty"`
	Datadog     *AppLogDestinationSpecDataDog    `json:"datadog,omitempty"`
	Logtail     *AppLogDestinationSpecLogtail    `json:"logtail,omitempty"`
	OpenSearch  *AppLogDestinationSpecOpenSearch `json:"open_search,omitempty"`
	Endpoint    string                           `json:"endpoint,omitempty"`
	TLSInsecure bool                             `json:"tls_insecure,omitempty"`
	Headers     []*AppLogDestinationSpecHeader   `json:"headers,omitempty"`
}

AppLogDestinationSpec struct for AppLogDestinationSpec

func (*AppLogDestinationSpec) GetDatadog

GetDatadog returns the Datadog field.

func (*AppLogDestinationSpec) GetEndpoint

func (a *AppLogDestinationSpec) GetEndpoint() string

GetEndpoint returns the Endpoint field.

func (*AppLogDestinationSpec) GetHeaders

GetHeaders returns the Headers field.

func (*AppLogDestinationSpec) GetLogtail

GetLogtail returns the Logtail field.

func (*AppLogDestinationSpec) GetName

func (a *AppLogDestinationSpec) GetName() string

GetName returns the Name field.

func (*AppLogDestinationSpec) GetOpenSearch

GetOpenSearch returns the OpenSearch field.

func (*AppLogDestinationSpec) GetPapertrail

GetPapertrail returns the Papertrail field.

func (*AppLogDestinationSpec) GetTLSInsecure

func (a *AppLogDestinationSpec) GetTLSInsecure() bool

GetTLSInsecure returns the TLSInsecure field.

type AppLogDestinationSpecDataDog

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

AppLogDestinationSpecDataDog DataDog configuration.

func (*AppLogDestinationSpecDataDog) GetApiKey

func (a *AppLogDestinationSpecDataDog) GetApiKey() string

GetApiKey returns the ApiKey field.

func (*AppLogDestinationSpecDataDog) GetEndpoint

func (a *AppLogDestinationSpecDataDog) GetEndpoint() string

GetEndpoint returns the Endpoint field.

type AppLogDestinationSpecHeader

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

AppLogDestinationSpecHeader struct for AppLogDestinationSpecHeader

func (*AppLogDestinationSpecHeader) GetKey

func (a *AppLogDestinationSpecHeader) GetKey() string

GetKey returns the Key field.

func (*AppLogDestinationSpecHeader) GetValue

func (a *AppLogDestinationSpecHeader) GetValue() string

GetValue returns the Value field.

type AppLogDestinationSpecLogtail

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

AppLogDestinationSpecLogtail Logtail configuration.

func (*AppLogDestinationSpecLogtail) GetToken

func (a *AppLogDestinationSpecLogtail) GetToken() string

GetToken returns the Token field.

type AppLogDestinationSpecOpenSearch

type AppLogDestinationSpecOpenSearch struct {
	// OpenSearch API Endpoint. Only HTTPS is supported. Format: https://<host>:<port>. Cannot be specified if `cluster_name` is also specified.
	Endpoint  string               `json:"endpoint,omitempty"`
	BasicAuth *OpenSearchBasicAuth `json:"basic_auth,omitempty"`
	// The index name to use for the logs. If not set, the default index name is \"logs\".
	IndexName string `json:"index_name,omitempty"`
	// The name of a Abrha DBaaS OpenSearch cluster to use as a log forwarding destination. Cannot be specified if `endpoint` is also specified.
	ClusterName string `json:"cluster_name,omitempty"`
}

AppLogDestinationSpecOpenSearch OpenSearch configuration.

func (*AppLogDestinationSpecOpenSearch) GetBasicAuth

GetBasicAuth returns the BasicAuth field.

func (*AppLogDestinationSpecOpenSearch) GetClusterName

func (a *AppLogDestinationSpecOpenSearch) GetClusterName() string

GetClusterName returns the ClusterName field.

func (*AppLogDestinationSpecOpenSearch) GetEndpoint

func (a *AppLogDestinationSpecOpenSearch) GetEndpoint() string

GetEndpoint returns the Endpoint field.

func (*AppLogDestinationSpecOpenSearch) GetIndexName

func (a *AppLogDestinationSpecOpenSearch) GetIndexName() string

GetIndexName returns the IndexName field.

type AppLogDestinationSpecPapertrail

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

AppLogDestinationSpecPapertrail Papertrail configuration.

func (*AppLogDestinationSpecPapertrail) GetEndpoint

func (a *AppLogDestinationSpecPapertrail) GetEndpoint() string

GetEndpoint returns the Endpoint field.

type AppLogType

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"
	// AppLogTypeRunRestarted represents logs of crashed/restarted instances during runtime.
	AppLogTypeRunRestarted AppLogType = "RUN_RESTARTED"
)

type AppLogs

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

AppLogs represent app logs.

type AppMaintenanceSpec

type AppMaintenanceSpec struct {
	// Indicates whether maintenance mode should be enabled for the app.
	Enabled bool `json:"enabled,omitempty"`
	// Indicates whether the app should be archived. Setting this to true implies that enabled is set to true. Note that this feature is currently in closed beta.
	Archive bool `json:"archive,omitempty"`
}

AppMaintenanceSpec struct for AppMaintenanceSpec

func (*AppMaintenanceSpec) GetArchive

func (a *AppMaintenanceSpec) GetArchive() bool

GetArchive returns the Archive field.

func (*AppMaintenanceSpec) GetEnabled

func (a *AppMaintenanceSpec) GetEnabled() bool

GetEnabled returns the Enabled field.

type AppProposeRequest

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

func (*AppProposeRequest) GetAppID

func (a *AppProposeRequest) GetAppID() string

GetAppID returns the AppID field.

func (*AppProposeRequest) GetSpec

func (a *AppProposeRequest) GetSpec() *AppSpec

GetSpec returns the Spec field.

type AppProposeResponse

type AppProposeResponse struct {
	// Deprecated. Please use app_is_starter 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 existing_starter_apps instead.
	ExistingStaticApps string `json:"existing_static_apps,omitempty"`
	// Deprecated. Please use max_free_starter_apps 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"`
	// (Deprecated) 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 `app_tier_upgrade_cost` 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"`
	// (Deprecated) 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 `app_tier_downgrade_cost` 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

func (*AppProposeResponse) GetAppCost

func (a *AppProposeResponse) GetAppCost() float32

GetAppCost returns the AppCost field.

func (*AppProposeResponse) GetAppIsStarter

func (a *AppProposeResponse) GetAppIsStarter() bool

GetAppIsStarter returns the AppIsStarter field.

func (*AppProposeResponse) GetAppIsStatic

func (a *AppProposeResponse) GetAppIsStatic() bool

GetAppIsStatic returns the AppIsStatic field.

func (*AppProposeResponse) GetAppNameAvailable

func (a *AppProposeResponse) GetAppNameAvailable() bool

GetAppNameAvailable returns the AppNameAvailable field.

func (*AppProposeResponse) GetAppNameSuggestion

func (a *AppProposeResponse) GetAppNameSuggestion() string

GetAppNameSuggestion returns the AppNameSuggestion field.

func (*AppProposeResponse) GetAppTierDowngradeCost

func (a *AppProposeResponse) GetAppTierDowngradeCost() float32

GetAppTierDowngradeCost returns the AppTierDowngradeCost field.

func (*AppProposeResponse) GetAppTierUpgradeCost

func (a *AppProposeResponse) GetAppTierUpgradeCost() float32

GetAppTierUpgradeCost returns the AppTierUpgradeCost field.

func (*AppProposeResponse) GetExistingStarterApps

func (a *AppProposeResponse) GetExistingStarterApps() string

GetExistingStarterApps returns the ExistingStarterApps field.

func (*AppProposeResponse) GetExistingStaticApps

func (a *AppProposeResponse) GetExistingStaticApps() string

GetExistingStaticApps returns the ExistingStaticApps field.

func (*AppProposeResponse) GetMaxFreeStarterApps

func (a *AppProposeResponse) GetMaxFreeStarterApps() string

GetMaxFreeStarterApps returns the MaxFreeStarterApps field.

func (*AppProposeResponse) GetMaxFreeStaticApps

func (a *AppProposeResponse) GetMaxFreeStaticApps() string

GetMaxFreeStaticApps returns the MaxFreeStaticApps field.

func (*AppProposeResponse) GetSpec

func (a *AppProposeResponse) GetSpec() *AppSpec

GetSpec returns the Spec field.

type AppRegion

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

func (*AppRegion) GetContinent

func (a *AppRegion) GetContinent() string

GetContinent returns the Continent field.

func (*AppRegion) GetDataCenters

func (a *AppRegion) GetDataCenters() []string

GetDataCenters returns the DataCenters field.

func (*AppRegion) GetDefault

func (a *AppRegion) GetDefault() bool

GetDefault returns the Default field.

func (*AppRegion) GetDisabled

func (a *AppRegion) GetDisabled() bool

GetDisabled returns the Disabled field.

func (*AppRegion) GetFlag

func (a *AppRegion) GetFlag() string

GetFlag returns the Flag field.

func (*AppRegion) GetLabel

func (a *AppRegion) GetLabel() string

GetLabel returns the Label field.

func (*AppRegion) GetReason

func (a *AppRegion) GetReason() string

GetReason returns the Reason field.

func (*AppRegion) GetSlug

func (a *AppRegion) GetSlug() string

GetSlug returns the Slug field.

type AppRestartRequest

type AppRestartRequest struct {
	Components []string `json:"components"`
}

AppRestartRequest represents a request to restart an app.

type AppRoutableComponentSpec

type AppRoutableComponentSpec interface {
	AppComponentSpec

	GetRoutes() []*AppRouteSpec
	GetCORS() *AppCORSPolicy
}

AppRoutableComponentSpec is a component that defines routes.

type AppRouteSpec

type AppRouteSpec struct {
	// (Deprecated) An HTTP path prefix. Paths must start with / and must be unique across all components within an app.
	Path string `json:"path,omitempty"`
	// (Deprecated) 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

func (*AppRouteSpec) GetPath

func (a *AppRouteSpec) GetPath() string

GetPath returns the Path field.

func (*AppRouteSpec) GetPreservePathPrefix

func (a *AppRouteSpec) GetPreservePathPrefix() bool

GetPreservePathPrefix returns the PreservePathPrefix field.

type AppServiceSpec

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"`
	Bitbucket *BitbucketSourceSpec `json:"bitbucket,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.parspack.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"`
	// The amount of instances that this component should be scaled to.
	InstanceCount int64               `json:"instance_count,omitempty"`
	Autoscaling   *AppAutoscalingSpec `json:"autoscaling,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"`
	Protocol ServingProtocol `json:"protocol,omitempty"`
	// (Deprecated) 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"`
	Termination     *AppServiceSpecTermination `json:"termination,omitempty"`
}

AppServiceSpec struct for AppServiceSpec

func (*AppServiceSpec) GetAlerts

func (a *AppServiceSpec) GetAlerts() []*AppAlertSpec

GetAlerts returns the Alerts field.

func (*AppServiceSpec) GetAutoscaling

func (a *AppServiceSpec) GetAutoscaling() *AppAutoscalingSpec

GetAutoscaling returns the Autoscaling field.

func (*AppServiceSpec) GetBitbucket

func (a *AppServiceSpec) GetBitbucket() *BitbucketSourceSpec

GetBitbucket returns the Bitbucket field.

func (*AppServiceSpec) GetBuildCommand

func (a *AppServiceSpec) GetBuildCommand() string

GetBuildCommand returns the BuildCommand field.

func (*AppServiceSpec) GetCORS

func (a *AppServiceSpec) GetCORS() *AppCORSPolicy

GetCORS returns the CORS field.

func (*AppServiceSpec) GetDockerfilePath

func (a *AppServiceSpec) GetDockerfilePath() string

GetDockerfilePath returns the DockerfilePath field.

func (*AppServiceSpec) GetEnvironmentSlug

func (a *AppServiceSpec) GetEnvironmentSlug() string

GetEnvironmentSlug returns the EnvironmentSlug field.

func (*AppServiceSpec) GetEnvs

func (a *AppServiceSpec) GetEnvs() []*AppVariableDefinition

GetEnvs returns the Envs field.

func (*AppServiceSpec) GetGit

func (a *AppServiceSpec) GetGit() *GitSourceSpec

GetGit returns the Git field.

func (*AppServiceSpec) GetGitHub

func (a *AppServiceSpec) GetGitHub() *GitHubSourceSpec

GetGitHub returns the GitHub field.

func (*AppServiceSpec) GetGitLab

func (a *AppServiceSpec) GetGitLab() *GitLabSourceSpec

GetGitLab returns the GitLab field.

func (*AppServiceSpec) GetHTTPPort

func (a *AppServiceSpec) GetHTTPPort() int64

GetHTTPPort returns the HTTPPort field.

func (*AppServiceSpec) GetHealthCheck

func (a *AppServiceSpec) GetHealthCheck() *AppServiceSpecHealthCheck

GetHealthCheck returns the HealthCheck field.

func (*AppServiceSpec) GetImage

func (a *AppServiceSpec) GetImage() *ImageSourceSpec

GetImage returns the Image field.

func (*AppServiceSpec) GetInstanceCount

func (a *AppServiceSpec) GetInstanceCount() int64

GetInstanceCount returns the InstanceCount field.

func (*AppServiceSpec) GetInstanceSizeSlug

func (a *AppServiceSpec) GetInstanceSizeSlug() string

GetInstanceSizeSlug returns the InstanceSizeSlug field.

func (*AppServiceSpec) GetInternalPorts

func (a *AppServiceSpec) GetInternalPorts() []int64

GetInternalPorts returns the InternalPorts field.

func (*AppServiceSpec) GetLogDestinations

func (a *AppServiceSpec) GetLogDestinations() []*AppLogDestinationSpec

GetLogDestinations returns the LogDestinations field.

func (*AppServiceSpec) GetName

func (a *AppServiceSpec) GetName() string

GetName returns the Name field.

func (*AppServiceSpec) GetProtocol

func (a *AppServiceSpec) GetProtocol() ServingProtocol

GetProtocol returns the Protocol field.

func (*AppServiceSpec) GetRoutes

func (a *AppServiceSpec) GetRoutes() []*AppRouteSpec

GetRoutes returns the Routes field.

func (*AppServiceSpec) GetRunCommand

func (a *AppServiceSpec) GetRunCommand() string

GetRunCommand returns the RunCommand field.

func (*AppServiceSpec) GetSourceDir

func (a *AppServiceSpec) GetSourceDir() string

GetSourceDir returns the SourceDir field.

func (*AppServiceSpec) GetTermination

func (a *AppServiceSpec) GetTermination() *AppServiceSpecTermination

GetTermination returns the Termination field.

func (*AppServiceSpec) GetType

func (s *AppServiceSpec) GetType() AppComponentType

GetType returns the Service component type.

type AppServiceSpecHealthCheck

type AppServiceSpecHealthCheck struct {
	// Deprecated. Use http_path instead.
	Path string `json:"path,omitempty"`
	// The number of seconds to wait before beginning health checks. Default: 0 seconds, Minimum 0, Maximum 3600.
	InitialDelaySeconds int32 `json:"initial_delay_seconds,omitempty"`
	// The number of seconds to wait between health checks. Default: 10 seconds, Minimum 1, Maximum 300.
	PeriodSeconds int32 `json:"period_seconds,omitempty"`
	// The number of seconds after which the check times out. Default: 1 second, Minimum 1, Maximum 120.
	TimeoutSeconds int32 `json:"timeout_seconds,omitempty"`
	// The number of successful health checks before considered healthy. Default: 1, Minimum 1, Maximum 50.
	SuccessThreshold int32 `json:"success_threshold,omitempty"`
	// The number of failed health checks before considered unhealthy. Default: 9, Minimum 1, Maximum 50.
	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

func (*AppServiceSpecHealthCheck) GetFailureThreshold

func (a *AppServiceSpecHealthCheck) GetFailureThreshold() int32

GetFailureThreshold returns the FailureThreshold field.

func (*AppServiceSpecHealthCheck) GetHTTPPath

func (a *AppServiceSpecHealthCheck) GetHTTPPath() string

GetHTTPPath returns the HTTPPath field.

func (*AppServiceSpecHealthCheck) GetInitialDelaySeconds

func (a *AppServiceSpecHealthCheck) GetInitialDelaySeconds() int32

GetInitialDelaySeconds returns the InitialDelaySeconds field.

func (*AppServiceSpecHealthCheck) GetPath

func (a *AppServiceSpecHealthCheck) GetPath() string

GetPath returns the Path field.

func (*AppServiceSpecHealthCheck) GetPeriodSeconds

func (a *AppServiceSpecHealthCheck) GetPeriodSeconds() int32

GetPeriodSeconds returns the PeriodSeconds field.

func (*AppServiceSpecHealthCheck) GetPort

func (a *AppServiceSpecHealthCheck) GetPort() int64

GetPort returns the Port field.

func (*AppServiceSpecHealthCheck) GetSuccessThreshold

func (a *AppServiceSpecHealthCheck) GetSuccessThreshold() int32

GetSuccessThreshold returns the SuccessThreshold field.

func (*AppServiceSpecHealthCheck) GetTimeoutSeconds

func (a *AppServiceSpecHealthCheck) GetTimeoutSeconds() int32

GetTimeoutSeconds returns the TimeoutSeconds field.

type AppServiceSpecTermination

type AppServiceSpecTermination struct {
	// The number of seconds to wait between selecting a container instance for termination and issuing the TERM signal. Selecting a container instance for termination begins an asynchronous drain of new requests on upstream load-balancers. Default: 15 seconds, Minimum 1, Maximum 110.
	DrainSeconds int32 `json:"drain_seconds,omitempty"`
	// The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
	GracePeriodSeconds int32 `json:"grace_period_seconds,omitempty"`
}

AppServiceSpecTermination struct for AppServiceSpecTermination

func (*AppServiceSpecTermination) GetDrainSeconds

func (a *AppServiceSpecTermination) GetDrainSeconds() int32

GetDrainSeconds returns the DrainSeconds field.

func (*AppServiceSpecTermination) GetGracePeriodSeconds

func (a *AppServiceSpecTermination) GetGracePeriodSeconds() int32

GetGracePeriodSeconds returns the GracePeriodSeconds field.

type AppSourceType

type AppSourceType string

AppSourceType is an app source type.

const (
	AppSourceTypeBitbucket AppSourceType = "bitbucket"
	AppSourceTypeGitHub    AppSourceType = "github"
	AppSourceTypeGitLab    AppSourceType = "gitlab"
	AppSourceTypeGit       AppSourceType = "git"
	AppSourceTypeImage     AppSourceType = "image"
)

type AppSpec

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"`
	Egress      *AppEgressSpec      `json:"egress,omitempty"`
	Features    []string            `json:"features,omitempty"`
	Maintenance *AppMaintenanceSpec `json:"maintenance,omitempty"`
}

AppSpec The desired configuration of an application.

func (*AppSpec) ForEachAppComponentSpec

func (s *AppSpec) ForEachAppComponentSpec(fn func(component AppComponentSpec) error) error

ForEachAppComponentSpec iterates over each component spec in an app.

func (*AppSpec) GetAlerts

func (a *AppSpec) GetAlerts() []*AppAlertSpec

GetAlerts returns the Alerts field.

func (*AppSpec) GetDatabases

func (a *AppSpec) GetDatabases() []*AppDatabaseSpec

GetDatabases returns the Databases field.

func (*AppSpec) GetDomains

func (a *AppSpec) GetDomains() []*AppDomainSpec

GetDomains returns the Domains field.

func (*AppSpec) GetEgress

func (a *AppSpec) GetEgress() *AppEgressSpec

GetEgress returns the Egress field.

func (*AppSpec) GetEnvs

func (a *AppSpec) GetEnvs() []*AppVariableDefinition

GetEnvs returns the Envs field.

func (*AppSpec) GetFeatures

func (a *AppSpec) GetFeatures() []string

GetFeatures returns the Features field.

func (*AppSpec) GetFunctions

func (a *AppSpec) GetFunctions() []*AppFunctionsSpec

GetFunctions returns the Functions field.

func (*AppSpec) GetIngress

func (a *AppSpec) GetIngress() *AppIngressSpec

GetIngress returns the Ingress field.

func (*AppSpec) GetJobs

func (a *AppSpec) GetJobs() []*AppJobSpec

GetJobs returns the Jobs field.

func (*AppSpec) GetMaintenance

func (a *AppSpec) GetMaintenance() *AppMaintenanceSpec

GetMaintenance returns the Maintenance field.

func (*AppSpec) GetName

func (a *AppSpec) GetName() string

GetName returns the Name field.

func (*AppSpec) GetRegion

func (a *AppSpec) GetRegion() string

GetRegion returns the Region field.

func (*AppSpec) GetServices

func (a *AppSpec) GetServices() []*AppServiceSpec

GetServices returns the Services field.

func (*AppSpec) GetStaticSites

func (a *AppSpec) GetStaticSites() []*AppStaticSiteSpec

GetStaticSites returns the StaticSites field.

func (*AppSpec) GetWorkers

func (a *AppSpec) GetWorkers() []*AppWorkerSpec

GetWorkers returns the Workers field.

type AppStaticSiteSpec

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"`
	Bitbucket *BitbucketSourceSpec `json:"bitbucket,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.parspack.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"`
	// (Deprecated) 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

func (*AppStaticSiteSpec) GetBitbucket

func (a *AppStaticSiteSpec) GetBitbucket() *BitbucketSourceSpec

GetBitbucket returns the Bitbucket field.

func (*AppStaticSiteSpec) GetBuildCommand

func (a *AppStaticSiteSpec) GetBuildCommand() string

GetBuildCommand returns the BuildCommand field.

func (*AppStaticSiteSpec) GetCORS

func (a *AppStaticSiteSpec) GetCORS() *AppCORSPolicy

GetCORS returns the CORS field.

func (*AppStaticSiteSpec) GetCatchallDocument

func (a *AppStaticSiteSpec) GetCatchallDocument() string

GetCatchallDocument returns the CatchallDocument field.

func (*AppStaticSiteSpec) GetDockerfilePath

func (a *AppStaticSiteSpec) GetDockerfilePath() string

GetDockerfilePath returns the DockerfilePath field.

func (*AppStaticSiteSpec) GetEnvironmentSlug

func (a *AppStaticSiteSpec) GetEnvironmentSlug() string

GetEnvironmentSlug returns the EnvironmentSlug field.

func (*AppStaticSiteSpec) GetEnvs

func (a *AppStaticSiteSpec) GetEnvs() []*AppVariableDefinition

GetEnvs returns the Envs field.

func (*AppStaticSiteSpec) GetErrorDocument

func (a *AppStaticSiteSpec) GetErrorDocument() string

GetErrorDocument returns the ErrorDocument field.

func (*AppStaticSiteSpec) GetGit

func (a *AppStaticSiteSpec) GetGit() *GitSourceSpec

GetGit returns the Git field.

func (*AppStaticSiteSpec) GetGitHub

func (a *AppStaticSiteSpec) GetGitHub() *GitHubSourceSpec

GetGitHub returns the GitHub field.

func (*AppStaticSiteSpec) GetGitLab

func (a *AppStaticSiteSpec) GetGitLab() *GitLabSourceSpec

GetGitLab returns the GitLab field.

func (*AppStaticSiteSpec) GetIndexDocument

func (a *AppStaticSiteSpec) GetIndexDocument() string

GetIndexDocument returns the IndexDocument field.

func (*AppStaticSiteSpec) GetName

func (a *AppStaticSiteSpec) GetName() string

GetName returns the Name field.

func (*AppStaticSiteSpec) GetOutputDir

func (a *AppStaticSiteSpec) GetOutputDir() string

GetOutputDir returns the OutputDir field.

func (*AppStaticSiteSpec) GetRoutes

func (a *AppStaticSiteSpec) GetRoutes() []*AppRouteSpec

GetRoutes returns the Routes field.

func (*AppStaticSiteSpec) GetSourceDir

func (a *AppStaticSiteSpec) GetSourceDir() string

GetSourceDir returns the SourceDir field.

func (*AppStaticSiteSpec) GetType

func (s *AppStaticSiteSpec) GetType() AppComponentType

GetType returns the StaticSite component type.

type AppStringMatch

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

func (*AppStringMatch) GetExact

func (a *AppStringMatch) GetExact() string

GetExact returns the Exact field.

func (*AppStringMatch) GetPrefix

func (a *AppStringMatch) GetPrefix() string

GetPrefix returns the Prefix field.

func (*AppStringMatch) GetRegex

func (a *AppStringMatch) GetRegex() string

GetRegex returns the Regex field.

type AppTier

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

func (*AppTier) GetBuildSeconds

func (a *AppTier) GetBuildSeconds() string

GetBuildSeconds returns the BuildSeconds field.

func (*AppTier) GetEgressBandwidthBytes

func (a *AppTier) GetEgressBandwidthBytes() string

GetEgressBandwidthBytes returns the EgressBandwidthBytes field.

func (*AppTier) GetName

func (a *AppTier) GetName() string

GetName returns the Name field.

func (*AppTier) GetSlug

func (a *AppTier) GetSlug() string

GetSlug returns the Slug field.

type AppUpdateRequest

type AppUpdateRequest struct {
	Spec *AppSpec `json:"spec"`
	// Whether or not to update the source versions (for example fetching a new commit or image digest) of all components. By default (when this is false) only newly added sources will be updated to avoid changes like updating the scale of a component from also updating the respective code.
	UpdateAllSourceVersions bool `json:"update_all_source_versions"`
}

AppUpdateRequest represents a request to update an app.

type AppVariableDefinition

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

func (*AppVariableDefinition) GetKey

func (a *AppVariableDefinition) GetKey() string

GetKey returns the Key field.

func (*AppVariableDefinition) GetScope

GetScope returns the Scope field.

func (*AppVariableDefinition) GetType

GetType returns the Type field.

func (*AppVariableDefinition) GetValue

func (a *AppVariableDefinition) GetValue() string

GetValue returns the Value field.

type AppVariableScope

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

type AppVariableType string

AppVariableType the model 'AppVariableType'

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

List of AppVariableType

type AppWorkerSpec

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"`
	Bitbucket *BitbucketSourceSpec `json:"bitbucket,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.parspack.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"`
	Autoscaling      *AppAutoscalingSpec `json:"autoscaling,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"`
	Termination     *AppWorkerSpecTermination `json:"termination,omitempty"`
}

AppWorkerSpec struct for AppWorkerSpec

func (*AppWorkerSpec) GetAlerts

func (a *AppWorkerSpec) GetAlerts() []*AppAlertSpec

GetAlerts returns the Alerts field.

func (*AppWorkerSpec) GetAutoscaling

func (a *AppWorkerSpec) GetAutoscaling() *AppAutoscalingSpec

GetAutoscaling returns the Autoscaling field.

func (*AppWorkerSpec) GetBitbucket

func (a *AppWorkerSpec) GetBitbucket() *BitbucketSourceSpec

GetBitbucket returns the Bitbucket field.

func (*AppWorkerSpec) GetBuildCommand

func (a *AppWorkerSpec) GetBuildCommand() string

GetBuildCommand returns the BuildCommand field.

func (*AppWorkerSpec) GetDockerfilePath

func (a *AppWorkerSpec) GetDockerfilePath() string

GetDockerfilePath returns the DockerfilePath field.

func (*AppWorkerSpec) GetEnvironmentSlug

func (a *AppWorkerSpec) GetEnvironmentSlug() string

GetEnvironmentSlug returns the EnvironmentSlug field.

func (*AppWorkerSpec) GetEnvs

func (a *AppWorkerSpec) GetEnvs() []*AppVariableDefinition

GetEnvs returns the Envs field.

func (*AppWorkerSpec) GetGit

func (a *AppWorkerSpec) GetGit() *GitSourceSpec

GetGit returns the Git field.

func (*AppWorkerSpec) GetGitHub

func (a *AppWorkerSpec) GetGitHub() *GitHubSourceSpec

GetGitHub returns the GitHub field.

func (*AppWorkerSpec) GetGitLab

func (a *AppWorkerSpec) GetGitLab() *GitLabSourceSpec

GetGitLab returns the GitLab field.

func (*AppWorkerSpec) GetImage

func (a *AppWorkerSpec) GetImage() *ImageSourceSpec

GetImage returns the Image field.

func (*AppWorkerSpec) GetInstanceCount

func (a *AppWorkerSpec) GetInstanceCount() int64

GetInstanceCount returns the InstanceCount field.

func (*AppWorkerSpec) GetInstanceSizeSlug

func (a *AppWorkerSpec) GetInstanceSizeSlug() string

GetInstanceSizeSlug returns the InstanceSizeSlug field.

func (*AppWorkerSpec) GetLogDestinations

func (a *AppWorkerSpec) GetLogDestinations() []*AppLogDestinationSpec

GetLogDestinations returns the LogDestinations field.

func (*AppWorkerSpec) GetName

func (a *AppWorkerSpec) GetName() string

GetName returns the Name field.

func (*AppWorkerSpec) GetRunCommand

func (a *AppWorkerSpec) GetRunCommand() string

GetRunCommand returns the RunCommand field.

func (*AppWorkerSpec) GetSourceDir

func (a *AppWorkerSpec) GetSourceDir() string

GetSourceDir returns the SourceDir field.

func (*AppWorkerSpec) GetTermination

func (a *AppWorkerSpec) GetTermination() *AppWorkerSpecTermination

GetTermination returns the Termination field.

func (*AppWorkerSpec) GetType

func (s *AppWorkerSpec) GetType() AppComponentType

GetType returns the Worker component type.

type AppWorkerSpecTermination

type AppWorkerSpecTermination struct {
	// The number of seconds to wait between sending a TERM signal to a container and issuing a KILL which causes immediate shutdown. Default: 120, Minimum 1, Maximum 600.
	GracePeriodSeconds int32 `json:"grace_period_seconds,omitempty"`
}

AppWorkerSpecTermination struct for AppWorkerSpecTermination

func (*AppWorkerSpecTermination) GetGracePeriodSeconds

func (a *AppWorkerSpecTermination) GetGracePeriodSeconds() int32

GetGracePeriodSeconds returns the GracePeriodSeconds field.

type AppsService

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)

	Restart(ctx context.Context, appID string, opts *AppRestartRequest) (*Deployment, *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)
	GetExec(ctx context.Context, appID, deploymentID, component string) (*AppExec, *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)

	Detect(ctx context.Context, detect *DetectRequest) (*DetectResponse, *Response, error)

	ListBuildpacks(ctx context.Context) ([]*Buildpack, *Response, error)
	UpgradeBuildpack(ctx context.Context, appID string, opts UpgradeBuildpackOptions) (*UpgradeBuildpackResponse, *Response, error)

	GetAppDatabaseConnectionDetails(ctx context.Context, appID string) ([]*GetDatabaseConnectionDetailsResponse, *Response, error)
	ResetDatabasePassword(ctx context.Context, appID string, component string) (*Deployment, *Response, error)
	ToggleDatabaseTrustedSource(
		ctx context.Context,
		appID string,
		component string,
		opts ToggleDatabaseTrustedSourceOptions,
	) (
		*ToggleDatabaseTrustedSourceResponse,
		*Response,
		error,
	)
}

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

type AppsServiceOp

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

AppsServiceOp handles communication with Apps methods of the Abrha API.

func (*AppsServiceOp) Create

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

Create an app.

func (*AppsServiceOp) CreateDeployment

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

CreateDeployment creates an app deployment.

func (*AppsServiceOp) Delete

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

Delete an app.

func (*AppsServiceOp) Detect

func (s *AppsServiceOp) Detect(ctx context.Context, detect *DetectRequest) (*DetectResponse, *Response, error)

Detect an app.

func (*AppsServiceOp) Get

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

Get an app.

func (*AppsServiceOp) GetAppDatabaseConnectionDetails

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

GetAppDatabaseConnectionDetails retrieves credentials for databases associated with the app.

func (*AppsServiceOp) GetDeployment

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

GetDeployment gets an app deployment.

func (*AppsServiceOp) GetExec

func (s *AppsServiceOp) GetExec(ctx context.Context, appID, deploymentID, component string) (*AppExec, *Response, error)

GetExec retrieves the websocket URL used for sending/receiving console input and output.

func (*AppsServiceOp) GetInstanceSize

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

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 deprecated

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

GetTier retrieves information about a specific app tier.

Deprecated: The '/v2/apps/tiers/{slug}' endpoints have been deprecated as app tiers are no longer tied to instance sizes. The concept of tiers is being retired.

func (*AppsServiceOp) List

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

List apps.

func (*AppsServiceOp) ListAlerts

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

ListAlerts retrieves a list of alerts on an app

func (*AppsServiceOp) ListBuildpacks

func (s *AppsServiceOp) ListBuildpacks(ctx context.Context) ([]*Buildpack, *Response, error)

ListBuildpacks lists the available buildpacks on App Platform.

func (*AppsServiceOp) ListDeployments

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

ListDeployments lists an app deployments.

func (*AppsServiceOp) ListInstanceSizes

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

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

func (*AppsServiceOp) ListRegions

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

ListRegions lists all regions supported by App Platform.

func (*AppsServiceOp) ListTiers deprecated

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

ListTiers lists available app tiers.

Deprecated: The '/v2/apps/tiers' endpoint has been deprecated as app tiers are no longer tied to instance sizes. The concept of tiers is being retired.

func (*AppsServiceOp) Propose

Propose an app.

func (*AppsServiceOp) ResetDatabasePassword

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

ResetDatabasePassword resets credentials for a database component associated with the app.

func (*AppsServiceOp) Restart

func (s *AppsServiceOp) Restart(ctx context.Context, appID string, opts *AppRestartRequest) (*Deployment, *Response, error)

Restart restarts an app.

func (*AppsServiceOp) ToggleDatabaseTrustedSource

func (s *AppsServiceOp) ToggleDatabaseTrustedSource(
	ctx context.Context,
	appID string,
	component string,
	opts ToggleDatabaseTrustedSourceOptions,
) (
	*ToggleDatabaseTrustedSourceResponse,
	*Response,
	error,
)

ToggleDatabaseTrustedSource enables/disables trusted sources on the specified dev database component.

func (*AppsServiceOp) Update

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

Update an app.

func (*AppsServiceOp) UpdateAlertDestinations

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

func (*AppsServiceOp) UpgradeBuildpack

UpgradeBuildpack upgrades a buildpack for an app.

type ArgError

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

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

func NewArgError

func NewArgError(arg, reason string) *ArgError

NewArgError creates an InputError.

func (*ArgError) Error

func (e *ArgError) Error() string

type AssociatedResource

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

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

BackupWindow object

type Balance

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 Abrha Balance

func (Balance) String

func (r Balance) String() string

type BalanceService

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

BalanceService is an interface for interfacing with the Balance endpoints of the Abrha API See: https://docs.parspack.com/api/#operation/balance_get

type BalanceServiceOp

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

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

func (*BalanceServiceOp) Get

Get Abrha balance info

type BillingHistory

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

BillingHistory represents a Abrha Billing History

func (BillingHistory) String

func (b BillingHistory) String() string

type BillingHistoryEntry

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

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

BillingHistoryService is an interface for interfacing with the BillingHistory endpoints of the Abrha API See: https://docs.parspack.com/api/#operation/billingHistory_list

type BillingHistoryServiceOp

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

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

func (*BillingHistoryServiceOp) List

List the Billing History for a customer

type BitbucketSourceSpec

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

BitbucketSourceSpec struct for BitbucketSourceSpec

func (*BitbucketSourceSpec) GetBranch

func (b *BitbucketSourceSpec) GetBranch() string

GetBranch returns the Branch field.

func (*BitbucketSourceSpec) GetDeployOnPush

func (b *BitbucketSourceSpec) GetDeployOnPush() bool

GetDeployOnPush returns the DeployOnPush field.

func (*BitbucketSourceSpec) GetRepo

func (b *BitbucketSourceSpec) GetRepo() string

GetRepo returns the Repo field.

func (*BitbucketSourceSpec) GetType

func (s *BitbucketSourceSpec) GetType() AppSourceType

GetType returns the Bitbucket source type.

type Blob

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

Blob represents a registry blob

type Buildpack

type Buildpack struct {
	// The ID of the buildpack.
	ID string `json:"id,omitempty"`
	// Full semver version string.
	Version string `json:"version,omitempty"`
	// The major version line that the buildpack is pinned to. Example: a value of `1` indicates that the buildpack is pinned to versions `>=1.0.0 and <2.0.0`.
	MajorVersion int32 `json:"major_version,omitempty"`
	// Indicates whether the buildpack is on the latest major version line available.
	Latest bool `json:"latest,omitempty"`
	// A human friendly name.
	Name string `json:"name,omitempty"`
	// A description of the buildpack's purpose and steps performed at build time.
	Description []string `json:"description,omitempty"`
	// A link to the buildpack's documentation.
	DocsLink string `json:"docs_link,omitempty"`
}

Buildpack struct for Buildpack

func (*Buildpack) GetDescription

func (b *Buildpack) GetDescription() []string

GetDescription returns the Description field.

func (b *Buildpack) GetDocsLink() string

GetDocsLink returns the DocsLink field.

func (*Buildpack) GetID

func (b *Buildpack) GetID() string

GetID returns the ID field.

func (*Buildpack) GetLatest

func (b *Buildpack) GetLatest() bool

GetLatest returns the Latest field.

func (*Buildpack) GetMajorVersion

func (b *Buildpack) GetMajorVersion() int32

GetMajorVersion returns the MajorVersion field.

func (*Buildpack) GetName

func (b *Buildpack) GetName() string

GetName returns the Name field.

func (*Buildpack) GetVersion

func (b *Buildpack) GetVersion() string

GetVersion returns the Version field.

type CDN

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 Abrha CDN

type CDNCreateRequest

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

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

CDNFlushCacheRequest represents a request to flush cache of a CDN.

type CDNService

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

type CDNServiceOp

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

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

func (CDNServiceOp) Create

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

Create a new CDN

func (CDNServiceOp) Delete

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

Delete an individual CDN

func (CDNServiceOp) FlushCache

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

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

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

List all CDN endpoints

func (CDNServiceOp) UpdateCustomDomain

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

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

UpdateTTL updates the ttl of an individual CDN

type CDNSettings

type CDNSettings struct {
	// IsEnabled is the caching enabled flag
	IsEnabled bool `json:"is_enabled"`
}

CDNSettings define CDN settings for a Global LB

func (CDNSettings) String

func (c CDNSettings) String() string

String creates a human-readable description of a CDNSettings

type CDNUpdateCustomDomainRequest

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

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

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

type Certificate

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 Abrha certificate configuration.

type CertificateRequest

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

CertificatesService is an interface for managing certificates with the Abrha API. See: https://docs.parspack.com/api/#tag/Certificates

type CertificatesServiceOp

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

CertificatesServiceOp handles communication with certificates methods of the Abrha API.

func (*CertificatesServiceOp) Create

Create a new certificate with provided configuration.

func (*CertificatesServiceOp) Delete

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

Delete a certificate by its identifier.

func (*CertificatesServiceOp) Get

Get an existing certificate by its identifier.

func (*CertificatesServiceOp) List

List all certificates.

func (*CertificatesServiceOp) ListByName

func (c *CertificatesServiceOp) ListByName(ctx context.Context, name string, opt *ListOptions) ([]Certificate, *Response, error)

type Client

type Client struct {
	// HTTP client used to communicate with the DO API.
	HTTPClient *http.Client

	// 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
	Certificates        CertificatesService
	Databases           DatabasesService
	Domains             DomainsService
	Vms                 VmsService
	VmActions           VmActionsService
	VmAutoscale         VmAutoscaleService
	Firewalls           FirewallsService
	FloatingIPs         FloatingIPsService
	FloatingIPActions   FloatingIPActionsService
	Functions           FunctionsService
	Images              ImagesService
	ImageActions        ImageActionsService
	Invoices            InvoicesService
	Keys                KeysService
	Kubernetes          KubernetesService
	LoadBalancers       LoadBalancersService
	Monitoring          MonitoringService
	OneClick            OneClickService
	Projects            ProjectsService
	Regions             RegionsService
	Registry            RegistryService
	Registries          RegistriesService
	ReservedIPs         ReservedIPsService
	ReservedIPV6s       ReservedIPV6sService
	ReservedIPActions   ReservedIPActionsService
	ReservedIPV6Actions ReservedIPV6ActionsService
	Sizes               SizesService
	Snapshots           SnapshotsService
	Storage             StorageService
	StorageActions      StorageActionsService
	Tags                TagsService
	UptimeChecks        UptimeChecksService
	VPCs                VPCsService

	// Optional retry values. Setting the RetryConfig.RetryMax value enables automatically retrying requests
	// that fail with 429 or 500-level response codes using the go-retryablehttp client
	RetryConfig RetryConfig
	// contains filtered or unexported fields
}

Client manages communication with Abrha V2 API.

func New

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

New returns a new Abrha API client instance.

func NewClient

func NewClient(httpClient *http.Client) *Client

NewClient returns a new Abrha 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 go-api-abrha.New method allows more options, such as setting a custom URL or a custom user agent string.

func NewFromToken

func NewFromToken(token string) *Client

NewFromToken returns a new Abrha 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

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

func (c *Client) OnRequestCompleted(rc RequestCompletionCallback)

OnRequestCompleted sets the DO API request completion callback

type ClientOpt

type ClientOpt func(*Client) error

ClientOpt are options for New.

func SetBaseURL

func SetBaseURL(bu string) ClientOpt

SetBaseURL is a client option for setting the base URL.

func SetRequestHeaders

func SetRequestHeaders(headers map[string]string) ClientOpt

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

func SetStaticRateLimit

func SetStaticRateLimit(rps float64) ClientOpt

SetStaticRateLimit sets an optional client-side rate limiter that restricts the number of queries per second that the client can send to enforce QoS.

func SetUserAgent

func SetUserAgent(ua string) ClientOpt

SetUserAgent is a client option for setting the user agent.

func WithRetryAndBackoffs

func WithRetryAndBackoffs(retryConfig RetryConfig) ClientOpt

WithRetryAndBackoffs sets retry values. Setting the RetryConfig.RetryMax value enables automatically retrying requests that fail with 429 or 500-level response codes using the go-retryablehttp client

type ClusterlintDiagnostic

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

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

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

ClusterlintOwner indicates the resource that owns the offending object.

type CreateProjectRequest

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 CreateUptimeAlertRequest

type CreateUptimeAlertRequest struct {
	Name          string          `json:"name"`
	Type          string          `json:"type"`
	Threshold     int             `json:"threshold"`
	Comparison    UptimeAlertComp `json:"comparison"`
	Notifications *Notifications  `json:"notifications"`
	Period        string          `json:"period"`
}

CreateUptimeUptimeAlertRequest represents the request to create a new Uptime Alert.

type CreateUptimeCheckRequest

type CreateUptimeCheckRequest struct {
	Name    string   `json:"name"`
	Type    string   `json:"type"`
	Target  string   `json:"target"`
	Regions []string `json:"regions"`
	Enabled bool     `json:"enabled"`
}

CreateUptimeCheckRequest represents the request to create a new uptime check.

type CustomImageCreateRequest

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

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"`
	UIConnection             *DatabaseConnection        `json:"ui_connection,omitempty"`
	PrivateConnection        *DatabaseConnection        `json:"private_connection,omitempty"`
	StandbyConnection        *DatabaseConnection        `json:"standby_connection,omitempty"`
	StandbyPrivateConnection *DatabaseConnection        `json:"standby_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"`
	StorageSizeMib           uint64                     `json:"storage_size_mib,omitempty"`
	MetricsEndpoints         []*ServiceAddress          `json:"metrics_endpoints,omitempty"`
}

Database represents a Abrha 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

func (d Database) URN() string

URN returns a URN identifier for the database

type DatabaseBackup

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

DatabaseBackup represents a database backup.

type DatabaseBackupRestore

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

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

DatabaseCA represents a database ca.

type DatabaseConnection

type DatabaseConnection struct {
	Protocol         string            `json:"protocol"`
	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"`
	ApplicationPorts map[string]uint32 `json:"application_ports,omitempty"`
}

DatabaseConnection represents a database connection

type DatabaseCreateDBRequest

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

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

type DatabaseCreateFirewallRule

type DatabaseCreateFirewallRule struct {
	UUID  string `json:"uuid"`
	Type  string `json:"type"`
	Value string `json:"value"`
}

DatabaseCreateFirewallRule is a rule describing an inbound source to a database

type DatabaseCreateLogsinkRequest

type DatabaseCreateLogsinkRequest struct {
	Name   string                 `json:"sink_name"`
	Type   string                 `json:"sink_type"`
	Config *DatabaseLogsinkConfig `json:"config"`
}

DatabaseCreateLogsinkRequest is used to create logsink for a database cluster

type DatabaseCreatePoolRequest

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

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"`
	StorageSizeMib     uint64   `json:"storage_size_mib,omitempty"`
}

DatabaseCreateReplicaRequest is used to create a new read-only replica

type DatabaseCreateRequest

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"`
	StorageSizeMib     uint64                        `json:"storage_size_mib,omitempty"`
	Rules              []*DatabaseCreateFirewallRule `json:"rules"`
}

DatabaseCreateRequest represents a request to create a database cluster

type DatabaseCreateTopicRequest

type DatabaseCreateTopicRequest struct {
	Name              string       `json:"name"`
	PartitionCount    *uint32      `json:"partition_count,omitempty"`
	ReplicationFactor *uint32      `json:"replication_factor,omitempty"`
	Config            *TopicConfig `json:"config,omitempty"`
}

DatabaseCreateTopicRequest is used to create a new topic within a kafka cluster

type DatabaseCreateUserRequest

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

DatabaseCreateUserRequest is used to create a new database user

type DatabaseDB

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 DatabaseEngineOptions

type DatabaseEngineOptions struct {
	Regions  []string         `json:"regions"`
	Versions []string         `json:"versions"`
	Layouts  []DatabaseLayout `json:"layouts"`
}

DatabaseEngineOptions represents the configuration options that are available for a given database engine

type DatabaseEvent

type DatabaseEvent struct {
	ID          string `json:"id"`
	ServiceName string `json:"cluster_name"`
	EventType   string `json:"event_type"`
	CreateTime  string `json:"create_time"`
}

DatbaseEvent contains the information about a Datbase event.

type DatabaseFirewallRule

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 DatabaseIndex

type DatabaseIndex struct {
	IndexName        string            `json:"index_name"`
	NumberofShards   uint64            `json:"number_of_shards"`
	NumberofReplicas uint64            `json:"number_of_replicas"`
	Size             int64             `json:"size,omitempty"`
	Health           string            `json:"health,omitempty"`
	Status           string            `json:"status,omitempty"`
	Docs             int64             `json:"docs,omitempty"`
	CreateTime       string            `json:"create_time"`
	Replication      *IndexReplication `json:"replication,omitempty"`
}

type DatabaseLayout

type DatabaseLayout struct {
	NodeNum int      `json:"num_nodes"`
	Sizes   []string `json:"sizes"`
}

DatabaseLayout represents the slugs available for a given database engine at various node counts

type DatabaseLogsink

type DatabaseLogsink struct {
	ID     string                 `json:"sink_id"`
	Name   string                 `json:"sink_name,omitempty"`
	Type   string                 `json:"sink_type,omitempty"`
	Config *DatabaseLogsinkConfig `json:"config,omitempty"`
}

DatabaseLogsink represents a logsink

type DatabaseLogsinkConfig

type DatabaseLogsinkConfig struct {
	URL          string  `json:"url,omitempty"`
	IndexPrefix  string  `json:"index_prefix,omitempty"`
	IndexDaysMax int     `json:"index_days_max,omitempty"`
	Timeout      float32 `json:"timeout,omitempty"`
	Server       string  `json:"server,omitempty"`
	Port         int     `json:"port,omitempty"`
	TLS          bool    `json:"tls,omitempty"`
	Format       string  `json:"format,omitempty"`
	Logline      string  `json:"logline,omitempty"`
	SD           string  `json:"sd,omitempty"`
	CA           string  `json:"ca,omitempty"`
	Key          string  `json:"key,omitempty"`
	Cert         string  `json:"cert,omitempty"`
}

DatabaseLogsinkConfig represents one of the configurable options (rsyslog_logsink, elasticsearch_logsink, or opensearch_logsink) for a logsink.

type DatabaseMaintenanceWindow

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 DatabaseMetricsCredentials

type DatabaseMetricsCredentials struct {
	BasicAuthUsername string `json:"basic_auth_username"`
	BasicAuthPassword string `json:"basic_auth_password"`
}

type DatabaseMigrateRequest

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

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

DatabaseMySQLUserSettings contains MySQL-specific user settings

type DatabaseOptions

type DatabaseOptions struct {
	MongoDBOptions     DatabaseEngineOptions `json:"mongodb"`
	MySQLOptions       DatabaseEngineOptions `json:"mysql"`
	PostgresSQLOptions DatabaseEngineOptions `json:"pg"`
	RedisOptions       DatabaseEngineOptions `json:"redis"`
	KafkaOptions       DatabaseEngineOptions `json:"kafka"`
	OpensearchOptions  DatabaseEngineOptions `json:"opensearch"`
}

DatabaseOptions represents the available database engines

type DatabasePool

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"`
	StandbyConnection        *DatabaseConnection `json:"standby_connection,omitempty"`
	StandbyPrivateConnection *DatabaseConnection `json:"standby_private_connection,omitempty"`
}

DatabasePool represents a database connection pool

type DatabaseReplica

type DatabaseReplica struct {
	ID                 string              `json:"id"`
	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"`
	StorageSizeMib     uint64              `json:"storage_size_mib,omitempty"`
	Size               string              `json:"size"`
}

DatabaseReplica represents a read-only replica of a particular database

type DatabaseResetUserAuthRequest

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

DatabaseResetUserAuthRequest is used to reset a users DB auth

type DatabaseResizeRequest

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

DatabaseResizeRequest can be used to initiate a database resize operation.

type DatabaseTopic

type DatabaseTopic struct {
	Name              string            `json:"name"`
	Partitions        []*TopicPartition `json:"partitions,omitempty"`
	ReplicationFactor *uint32           `json:"replication_factor,omitempty"`
	State             string            `json:"state,omitempty"`
	Config            *TopicConfig      `json:"config,omitempty"`
}

DatabaseTopic represents a Kafka topic

type DatabaseUpdateFirewallRulesRequest

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

DatabaseUpdateFirewallRulesRequest is used to set the firewall rules for a database

type DatabaseUpdateLogsinkRequest

type DatabaseUpdateLogsinkRequest struct {
	Config *DatabaseLogsinkConfig `json:"config"`
}

DatabaseUpdateLogsinkRequest is used to update logsink for a database cluster

type DatabaseUpdateMaintenanceRequest

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 DatabaseUpdateMetricsCredentialsRequest

type DatabaseUpdateMetricsCredentialsRequest struct {
	Credentials *DatabaseMetricsCredentials `json:"credentials"`
}

type DatabaseUpdatePoolRequest

type DatabaseUpdatePoolRequest struct {
	User     string `json:"user,omitempty"`
	Size     int    `json:"size"`
	Database string `json:"db"`
	Mode     string `json:"mode"`
}

DatabaseUpdatePoolRequest is used to update a database connection pool

type DatabaseUpdateTopicRequest

type DatabaseUpdateTopicRequest struct {
	PartitionCount    *uint32      `json:"partition_count,omitempty"`
	ReplicationFactor *uint32      `json:"replication_factor,omitempty"`
	Config            *TopicConfig `json:"config,omitempty"`
}

DatabaseUpdateTopicRequest ...

type DatabaseUpdateUserRequest

type DatabaseUpdateUserRequest struct {
	Settings *DatabaseUserSettings `json:"settings,omitempty"`
}

DatabaseUpdateUserRequest is used to update an existing database user

type DatabaseUser

type DatabaseUser struct {
	Name          string                     `json:"name,omitempty"`
	Role          string                     `json:"role,omitempty"`
	Password      string                     `json:"password,omitempty"`
	AccessCert    string                     `json:"access_cert,omitempty"`
	AccessKey     string                     `json:"access_key,omitempty"`
	MySQLSettings *DatabaseMySQLUserSettings `json:"mysql_settings,omitempty"`
	Settings      *DatabaseUserSettings      `json:"settings,omitempty"`
}

DatabaseUser represents a user in the database

type DatabaseUserSettings

type DatabaseUserSettings struct {
	ACL           []*KafkaACL      `json:"acl,omitempty"`
	OpenSearchACL []*OpenSearchACL `json:"opensearch_acl,omitempty"`
}

DatabaseUserSettings contains user settings

type DatabasesService

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)
	InstallUpdate(context.Context, string) (*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)
	UpdateUser(context.Context, string, string, *DatabaseUpdateUserRequest) (*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)
	UpdatePool(context.Context, string, string, *DatabaseUpdatePoolRequest) (*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)
	PromoteReplicaToPrimary(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)
	GetPostgreSQLConfig(context.Context, string) (*PostgreSQLConfig, *Response, error)
	GetRedisConfig(context.Context, string) (*RedisConfig, *Response, error)
	GetMySQLConfig(context.Context, string) (*MySQLConfig, *Response, error)
	GetMongoDBConfig(context.Context, string) (*MongoDBConfig, *Response, error)
	GetOpensearchConfig(context.Context, string) (*OpensearchConfig, *Response, error)
	GetKafkaConfig(context.Context, string) (*KafkaConfig, *Response, error)
	UpdatePostgreSQLConfig(context.Context, string, *PostgreSQLConfig) (*Response, error)
	UpdateRedisConfig(context.Context, string, *RedisConfig) (*Response, error)
	UpdateMySQLConfig(context.Context, string, *MySQLConfig) (*Response, error)
	UpdateMongoDBConfig(context.Context, string, *MongoDBConfig) (*Response, error)
	UpdateOpensearchConfig(context.Context, string, *OpensearchConfig) (*Response, error)
	UpdateKafkaConfig(context.Context, string, *KafkaConfig) (*Response, error)
	ListOptions(todo context.Context) (*DatabaseOptions, *Response, error)
	UpgradeMajorVersion(context.Context, string, *UpgradeVersionRequest) (*Response, error)
	ListTopics(context.Context, string, *ListOptions) ([]DatabaseTopic, *Response, error)
	CreateTopic(context.Context, string, *DatabaseCreateTopicRequest) (*DatabaseTopic, *Response, error)
	GetTopic(context.Context, string, string) (*DatabaseTopic, *Response, error)
	DeleteTopic(context.Context, string, string) (*Response, error)
	UpdateTopic(context.Context, string, string, *DatabaseUpdateTopicRequest) (*Response, error)
	GetMetricsCredentials(context.Context) (*DatabaseMetricsCredentials, *Response, error)
	UpdateMetricsCredentials(context.Context, *DatabaseUpdateMetricsCredentialsRequest) (*Response, error)
	ListDatabaseEvents(context.Context, string, *ListOptions) ([]DatabaseEvent, *Response, error)
	ListIndexes(context.Context, string, *ListOptions) ([]DatabaseIndex, *Response, error)
	DeleteIndex(context.Context, string, string) (*Response, error)
	CreateLogsink(ctx context.Context, databaseID string, createLogsink *DatabaseCreateLogsinkRequest) (*DatabaseLogsink, *Response, error)
	GetLogsink(ctx context.Context, databaseID string, logsinkID string) (*DatabaseLogsink, *Response, error)
	ListLogsinks(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabaseLogsink, *Response, error)
	UpdateLogsink(ctx context.Context, databaseID string, logsinkID string, updateLogsink *DatabaseUpdateLogsinkRequest) (*Response, error)
	DeleteLogsink(ctx context.Context, databaseID, logsinkID string) (*Response, error)
}

The DatabasesService provides access to the Abrha 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 go_api_abrha, we refer to them here as DatabaseDBs.

See: https://docs.parspack.com/api/#tag/Databases

type DatabasesServiceOp

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

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

func (*DatabasesServiceOp) Create

Create creates a database cluster

func (*DatabasesServiceOp) CreateDB

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

CreateDB will create a new database

func (*DatabasesServiceOp) CreateLogsink

func (svc *DatabasesServiceOp) CreateLogsink(ctx context.Context, databaseID string, createLogsink *DatabaseCreateLogsinkRequest) (*DatabaseLogsink, *Response, error)

CreateLogsink creates a new logsink for a database

func (*DatabasesServiceOp) CreatePool

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

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

CreateReplica will create a new database connection pool

func (*DatabasesServiceOp) CreateTopic

func (svc *DatabasesServiceOp) CreateTopic(ctx context.Context, databaseID string, createTopic *DatabaseCreateTopicRequest) (*DatabaseTopic, *Response, error)

CreateTopic will create a new kafka topic

func (*DatabasesServiceOp) CreateUser

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

CreateUser will create a new database user

func (*DatabasesServiceOp) Delete

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

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

DeleteDB will delete an existing database

func (*DatabasesServiceOp) DeleteIndex

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

DeleteIndex will delete an existing opensearch index

func (*DatabasesServiceOp) DeleteLogsink

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

DeleteLogsink deletes a logsink for a database cluster

func (*DatabasesServiceOp) DeletePool

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

DeletePool will delete an existing database connection pool

func (*DatabasesServiceOp) DeleteReplica

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

DeleteReplica will delete an existing database replica

func (*DatabasesServiceOp) DeleteTopic

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

DeleteTopic will delete an existing kafka topic

func (*DatabasesServiceOp) DeleteUser

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

DeleteUser will delete an existing database user

func (*DatabasesServiceOp) Get

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

Get retrieves the details of a database cluster

func (*DatabasesServiceOp) GetCA

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

GetCA retrieves the CA of a database cluster.

func (*DatabasesServiceOp) GetDB

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

GetDB returns a single database by name

func (*DatabasesServiceOp) GetEvictionPolicy

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

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

GetFirewallRules loads the inbound sources for a given cluster.

func (*DatabasesServiceOp) GetKafkaConfig

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

GetKafkaConfig retrieves the config for a Kafka database cluster.

func (*DatabasesServiceOp) GetLogsink

func (svc *DatabasesServiceOp) GetLogsink(ctx context.Context, databaseID string, logsinkID string) (*DatabaseLogsink, *Response, error)

GetLogsink gets a logsink for a database

func (*DatabasesServiceOp) GetMetricsCredentials

func (svc *DatabasesServiceOp) GetMetricsCredentials(ctx context.Context) (*DatabaseMetricsCredentials, *Response, error)

GetMetricsCredentials gets the credentials required to access a user's metrics endpoints

func (*DatabasesServiceOp) GetMongoDBConfig

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

GetMongoDBConfig retrieves the config for a MongoDB database cluster.

func (*DatabasesServiceOp) GetMySQLConfig

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

GetMySQLConfig retrieves the config for a MySQL database cluster.

func (*DatabasesServiceOp) GetOpensearchConfig

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

GetOpensearchConfig retrieves the config for a Opensearch database cluster.

func (*DatabasesServiceOp) GetPool

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

GetPool returns a single database connection pool by name

func (*DatabasesServiceOp) GetPostgreSQLConfig

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

GetPostgreSQLConfig retrieves the config for a PostgreSQL database cluster.

func (*DatabasesServiceOp) GetRedisConfig

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

GetRedisConfig retrieves the config for a Redis database cluster.

func (*DatabasesServiceOp) GetReplica

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

GetReplica returns a single database replica

func (*DatabasesServiceOp) GetSQLMode

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) GetTopic

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

GetTopic returns a single kafka topic by name

func (*DatabasesServiceOp) GetUser

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

GetUser returns the database user identified by userID

func (*DatabasesServiceOp) InstallUpdate

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

InstallUpdate starts installation of updates

func (*DatabasesServiceOp) List

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

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

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) ListDatabaseEvents

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

ListDatabaseEvents returns all the events for a given cluster

func (*DatabasesServiceOp) ListIndexes

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

ListIndexes returns all indexes for a given opensearch cluster

func (*DatabasesServiceOp) ListLogsinks

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

ListTopics returns all topics for a given kafka cluster

func (*DatabasesServiceOp) ListOptions

func (svc *DatabasesServiceOp) ListOptions(ctx context.Context) (*DatabaseOptions, *Response, error)

ListOptions gets the database options available.

func (*DatabasesServiceOp) ListPools

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

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) ListTopics

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

ListTopics returns all topics for a given kafka cluster

func (*DatabasesServiceOp) ListUsers

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

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

Migrate migrates a database cluster to a new region

func (*DatabasesServiceOp) PromoteReplicaToPrimary

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

PromoteReplicaToPrimary will sever the read replica integration and then promote the replica cluster to be a R/W cluster

func (*DatabasesServiceOp) ResetUserAuth

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

ResetUserAuth will reset user authentication

func (*DatabasesServiceOp) Resize

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

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

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

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

UpdateFirewallRules sets the inbound sources for a given cluster.

func (*DatabasesServiceOp) UpdateKafkaConfig

func (svc *DatabasesServiceOp) UpdateKafkaConfig(ctx context.Context, databaseID string, config *KafkaConfig) (*Response, error)

UpdateKafkaConfig updates the config for a Kafka database cluster.

func (*DatabasesServiceOp) UpdateLogsink

func (svc *DatabasesServiceOp) UpdateLogsink(ctx context.Context, databaseID string, logsinkID string, updateLogsink *DatabaseUpdateLogsinkRequest) (*Response, error)

UpdateLogsink updates a logsink for a database cluster

func (*DatabasesServiceOp) UpdateMaintenance

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

UpdateMaintenance updates the maintenance window on a cluster

func (*DatabasesServiceOp) UpdateMetricsCredentials

func (svc *DatabasesServiceOp) UpdateMetricsCredentials(ctx context.Context, updateCreds *DatabaseUpdateMetricsCredentialsRequest) (*Response, error)

UpdateMetricsAuth updates the credentials required to access a user's metrics endpoints

func (*DatabasesServiceOp) UpdateMongoDBConfig

func (svc *DatabasesServiceOp) UpdateMongoDBConfig(ctx context.Context, databaseID string, config *MongoDBConfig) (*Response, error)

UpdateMongoDBConfig updates the config for a MongoDB database cluster.

func (*DatabasesServiceOp) UpdateMySQLConfig

func (svc *DatabasesServiceOp) UpdateMySQLConfig(ctx context.Context, databaseID string, config *MySQLConfig) (*Response, error)

UpdateMySQLConfig updates the config for a MySQL database cluster.

func (*DatabasesServiceOp) UpdateOpensearchConfig

func (svc *DatabasesServiceOp) UpdateOpensearchConfig(ctx context.Context, databaseID string, config *OpensearchConfig) (*Response, error)

UpdateOpensearchConfig updates the config for a Opensearch database cluster.

func (*DatabasesServiceOp) UpdatePool

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

UpdatePool will update an existing database connection pool

func (*DatabasesServiceOp) UpdatePostgreSQLConfig

func (svc *DatabasesServiceOp) UpdatePostgreSQLConfig(ctx context.Context, databaseID string, config *PostgreSQLConfig) (*Response, error)

UpdatePostgreSQLConfig updates the config for a PostgreSQL database cluster.

func (*DatabasesServiceOp) UpdateRedisConfig

func (svc *DatabasesServiceOp) UpdateRedisConfig(ctx context.Context, databaseID string, config *RedisConfig) (*Response, error)

UpdateRedisConfig updates the config for a Redis database cluster.

func (*DatabasesServiceOp) UpdateTopic

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

UpdateTopic updates a single kafka topic

func (*DatabasesServiceOp) UpdateUser

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

UpdateUser will update an existing database user

func (*DatabasesServiceOp) UpgradeMajorVersion

func (svc *DatabasesServiceOp) UpgradeMajorVersion(ctx context.Context, databaseID string, upgradeReq *UpgradeVersionRequest) (*Response, error)

UpgradeMajorVersion upgrades the major version of a cluster.

type DeployTemplate

type DeployTemplate struct {
	Spec *AppSpec `json:"spec,omitempty"`
}

DeployTemplate struct for DeployTemplate

func (*DeployTemplate) GetSpec

func (d *DeployTemplate) GetSpec() *AppSpec

GetSpec returns the Spec field.

type Deployment

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"`
	Timing               *DeploymentTiming       `json:"timing,omitempty"`
}

Deployment struct for Deployment

func (*Deployment) GetCause

func (d *Deployment) GetCause() string

GetCause returns the Cause field.

func (*Deployment) GetCauseDetails

func (d *Deployment) GetCauseDetails() *DeploymentCauseDetails

GetCauseDetails returns the CauseDetails field.

func (*Deployment) GetClonedFrom

func (d *Deployment) GetClonedFrom() string

GetClonedFrom returns the ClonedFrom field.

func (*Deployment) GetCreatedAt

func (d *Deployment) GetCreatedAt() time.Time

GetCreatedAt returns the CreatedAt field.

func (*Deployment) GetFunctions

func (d *Deployment) GetFunctions() []*DeploymentFunctions

GetFunctions returns the Functions field.

func (*Deployment) GetID

func (d *Deployment) GetID() string

GetID returns the ID field.

func (*Deployment) GetJobs

func (d *Deployment) GetJobs() []*DeploymentJob

GetJobs returns the Jobs field.

func (*Deployment) GetLoadBalancerID

func (d *Deployment) GetLoadBalancerID() string

GetLoadBalancerID returns the LoadBalancerID field.

func (*Deployment) GetPhase

func (d *Deployment) GetPhase() DeploymentPhase

GetPhase returns the Phase field.

func (*Deployment) GetPhaseLastUpdatedAt

func (d *Deployment) GetPhaseLastUpdatedAt() time.Time

GetPhaseLastUpdatedAt returns the PhaseLastUpdatedAt field.

func (*Deployment) GetPreviousDeploymentID

func (d *Deployment) GetPreviousDeploymentID() string

GetPreviousDeploymentID returns the PreviousDeploymentID field.

func (*Deployment) GetProgress

func (d *Deployment) GetProgress() *DeploymentProgress

GetProgress returns the Progress field.

func (*Deployment) GetServices

func (d *Deployment) GetServices() []*DeploymentService

GetServices returns the Services field.

func (*Deployment) GetSpec

func (d *Deployment) GetSpec() *AppSpec

GetSpec returns the Spec field.

func (*Deployment) GetStaticSites

func (d *Deployment) GetStaticSites() []*DeploymentStaticSite

GetStaticSites returns the StaticSites field.

func (*Deployment) GetTierSlug

func (d *Deployment) GetTierSlug() string

GetTierSlug returns the TierSlug field.

func (*Deployment) GetTiming

func (d *Deployment) GetTiming() *DeploymentTiming

GetTiming returns the Timing field.

func (*Deployment) GetUpdatedAt

func (d *Deployment) GetUpdatedAt() time.Time

GetUpdatedAt returns the UpdatedAt field.

func (*Deployment) GetWorkers

func (d *Deployment) GetWorkers() []*DeploymentWorker

GetWorkers returns the Workers field.

type DeploymentCauseDetails

type DeploymentCauseDetails struct {
	AbrhaUserAction *DeploymentCauseDetailsAbrhaUserAction  `json:"abrha_user_action,omitempty"`
	GitPush         *DeploymentCauseDetailsGitPush          `json:"git_push,omitempty"`
	DOCRPush        *DeploymentCauseDetailsDOCRPush         `json:"docr_push,omitempty"`
	Internal        bool                                    `json:"internal,omitempty"`
	Autoscaler      *DeploymentCauseDetailsAutoscalerAction `json:"autoscaler,omitempty"`
	Type            DeploymentCauseDetailsType              `json:"type,omitempty"`
}

DeploymentCauseDetails struct for DeploymentCauseDetails

func (*DeploymentCauseDetails) GetAbrhaUserAction

GetAbrhaUserAction returns the AbrhaUserAction field.

func (*DeploymentCauseDetails) GetAutoscaler

GetAutoscaler returns the Autoscaler field.

func (*DeploymentCauseDetails) GetDOCRPush

GetDOCRPush returns the DOCRPush field.

func (*DeploymentCauseDetails) GetGitPush

GetGitPush returns the GitPush field.

func (*DeploymentCauseDetails) GetInternal

func (d *DeploymentCauseDetails) GetInternal() bool

GetInternal returns the Internal field.

func (*DeploymentCauseDetails) GetType

GetType returns the Type field.

type DeploymentCauseDetailsAbrhaUser

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

DeploymentCauseDetailsAbrhaUser struct for DeploymentCauseDetailsAbrhaUser

func (*DeploymentCauseDetailsAbrhaUser) GetEmail

GetEmail returns the Email field.

func (*DeploymentCauseDetailsAbrhaUser) GetFullName

func (d *DeploymentCauseDetailsAbrhaUser) GetFullName() string

GetFullName returns the FullName field.

func (*DeploymentCauseDetailsAbrhaUser) GetUUID

GetUUID returns the UUID field.

type DeploymentCauseDetailsAbrhaUserAction

type DeploymentCauseDetailsAbrhaUserAction struct {
	User *DeploymentCauseDetailsAbrhaUser          `json:"user,omitempty"`
	Name DeploymentCauseDetailsAbrhaUserActionName `json:"name,omitempty"`
}

DeploymentCauseDetailsAbrhaUserAction struct for DeploymentCauseDetailsAbrhaUserAction

func (*DeploymentCauseDetailsAbrhaUserAction) GetName

GetName returns the Name field.

func (*DeploymentCauseDetailsAbrhaUserAction) GetUser

GetUser returns the User field.

type DeploymentCauseDetailsAbrhaUserActionName

type DeploymentCauseDetailsAbrhaUserActionName string

DeploymentCauseDetailsAbrhaUserActionName the model 'CauseDetailsAbrhaUserActionName'

const (
	DeploymentCauseDetailsAbrhaUserActionName_Unknown               DeploymentCauseDetailsAbrhaUserActionName = "UNKNOWN"
	DeploymentCauseDetailsAbrhaUserActionName_CreateDeployment      DeploymentCauseDetailsAbrhaUserActionName = "CREATE_DEPLOYMENT"
	DeploymentCauseDetailsAbrhaUserActionName_UpdateSpec            DeploymentCauseDetailsAbrhaUserActionName = "UPDATE_SPEC"
	DeploymentCauseDetailsAbrhaUserActionName_ResetDatabasePassword DeploymentCauseDetailsAbrhaUserActionName = "RESET_DATABASE_PASSWORD"
	DeploymentCauseDetailsAbrhaUserActionName_RollbackApp           DeploymentCauseDetailsAbrhaUserActionName = "ROLLBACK_APP"
	DeploymentCauseDetailsAbrhaUserActionName_RevertAppRollback     DeploymentCauseDetailsAbrhaUserActionName = "REVERT_APP_ROLLBACK"
	DeploymentCauseDetailsAbrhaUserActionName_UpgradeBuildpack      DeploymentCauseDetailsAbrhaUserActionName = "UPGRADE_BUILDPACK"
	DeploymentCauseDetailsAbrhaUserActionName_Restart               DeploymentCauseDetailsAbrhaUserActionName = "RESTART"
)

List of DeploymentCauseDetailsAbrhaUserActionName

type DeploymentCauseDetailsAutoscalerAction

type DeploymentCauseDetailsAutoscalerAction struct {
	// Marker for the deployment being autoscaled. Necessary because the generation tooling can't handle empty messages.
	Autoscaled bool `json:"autoscaled,omitempty"`
}

DeploymentCauseDetailsAutoscalerAction struct for DeploymentCauseDetailsAutoscalerAction

func (*DeploymentCauseDetailsAutoscalerAction) GetAutoscaled

func (d *DeploymentCauseDetailsAutoscalerAction) GetAutoscaled() bool

GetAutoscaled returns the Autoscaled field.

type DeploymentCauseDetailsDOCRPush

type DeploymentCauseDetailsDOCRPush struct {
	// The registry name.
	Registry string `json:"registry,omitempty"`
	// The repository name.
	Repository string `json:"repository,omitempty"`
	// The repository tag.
	Tag string `json:"tag,omitempty"`
	// OCI Image digest.
	ImageDigest string `json:"image_digest,omitempty"`
}

DeploymentCauseDetailsDOCRPush struct for DeploymentCauseDetailsDOCRPush

func (*DeploymentCauseDetailsDOCRPush) GetImageDigest

func (d *DeploymentCauseDetailsDOCRPush) GetImageDigest() string

GetImageDigest returns the ImageDigest field.

func (*DeploymentCauseDetailsDOCRPush) GetRegistry

func (d *DeploymentCauseDetailsDOCRPush) GetRegistry() string

GetRegistry returns the Registry field.

func (*DeploymentCauseDetailsDOCRPush) GetRepository

func (d *DeploymentCauseDetailsDOCRPush) GetRepository() string

GetRepository returns the Repository field.

func (*DeploymentCauseDetailsDOCRPush) GetTag

GetTag returns the Tag field.

type DeploymentCauseDetailsGitPush

type DeploymentCauseDetailsGitPush struct {
	GitHub        *GitHubSourceSpec    `json:"github,omitempty"`
	GitLab        *GitLabSourceSpec    `json:"gitlab,omitempty"`
	Bitbucket     *BitbucketSourceSpec `json:"bitbucket,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

func (*DeploymentCauseDetailsGitPush) GetBitbucket

GetBitbucket returns the Bitbucket field.

func (*DeploymentCauseDetailsGitPush) GetCommitAuthor

func (d *DeploymentCauseDetailsGitPush) GetCommitAuthor() string

GetCommitAuthor returns the CommitAuthor field.

func (*DeploymentCauseDetailsGitPush) GetCommitMessage

func (d *DeploymentCauseDetailsGitPush) GetCommitMessage() string

GetCommitMessage returns the CommitMessage field.

func (*DeploymentCauseDetailsGitPush) GetCommitSHA

func (d *DeploymentCauseDetailsGitPush) GetCommitSHA() string

GetCommitSHA returns the CommitSHA field.

func (*DeploymentCauseDetailsGitPush) GetGitHub

GetGitHub returns the GitHub field.

func (*DeploymentCauseDetailsGitPush) GetGitLab

GetGitLab returns the GitLab field.

func (*DeploymentCauseDetailsGitPush) GetUsername

func (d *DeploymentCauseDetailsGitPush) GetUsername() string

GetUsername returns the Username field.

type DeploymentCauseDetailsType

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. - AUTOSCALED: A deployment that was created due to an autoscaler update.

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"
	DeploymentCauseDetailsType_Autoscaled                   DeploymentCauseDetailsType = "AUTOSCALED"
)

List of DeploymentCauseDetailsType

type DeploymentCreateRequest

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

DeploymentCreateRequest represents a request to create a deployment.

type DeploymentFunctions

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

func (*DeploymentFunctions) GetName

func (d *DeploymentFunctions) GetName() string

GetName returns the Name field.

func (*DeploymentFunctions) GetNamespace

func (d *DeploymentFunctions) GetNamespace() string

GetNamespace returns the Namespace field.

func (*DeploymentFunctions) GetSourceCommitHash

func (d *DeploymentFunctions) GetSourceCommitHash() string

GetSourceCommitHash returns the SourceCommitHash field.

type DeploymentJob

type DeploymentJob struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
	// The list of resolved buildpacks used for a given deployment component.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
}

DeploymentJob struct for DeploymentJob

func (*DeploymentJob) GetBuildpacks

func (d *DeploymentJob) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

func (*DeploymentJob) GetName

func (d *DeploymentJob) GetName() string

GetName returns the Name field.

func (*DeploymentJob) GetSourceCommitHash

func (d *DeploymentJob) GetSourceCommitHash() string

GetSourceCommitHash returns the SourceCommitHash field.

type DeploymentPhase

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

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

func (*DeploymentProgress) GetErrorSteps

func (d *DeploymentProgress) GetErrorSteps() int32

GetErrorSteps returns the ErrorSteps field.

func (*DeploymentProgress) GetPendingSteps

func (d *DeploymentProgress) GetPendingSteps() int32

GetPendingSteps returns the PendingSteps field.

func (*DeploymentProgress) GetRunningSteps

func (d *DeploymentProgress) GetRunningSteps() int32

GetRunningSteps returns the RunningSteps field.

func (*DeploymentProgress) GetSteps

func (d *DeploymentProgress) GetSteps() []*DeploymentProgressStep

GetSteps returns the Steps field.

func (*DeploymentProgress) GetSuccessSteps

func (d *DeploymentProgress) GetSuccessSteps() int32

GetSuccessSteps returns the SuccessSteps field.

func (*DeploymentProgress) GetSummarySteps

func (d *DeploymentProgress) GetSummarySteps() []*DeploymentProgressStep

GetSummarySteps returns the SummarySteps field.

func (*DeploymentProgress) GetTotalSteps

func (d *DeploymentProgress) GetTotalSteps() int32

GetTotalSteps returns the TotalSteps field.

type DeploymentProgressStep

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

func (*DeploymentProgressStep) GetComponentName

func (d *DeploymentProgressStep) GetComponentName() string

GetComponentName returns the ComponentName field.

func (*DeploymentProgressStep) GetEndedAt

func (d *DeploymentProgressStep) GetEndedAt() time.Time

GetEndedAt returns the EndedAt field.

func (*DeploymentProgressStep) GetMessageBase

func (d *DeploymentProgressStep) GetMessageBase() string

GetMessageBase returns the MessageBase field.

func (*DeploymentProgressStep) GetName

func (d *DeploymentProgressStep) GetName() string

GetName returns the Name field.

func (*DeploymentProgressStep) GetReason

GetReason returns the Reason field.

func (*DeploymentProgressStep) GetStartedAt

func (d *DeploymentProgressStep) GetStartedAt() time.Time

GetStartedAt returns the StartedAt field.

func (*DeploymentProgressStep) GetStatus

GetStatus returns the Status field.

func (*DeploymentProgressStep) GetSteps

GetSteps returns the Steps field.

type DeploymentProgressStepReason

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

DeploymentProgressStepReason struct for DeploymentProgressStepReason

func (*DeploymentProgressStepReason) GetCode

func (d *DeploymentProgressStepReason) GetCode() string

GetCode returns the Code field.

func (*DeploymentProgressStepReason) GetMessage

func (d *DeploymentProgressStepReason) GetMessage() string

GetMessage returns the Message field.

type DeploymentProgressStepStatus

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

type DeploymentService struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
	// The list of resolved buildpacks used for a given deployment component.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
}

DeploymentService struct for DeploymentService

func (*DeploymentService) GetBuildpacks

func (d *DeploymentService) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

func (*DeploymentService) GetName

func (d *DeploymentService) GetName() string

GetName returns the Name field.

func (*DeploymentService) GetSourceCommitHash

func (d *DeploymentService) GetSourceCommitHash() string

GetSourceCommitHash returns the SourceCommitHash field.

type DeploymentStaticSite

type DeploymentStaticSite struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
	// The list of resolved buildpacks used for a given deployment component.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
}

DeploymentStaticSite struct for DeploymentStaticSite

func (*DeploymentStaticSite) GetBuildpacks

func (d *DeploymentStaticSite) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

func (*DeploymentStaticSite) GetName

func (d *DeploymentStaticSite) GetName() string

GetName returns the Name field.

func (*DeploymentStaticSite) GetSourceCommitHash

func (d *DeploymentStaticSite) GetSourceCommitHash() string

GetSourceCommitHash returns the SourceCommitHash field.

type DeploymentTiming

type DeploymentTiming struct {
	// Pending describes the time spent waiting for the build to begin. This may include delays related to build concurrency limits.
	Pending string `json:"pending,omitempty"`
	// BuildTotal describes total time between the start of the build and its completion.
	BuildTotal string `json:"build_total,omitempty"`
	// BuildBillable describes the time spent executing the build. As builds may run concurrently  this may be greater than the build total.
	BuildBillable string `json:"build_billable,omitempty"`
	// Components breaks down billable build time by component.
	Components []*DeploymentTimingComponent `json:"components,omitempty"`
	// DatabaseProvision describes the time spent creating databases.
	DatabaseProvision string `json:"database_provision,omitempty"`
	// Deploying is time spent starting containers and waiting for health checks to pass.
	Deploying string `json:"deploying,omitempty"`
}

DeploymentTiming struct for DeploymentTiming

func (*DeploymentTiming) GetBuildBillable

func (d *DeploymentTiming) GetBuildBillable() string

GetBuildBillable returns the BuildBillable field.

func (*DeploymentTiming) GetBuildTotal

func (d *DeploymentTiming) GetBuildTotal() string

GetBuildTotal returns the BuildTotal field.

func (*DeploymentTiming) GetComponents

func (d *DeploymentTiming) GetComponents() []*DeploymentTimingComponent

GetComponents returns the Components field.

func (*DeploymentTiming) GetDatabaseProvision

func (d *DeploymentTiming) GetDatabaseProvision() string

GetDatabaseProvision returns the DatabaseProvision field.

func (*DeploymentTiming) GetDeploying

func (d *DeploymentTiming) GetDeploying() string

GetDeploying returns the Deploying field.

func (*DeploymentTiming) GetPending

func (d *DeploymentTiming) GetPending() string

GetPending returns the Pending field.

type DeploymentTimingComponent

type DeploymentTimingComponent struct {
	// Name of the component.
	Name string `json:"name,omitempty"`
	// BuildBillable is the billable build time for this component.
	BuildBillable string `json:"build_billable,omitempty"`
}

DeploymentTimingComponent struct for DeploymentTimingComponent

func (*DeploymentTimingComponent) GetBuildBillable

func (d *DeploymentTimingComponent) GetBuildBillable() string

GetBuildBillable returns the BuildBillable field.

func (*DeploymentTimingComponent) GetName

func (d *DeploymentTimingComponent) GetName() string

GetName returns the Name field.

type DeploymentWorker

type DeploymentWorker struct {
	Name             string `json:"name,omitempty"`
	SourceCommitHash string `json:"source_commit_hash,omitempty"`
	// The list of resolved buildpacks used for a given deployment component.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
}

DeploymentWorker struct for DeploymentWorker

func (*DeploymentWorker) GetBuildpacks

func (d *DeploymentWorker) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

func (*DeploymentWorker) GetName

func (d *DeploymentWorker) GetName() string

GetName returns the Name field.

func (*DeploymentWorker) GetSourceCommitHash

func (d *DeploymentWorker) GetSourceCommitHash() string

GetSourceCommitHash returns the SourceCommitHash field.

type Destinations

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

Destinations represents a Abrha Firewall OutboundRule destinations.

type DetectRequest

type DetectRequest struct {
	Git       *GitSourceSpec       `json:"git,omitempty"`
	GitHub    *GitHubSourceSpec    `json:"github,omitempty"`
	GitLab    *GitLabSourceSpec    `json:"gitlab,omitempty"`
	Bitbucket *BitbucketSourceSpec `json:"bitbucket,omitempty"`
	// An optional commit hash to use instead of the branch specified in the source spec.
	CommitSHA string `json:"commit_sha,omitempty"`
	// An optional path to the working directory for the detection process.
	SourceDir string `json:"source_dir,omitempty"`
}

DetectRequest struct for DetectRequest

func (*DetectRequest) GetBitbucket

func (d *DetectRequest) GetBitbucket() *BitbucketSourceSpec

GetBitbucket returns the Bitbucket field.

func (*DetectRequest) GetCommitSHA

func (d *DetectRequest) GetCommitSHA() string

GetCommitSHA returns the CommitSHA field.

func (*DetectRequest) GetGit

func (d *DetectRequest) GetGit() *GitSourceSpec

GetGit returns the Git field.

func (*DetectRequest) GetGitHub

func (d *DetectRequest) GetGitHub() *GitHubSourceSpec

GetGitHub returns the GitHub field.

func (*DetectRequest) GetGitLab

func (d *DetectRequest) GetGitLab() *GitLabSourceSpec

GetGitLab returns the GitLab field.

func (*DetectRequest) GetSourceDir

func (d *DetectRequest) GetSourceDir() string

GetSourceDir returns the SourceDir field.

type DetectResponse

type DetectResponse struct {
	Components    []*DetectResponseComponent `json:"components,omitempty"`
	Template      *DeployTemplate            `json:"template,omitempty"`
	TemplateFound bool                       `json:"template_found,omitempty"`
	TemplateValid bool                       `json:"template_valid,omitempty"`
	TemplateError string                     `json:"template_error,omitempty"`
	// Whether or not the underlying detection is still pending. If true, the request can be retried as-is until this field is false and the response contains the detection result.
	Pending bool `json:"pending,omitempty"`
}

DetectResponse struct for DetectResponse

func (*DetectResponse) GetComponents

func (d *DetectResponse) GetComponents() []*DetectResponseComponent

GetComponents returns the Components field.

func (*DetectResponse) GetPending

func (d *DetectResponse) GetPending() bool

GetPending returns the Pending field.

func (*DetectResponse) GetTemplate

func (d *DetectResponse) GetTemplate() *DeployTemplate

GetTemplate returns the Template field.

func (*DetectResponse) GetTemplateError

func (d *DetectResponse) GetTemplateError() string

GetTemplateError returns the TemplateError field.

func (*DetectResponse) GetTemplateFound

func (d *DetectResponse) GetTemplateFound() bool

GetTemplateFound returns the TemplateFound field.

func (*DetectResponse) GetTemplateValid

func (d *DetectResponse) GetTemplateValid() bool

GetTemplateValid returns the TemplateValid field.

type DetectResponseComponent

type DetectResponseComponent struct {
	Strategy DetectResponseType `json:"strategy,omitempty"`
	Types    []string           `json:"types,omitempty"`
	// A list of Dockerfiles that were found for this component. The recommendation is to use the first Dockerfile.
	Dockerfiles     []string `json:"dockerfiles,omitempty"`
	BuildCommand    string   `json:"build_command,omitempty"`
	RunCommand      string   `json:"run_command,omitempty"`
	EnvironmentSlug string   `json:"environment_slug,omitempty"`
	// A list of HTTP ports that this component may listen on. The recommendation is to use the last port in the list.
	HTTPPorts []int64                  `json:"http_ports,omitempty"`
	EnvVars   []*AppVariableDefinition `json:"env_vars,omitempty"`
	// List of serverless packages detected.
	ServerlessPackages []*DetectResponseServerlessPackage `json:"serverless_packages,omitempty"`
	SourceDir          string                             `json:"source_dir,omitempty"`
	// The list of detected buildpacks that will be used for the component build.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
}

DetectResponseComponent struct for DetectResponseComponent

func (*DetectResponseComponent) GetBuildCommand

func (d *DetectResponseComponent) GetBuildCommand() string

GetBuildCommand returns the BuildCommand field.

func (*DetectResponseComponent) GetBuildpacks

func (d *DetectResponseComponent) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

func (*DetectResponseComponent) GetDockerfiles

func (d *DetectResponseComponent) GetDockerfiles() []string

GetDockerfiles returns the Dockerfiles field.

func (*DetectResponseComponent) GetEnvVars

GetEnvVars returns the EnvVars field.

func (*DetectResponseComponent) GetEnvironmentSlug

func (d *DetectResponseComponent) GetEnvironmentSlug() string

GetEnvironmentSlug returns the EnvironmentSlug field.

func (*DetectResponseComponent) GetHTTPPorts

func (d *DetectResponseComponent) GetHTTPPorts() []int64

GetHTTPPorts returns the HTTPPorts field.

func (*DetectResponseComponent) GetRunCommand

func (d *DetectResponseComponent) GetRunCommand() string

GetRunCommand returns the RunCommand field.

func (*DetectResponseComponent) GetServerlessPackages

func (d *DetectResponseComponent) GetServerlessPackages() []*DetectResponseServerlessPackage

GetServerlessPackages returns the ServerlessPackages field.

func (*DetectResponseComponent) GetSourceDir

func (d *DetectResponseComponent) GetSourceDir() string

GetSourceDir returns the SourceDir field.

func (*DetectResponseComponent) GetStrategy

GetStrategy returns the Strategy field.

func (*DetectResponseComponent) GetTypes

func (d *DetectResponseComponent) GetTypes() []string

GetTypes returns the Types field.

type DetectResponseServerlessFunction

type DetectResponseServerlessFunction struct {
	// Name of the function.
	Name string `json:"name,omitempty"`
	// Package that the function belongs to.
	Package string `json:"package,omitempty"`
	// Runtime detected for the function.
	Runtime string                                  `json:"runtime,omitempty"`
	Limits  *DetectResponseServerlessFunctionLimits `json:"limits,omitempty"`
}

DetectResponseServerlessFunction struct for DetectResponseServerlessFunction

func (*DetectResponseServerlessFunction) GetLimits

GetLimits returns the Limits field.

func (*DetectResponseServerlessFunction) GetName

GetName returns the Name field.

func (*DetectResponseServerlessFunction) GetPackage

func (d *DetectResponseServerlessFunction) GetPackage() string

GetPackage returns the Package field.

func (*DetectResponseServerlessFunction) GetRuntime

func (d *DetectResponseServerlessFunction) GetRuntime() string

GetRuntime returns the Runtime field.

type DetectResponseServerlessFunctionLimits

type DetectResponseServerlessFunctionLimits struct {
	// Timeout for function invocation in milliseconds.
	Timeout string `json:"timeout,omitempty"`
	// Max memory allocation for function invocation in megabytes.
	Memory string `json:"memory,omitempty"`
	// Max log size usage for function invocation in kilobytes.
	Logs string `json:"logs,omitempty"`
}

DetectResponseServerlessFunctionLimits struct for DetectResponseServerlessFunctionLimits

func (*DetectResponseServerlessFunctionLimits) GetLogs

GetLogs returns the Logs field.

func (*DetectResponseServerlessFunctionLimits) GetMemory

GetMemory returns the Memory field.

func (*DetectResponseServerlessFunctionLimits) GetTimeout

GetTimeout returns the Timeout field.

type DetectResponseServerlessPackage

type DetectResponseServerlessPackage struct {
	// Name of the serverless package.
	Name string `json:"name,omitempty"`
	// List of functions detected in the serverless package.
	Functions []*DetectResponseServerlessFunction `json:"functions,omitempty"`
}

DetectResponseServerlessPackage struct for DetectResponseServerlessPackage

func (*DetectResponseServerlessPackage) GetFunctions

GetFunctions returns the Functions field.

func (*DetectResponseServerlessPackage) GetName

GetName returns the Name field.

type DetectResponseType

type DetectResponseType string

DetectResponseType the model 'DetectResponseType'

const (
	DetectResponseType_Unspecified DetectResponseType = "UNSPECIFIED"
	DetectResponseType_Dockerfile  DetectResponseType = "DOCKERFILE"
	DetectResponseType_Buildpack   DetectResponseType = "BUILDPACK"
	DetectResponseType_HTML        DetectResponseType = "HTML"
	DetectResponseType_Serverless  DetectResponseType = "SERVERLESS"
)

List of DetectResponseType

type DiskInfo

type DiskInfo struct {
	Type string    `json:"type,omitempty"`
	Size *DiskSize `json:"size,omitempty"`
}

DiskInfo containing information about the disks available to Vms created with this size.

type DiskSize

type DiskSize struct {
	Amount int    `json:"amount,omitempty"`
	Unit   string `json:"unit,omitempty"`
}

DiskSize provides information about the size of a disk.

type DockerCredentials

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

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

Domain represents a Abrha domain

func (Domain) String

func (d Domain) String() string

func (Domain) URN

func (d Domain) URN() string

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

type DomainCreateRequest

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 Abrha 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

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

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

func (*DomainsServiceOp) Create

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

Create a new domain

func (*DomainsServiceOp) CreateRecord

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

CreateRecord creates a record using a DomainRecordEditRequest

func (*DomainsServiceOp) Delete

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

Delete domain

func (*DomainsServiceOp) DeleteRecord

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

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

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

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

List all domains.

func (*DomainsServiceOp) Record

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

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

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

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

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 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"`

	// Attempts is the number of times the request was attempted when retries are enabled.
	Attempts int
}

An ErrorResponse reports the error caused by an API request

func (*ErrorResponse) Error

func (r *ErrorResponse) Error() string

type Firewall

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"`
	VmIDs          []string        `json:"vm_ids"`
	Tags           []string        `json:"tags"`
	Created        string          `json:"created_at"`
	PendingChanges []PendingChange `json:"pending_changes"`
}

Firewall represents a Abrha Firewall configuration.

func (Firewall) String

func (fw Firewall) String() string

String creates a human-readable description of a Firewall.

func (Firewall) URN

func (fw Firewall) URN() string

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

type FirewallRequest

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

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

type FirewallRulesRequest

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

FirewallsService is an interface for managing Firewalls with the Abrha API. See: https://docs.parspack.com/api/#tag/Firewalls

type FirewallsServiceOp

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

FirewallsServiceOp handles communication with Firewalls methods of the Abrha API.

func (*FirewallsServiceOp) AddRules

AddRules to a Firewall.

func (*FirewallsServiceOp) AddTags

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

AddTags to a Firewall.

func (*FirewallsServiceOp) AddVms

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

AddVms to a Firewall.

func (*FirewallsServiceOp) Create

Create a new Firewall with a given configuration.

func (*FirewallsServiceOp) Delete

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

Delete a Firewall by its identifier.

func (*FirewallsServiceOp) Get

Get an existing Firewall by its identifier.

func (*FirewallsServiceOp) List

List Firewalls.

func (*FirewallsServiceOp) ListByVm

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

ListByVm Firewalls.

func (*FirewallsServiceOp) RemoveRules

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

RemoveRules from a Firewall.

func (*FirewallsServiceOp) RemoveTags

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

RemoveTags from a Firewall.

func (*FirewallsServiceOp) RemoveVms

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

RemoveVms from a Firewall.

func (*FirewallsServiceOp) Update

Update an existing Firewall with new configuration.

type FloatingIP

type FloatingIP struct {
	Region    *Region `json:"region"`
	Vm        *Vm     `json:"vm"`
	IP        string  `json:"ip"`
	ProjectID string  `json:"project_id"`
	Locked    bool    `json:"locked"`
}

FloatingIP represents a Pars Pack floating IP.

func (FloatingIP) String

func (f FloatingIP) String() string

func (FloatingIP) URN

func (f FloatingIP) URN() string

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

type FloatingIPActionsService

type FloatingIPActionsService interface {
	Assign(ctx context.Context, ip string, vmID string) (*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 Pars Pack API. See: https://docs.parspack.com/api/#tag/Floating-IP-Actions

type FloatingIPActionsServiceOp

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

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

func (*FloatingIPActionsServiceOp) Assign

Assign a floating IP to a vm.

func (*FloatingIPActionsServiceOp) Get

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

List the actions for a particular floating IP.

func (*FloatingIPActionsServiceOp) Unassign

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

type FloatingIPCreateRequest

type FloatingIPCreateRequest struct {
	Region    string `json:"region,omitempty"`
	VmID      string `json:"vm_id,omitempty"`
	ProjectID string `json:"project_id,omitempty"`
}

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

type FloatingIPsService

FloatingIPsService is an interface for interfacing with the floating IPs endpoints of the Pars Pack API. See: https://docs.parspack.com/api/#tag/Floating-IPs

type FloatingIPsServiceOp

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

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

func (*FloatingIPsServiceOp) Create

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

func (*FloatingIPsServiceOp) Delete

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

Delete a floating IP.

func (*FloatingIPsServiceOp) Get

Get an individual floating IP.

func (*FloatingIPsServiceOp) List

List all floating IPs.

type ForwardingRule

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

func (f ForwardingRule) String() string

String creates a human-readable description of a ForwardingRule.

type FunctionsNamespace

type FunctionsNamespace struct {
	ApiHost   string    `json:"api_host,omitempty"`
	Namespace string    `json:"namespace,omitempty"`
	CreatedAt time.Time `json:"created_at,omitempty"`
	UpdatedAt time.Time `json:"updated_at,omitempty"`
	Label     string    `json:"label,omitempty"`
	Region    string    `json:"region,omitempty"`
	UUID      string    `json:"uuid,omitempty"`
	Key       string    `json:"key,omitempty"`
}

type FunctionsNamespaceCreateRequest

type FunctionsNamespaceCreateRequest struct {
	Label  string `json:"label"`
	Region string `json:"region"`
}

type FunctionsServiceOp

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

func (*FunctionsServiceOp) CreateNamespace

Creates a namespace

func (*FunctionsServiceOp) CreateTrigger

CreateTrigger creates a trigger

func (*FunctionsServiceOp) DeleteNamespace

func (s *FunctionsServiceOp) DeleteNamespace(ctx context.Context, namespace string) (*Response, error)

Delete a namespace

func (*FunctionsServiceOp) DeleteTrigger

func (s *FunctionsServiceOp) DeleteTrigger(ctx context.Context, namespace string, trigger string) (*Response, error)

DeleteTrigger deletes a trigger

func (*FunctionsServiceOp) GetNamespace

func (s *FunctionsServiceOp) GetNamespace(ctx context.Context, namespace string) (*FunctionsNamespace, *Response, error)

Gets a single namespace

func (*FunctionsServiceOp) GetTrigger

func (s *FunctionsServiceOp) GetTrigger(ctx context.Context, namespace string, trigger string) (*FunctionsTrigger, *Response, error)

GetTrigger gets a single trigger

func (*FunctionsServiceOp) ListNamespaces

func (s *FunctionsServiceOp) ListNamespaces(ctx context.Context) ([]FunctionsNamespace, *Response, error)

Gets a list of namespaces

func (*FunctionsServiceOp) ListTriggers

func (s *FunctionsServiceOp) ListTriggers(ctx context.Context, namespace string) ([]FunctionsTrigger, *Response, error)

ListTriggers gets a list of triggers

func (*FunctionsServiceOp) UpdateTrigger

func (s *FunctionsServiceOp) UpdateTrigger(ctx context.Context, namespace string, trigger string, opts *FunctionsTriggerUpdateRequest) (*FunctionsTrigger, *Response, error)

UpdateTrigger updates a trigger

type FunctionsTrigger

type FunctionsTrigger struct {
	Namespace        string                   `json:"namespace,omitempty"`
	Function         string                   `json:"function,omitempty"`
	Type             string                   `json:"type,omitempty"`
	Name             string                   `json:"name,omitempty"`
	IsEnabled        bool                     `json:"is_enabled"`
	CreatedAt        time.Time                `json:"created_at,omitempty"`
	UpdatedAt        time.Time                `json:"updated_at,omitempty"`
	ScheduledDetails *TriggerScheduledDetails `json:"scheduled_details,omitempty"`
	ScheduledRuns    *TriggerScheduledRuns    `json:"scheduled_runs,omitempty"`
}

type FunctionsTriggerCreateRequest

type FunctionsTriggerCreateRequest struct {
	Name             string                   `json:"name"`
	Type             string                   `json:"type"`
	Function         string                   `json:"function"`
	IsEnabled        bool                     `json:"is_enabled"`
	ScheduledDetails *TriggerScheduledDetails `json:"scheduled_details,omitempty"`
}

type FunctionsTriggerUpdateRequest

type FunctionsTriggerUpdateRequest struct {
	IsEnabled        *bool                    `json:"is_enabled,omitempty"`
	ScheduledDetails *TriggerScheduledDetails `json:"scheduled_details,omitempty"`
}

type GLBSettings

type GLBSettings struct {
	// TargetProtocol is the outgoing traffic protocol.
	TargetProtocol string `json:"target_protocol"`
	// EntryPort is the outgoing traffic port.
	TargetPort uint32 `json:"target_port"`
	// CDNSettings is the CDN configurations
	CDN *CDNSettings `json:"cdn"`
	// RegionPriorities embeds regional priority information for regional active-passive failover policy
	RegionPriorities map[string]uint32 `json:"region_priorities,omitempty"`
	// FailoverThreshold embeds failover threshold percentage for regional active-passive failover policy
	FailoverThreshold uint32 `json:"failover_threshold,omitempty"`
}

GLBSettings define settings for configuring a Global LB

func (GLBSettings) String

func (s GLBSettings) String() string

String creates a human-readable description of a GLBSettings

type GPUInfo

type GPUInfo struct {
	Count int    `json:"count,omitempty"`
	VRAM  *VRAM  `json:"vram,omitempty"`
	Model string `json:"model,omitempty"`
}

GPUInfo provides information about the GPU available to Vms created with this size.

type GarbageCollection

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

type GarbageCollectionType string

type GetAppDatabaseConnectionDetailsResponse

type GetAppDatabaseConnectionDetailsResponse struct {
	ConnectionDetails []*GetDatabaseConnectionDetailsResponse `json:"connection_details,omitempty"`
}

GetAppDatabaseConnectionDetailsResponse struct for GetAppDatabaseConnectionDetailsResponse

func (*GetAppDatabaseConnectionDetailsResponse) GetConnectionDetails

GetConnectionDetails returns the ConnectionDetails field.

type GetDatabaseConnectionDetailsResponse

type GetDatabaseConnectionDetailsResponse struct {
	Host          string                                      `json:"host,omitempty"`
	Port          int64                                       `json:"port,omitempty"`
	Username      string                                      `json:"username,omitempty"`
	Password      string                                      `json:"password,omitempty"`
	DatabaseName  string                                      `json:"database_name,omitempty"`
	SslMode       string                                      `json:"ssl_mode,omitempty"`
	DatabaseURL   string                                      `json:"database_url,omitempty"`
	ComponentName string                                      `json:"component_name,omitempty"`
	Pools         []*GetDatabaseConnectionDetailsResponsePool `json:"pools,omitempty"`
}

GetDatabaseConnectionDetailsResponse struct for GetDatabaseConnectionDetailsResponse

func (*GetDatabaseConnectionDetailsResponse) GetComponentName

func (g *GetDatabaseConnectionDetailsResponse) GetComponentName() string

GetComponentName returns the ComponentName field.

func (*GetDatabaseConnectionDetailsResponse) GetDatabaseName

func (g *GetDatabaseConnectionDetailsResponse) GetDatabaseName() string

GetDatabaseName returns the DatabaseName field.

func (*GetDatabaseConnectionDetailsResponse) GetDatabaseURL

func (g *GetDatabaseConnectionDetailsResponse) GetDatabaseURL() string

GetDatabaseURL returns the DatabaseURL field.

func (*GetDatabaseConnectionDetailsResponse) GetHost

GetHost returns the Host field.

func (*GetDatabaseConnectionDetailsResponse) GetPassword

GetPassword returns the Password field.

func (*GetDatabaseConnectionDetailsResponse) GetPools

GetPools returns the Pools field.

func (*GetDatabaseConnectionDetailsResponse) GetPort

GetPort returns the Port field.

func (*GetDatabaseConnectionDetailsResponse) GetSslMode

GetSslMode returns the SslMode field.

func (*GetDatabaseConnectionDetailsResponse) GetUsername

GetUsername returns the Username field.

type GetDatabaseConnectionDetailsResponsePool

type GetDatabaseConnectionDetailsResponsePool struct {
	PoolName     string `json:"pool_name,omitempty"`
	Host         string `json:"host,omitempty"`
	Port         int64  `json:"port,omitempty"`
	Username     string `json:"username,omitempty"`
	Password     string `json:"password,omitempty"`
	DatabaseName string `json:"database_name,omitempty"`
	SslMode      string `json:"ssl_mode,omitempty"`
	DatabaseURL  string `json:"database_url,omitempty"`
}

GetDatabaseConnectionDetailsResponsePool struct for GetDatabaseConnectionDetailsResponsePool

func (*GetDatabaseConnectionDetailsResponsePool) GetDatabaseName

func (g *GetDatabaseConnectionDetailsResponsePool) GetDatabaseName() string

GetDatabaseName returns the DatabaseName field.

func (*GetDatabaseConnectionDetailsResponsePool) GetDatabaseURL

GetDatabaseURL returns the DatabaseURL field.

func (*GetDatabaseConnectionDetailsResponsePool) GetHost

GetHost returns the Host field.

func (*GetDatabaseConnectionDetailsResponsePool) GetPassword

GetPassword returns the Password field.

func (*GetDatabaseConnectionDetailsResponsePool) GetPoolName

GetPoolName returns the PoolName field.

func (*GetDatabaseConnectionDetailsResponsePool) GetPort

GetPort returns the Port field.

func (*GetDatabaseConnectionDetailsResponsePool) GetSslMode

GetSslMode returns the SslMode field.

func (*GetDatabaseConnectionDetailsResponsePool) GetUsername

GetUsername returns the Username field.

type GetDatabaseTrustedSourceResponse

type GetDatabaseTrustedSourceResponse struct {
	IsEnabled bool `json:"is_enabled,omitempty"`
}

GetDatabaseTrustedSourceResponse struct for GetDatabaseTrustedSourceResponse

func (*GetDatabaseTrustedSourceResponse) GetIsEnabled

func (g *GetDatabaseTrustedSourceResponse) GetIsEnabled() bool

GetIsEnabled returns the IsEnabled field.

type GitHubSourceSpec

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

GitHubSourceSpec struct for GitHubSourceSpec

func (*GitHubSourceSpec) GetBranch

func (g *GitHubSourceSpec) GetBranch() string

GetBranch returns the Branch field.

func (*GitHubSourceSpec) GetDeployOnPush

func (g *GitHubSourceSpec) GetDeployOnPush() bool

GetDeployOnPush returns the DeployOnPush field.

func (*GitHubSourceSpec) GetRepo

func (g *GitHubSourceSpec) GetRepo() string

GetRepo returns the Repo field.

func (*GitHubSourceSpec) GetType

func (s *GitHubSourceSpec) GetType() AppSourceType

GetType returns the GitHub source type.

type GitLabSourceSpec

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

GitLabSourceSpec struct for GitLabSourceSpec

func (*GitLabSourceSpec) GetBranch

func (g *GitLabSourceSpec) GetBranch() string

GetBranch returns the Branch field.

func (*GitLabSourceSpec) GetDeployOnPush

func (g *GitLabSourceSpec) GetDeployOnPush() bool

GetDeployOnPush returns the DeployOnPush field.

func (*GitLabSourceSpec) GetRepo

func (g *GitLabSourceSpec) GetRepo() string

GetRepo returns the Repo field.

func (*GitLabSourceSpec) GetType

func (s *GitLabSourceSpec) GetType() AppSourceType

GetType returns the GitLab source type.

type GitSourceSpec

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

GitSourceSpec struct for GitSourceSpec

func (*GitSourceSpec) GetBranch

func (g *GitSourceSpec) GetBranch() string

GetBranch returns the Branch field.

func (*GitSourceSpec) GetRepo

func (s *GitSourceSpec) GetRepo() string

GetRepo allows GitSourceSpec to implement the SourceSpec interface.

func (*GitSourceSpec) GetRepoCloneURL

func (g *GitSourceSpec) GetRepoCloneURL() string

GetRepoCloneURL returns the RepoCloneURL field.

func (*GitSourceSpec) GetType

func (s *GitSourceSpec) GetType() AppSourceType

GetType returns the Git source type.

type HealthCheck

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"`
	ProxyProtocol          *bool  `json:"proxy_protocol,omitempty"`
}

HealthCheck represents optional load balancer health check rules.

func (HealthCheck) String

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 Abrha Image

func (Image) String

func (i Image) String() string

type ImageActionsService

type ImageActionsService interface {
	Get(context.Context, int, int) (*Action, *Response, error)
	GetByURI(context.Context, string) (*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 Abrha API See: https://docs.parspack.com/api/#tag/Image-Actions

type ImageActionsServiceOp

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

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

func (*ImageActionsServiceOp) Convert

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

Convert an image to a snapshot

func (*ImageActionsServiceOp) Get

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

Get an action for a particular image by id.

func (*ImageActionsServiceOp) GetByURI

func (i *ImageActionsServiceOp) GetByURI(ctx context.Context, rawurl string) (*Action, *Response, error)

GetByURI gets an action for a particular image by URI.

func (*ImageActionsServiceOp) Transfer

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

Transfer an image

type ImageSourceSpec

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 and no digest is provided. Cannot be specified if digest is provided.
	Tag string `json:"tag,omitempty"`
	// The image digest. Cannot be specified if tag is provided.
	Digest string `json:"digest,omitempty"`
	// The credentials to be able to pull the image. The value will be encrypted on first submission. On following submissions, the encrypted value should be used. - \"$username:$access_token\" for registries of type `DOCKER_HUB`. - \"$username:$access_token\" for registries of type `GHCR`.
	RegistryCredentials string                       `json:"registry_credentials,omitempty"`
	DeployOnPush        *ImageSourceSpecDeployOnPush `json:"deploy_on_push,omitempty"`
}

ImageSourceSpec struct for ImageSourceSpec

func (*ImageSourceSpec) GetDeployOnPush

func (i *ImageSourceSpec) GetDeployOnPush() *ImageSourceSpecDeployOnPush

GetDeployOnPush returns the DeployOnPush field.

func (*ImageSourceSpec) GetDigest

func (i *ImageSourceSpec) GetDigest() string

GetDigest returns the Digest field.

func (*ImageSourceSpec) GetRegistry

func (i *ImageSourceSpec) GetRegistry() string

GetRegistry returns the Registry field.

func (*ImageSourceSpec) GetRegistryCredentials

func (i *ImageSourceSpec) GetRegistryCredentials() string

GetRegistryCredentials returns the RegistryCredentials field.

func (*ImageSourceSpec) GetRegistryType

func (i *ImageSourceSpec) GetRegistryType() ImageSourceSpecRegistryType

GetRegistryType returns the RegistryType field.

func (*ImageSourceSpec) GetRepository

func (i *ImageSourceSpec) GetRepository() string

GetRepository returns the Repository field.

func (*ImageSourceSpec) GetTag

func (i *ImageSourceSpec) GetTag() string

GetTag returns the Tag field.

func (*ImageSourceSpec) GetType

func (s *ImageSourceSpec) GetType() AppSourceType

GetType returns the Image source type.

type ImageSourceSpecDeployOnPush

type ImageSourceSpecDeployOnPush struct {
	// Automatically deploy new images. Only for DOCR images. Can't be enabled when a specific digest is specified.
	Enabled bool `json:"enabled,omitempty"`
}

ImageSourceSpecDeployOnPush struct for ImageSourceSpecDeployOnPush

func (*ImageSourceSpecDeployOnPush) GetEnabled

func (i *ImageSourceSpecDeployOnPush) GetEnabled() bool

GetEnabled returns the Enabled field.

type ImageSourceSpecRegistryType

type ImageSourceSpecRegistryType string

ImageSourceSpecRegistryType - DOCR: The Abrha container registry type. - DOCKER_HUB: The DockerHub container registry type. - GHCR: The GitHub container registry type.

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

List of ImageSourceSpecRegistryType

type ImageUpdateRequest

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 Abrha API See: https://docs.parspack.com/api/#tag/Images

type ImagesServiceOp

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

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

func (*ImagesServiceOp) Create

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

Create a new image

func (*ImagesServiceOp) Delete

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

Delete an image.

func (*ImagesServiceOp) GetByID

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

GetByID retrieves an image by id.

func (*ImagesServiceOp) GetBySlug

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

GetBySlug retrieves an image by slug.

func (*ImagesServiceOp) List

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

List lists all the images available.

func (*ImagesServiceOp) ListApplication

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

ListApplication lists all the application images.

func (*ImagesServiceOp) ListByTag

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

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

ListDistribution lists all the distribution images.

func (*ImagesServiceOp) ListUser

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

ListUser lists all the user images.

func (*ImagesServiceOp) Update

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

Update an image name.

type InboundRule

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

InboundRule represents a Abrha Firewall inbound rule.

type IndexReplication

type IndexReplication struct {
	LeaderIndex   string `json:"leader_index,omitempty"`
	LeaderProject string `json:"leader_project,omitempty"`
	LeaderService string `json:"leader_service,omitempty"`
}

type InstallKubernetesAppsRequest

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

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

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

type Invoice

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

Invoice represents a Abrha Invoice

func (Invoice) String

func (i Invoice) String() string

type InvoiceItem

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 Abrha Invoice

type InvoiceList

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 Abrha.

type InvoiceListItem

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

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 Abrha

type InvoiceSummaryBreakdown

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

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

InvoicesService is an interface for interfacing with the Invoice endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Billing

type InvoicesServiceOp

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

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

func (*InvoicesServiceOp) Get

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

Get detailed invoice items for an Invoice

func (*InvoicesServiceOp) GetCSV

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

GetCSV returns the csv for an Invoice

func (*InvoicesServiceOp) GetPDF

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

GetPDF returns the pdf for an Invoice

func (*InvoicesServiceOp) GetSummary

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

List invoices for a customer

type KafkaACL

type KafkaACL struct {
	ID         string `json:"id,omitempty"`
	Permission string `json:"permission,omitempty"`
	Topic      string `json:"topic,omitempty"`
}

KafkaACL contains Kafka specific user access control information

type KafkaConfig

type KafkaConfig struct {
	GroupInitialRebalanceDelayMs       *int     `json:"group_initial_rebalance_delay_ms,omitempty"`
	GroupMinSessionTimeoutMs           *int     `json:"group_min_session_timeout_ms,omitempty"`
	GroupMaxSessionTimeoutMs           *int     `json:"group_max_session_timeout_ms,omitempty"`
	MessageMaxBytes                    *int     `json:"message_max_bytes,omitempty"`
	LogCleanerDeleteRetentionMs        *int64   `json:"log_cleaner_delete_retention_ms,omitempty"`
	LogCleanerMinCompactionLagMs       *uint64  `json:"log_cleaner_min_compaction_lag_ms,omitempty"`
	LogFlushIntervalMs                 *uint64  `json:"log_flush_interval_ms,omitempty"`
	LogIndexIntervalBytes              *int     `json:"log_index_interval_bytes,omitempty"`
	LogMessageDownconversionEnable     *bool    `json:"log_message_downconversion_enable,omitempty"`
	LogMessageTimestampDifferenceMaxMs *uint64  `json:"log_message_timestamp_difference_max_ms,omitempty"`
	LogPreallocate                     *bool    `json:"log_preallocate,omitempty"`
	LogRetentionBytes                  *big.Int `json:"log_retention_bytes,omitempty"`
	LogRetentionHours                  *int     `json:"log_retention_hours,omitempty"`
	LogRetentionMs                     *big.Int `json:"log_retention_ms,omitempty"`
	LogRollJitterMs                    *uint64  `json:"log_roll_jitter_ms,omitempty"`
	LogSegmentDeleteDelayMs            *int     `json:"log_segment_delete_delay_ms,omitempty"`
	AutoCreateTopicsEnable             *bool    `json:"auto_create_topics_enable,omitempty"`
}

KafkaConfig holds advanced configurations for Kafka database clusters.

type Kernel

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 Abrha 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 SSH key.

type KeyUpdateRequest

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

KeyUpdateRequest represents a request to update an SSH key stored in a Abrha account.

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 SSH keys endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/SSH-Keys

type KeysServiceOp

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

KeysServiceOp handles communication with SSH key related method of the Abrha API.

func (*KeysServiceOp) Create

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

Create an SSH key using a KeyCreateRequest

func (*KeysServiceOp) DeleteByFingerprint

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

DeleteByFingerprint deletes an SSH key by its fingerprint

func (*KeysServiceOp) DeleteByID

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

DeleteByID deletes an SSH key by its id

func (*KeysServiceOp) GetByFingerprint

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

GetByFingerprint gets an SSH key by its fingerprint

func (*KeysServiceOp) GetByID

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

GetByID gets an SSH key by its ID

func (*KeysServiceOp) List

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

List all SSH keys

func (*KeysServiceOp) UpdateByFingerprint

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

UpdateByFingerprint updates an SSH key name by fingerprint.

func (*KeysServiceOp) UpdateByID

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

UpdateByID updates an SSH key name by ID.

type KubernetesAssociatedResources

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

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"`
	ControlPlaneFirewall *KubernetesControlPlaneFirewall `json:"control_plane_firewall,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

func (kc KubernetesCluster) URN() string

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

type KubernetesClusterConfig

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

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"`
	ClusterSubnet string   `json:"cluster_subnet,omitempty"`
	ServiceSubnet string   `json:"service_subnet,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"`
	ControlPlaneFirewall *KubernetesControlPlaneFirewall `json:"control_plane_firewall,omitempty"`
}

KubernetesClusterCreateRequest represents a request to create a Kubernetes cluster.

type KubernetesClusterCredentials

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

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

KubernetesClusterCredentialsGetRequest is a request to get cluster credentials.

type KubernetesClusterDeleteSelectiveRequest

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

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

KubernetesClusterRegistryRequest represents clusters to integrate with docr registry

type KubernetesClusterStatus

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

KubernetesClusterStatus describes the status of a cluster.

type KubernetesClusterStatusState

type KubernetesClusterStatusState string

KubernetesClusterStatusState represents states for a cluster.

func (*KubernetesClusterStatusState) UnmarshalText

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

UnmarshalText unmarshals the state.

type KubernetesClusterUpdateRequest

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"`
	ControlPlaneFirewall *KubernetesControlPlaneFirewall `json:"control_plane_firewall,omitempty"`

	// Convert cluster to run highly available control plane
	HA *bool `json:"ha,omitempty"`
}

KubernetesClusterUpdateRequest represents a request to update a Kubernetes cluster.

type KubernetesClusterUpgradeRequest

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

KubernetesClusterUpgradeRequest represents a request to upgrade a Kubernetes cluster.

type KubernetesClusterUser

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

KubernetesClusterUser represents a Kubernetes cluster user.

type KubernetesControlPlaneFirewall

type KubernetesControlPlaneFirewall struct {
	Enabled          *bool    `json:"enabled"`
	AllowedAddresses []string `json:"allowed_addresses"`
}

KubernetesControlPlaneFirewall represents Kubernetes cluster control plane firewall.

type KubernetesGetClusterlintRequest

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

type KubernetesMaintenancePolicy

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

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

func KubernetesMaintenanceToDay(day string) (KubernetesMaintenancePolicyDay, error)

KubernetesMaintenanceToDay returns the appropriate KubernetesMaintenancePolicyDay for the given string.

func (KubernetesMaintenancePolicyDay) MarshalJSON

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

MarshalJSON returns the JSON string for KubernetesMaintenancePolicyDay

func (KubernetesMaintenancePolicyDay) String

func (*KubernetesMaintenancePolicyDay) UnmarshalJSON

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

UnmarshalJSON parses the JSON string into KubernetesMaintenancePolicyDay

type KubernetesNode

type KubernetesNode struct {
	ID     string                `json:"id,omitempty"`
	Name   string                `json:"name,omitempty"`
	Status *KubernetesNodeStatus `json:"status,omitempty"`
	VmID   string                `json:"vm_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

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

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

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

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

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

type KubernetesNodePoolUpdateRequest

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

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

KubernetesNodeSize is a node sizes supported for Kubernetes clusters.

type KubernetesNodeStatus

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

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

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

KubernetesRegion is a region usable by Kubernetes clusters.

type KubernetesRunClusterlintRequest

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

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 goApiAbrha 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 Abrha API. See: https://docs.parspack.com/api/#tag/Kubernetes

type KubernetesServiceOp

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

KubernetesServiceOp handles communication with Kubernetes methods of the Abrha API.

func (*KubernetesServiceOp) AddRegistry

AddRegistry integrates docr registry with all the specified clusters

func (*KubernetesServiceOp) Create

Create creates a Kubernetes cluster.

func (*KubernetesServiceOp) CreateNodePool

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

func (*KubernetesServiceOp) Delete

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

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

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

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

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

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

Get retrieves the details of a Kubernetes cluster.

func (*KubernetesServiceOp) GetClusterlintResults

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

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

func (*KubernetesServiceOp) GetKubeConfig

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

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

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

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

func (*KubernetesServiceOp) GetUpgrades

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

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

GetUser retrieves the details of a Kubernetes cluster user.

func (*KubernetesServiceOp) List

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

func (*KubernetesServiceOp) ListAssociatedResourcesForDeletion

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

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

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 goApiAbrha 2.0.

func (*KubernetesServiceOp) RemoveRegistry

RemoveRegistry removes docr registry support for all the specified clusters

func (*KubernetesServiceOp) RunClusterlint

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

Update updates a Kubernetes cluster's properties.

func (*KubernetesServiceOp) UpdateNodePool

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

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

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

KubernetesVersion is a Abrha Kubernetes release.

type LBDomain

type LBDomain struct {
	// Name defines the domain fqdn
	Name string `json:"name"`
	// IsManaged indicates if the domain is DO-managed
	IsManaged bool `json:"is_managed"`
	// CertificateID indicates ID of a TLS certificate
	CertificateID string `json:"certificate_id,omitempty"`
	// Status indicates the domain validation status
	Status string `json:"status,omitempty"`
	// VerificationErrorReasons indicates any domain verification errors
	VerificationErrorReasons []string `json:"verification_error_reasons,omitempty"`
	// SSLValidationErrorReasons indicates any domain SSL validation errors
	SSLValidationErrorReasons []string `json:"ssl_validation_error_reasons,omitempty"`
}

LBDomain defines domain names required to ingress traffic to a Global LB

func (LBDomain) String

func (d LBDomain) String() string

String creates a human-readable description of a LBDomain

type LBFirewall

type LBFirewall struct {
	Allow []string `json:"allow,omitempty"`
	Deny  []string `json:"deny,omitempty"`
}

LBFirewall holds the allow and deny rules for a loadbalancer's firewall. Currently, allow and deny rules support cidrs and ips. Please use the helper methods (IPSourceFirewall/CIDRSourceFirewall) to format the allow/deny rules.

func (LBFirewall) String

func (f LBFirewall) String() string

String creates a human-readable description of an LBFirewall instance.

type LinkAction

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

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

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

CurrentPage is current page of the list

func (*Links) IsLastPage

func (l *Links) IsLastPage() bool

IsLastPage returns true if the current page is the last

func (*Links) NextPageToken

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

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

func (*Links) PrevPageToken

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

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

type ListBuildpacksResponse

type ListBuildpacksResponse struct {
	// List of the available buildpacks on App Platform.
	Buildpacks []*Buildpack `json:"buildpacks,omitempty"`
}

ListBuildpacksResponse struct for ListBuildpacksResponse

func (*ListBuildpacksResponse) GetBuildpacks

func (l *ListBuildpacksResponse) GetBuildpacks() []*Buildpack

GetBuildpacks returns the Buildpacks field.

type ListDatabaseEvents

type ListDatabaseEvents struct {
	Events []DatabaseEvent `json:"events"`
}

ListDatabaseEvents contains a list of project events.

type ListDatabaseEventsRoot

type ListDatabaseEventsRoot struct {
	Events []DatabaseEvent `json:"events"`
}

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"`

	// Whether App responses should include project_id fields. The field will be empty if false or if omitted. (ListApps)
	WithProjects bool `url:"with_projects,omitempty"`
}

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

type ListVolumeParams

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

type LoadBalancer struct {
	ID   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
	IP   string `json:"ip,omitempty"`
	IPv6 string `json:"ipv6,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"`
	Type                         string           `json:"type,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"`
	VmIDs                        []string         `json:"vm_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"`
	ProjectID                    string           `json:"project_id,omitempty"`
	HTTPIdleTimeoutSeconds       *uint64          `json:"http_idle_timeout_seconds,omitempty"`
	Firewall                     *LBFirewall      `json:"firewall,omitempty"`
	Domains                      []*LBDomain      `json:"domains,omitempty"`
	GLBSettings                  *GLBSettings     `json:"glb_settings,omitempty"`
	TargetLoadBalancerIDs        []string         `json:"target_load_balancer_ids,omitempty"`
	Network                      string           `json:"network,omitempty"`
}

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

func (LoadBalancer) AsRequest

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

func (l LoadBalancer) String() string

String creates a human-readable description of a LoadBalancer.

func (LoadBalancer) URN

func (l LoadBalancer) URN() string

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

type LoadBalancerMetricsRequest

type LoadBalancerMetricsRequest struct {
	LoadBalancerID string
	Start          time.Time
	End            time.Time
}

LoadBalancerMetricsRequest holds the information needed to retrieve Load Balancer various metrics.

type LoadBalancerRequest

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"`
	Type                         string           `json:"type,omitempty"`
	ForwardingRules              []ForwardingRule `json:"forwarding_rules,omitempty"`
	HealthCheck                  *HealthCheck     `json:"health_check,omitempty"`
	StickySessions               *StickySessions  `json:"sticky_sessions,omitempty"`
	VmIDs                        []string         `json:"vm_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"`
	ProjectID                    string           `json:"project_id,omitempty"`
	HTTPIdleTimeoutSeconds       *uint64          `json:"http_idle_timeout_seconds,omitempty"`
	Firewall                     *LBFirewall      `json:"firewall,omitempty"`
	Domains                      []*LBDomain      `json:"domains,omitempty"`
	GLBSettings                  *GLBSettings     `json:"glb_settings,omitempty"`
	TargetLoadBalancerIDs        []string         `json:"target_load_balancer_ids,omitempty"`
	Network                      string           `json:"network,omitempty"`
}

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

func (LoadBalancerRequest) String

func (l LoadBalancerRequest) String() string

String creates a human-readable description of a LoadBalancerRequest.

type LoadBalancersService

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)
	AddVms(ctx context.Context, lbID string, vmIDs ...string) (*Response, error)
	RemoveVms(ctx context.Context, lbID string, vmIDs ...string) (*Response, error)
	AddForwardingRules(ctx context.Context, lbID string, rules ...ForwardingRule) (*Response, error)
	RemoveForwardingRules(ctx context.Context, lbID string, rules ...ForwardingRule) (*Response, error)
	PurgeCache(ctx context.Context, lbID string) (*Response, error)
}

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

type LoadBalancersServiceOp

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

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

func (*LoadBalancersServiceOp) AddForwardingRules

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

AddForwardingRules adds forwarding rules to a load balancer.

func (*LoadBalancersServiceOp) AddVms

func (l *LoadBalancersServiceOp) AddVms(ctx context.Context, lbID string, vmIDs ...string) (*Response, error)

AddVms adds vms to a load balancer.

func (*LoadBalancersServiceOp) Create

Create a new load balancer with a given configuration.

func (*LoadBalancersServiceOp) Delete

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

Delete a load balancer by its identifier.

func (*LoadBalancersServiceOp) Get

Get an existing load balancer by its identifier.

func (*LoadBalancersServiceOp) List

List load balancers, with optional pagination.

func (*LoadBalancersServiceOp) PurgeCache

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

PurgeCache purges the CDN cache of a global load balancer by its identifier.

func (*LoadBalancersServiceOp) RemoveForwardingRules

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

RemoveForwardingRules removes forwarding rules from a load balancer.

func (*LoadBalancersServiceOp) RemoveVms

func (l *LoadBalancersServiceOp) RemoveVms(ctx context.Context, lbID string, vmIDs ...string) (*Response, error)

RemoveVms removes vms from a load balancer.

func (*LoadBalancersServiceOp) Update

Update an existing load balancer with new configuration.

type Meta

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

Meta describes generic information about a response.

type MetricsData

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

MetricsData holds the data portion of a Metrics response.

type MetricsResponse

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

MetricsResponse holds a Metrics query response.

type MongoDBConfig

type MongoDBConfig struct {
	DefaultReadConcern              *string `json:"default_read_concern,omitempty"`
	DefaultWriteConcern             *string `json:"default_write_concern,omitempty"`
	TransactionLifetimeLimitSeconds *int    `json:"transaction_lifetime_limit_seconds,omitempty"`
	SlowOpThresholdMs               *int    `json:"slow_op_threshold_ms,omitempty"`
	Verbosity                       *int    `json:"verbosity,omitempty"`
}

MongoDBConfig holds advanced configurations for MongoDB database clusters.

type MonitoringService

type MonitoringService interface {
	ListAlertPolicies(context.Context, *ListOptions) ([]AlertPolicy, *Response, error)
	GetAlertPolicy(context.Context, string) (*AlertPolicy, *Response, error)
	CreateAlertPolicy(context.Context, *AlertPolicyCreateRequest) (*AlertPolicy, *Response, error)
	UpdateAlertPolicy(context.Context, string, *AlertPolicyUpdateRequest) (*AlertPolicy, *Response, error)
	DeleteAlertPolicy(context.Context, string) (*Response, error)

	GetVmBandwidth(context.Context, *VmBandwidthMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmAvailableMemory(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmCPU(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmFilesystemFree(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmFilesystemSize(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmLoad1(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmLoad5(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmLoad15(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmCachedMemory(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmFreeMemory(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)
	GetVmTotalMemory(context.Context, *VmMetricsRequest) (*MetricsResponse, *Response, error)

	GetLoadBalancerFrontendHttpRequestsPerSecond(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendConnectionsCurrent(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendConnectionsLimit(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendCpuUtilization(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendNetworkThroughputHttp(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendNetworkThroughputUdp(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendNetworkThroughputTcp(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendNlbTcpNetworkThroughput(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendNlbUdpNetworkThroughput(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendFirewallDroppedBytes(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendFirewallDroppedPackets(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendHttpResponses(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendTlsConnectionsCurrent(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendTlsConnectionsLimit(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerFrontendTlsConnectionsExceedingRateLimit(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpSessionDurationAvg(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpSessionDuration50P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpSessionDuration95P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpResponseTimeAvg(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpResponseTime50P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpResponseTime95P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpResponseTime99P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsQueueSize(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHttpResponses(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsConnections(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsHealthChecks(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
	GetLoadBalancerVmsDowntime(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)
}

MonitoringService is an interface for interfacing with the monitoring endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Monitoring

type MonitoringServiceOp

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

MonitoringServiceOp handles communication with monitoring related methods of the Abrha API.

func (*MonitoringServiceOp) CreateAlertPolicy

func (s *MonitoringServiceOp) CreateAlertPolicy(ctx context.Context, createRequest *AlertPolicyCreateRequest) (*AlertPolicy, *Response, error)

CreateAlertPolicy creates a new alert policy

func (*MonitoringServiceOp) DeleteAlertPolicy

func (s *MonitoringServiceOp) DeleteAlertPolicy(ctx context.Context, uuid string) (*Response, error)

DeleteAlertPolicy deletes an existing alert policy

func (*MonitoringServiceOp) GetAlertPolicy

func (s *MonitoringServiceOp) GetAlertPolicy(ctx context.Context, uuid string) (*AlertPolicy, *Response, error)

GetAlertPolicy gets a single alert policy

func (*MonitoringServiceOp) GetLoadBalancerFrontendConnectionsCurrent

func (s *MonitoringServiceOp) GetLoadBalancerFrontendConnectionsCurrent(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendConnectionsCurrent retrieves frontend total current active connections for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendConnectionsLimit

func (s *MonitoringServiceOp) GetLoadBalancerFrontendConnectionsLimit(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendConnectionsLimit retrieves frontend max connections limit for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendCpuUtilization

func (s *MonitoringServiceOp) GetLoadBalancerFrontendCpuUtilization(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendCpuUtilization retrieves frontend average percentage cpu utilization for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendFirewallDroppedBytes

func (s *MonitoringServiceOp) GetLoadBalancerFrontendFirewallDroppedBytes(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendFirewallDroppedBytes retrieves firewall dropped bytes for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendFirewallDroppedPackets

func (s *MonitoringServiceOp) GetLoadBalancerFrontendFirewallDroppedPackets(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendFirewallDroppedPackets retrieves firewall dropped packets for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendHttpRequestsPerSecond

func (s *MonitoringServiceOp) GetLoadBalancerFrontendHttpRequestsPerSecond(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendHttpRequestsPerSecond retrieves frontend HTTP requests per second for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendHttpResponses

func (s *MonitoringServiceOp) GetLoadBalancerFrontendHttpResponses(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendHttpResponses retrieves frontend HTTP rate of response code for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendNetworkThroughputHttp

func (s *MonitoringServiceOp) GetLoadBalancerFrontendNetworkThroughputHttp(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendNetworkThroughputHttp retrieves frontend HTTP throughput for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendNetworkThroughputTcp

func (s *MonitoringServiceOp) GetLoadBalancerFrontendNetworkThroughputTcp(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendNetworkThroughputTcp retrieves frontend TCP throughput for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendNetworkThroughputUdp

func (s *MonitoringServiceOp) GetLoadBalancerFrontendNetworkThroughputUdp(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendNetworkThroughputUdp retrieves frontend UDP throughput for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendNlbTcpNetworkThroughput

func (s *MonitoringServiceOp) GetLoadBalancerFrontendNlbTcpNetworkThroughput(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendNlbTcpNetworkThroughput retrieves frontend TCP throughput for a given network load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendNlbUdpNetworkThroughput

func (s *MonitoringServiceOp) GetLoadBalancerFrontendNlbUdpNetworkThroughput(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendNlbUdpNetworkThroughput retrieves frontend UDP throughput for a given network load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendTlsConnectionsCurrent

func (s *MonitoringServiceOp) GetLoadBalancerFrontendTlsConnectionsCurrent(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendTlsConnectionsCurrent retrieves frontend current TLS connections rate for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendTlsConnectionsExceedingRateLimit

func (s *MonitoringServiceOp) GetLoadBalancerFrontendTlsConnectionsExceedingRateLimit(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendTlsConnectionsExceedingRateLimit retrieves frontend closed TLS connections for exceeded rate limit for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerFrontendTlsConnectionsLimit

func (s *MonitoringServiceOp) GetLoadBalancerFrontendTlsConnectionsLimit(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerFrontendTlsConnectionsLimit retrieves frontend max TLS connections limit for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsConnections

func (s *MonitoringServiceOp) GetLoadBalancerVmsConnections(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsConnections retrieves vm active connections for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsDowntime

func (s *MonitoringServiceOp) GetLoadBalancerVmsDowntime(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsDowntime retrieves vm downtime status for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHealthChecks

func (s *MonitoringServiceOp) GetLoadBalancerVmsHealthChecks(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHealthChecks retrieves vm health check status for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTime50P

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTime50P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpResponseTime50P retrieves vm 50th percentile HTTP response time for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTime95P

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTime95P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpResponseTime95P retrieves vm 95th percentile HTTP response time for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTime99P

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTime99P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpResponseTime99P retrieves vm 99th percentile HTTP response time for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTimeAvg

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpResponseTimeAvg(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpResponseTimeAvg retrieves vm average HTTP response time for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpResponses

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpResponses(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpResponses retrieves vm HTTP rate of response code for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpSessionDuration50P

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpSessionDuration50P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpSessionDuration50P retrieves vm 50th percentile HTTP session duration for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpSessionDuration95P

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpSessionDuration95P(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpSessionDuration95P retrieves vm 95th percentile HTTP session duration for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsHttpSessionDurationAvg

func (s *MonitoringServiceOp) GetLoadBalancerVmsHttpSessionDurationAvg(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsHttpSessionDurationAvg retrieves vm average HTTP session duration for a given load balancer.

func (*MonitoringServiceOp) GetLoadBalancerVmsQueueSize

func (s *MonitoringServiceOp) GetLoadBalancerVmsQueueSize(ctx context.Context, args *LoadBalancerMetricsRequest) (*MetricsResponse, *Response, error)

GetLoadBalancerVmsQueueSize retrieves vm queue size for a given load balancer.

func (*MonitoringServiceOp) GetVmAvailableMemory

func (s *MonitoringServiceOp) GetVmAvailableMemory(ctx context.Context, args *VmMetricsRequest) (*MetricsResponse, *Response, error)

GetVmAvailableMemory retrieves Vm available memory metrics.

func (*MonitoringServiceOp) GetVmBandwidth

GetVmBandwidth retrieves Vm bandwidth metrics.

func (*MonitoringServiceOp) GetVmCPU

GetVmCPU retrieves Vm CPU metrics.

func (*MonitoringServiceOp) GetVmCachedMemory

func (s *MonitoringServiceOp) GetVmCachedMemory(ctx context.Context, args *VmMetricsRequest) (*MetricsResponse, *Response, error)

GetVmCachedMemory retrieves Vm cached memory metrics.

func (*MonitoringServiceOp) GetVmFilesystemFree

func (s *MonitoringServiceOp) GetVmFilesystemFree(ctx context.Context, args *VmMetricsRequest) (*MetricsResponse, *Response, error)

GetVmFilesystemFree retrieves Vm filesystem free metrics.

func (*MonitoringServiceOp) GetVmFilesystemSize

func (s *MonitoringServiceOp) GetVmFilesystemSize(ctx context.Context, args *VmMetricsRequest) (*MetricsResponse, *Response, error)

GetVmFilesystemSize retrieves Vm filesystem size metrics.

func (*MonitoringServiceOp) GetVmFreeMemory

func (s *MonitoringServiceOp) GetVmFreeMemory(ctx context.Context, args *VmMetricsRequest) (*MetricsResponse, *Response, error)

GetVmFreeMemory retrieves Vm free memory metrics.

func (*MonitoringServiceOp) GetVmLoad1

GetVmLoad1 retrieves Vm load 1 metrics.

func (*MonitoringServiceOp) GetVmLoad15

GetVmLoad15 retrieves Vm load 15 metrics.

func (*MonitoringServiceOp) GetVmLoad5

GetVmLoad5 retrieves Vm load 5 metrics.

func (*MonitoringServiceOp) GetVmTotalMemory

func (s *MonitoringServiceOp) GetVmTotalMemory(ctx context.Context, args *VmMetricsRequest) (*MetricsResponse, *Response, error)

GetVmTotalMemory retrieves Vm total memory metrics.

func (*MonitoringServiceOp) ListAlertPolicies

func (s *MonitoringServiceOp) ListAlertPolicies(ctx context.Context, opt *ListOptions) ([]AlertPolicy, *Response, error)

ListAlertPolicies all alert policies

func (*MonitoringServiceOp) UpdateAlertPolicy

func (s *MonitoringServiceOp) UpdateAlertPolicy(ctx context.Context, uuid string, updateRequest *AlertPolicyUpdateRequest) (*AlertPolicy, *Response, error)

UpdateAlertPolicy updates an existing alert policy

type MySQLConfig

type MySQLConfig struct {
	ConnectTimeout               *int     `json:"connect_timeout,omitempty"`
	DefaultTimeZone              *string  `json:"default_time_zone,omitempty"`
	InnodbLogBufferSize          *int     `json:"innodb_log_buffer_size,omitempty"`
	InnodbOnlineAlterLogMaxSize  *int     `json:"innodb_online_alter_log_max_size,omitempty"`
	InnodbLockWaitTimeout        *int     `json:"innodb_lock_wait_timeout,omitempty"`
	InteractiveTimeout           *int     `json:"interactive_timeout,omitempty"`
	MaxAllowedPacket             *int     `json:"max_allowed_packet,omitempty"`
	NetReadTimeout               *int     `json:"net_read_timeout,omitempty"`
	SortBufferSize               *int     `json:"sort_buffer_size,omitempty"`
	SQLMode                      *string  `json:"sql_mode,omitempty"`
	SQLRequirePrimaryKey         *bool    `json:"sql_require_primary_key,omitempty"`
	WaitTimeout                  *int     `json:"wait_timeout,omitempty"`
	NetWriteTimeout              *int     `json:"net_write_timeout,omitempty"`
	GroupConcatMaxLen            *int     `json:"group_concat_max_len,omitempty"`
	InformationSchemaStatsExpiry *int     `json:"information_schema_stats_expiry,omitempty"`
	InnodbFtMinTokenSize         *int     `json:"innodb_ft_min_token_size,omitempty"`
	InnodbFtServerStopwordTable  *string  `json:"innodb_ft_server_stopword_table,omitempty"`
	InnodbPrintAllDeadlocks      *bool    `json:"innodb_print_all_deadlocks,omitempty"`
	InnodbRollbackOnTimeout      *bool    `json:"innodb_rollback_on_timeout,omitempty"`
	InternalTmpMemStorageEngine  *string  `json:"internal_tmp_mem_storage_engine,omitempty"`
	MaxHeapTableSize             *int     `json:"max_heap_table_size,omitempty"`
	TmpTableSize                 *int     `json:"tmp_table_size,omitempty"`
	SlowQueryLog                 *bool    `json:"slow_query_log,omitempty"`
	LongQueryTime                *float32 `json:"long_query_time,omitempty"`
	BackupHour                   *int     `json:"backup_hour,omitempty"`
	BackupMinute                 *int     `json:"backup_minute,omitempty"`
	BinlogRetentionPeriod        *int     `json:"binlog_retention_period,omitempty"`
	InnodbChangeBufferMaxSize    *int     `json:"innodb_change_buffer_max_size,omitempty"`
	InnodbFlushNeighbors         *int     `json:"innodb_flush_neighbors,omitempty"`
	InnodbReadIoThreads          *int     `json:"innodb_read_io_threads,omitempty"`
	InnodbThreadConcurrency      *int     `json:"innodb_thread_concurrency,omitempty"`
	InnodbWriteIoThreads         *int     `json:"innodb_write_io_threads,omitempty"`
	NetBufferLength              *int     `json:"net_buffer_length,omitempty"`
	LogOutput                    *string  `json:"log_output,omitempty"`
}

MySQLConfig holds advanced configurations for MySQL database clusters.

type NetworkV4

type NetworkV4 struct {
	IPAddress string `json:"ip_address,omitempty"`
	Netmask   string `json:"netmask,omitempty"`
	Gateway   string `json:"gateway,omitempty"`
	Type      string `json:"type,omitempty"`
}

NetworkV4 represents a Abrha IPv4 Network.

func (NetworkV4) String

func (n NetworkV4) String() string

type NetworkV6

type NetworkV6 struct {
	IPAddress string `json:"ip_address,omitempty"`
	Netmask   int    `json:"netmask,omitempty"`
	Gateway   string `json:"gateway,omitempty"`
	Type      string `json:"type,omitempty"`
}

NetworkV6 represents a Abrha IPv6 network.

func (NetworkV6) String

func (n NetworkV6) String() string

type Networks

type Networks struct {
	V4 []NetworkV4 `json:"v4,omitempty"`
	V6 []NetworkV6 `json:"v6,omitempty"`
}

Networks represents the Vm's Networks.

type Notifications

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

Notifications represents a Abrha Notifications configuration.

type OneClick

type OneClick struct {
	Slug string `json:"slug"`
	Type string `json:"type"`
}

OneClick is the structure of a 1-click

type OneClickService

type OneClickService interface {
	List(context.Context, string) ([]*OneClick, *Response, error)
	InstallKubernetes(context.Context, *InstallKubernetesAppsRequest) (*InstallKubernetesAppsResponse, *Response, error)
}

OneClickService is an interface for interacting with 1-clicks with the Abrha API. See: https://docs.parspack.com/api/#tag/1-Click-Applications

type OneClickServiceOp

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

OneClickServiceOp interfaces with 1-click endpoints in the Abrha API.

func (*OneClickServiceOp) InstallKubernetes

InstallKubernetes installs an addon on a kubernetes cluster

func (*OneClickServiceOp) List

func (ocs *OneClickServiceOp) List(ctx context.Context, oneClickType string) ([]*OneClick, *Response, error)

List returns a list of the available 1-click applications.

type OneClicksRoot

type OneClicksRoot struct {
	List []*OneClick `json:"1_clicks"`
}

OneClicksRoot is the root of the json payload that contains a list of 1-clicks

type OpenSearchACL

type OpenSearchACL struct {
	Permission string `json:"permission,omitempty"`
	Index      string `json:"index,omitempty"`
}

OpenSearchACL contains OpenSearch specific user access control information

type OpenSearchBasicAuth

type OpenSearchBasicAuth struct {
	// Username to authenticate with. Only required when `endpoint` is set. Defaults to `doadmin` when `cluster_name` is set.
	User string `json:"user,omitempty"`
	// Password for user defined in User. Is required when `endpoint` is set. Cannot be set if using a Abrha DBaaS OpenSearch cluster.
	Password string `json:"password,omitempty"`
}

OpenSearchBasicAuth Configure Username and/or Password for Basic authentication.

func (*OpenSearchBasicAuth) GetPassword

func (o *OpenSearchBasicAuth) GetPassword() string

GetPassword returns the Password field.

func (*OpenSearchBasicAuth) GetUser

func (o *OpenSearchBasicAuth) GetUser() string

GetUser returns the User field.

type OpensearchConfig

type OpensearchConfig struct {
	HttpMaxContentLengthBytes                        *int     `json:"http_max_content_length_bytes,omitempty"`
	HttpMaxHeaderSizeBytes                           *int     `json:"http_max_header_size_bytes,omitempty"`
	HttpMaxInitialLineLengthBytes                    *int     `json:"http_max_initial_line_length_bytes,omitempty"`
	IndicesQueryBoolMaxClauseCount                   *int     `json:"indices_query_bool_max_clause_count,omitempty"`
	IndicesFielddataCacheSizePercentage              *int     `json:"indices_fielddata_cache_size_percentage,omitempty"`
	IndicesMemoryIndexBufferSizePercentage           *int     `json:"indices_memory_index_buffer_size_percentage,omitempty"`
	IndicesMemoryMinIndexBufferSizeMb                *int     `json:"indices_memory_min_index_buffer_size_mb,omitempty"`
	IndicesMemoryMaxIndexBufferSizeMb                *int     `json:"indices_memory_max_index_buffer_size_mb,omitempty"`
	IndicesQueriesCacheSizePercentage                *int     `json:"indices_queries_cache_size_percentage,omitempty"`
	IndicesRecoveryMaxMbPerSec                       *int     `json:"indices_recovery_max_mb_per_sec,omitempty"`
	IndicesRecoveryMaxConcurrentFileChunks           *int     `json:"indices_recovery_max_concurrent_file_chunks,omitempty"`
	ThreadPoolSearchSize                             *int     `json:"thread_pool_search_size,omitempty"`
	ThreadPoolSearchThrottledSize                    *int     `json:"thread_pool_search_throttled_size,omitempty"`
	ThreadPoolGetSize                                *int     `json:"thread_pool_get_size,omitempty"`
	ThreadPoolAnalyzeSize                            *int     `json:"thread_pool_analyze_size,omitempty"`
	ThreadPoolWriteSize                              *int     `json:"thread_pool_write_size,omitempty"`
	ThreadPoolForceMergeSize                         *int     `json:"thread_pool_force_merge_size,omitempty"`
	ThreadPoolSearchQueueSize                        *int     `json:"thread_pool_search_queue_size,omitempty"`
	ThreadPoolSearchThrottledQueueSize               *int     `json:"thread_pool_search_throttled_queue_size,omitempty"`
	ThreadPoolGetQueueSize                           *int     `json:"thread_pool_get_queue_size,omitempty"`
	ThreadPoolAnalyzeQueueSize                       *int     `json:"thread_pool_analyze_queue_size,omitempty"`
	ThreadPoolWriteQueueSize                         *int     `json:"thread_pool_write_queue_size,omitempty"`
	IsmEnabled                                       *bool    `json:"ism_enabled,omitempty"`
	IsmHistoryEnabled                                *bool    `json:"ism_history_enabled,omitempty"`
	IsmHistoryMaxAgeHours                            *int     `json:"ism_history_max_age_hours,omitempty"`
	IsmHistoryMaxDocs                                *int64   `json:"ism_history_max_docs,omitempty"`
	IsmHistoryRolloverCheckPeriodHours               *int     `json:"ism_history_rollover_check_period_hours,omitempty"`
	IsmHistoryRolloverRetentionPeriodDays            *int     `json:"ism_history_rollover_retention_period_days,omitempty"`
	SearchMaxBuckets                                 *int     `json:"search_max_buckets,omitempty"`
	ActionAutoCreateIndexEnabled                     *bool    `json:"action_auto_create_index_enabled,omitempty"`
	EnableSecurityAudit                              *bool    `json:"enable_security_audit,omitempty"`
	ActionDestructiveRequiresName                    *bool    `json:"action_destructive_requires_name,omitempty"`
	ClusterMaxShardsPerNode                          *int     `json:"cluster_max_shards_per_node,omitempty"`
	OverrideMainResponseVersion                      *bool    `json:"override_main_response_version,omitempty"`
	ScriptMaxCompilationsRate                        *string  `json:"script_max_compilations_rate,omitempty"`
	ClusterRoutingAllocationNodeConcurrentRecoveries *int     `json:"cluster_routing_allocation_node_concurrent_recoveries,omitempty"`
	ReindexRemoteWhitelist                           []string `json:"reindex_remote_whitelist,omitempty"`
	PluginsAlertingFilterByBackendRolesEnabled       *bool    `json:"plugins_alerting_filter_by_backend_roles_enabled,omitempty"`
}

OpensearchConfig holds advanced configurations for Opensearch database clusters.

type OutboundRule

type OutboundRule struct {
	Protocol     string        `json:"protocol,omitempty"`
	PortRange    string        `json:"ports,omitempty"`
	Destinations *Destinations `json:"destinations"`
}

OutboundRule represents a Abrha Firewall outbound rule.

type Pages

type Pages struct {
	First string `json:"first,omitempty"`
	Prev  string `json:"prev,omitempty"`
	Last  string `json:"last,omitempty"`
	Next  string `json:"next,omitempty"`
}

Pages are pages specified in Links

type PendingChange

type PendingChange struct {
	VmID     string `json:"vm_id,omitempty"`
	Removing bool   `json:"removing,omitempty"`
	Status   string `json:"status,omitempty"`
}

PendingChange represents a Abrha Firewall status details.

type PostgreSQLBouncerConfig

type PostgreSQLBouncerConfig struct {
	ServerResetQueryAlways  *bool     `json:"server_reset_query_always,omitempty"`
	IgnoreStartupParameters *[]string `json:"ignore_startup_parameters,omitempty"`
	MinPoolSize             *int      `json:"min_pool_size,omitempty"`
	ServerLifetime          *int      `json:"server_lifetime,omitempty"`
	ServerIdleTimeout       *int      `json:"server_idle_timeout,omitempty"`
	AutodbPoolSize          *int      `json:"autodb_pool_size,omitempty"`
	AutodbPoolMode          *string   `json:"autodb_pool_mode,omitempty"`
	AutodbMaxDbConnections  *int      `json:"autodb_max_db_connections,omitempty"`
	AutodbIdleTimeout       *int      `json:"autodb_idle_timeout,omitempty"`
}

PostgreSQLBouncerConfig configuration

type PostgreSQLConfig

type PostgreSQLConfig struct {
	AutovacuumFreezeMaxAge          *int                         `json:"autovacuum_freeze_max_age,omitempty"`
	AutovacuumMaxWorkers            *int                         `json:"autovacuum_max_workers,omitempty"`
	AutovacuumNaptime               *int                         `json:"autovacuum_naptime,omitempty"`
	AutovacuumVacuumThreshold       *int                         `json:"autovacuum_vacuum_threshold,omitempty"`
	AutovacuumAnalyzeThreshold      *int                         `json:"autovacuum_analyze_threshold,omitempty"`
	AutovacuumVacuumScaleFactor     *float32                     `json:"autovacuum_vacuum_scale_factor,omitempty"`
	AutovacuumAnalyzeScaleFactor    *float32                     `json:"autovacuum_analyze_scale_factor,omitempty"`
	AutovacuumVacuumCostDelay       *int                         `json:"autovacuum_vacuum_cost_delay,omitempty"`
	AutovacuumVacuumCostLimit       *int                         `json:"autovacuum_vacuum_cost_limit,omitempty"`
	BGWriterDelay                   *int                         `json:"bgwriter_delay,omitempty"`
	BGWriterFlushAfter              *int                         `json:"bgwriter_flush_after,omitempty"`
	BGWriterLRUMaxpages             *int                         `json:"bgwriter_lru_maxpages,omitempty"`
	BGWriterLRUMultiplier           *float32                     `json:"bgwriter_lru_multiplier,omitempty"`
	DeadlockTimeoutMillis           *int                         `json:"deadlock_timeout,omitempty"`
	DefaultToastCompression         *string                      `json:"default_toast_compression,omitempty"`
	IdleInTransactionSessionTimeout *int                         `json:"idle_in_transaction_session_timeout,omitempty"`
	JIT                             *bool                        `json:"jit,omitempty"`
	LogAutovacuumMinDuration        *int                         `json:"log_autovacuum_min_duration,omitempty"`
	LogErrorVerbosity               *string                      `json:"log_error_verbosity,omitempty"`
	LogLinePrefix                   *string                      `json:"log_line_prefix,omitempty"`
	LogMinDurationStatement         *int                         `json:"log_min_duration_statement,omitempty"`
	MaxFilesPerProcess              *int                         `json:"max_files_per_process,omitempty"`
	MaxPreparedTransactions         *int                         `json:"max_prepared_transactions,omitempty"`
	MaxPredLocksPerTransaction      *int                         `json:"max_pred_locks_per_transaction,omitempty"`
	MaxLocksPerTransaction          *int                         `json:"max_locks_per_transaction,omitempty"`
	MaxStackDepth                   *int                         `json:"max_stack_depth,omitempty"`
	MaxStandbyArchiveDelay          *int                         `json:"max_standby_archive_delay,omitempty"`
	MaxStandbyStreamingDelay        *int                         `json:"max_standby_streaming_delay,omitempty"`
	MaxReplicationSlots             *int                         `json:"max_replication_slots,omitempty"`
	MaxLogicalReplicationWorkers    *int                         `json:"max_logical_replication_workers,omitempty"`
	MaxParallelWorkers              *int                         `json:"max_parallel_workers,omitempty"`
	MaxParallelWorkersPerGather     *int                         `json:"max_parallel_workers_per_gather,omitempty"`
	MaxWorkerProcesses              *int                         `json:"max_worker_processes,omitempty"`
	PGPartmanBGWRole                *string                      `json:"pg_partman_bgw.role,omitempty"`
	PGPartmanBGWInterval            *int                         `json:"pg_partman_bgw.interval,omitempty"`
	PGStatStatementsTrack           *string                      `json:"pg_stat_statements.track,omitempty"`
	TempFileLimit                   *int                         `json:"temp_file_limit,omitempty"`
	Timezone                        *string                      `json:"timezone,omitempty"`
	TrackActivityQuerySize          *int                         `json:"track_activity_query_size,omitempty"`
	TrackCommitTimestamp            *string                      `json:"track_commit_timestamp,omitempty"`
	TrackFunctions                  *string                      `json:"track_functions,omitempty"`
	TrackIOTiming                   *string                      `json:"track_io_timing,omitempty"`
	MaxWalSenders                   *int                         `json:"max_wal_senders,omitempty"`
	WalSenderTimeout                *int                         `json:"wal_sender_timeout,omitempty"`
	WalWriterDelay                  *int                         `json:"wal_writer_delay,omitempty"`
	SharedBuffersPercentage         *float32                     `json:"shared_buffers_percentage,omitempty"`
	PgBouncer                       *PostgreSQLBouncerConfig     `json:"pgbouncer,omitempty"`
	BackupHour                      *int                         `json:"backup_hour,omitempty"`
	BackupMinute                    *int                         `json:"backup_minute,omitempty"`
	WorkMem                         *int                         `json:"work_mem,omitempty"`
	TimeScaleDB                     *PostgreSQLTimeScaleDBConfig `json:"timescaledb,omitempty"`
	SynchronousReplication          *string                      `json:"synchronous_replication,omitempty"`
	StatMonitorEnable               *bool                        `json:"stat_monitor_enable,omitempty"`
	MaxFailoverReplicationTimeLag   *int64                       `json:"max_failover_replication_time_lag,omitempty"`
}

PostgreSQLConfig holds advanced configurations for PostgreSQL database clusters.

type PostgreSQLTimeScaleDBConfig

type PostgreSQLTimeScaleDBConfig struct {
	MaxBackgroundWorkers *int `json:"max_background_workers,omitempty"`
}

PostgreSQLTimeScaleDBConfig configuration

type Project

type Project struct {
	ID          string `json:"id"`
	OwnerUUID   string `json:"owner_uuid"`
	OwnerID     uint64 `json:"owner_id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Purpose     string `json:"purpose"`
	Environment string `json:"environment"`
	IsDefault   bool   `json:"is_default"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
}

Project represents a Abrha Project configuration.

func (Project) String

func (p Project) String() string

String creates a human-readable description of a Project.

type ProjectResource

type ProjectResource struct {
	URN        string                `json:"urn"`
	AssignedAt string                `json:"assigned_at"`
	Links      *ProjectResourceLinks `json:"links"`
	Status     string                `json:"status,omitempty"`
}

ProjectResource is the projects API's representation of a resource.

type ProjectResourceLinks struct {
	Self string `json:"self"`
}

ProjectResourceLinks specify the link for more information about the resource.

type ProjectsService

ProjectsService is an interface for creating and managing Projects with the Abrha API. See: https://docs.parspack.com/api/#tag/Projects

type ProjectsServiceOp

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

ProjectsServiceOp handles communication with Projects methods of the Abrha API.

func (*ProjectsServiceOp) AssignResources

func (p *ProjectsServiceOp) AssignResources(ctx context.Context, projectID string, resources ...interface{}) ([]ProjectResource, *Response, error)

AssignResources assigns one or more resources to a project. AssignResources accepts resources in two possible formats:

  1. The resource type, like `&Vm{ID: 1}` or `&FloatingIP{IP: "1.2.3.4"}`
  2. A valid DO URN as a string, like "do:vm:1234"

There is no unassign. To move a resource to another project, just assign it to that other project.

func (*ProjectsServiceOp) Create

Create a new project.

func (*ProjectsServiceOp) Delete

func (p *ProjectsServiceOp) Delete(ctx context.Context, projectID string) (*Response, error)

Delete an existing project. You cannot have any resources in a project before deleting it. See the API documentation for more details.

func (*ProjectsServiceOp) Get

func (p *ProjectsServiceOp) Get(ctx context.Context, projectID string) (*Project, *Response, error)

Get retrieves a single project by its ID.

func (*ProjectsServiceOp) GetDefault

func (p *ProjectsServiceOp) GetDefault(ctx context.Context) (*Project, *Response, error)

GetDefault project.

func (*ProjectsServiceOp) List

func (p *ProjectsServiceOp) List(ctx context.Context, opts *ListOptions) ([]Project, *Response, error)

List Projects.

func (*ProjectsServiceOp) ListResources

func (p *ProjectsServiceOp) ListResources(ctx context.Context, projectID string, opts *ListOptions) ([]ProjectResource, *Response, error)

ListResources lists all resources in a project.

func (*ProjectsServiceOp) Update

func (p *ProjectsServiceOp) Update(ctx context.Context, projectID string, ur *UpdateProjectRequest) (*Project, *Response, error)

Update an existing project.

type Rate

type Rate struct {
	// The number of request per hour the client is currently limited to.
	Limit int `json:"limit"`

	// The number of remaining requests the client can make this hour.
	Remaining int `json:"remaining"`

	// The time at which the current rate limit will reset.
	Reset Timestamp `json:"reset"`
}

Rate contains the rate limit for the current client.

func (Rate) String

func (r Rate) String() string

type RedisConfig

type RedisConfig struct {
	RedisMaxmemoryPolicy               *string `json:"redis_maxmemory_policy,omitempty"`
	RedisPubsubClientOutputBufferLimit *int    `json:"redis_pubsub_client_output_buffer_limit,omitempty"`
	RedisNumberOfDatabases             *int    `json:"redis_number_of_databases,omitempty"`
	RedisIOThreads                     *int    `json:"redis_io_threads,omitempty"`
	RedisLFULogFactor                  *int    `json:"redis_lfu_log_factor,omitempty"`
	RedisLFUDecayTime                  *int    `json:"redis_lfu_decay_time,omitempty"`
	RedisSSL                           *bool   `json:"redis_ssl,omitempty"`
	RedisTimeout                       *int    `json:"redis_timeout,omitempty"`
	RedisNotifyKeyspaceEvents          *string `json:"redis_notify_keyspace_events,omitempty"`
	RedisPersistence                   *string `json:"redis_persistence,omitempty"`
	RedisACLChannelsDefault            *string `json:"redis_acl_channels_default,omitempty"`
}

RedisConfig holds advanced configurations for Redis database clusters.

type Region

type Region struct {
	Slug      string   `json:"slug,omitempty"`
	Name      string   `json:"name,omitempty"`
	Sizes     []string `json:"sizes,omitempty"`
	Available bool     `json:"available,omitempty"`
	Features  []string `json:"features,omitempty"`
}

Region represents a Abrha Region

func (Region) String

func (r Region) String() string

type RegionsService

type RegionsService interface {
	List(context.Context, *ListOptions) ([]Region, *Response, error)
}

RegionsService is an interface for interfacing with the regions endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Regions

type RegionsServiceOp

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

RegionsServiceOp handles communication with the region related methods of the Abrha API.

func (*RegionsServiceOp) List

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

List all regions

type RegistriesCreateRequest

type RegistriesCreateRequest struct {
	Name   string `json:"name,omitempty"`
	Region string `json:"region,omitempty"`
}

RegistriesCreateRequest represents a request to create a secondary registry.

type RegistriesService

RegistriesService is an interface for interfacing with the new multiple-registry beta endpoints of the Abrha API.

We are creating a separate Service in alignment with the new /v2/registries endpoints.

type RegistriesServiceOp

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

RegistriesServiceOp handles communication with the multiple-registry beta methods.

func (*RegistriesServiceOp) Create

Create creates a named Registry.

func (*RegistriesServiceOp) Delete

func (svc *RegistriesServiceOp) Delete(ctx context.Context, registry string) (*Response, error)

Delete deletes a named Registry. There is no way to recover a Registry once it has been destroyed.

func (*RegistriesServiceOp) DockerCredentials

func (svc *RegistriesServiceOp) DockerCredentials(ctx context.Context, registry string, request *RegistryDockerCredentialsRequest) (*DockerCredentials, *Response, error)

DockerCredentials retrieves a Docker config file containing named Registry's credentials.

func (*RegistriesServiceOp) Get

func (svc *RegistriesServiceOp) Get(ctx context.Context, registry string) (*Registry, *Response, error)

Get returns the details of a named Registry.

func (*RegistriesServiceOp) List

func (svc *RegistriesServiceOp) List(ctx context.Context) ([]*Registry, *Response, error)

List returns a list of the named Registries.

type Registry

type Registry struct {
	Name                       string    `json:"name,omitempty"`
	StorageUsageBytes          uint64    `json:"storage_usage_bytes,omitempty"`
	StorageUsageBytesUpdatedAt time.Time `json:"storage_usage_bytes_updated_at,omitempty"`
	CreatedAt                  time.Time `json:"created_at,omitempty"`
	Region                     string    `json:"region,omitempty"`
}

Registry represents a registry.

type RegistryCreateRequest

type RegistryCreateRequest struct {
	Name                 string `json:"name,omitempty"`
	SubscriptionTierSlug string `json:"subscription_tier_slug,omitempty"`
	Region               string `json:"region,omitempty"`
}

RegistryCreateRequest represents a request to create a registry.

type RegistryDockerCredentialsRequest

type RegistryDockerCredentialsRequest struct {
	ReadWrite     bool `json:"read_write"`
	ExpirySeconds *int `json:"expiry_seconds,omitempty"`
}

RegistryDockerCredentialsRequest represents a request to retrieve docker credentials for a registry.

type RegistryOptions

type RegistryOptions struct {
	SubscriptionTiers []*RegistrySubscriptionTier `json:"subscription_tiers,omitempty"`
	AvailableRegions  []string                    `json:"available_regions"`
}

RegistryOptions are options for users when creating or updating a registry.

type RegistryService

type RegistryService interface {
	Create(context.Context, *RegistryCreateRequest) (*Registry, *Response, error)
	Get(context.Context) (*Registry, *Response, error)
	Delete(context.Context) (*Response, error)
	DockerCredentials(context.Context, *RegistryDockerCredentialsRequest) (*DockerCredentials, *Response, error)
	ListRepositories(context.Context, string, *ListOptions) ([]*Repository, *Response, error)
	ListRepositoriesV2(context.Context, string, *TokenListOptions) ([]*RepositoryV2, *Response, error)
	ListRepositoryTags(context.Context, string, string, *ListOptions) ([]*RepositoryTag, *Response, error)
	DeleteTag(context.Context, string, string, string) (*Response, error)
	ListRepositoryManifests(context.Context, string, string, *ListOptions) ([]*RepositoryManifest, *Response, error)
	DeleteManifest(context.Context, string, string, string) (*Response, error)
	StartGarbageCollection(context.Context, string, ...*StartGarbageCollectionRequest) (*GarbageCollection, *Response, error)
	GetGarbageCollection(context.Context, string) (*GarbageCollection, *Response, error)
	ListGarbageCollections(context.Context, string, *ListOptions) ([]*GarbageCollection, *Response, error)
	UpdateGarbageCollection(context.Context, string, string, *UpdateGarbageCollectionRequest) (*GarbageCollection, *Response, error)
	GetOptions(context.Context) (*RegistryOptions, *Response, error)
	GetSubscription(context.Context) (*RegistrySubscription, *Response, error)
	UpdateSubscription(context.Context, *RegistrySubscriptionUpdateRequest) (*RegistrySubscription, *Response, error)
	ValidateName(context.Context, *RegistryValidateNameRequest) (*Response, error)
}

RegistryService is an interface for interfacing with the Registry endpoints of the Abrha API. See: https://docs.parspack.com/api/#tag/Container-Registry

type RegistryServiceOp

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

RegistryServiceOp handles communication with Registry methods of the Abrha API.

func (*RegistryServiceOp) Create

Create creates a registry.

func (*RegistryServiceOp) Delete

func (svc *RegistryServiceOp) Delete(ctx context.Context) (*Response, error)

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

func (*RegistryServiceOp) DeleteManifest

func (svc *RegistryServiceOp) DeleteManifest(ctx context.Context, registry, repository, digest string) (*Response, error)

DeleteManifest deletes a manifest by its digest within a given repository.

func (*RegistryServiceOp) DeleteTag

func (svc *RegistryServiceOp) DeleteTag(ctx context.Context, registry, repository, tag string) (*Response, error)

DeleteTag deletes a tag within a given repository.

func (*RegistryServiceOp) DockerCredentials

DockerCredentials retrieves a Docker config file containing the registry's credentials.

func (*RegistryServiceOp) Get

Get retrieves the details of a Registry.

func (*RegistryServiceOp) GetGarbageCollection

func (svc *RegistryServiceOp) GetGarbageCollection(ctx context.Context, registry string) (*GarbageCollection, *Response, error)

GetGarbageCollection retrieves the currently-active garbage collection for the specified registry; if there are no active garbage collections, then return a 404/NotFound error. There can only be one active garbage collection on a registry.

func (*RegistryServiceOp) GetOptions

func (svc *RegistryServiceOp) GetOptions(ctx context.Context) (*RegistryOptions, *Response, error)

GetOptions returns options the user can use when creating or updating a registry.

func (*RegistryServiceOp) GetSubscription

func (svc *RegistryServiceOp) GetSubscription(ctx context.Context) (*RegistrySubscription, *Response, error)

GetSubscription retrieves the user's subscription.

func (*RegistryServiceOp) ListGarbageCollections

func (svc *RegistryServiceOp) ListGarbageCollections(ctx context.Context, registry string, opts *ListOptions) ([]*GarbageCollection, *Response, error)

ListGarbageCollections retrieves all garbage collections (active and inactive) for the specified registry.

func (*RegistryServiceOp) ListRepositories

func (svc *RegistryServiceOp) ListRepositories(ctx context.Context, registry string, opts *ListOptions) ([]*Repository, *Response, error)

ListRepositories returns a list of the Repositories visible with the registry's credentials.

func (*RegistryServiceOp) ListRepositoriesV2

func (svc *RegistryServiceOp) ListRepositoriesV2(ctx context.Context, registry string, opts *TokenListOptions) ([]*RepositoryV2, *Response, error)

ListRepositoriesV2 returns a list of the Repositories in a registry.

func (*RegistryServiceOp) ListRepositoryManifests

func (svc *RegistryServiceOp) ListRepositoryManifests(ctx context.Context, registry, repository string, opts *ListOptions) ([]*RepositoryManifest, *Response, error)

ListRepositoryManifests returns a list of the RepositoryManifests available within the given repository.

func (*RegistryServiceOp) ListRepositoryTags

func (svc *RegistryServiceOp) ListRepositoryTags(ctx context.Context, registry, repository string, opts *ListOptions) ([]*RepositoryTag, *Response, error)

ListRepositoryTags returns a list of the RepositoryTags available within the given repository.

func (*RegistryServiceOp) StartGarbageCollection

func (svc *RegistryServiceOp) StartGarbageCollection(ctx context.Context, registry string, request ...*StartGarbageCollectionRequest) (*GarbageCollection, *Response, error)

StartGarbageCollection requests a garbage collection for the specified registry.

func (*RegistryServiceOp) UpdateGarbageCollection

func (svc *RegistryServiceOp) UpdateGarbageCollection(ctx context.Context, registry, gcUUID string, request *UpdateGarbageCollectionRequest) (*GarbageCollection, *Response, error)

UpdateGarbageCollection updates the specified garbage collection for the specified registry. While only the currently-active garbage collection can be updated we still require the exact garbage collection to be specified to avoid race conditions that might may arise from issuing an update to the implicit "currently-active" garbage collection. Returns the updated garbage collection.

func (*RegistryServiceOp) UpdateSubscription

UpdateSubscription updates the user's registry subscription.

func (*RegistryServiceOp) ValidateName

func (svc *RegistryServiceOp) ValidateName(ctx context.Context, request *RegistryValidateNameRequest) (*Response, error)

ValidateName validates that a container registry name is available for use.

type RegistrySubscription

type RegistrySubscription struct {
	Tier      *RegistrySubscriptionTier `json:"tier"`
	CreatedAt time.Time                 `json:"created_at"`
	UpdatedAt time.Time                 `json:"updated_at"`
}

RegistrySubscription is a user's subscription.

type RegistrySubscriptionTier

type RegistrySubscriptionTier struct {
	Name                   string `json:"name"`
	Slug                   string `json:"slug"`
	IncludedRepositories   uint64 `json:"included_repositories"`
	IncludedStorageBytes   uint64 `json:"included_storage_bytes"`
	AllowStorageOverage    bool   `json:"allow_storage_overage"`
	IncludedBandwidthBytes uint64 `json:"included_bandwidth_bytes"`
	MonthlyPriceInCents    uint64 `json:"monthly_price_in_cents"`
	Eligible               bool   `json:"eligible,omitempty"`
	// EligibilityReasons is included when Eligible is false, and indicates the
	// reasons why this tier is not available to the user.
	EligibilityReasons []string `json:"eligibility_reasons,omitempty"`
}

RegistrySubscriptionTier is a subscription tier for container registry.

type RegistrySubscriptionUpdateRequest

type RegistrySubscriptionUpdateRequest struct {
	TierSlug string `json:"tier_slug"`
}

RegistrySubscriptionUpdateRequest represents a request to update the subscription plan for a registry.

type RegistryValidateNameRequest

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

RegistryValidateNameRequest represents a request to validate that a container registry name is available for use.

type Repository

type Repository struct {
	RegistryName string         `json:"registry_name,omitempty"`
	Name         string         `json:"name,omitempty"`
	LatestTag    *RepositoryTag `json:"latest_tag,omitempty"`
	TagCount     uint64         `json:"tag_count,omitempty"`
}

Repository represents a repository

type RepositoryManifest

type RepositoryManifest struct {
	RegistryName        string    `json:"registry_name,omitempty"`
	Repository          string    `json:"repository,omitempty"`
	Digest              string    `json:"digest,omitempty"`
	CompressedSizeBytes uint64    `json:"compressed_size_bytes,omitempty"`
	SizeBytes           uint64    `json:"size_bytes,omitempty"`
	UpdatedAt           time.Time `json:"updated_at,omitempty"`
	Tags                []string  `json:"tags,omitempty"`
	Blobs               []*Blob   `json:"blobs,omitempty"`
}

RepositoryManifest represents a repository manifest

type RepositoryTag

type RepositoryTag struct {
	RegistryName        string    `json:"registry_name,omitempty"`
	Repository          string    `json:"repository,omitempty"`
	Tag                 string    `json:"tag,omitempty"`
	ManifestDigest      string    `json:"manifest_digest,omitempty"`
	CompressedSizeBytes uint64    `json:"compressed_size_bytes,omitempty"`
	SizeBytes           uint64    `json:"size_bytes,omitempty"`
	UpdatedAt           time.Time `json:"updated_at,omitempty"`
}

RepositoryTag represents a repository tag

type RepositoryV2

type RepositoryV2 struct {
	RegistryName   string              `json:"registry_name,omitempty"`
	Name           string              `json:"name,omitempty"`
	TagCount       uint64              `json:"tag_count,omitempty"`
	ManifestCount  uint64              `json:"manifest_count,omitempty"`
	LatestManifest *RepositoryManifest `json:"latest_manifest,omitempty"`
}

RepositoryV2 represents a repository in the V2 format

type RequestCompletionCallback

type RequestCompletionCallback func(*http.Request, *http.Response)

RequestCompletionCallback defines the type of the request callback function

type ReservedIP

type ReservedIP struct {
	Region    *Region `json:"region"`
	Vm        *Vm     `json:"vm"`
	IP        string  `json:"ip"`
	ProjectID string  `json:"project_id"`
	Locked    bool    `json:"locked"`
}

ReservedIP represents a Pars Pack reserved IP.

func (ReservedIP) String

func (f ReservedIP) String() string

func (ReservedIP) URN

func (f ReservedIP) URN() string

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

type ReservedIPActionsService

type ReservedIPActionsService interface {
	Assign(ctx context.Context, ip string, vmID string) (*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)
}

ReservedIPActionsService is an interface for interfacing with the reserved IPs actions endpoints of the Pars Pack API. See: https://docs.parspack.com/api/#tag/Reserved-IP-Actions

type ReservedIPActionsServiceOp

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

ReservedIPActionsServiceOp handles communication with the reserved IPs action related methods of the Abrha API.

func (*ReservedIPActionsServiceOp) Assign

Assign a reserved IP to a vm.

func (*ReservedIPActionsServiceOp) Get

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

Get an action for a particular reserved IP by id.

func (*ReservedIPActionsServiceOp) List

List the actions for a particular reserved IP.

func (*ReservedIPActionsServiceOp) Unassign

Unassign a rerserved IP from the vm it is currently assigned to.

type ReservedIPCreateRequest

type ReservedIPCreateRequest struct {
	Region    string `json:"region,omitempty"`
	VmID      string `json:"vm_id,omitempty"`
	ProjectID string `json:"project_id,omitempty"`
}

ReservedIPCreateRequest represents a request to create a reserved IP. Specify VmID to assign the reserved IP to a Vm or Region to reserve it to the region.

type ReservedIPV6

type ReservedIPV6 struct {
	RegionSlug string    `json:"region_slug"`
	IP         string    `json:"ip"`
	ReservedAt time.Time `json:"reserved_at"`
	Vm         *Vm       `json:"vm,omitempty"`
}

ReservedIPV6 represents a Pars Pack reserved IP.

func (ReservedIPV6) String

func (f ReservedIPV6) String() string

func (ReservedIPV6) URN

func (f ReservedIPV6) URN() string

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

type ReservedIPV6ActionsService

type ReservedIPV6ActionsService interface {
	Assign(ctx context.Context, ip string, vmID string) (*Action, *Response, error)
	Unassign(ctx context.Context, ip string) (*Action, *Response, error)
}

ReservedIPActionsService is an interface for interfacing with the reserved IPs actions endpoints of the Pars Pack API. See: https://docs.parspack.com/api/#tag/Reserved-IP-Actions

type ReservedIPV6ActionsServiceOp

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

ReservedIPActionsServiceOp handles communication with the reserved IPs action related methods of the Abrha API.

func (*ReservedIPV6ActionsServiceOp) Assign

Assign a reserved IP to a vm.

func (*ReservedIPV6ActionsServiceOp) Unassign

Unassign a rerserved IP from the vm it is currently assigned to.

type ReservedIPV6CreateRequest

type ReservedIPV6CreateRequest struct {
	Region string `json:"region_slug,omitempty"`
}

ReservedIPV6CreateRequest represents a request to reserve a reserved IP.

type ReservedIPV6sService

ReservedIPV6sService is an interface for interfacing with the reserved IPV6s endpoints of the Pars Pack API.

type ReservedIPV6sServiceOp

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

ReservedIPV6sServiceOp handles communication with the reserved IPs related methods of the Abrha API.

func (*ReservedIPV6sServiceOp) Create

Create a new IPv6

func (*ReservedIPV6sServiceOp) Delete

func (r *ReservedIPV6sServiceOp) Delete(ctx context.Context, ip string) (*Response, error)

Delete a reserved IPv6.

func (*ReservedIPV6sServiceOp) Get

Get an individual reserved IPv6.

func (*ReservedIPV6sServiceOp) List

List all reserved IPV6s.

type ReservedIPsService

ReservedIPsService is an interface for interfacing with the reserved IPs endpoints of the Pars Pack API. See: https://docs.parspack.com/api/#tag/Reserved-IPs

type ReservedIPsServiceOp

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

ReservedIPsServiceOp handles communication with the reserved IPs related methods of the Abrha API.

func (*ReservedIPsServiceOp) Create

Create a reserved IP. If the VmID field of the request is not empty, the reserved IP will also be assigned to the vm.

func (*ReservedIPsServiceOp) Delete

func (r *ReservedIPsServiceOp) Delete(ctx context.Context, ip string) (*Response, error)

Delete a reserved IP.

func (*ReservedIPsServiceOp) Get

Get an individual reserved IP.

func (*ReservedIPsServiceOp) List

List all reserved IPs.

type ResetDatabasePasswordRequest

type ResetDatabasePasswordRequest struct {
	AppID         string `json:"app_id,omitempty"`
	ComponentName string `json:"component_name,omitempty"`
}

ResetDatabasePasswordRequest struct for ResetDatabasePasswordRequest

func (*ResetDatabasePasswordRequest) GetAppID

func (r *ResetDatabasePasswordRequest) GetAppID() string

GetAppID returns the AppID field.

func (*ResetDatabasePasswordRequest) GetComponentName

func (r *ResetDatabasePasswordRequest) GetComponentName() string

GetComponentName returns the ComponentName field.

type ResetDatabasePasswordResponse

type ResetDatabasePasswordResponse struct {
	Deployment *Deployment `json:"deployment,omitempty"`
}

ResetDatabasePasswordResponse struct for ResetDatabasePasswordResponse

func (*ResetDatabasePasswordResponse) GetDeployment

func (r *ResetDatabasePasswordResponse) GetDeployment() *Deployment

GetDeployment returns the Deployment field.

type Resource

type Resource struct {
	ID   string       `json:"resource_id,omitempty"`
	Type ResourceType `json:"resource_type,omitempty"`
}

Resource represent a single resource for associating/disassociating with tags

type ResourceType

type ResourceType string

ResourceType represents a class of resource, currently only vm are supported

const (
	// VmResourceType holds the string representing our ResourceType of Vm.
	VmResourceType ResourceType = "vm"
	// ImageResourceType holds the string representing our ResourceType of Image.
	ImageResourceType ResourceType = "image"
	// VolumeResourceType holds the string representing our ResourceType of Volume.
	VolumeResourceType ResourceType = "volume"
	// LoadBalancerResourceType holds the string representing our ResourceType of LoadBalancer.
	LoadBalancerResourceType ResourceType = "load_balancer"
	// VolumeSnapshotResourceType holds the string representing our ResourceType for storage Snapshots.
	VolumeSnapshotResourceType ResourceType = "volume_snapshot"
	// DatabaseResourceType holds the string representing our ResourceType of Database.
	DatabaseResourceType ResourceType = "database"
)

type ResourceWithURN

type ResourceWithURN interface {
	URN() string
}

ResourceWithURN is an interface for interfacing with the types that implement the URN method.

type Response

type Response struct {
	*http.Response

	// Links that were returned with the response. These are parsed from
	// request body and not the header.
	Links *Links

	// Meta describes generic information about the response.
	Meta *Meta

	// Monitoring URI
	// Deprecated: This field is not populated. To poll for the status of a
	// newly created Vm, use Links.Actions[0].HREF
	Monitor string

	Rate
}

Response is a Abrha response. This wraps the standard http.Response returned from Abrha.

type RetryConfig

type RetryConfig struct {
	RetryMax     int
	RetryWaitMin *float64    // Minimum time to wait
	RetryWaitMax *float64    // Maximum time to wait
	Logger       interface{} // Customer logger instance. Must implement either go-retryablehttp.Logger or go-retryablehttp.LeveledLogger
}

RetryConfig sets the values used for enabling retries and backoffs for requests that fail with 429 or 500-level response codes using the go-retryablehttp client. RetryConfig.RetryMax must be configured to enable this behavior. RetryConfig.RetryWaitMin and RetryConfig.RetryWaitMax are optional, with the default values being 1.0 and 30.0, respectively.

You can use

goApiAbrha.PtrTo(1.0)

to explicitly set the RetryWaitMin and RetryWaitMax values.

Note: Opting to use the go-retryablehttp client will overwrite any custom HTTP client passed into New(). Only the oauth2.TokenSource and Timeout will be maintained.

type ServiceAddress

type ServiceAddress struct {
	Host string `json:"host"`
	Port int    `json:"port"`
}

ServiceAddress represents a host:port for a generic service (e.g. metrics endpoint)

type ServingProtocol

type ServingProtocol string

ServingProtocol - HTTP: The app is serving the HTTP protocol. Default. - HTTP2: The app is serving the HTTP/2 protocol. Currently, this needs to be implemented in the service by serving HTTP/2 with prior knowledge.

const (
	SERVINGPROTOCOL_HTTP  ServingProtocol = "HTTP"
	SERVINGPROTOCOL_HTTP2 ServingProtocol = "HTTP2"
)

List of ServingProtocol

type Size

type Size struct {
	Slug         string     `json:"slug,omitempty"`
	Memory       int        `json:"memory,omitempty"`
	Vcpus        int        `json:"vcpus,omitempty"`
	Disk         int        `json:"disk,omitempty"`
	PriceMonthly float64    `json:"price_monthly,omitempty"`
	PriceHourly  float64    `json:"price_hourly,omitempty"`
	Regions      []string   `json:"regions,omitempty"`
	Available    bool       `json:"available,omitempty"`
	Transfer     float64    `json:"transfer,omitempty"`
	Description  string     `json:"description,omitempty"`
	GPUInfo      *GPUInfo   `json:"gpu_info,omitempty"`
	DiskInfo     []DiskInfo `json:"disk_info,omitempty"`
}

Size represents a Abrha Size

func (Size) String

func (s Size) String() string

type SizesService

type SizesService interface {
	List(context.Context, *ListOptions) ([]Size, *Response, error)
}

SizesService is an interface for interfacing with the size endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Sizes

type SizesServiceOp

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

SizesServiceOp handles communication with the size related methods of the Abrha API.

func (*SizesServiceOp) List

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

List all images

type SlackDetails

type SlackDetails struct {
	URL     string `json:"url"`
	Channel string `json:"channel"`
}

SlackDetails represents the details required to send a slack alert

type Snapshot

type Snapshot struct {
	ID            string   `json:"id,omitempty"`
	Name          string   `json:"name,omitempty"`
	ResourceID    string   `json:"resource_id,omitempty"`
	ResourceType  string   `json:"resource_type,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"`
	Tags          []string `json:"tags,omitempty"`
}

Snapshot represents a Abrha Snapshot

func (Snapshot) String

func (s Snapshot) String() string

type SnapshotCreateRequest

type SnapshotCreateRequest struct {
	VolumeID    string   `json:"volume_id"`
	Name        string   `json:"name"`
	Description string   `json:"description"`
	Tags        []string `json:"tags"`
}

SnapshotCreateRequest represents a request to create a block store volume.

type SnapshotsService

type SnapshotsService interface {
	List(context.Context, *ListOptions) ([]Snapshot, *Response, error)
	ListVolume(context.Context, *ListOptions) ([]Snapshot, *Response, error)
	ListVm(context.Context, *ListOptions) ([]Snapshot, *Response, error)
	Get(context.Context, string) (*Snapshot, *Response, error)
	Delete(context.Context, string) (*Response, error)
}

SnapshotsService is an interface for interfacing with the snapshots endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Snapshots

type SnapshotsServiceOp

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

SnapshotsServiceOp handles communication with the snapshot related methods of the Abrha API.

func (*SnapshotsServiceOp) Delete

func (s *SnapshotsServiceOp) Delete(ctx context.Context, snapshotID string) (*Response, error)

Delete an snapshot.

func (*SnapshotsServiceOp) Get

func (s *SnapshotsServiceOp) Get(ctx context.Context, snapshotID string) (*Snapshot, *Response, error)

Get retrieves a snapshot by id.

func (*SnapshotsServiceOp) List

List lists all the snapshots available.

func (*SnapshotsServiceOp) ListVm

func (s *SnapshotsServiceOp) ListVm(ctx context.Context, opt *ListOptions) ([]Snapshot, *Response, error)

ListVm lists all the Vm snapshots.

func (*SnapshotsServiceOp) ListVolume

func (s *SnapshotsServiceOp) ListVolume(ctx context.Context, opt *ListOptions) ([]Snapshot, *Response, error)

ListVolume lists all the volume snapshots.

type SourceSpec

type SourceSpec interface {
	GetType() AppSourceType
}

SourceSpec represents a source.

type Sources

type Sources struct {
	Addresses        []string `json:"addresses,omitempty"`
	Tags             []string `json:"tags,omitempty"`
	VmIDs            []string `json:"vm_ids,omitempty"`
	LoadBalancerUIDs []string `json:"load_balancer_uids,omitempty"`
	KubernetesIDs    []string `json:"kubernetes_ids,omitempty"`
}

Sources represents a Abrha Firewall InboundRule sources.

type StartGarbageCollectionRequest

type StartGarbageCollectionRequest struct {
	Type GarbageCollectionType `json:"type"`
}

StartGarbageCollectionRequest represents options to a garbage collection start request.

type StickySessions

type StickySessions struct {
	Type             string `json:"type,omitempty"`
	CookieName       string `json:"cookie_name,omitempty"`
	CookieTtlSeconds int    `json:"cookie_ttl_seconds,omitempty"`
}

StickySessions represents optional load balancer session affinity rules.

func (StickySessions) String

func (s StickySessions) String() string

String creates a human-readable description of a StickySessions instance.

type StorageActionsService

type StorageActionsService interface {
	Attach(ctx context.Context, volumeID string, vmID string) (*Action, *Response, error)
	DetachByVmID(ctx context.Context, volumeID string, vmID string) (*Action, *Response, error)
	Get(ctx context.Context, volumeID string, actionID int) (*Action, *Response, error)
	List(ctx context.Context, volumeID string, opt *ListOptions) ([]Action, *Response, error)
	Resize(ctx context.Context, volumeID string, sizeGigabytes int, regionSlug string) (*Action, *Response, error)
}

StorageActionsService is an interface for interfacing with the storage actions endpoints of the Pars Pack API. See: https://docs.parspack.com/api/#tag/Block-Storage-Actions

type StorageActionsServiceOp

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

StorageActionsServiceOp handles communication with the storage volumes action related methods of the Abrha API.

func (*StorageActionsServiceOp) Attach

func (s *StorageActionsServiceOp) Attach(ctx context.Context, volumeID string, vmID string) (*Action, *Response, error)

Attach a storage volume to a Vm.

func (*StorageActionsServiceOp) DetachByVmID

func (s *StorageActionsServiceOp) DetachByVmID(ctx context.Context, volumeID string, vmID string) (*Action, *Response, error)

DetachByVmID a storage volume from a Vm by Vm ID.

func (*StorageActionsServiceOp) Get

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

Get an action for a particular storage volume by id.

func (*StorageActionsServiceOp) List

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

List the actions for a particular storage volume.

func (*StorageActionsServiceOp) Resize

func (s *StorageActionsServiceOp) Resize(ctx context.Context, volumeID string, sizeGigabytes int, regionSlug string) (*Action, *Response, error)

Resize a storage volume.

type StorageAttachment

type StorageAttachment struct {
	VmID string `json:"vm_id"`
}

StorageAttachment represents the attachment of a block storage volume to a specific Vm under the device name.

type StorageService

type StorageService interface {
	ListVolumes(context.Context, *ListVolumeParams) ([]Volume, *Response, error)
	GetVolume(context.Context, string) (*Volume, *Response, error)
	CreateVolume(context.Context, *VolumeCreateRequest) (*Volume, *Response, error)
	DeleteVolume(context.Context, string) (*Response, error)
	ListSnapshots(ctx context.Context, volumeID string, opts *ListOptions) ([]Snapshot, *Response, error)
	GetSnapshot(context.Context, string) (*Snapshot, *Response, error)
	CreateSnapshot(context.Context, *SnapshotCreateRequest) (*Snapshot, *Response, error)
	DeleteSnapshot(context.Context, string) (*Response, error)
}

StorageService is an interface for interfacing with the storage endpoints of the Pars Pack API. See: https://docs.parspack.com/api/#tag/Block-Storage

type StorageServiceOp

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

StorageServiceOp handles communication with the storage volumes related methods of the Abrha API.

func (*StorageServiceOp) CreateSnapshot

func (svc *StorageServiceOp) CreateSnapshot(ctx context.Context, createRequest *SnapshotCreateRequest) (*Snapshot, *Response, error)

CreateSnapshot creates a snapshot of a storage volume.

func (*StorageServiceOp) CreateVolume

func (svc *StorageServiceOp) CreateVolume(ctx context.Context, createRequest *VolumeCreateRequest) (*Volume, *Response, error)

CreateVolume creates a storage volume. The name must be unique.

func (*StorageServiceOp) DeleteSnapshot

func (svc *StorageServiceOp) DeleteSnapshot(ctx context.Context, id string) (*Response, error)

DeleteSnapshot deletes a snapshot.

func (*StorageServiceOp) DeleteVolume

func (svc *StorageServiceOp) DeleteVolume(ctx context.Context, id string) (*Response, error)

DeleteVolume deletes a storage volume.

func (*StorageServiceOp) GetSnapshot

func (svc *StorageServiceOp) GetSnapshot(ctx context.Context, id string) (*Snapshot, *Response, error)

GetSnapshot retrieves an individual snapshot.

func (*StorageServiceOp) GetVolume

func (svc *StorageServiceOp) GetVolume(ctx context.Context, id string) (*Volume, *Response, error)

GetVolume retrieves an individual storage volume.

func (*StorageServiceOp) ListSnapshots

func (svc *StorageServiceOp) ListSnapshots(ctx context.Context, volumeID string, opt *ListOptions) ([]Snapshot, *Response, error)

ListSnapshots lists all snapshots related to a storage volume.

func (*StorageServiceOp) ListVolumes

func (svc *StorageServiceOp) ListVolumes(ctx context.Context, params *ListVolumeParams) ([]Volume, *Response, error)

ListVolumes lists all storage volumes.

type SupportedBackupPolicy

type SupportedBackupPolicy struct {
	Name                 string   `json:"name,omitempty"`
	PossibleWindowStarts []int    `json:"possible_window_starts,omitempty"`
	WindowLengthHours    int      `json:"window_length_hours,omitempty"`
	RetentionPeriodDays  int      `json:"retention_period_days,omitempty"`
	PossibleDays         []string `json:"possible_days,omitempty"`
}

type Tag

type Tag struct {
	Name      string           `json:"name,omitempty"`
	Resources *TaggedResources `json:"resources,omitempty"`
}

Tag represent Abrha tag

type TagCreateRequest

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

TagCreateRequest represents the JSON structure of a request of that type.

type TagResourcesRequest

type TagResourcesRequest struct {
	Resources []Resource `json:"resources"`
}

TagResourcesRequest represents the JSON structure of a request of that type.

type TaggedDatabasesResources

type TaggedDatabasesResources TaggedResourcesData

TaggedDatabasesResources represent the database resources a tag is attached to

type TaggedImagesResources

type TaggedImagesResources TaggedResourcesData

TaggedImagesResources represent the image resources a tag is attached to

type TaggedResources

type TaggedResources struct {
	Count           int                             `json:"count"`
	LastTaggedURI   string                          `json:"last_tagged_uri,omitempty"`
	Vms             *TaggedvmsResources             `json:"vms,omitempty"`
	Images          *TaggedImagesResources          `json:"images"`
	Volumes         *TaggedVolumesResources         `json:"volumes"`
	VolumeSnapshots *TaggedVolumeSnapshotsResources `json:"volume_snapshots"`
	Databases       *TaggedDatabasesResources       `json:"databases"`
}

TaggedResources represent the set of resources a tag is attached to

type TaggedResourcesData

type TaggedResourcesData struct {
	Count         int    `json:"count,float64,omitempty"`
	LastTaggedURI string `json:"last_tagged_uri,omitempty"`
}

TaggedResourcesData represent the generic resources a tag is attached to

type TaggedVolumeSnapshotsResources

type TaggedVolumeSnapshotsResources TaggedResourcesData

TaggedVolumeSnapshotsResources represent the volume snapshot resources a tag is attached to

type TaggedVolumesResources

type TaggedVolumesResources TaggedResourcesData

TaggedVolumesResources represent the volume resources a tag is attached to

type TaggedvmsResources

type TaggedvmsResources struct {
	Count         int    `json:"count,float64,omitempty"`
	LastTagged    *Vm    `json:"last_tagged,omitempty"`
	LastTaggedURI string `json:"last_tagged_uri,omitempty"`
}

TaggedvmsResources represent the vm resources a tag is attached to

type TagsService

TagsService is an interface for interfacing with the tags endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/Tags

type TagsServiceOp

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

TagsServiceOp handles communication with tag related method of the Abrha API.

func (*TagsServiceOp) Create

func (s *TagsServiceOp) Create(ctx context.Context, createRequest *TagCreateRequest) (*Tag, *Response, error)

Create a new tag

func (*TagsServiceOp) Delete

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

Delete an existing tag

func (*TagsServiceOp) Get

func (s *TagsServiceOp) Get(ctx context.Context, name string) (*Tag, *Response, error)

Get a single tag

func (*TagsServiceOp) List

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

List all tags

func (*TagsServiceOp) TagResources

func (s *TagsServiceOp) TagResources(ctx context.Context, name string, tagRequest *TagResourcesRequest) (*Response, error)

TagResources associates resources with a given Tag.

func (*TagsServiceOp) UntagResources

func (s *TagsServiceOp) UntagResources(ctx context.Context, name string, untagRequest *UntagResourcesRequest) (*Response, error)

UntagResources dissociates resources with a given Tag.

type Taint

type Taint struct {
	Key    string
	Value  string
	Effect string
}

Taint represents a Kubernetes taint that can be associated with a node pool (and, transitively, with all nodes of that pool).

func (Taint) String

func (t Taint) String() string

type TeamInfo

type TeamInfo struct {
	Name string `json:"name,omitempty"`
	UUID string `json:"uuid,omitempty"`
}

TeamInfo contains information about the currently team context.

type Timestamp

type Timestamp struct {
	time.Time
}

Timestamp represents a time that can be unmarshalled from a JSON string formatted as either an RFC3339 or Unix timestamp. All exported methods of time.Time can be called on Timestamp.

func (Timestamp) Equal

func (t Timestamp) Equal(u Timestamp) bool

Equal reports whether t and u are equal based on time.Equal

func (Timestamp) String

func (t Timestamp) String() string

func (*Timestamp) UnmarshalJSON

func (t *Timestamp) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface. Time is expected in RFC3339 or Unix format.

type ToggleDatabaseTrustedSourceOptions

type ToggleDatabaseTrustedSourceOptions struct {
	// Enable, if true, indicates the database should enable the trusted sources firewall.
	Enable bool
}

ToggleDatabaseTrustedSourceOptions provides optional parameters for ToggleDatabaseTrustedSource.

type ToggleDatabaseTrustedSourceRequest

type ToggleDatabaseTrustedSourceRequest struct {
	AppID         string `json:"app_id,omitempty"`
	ComponentName string `json:"component_name,omitempty"`
	Enable        bool   `json:"enable,omitempty"`
}

ToggleDatabaseTrustedSourceRequest struct for ToggleDatabaseTrustedSourceRequest

func (*ToggleDatabaseTrustedSourceRequest) GetAppID

GetAppID returns the AppID field.

func (*ToggleDatabaseTrustedSourceRequest) GetComponentName

func (t *ToggleDatabaseTrustedSourceRequest) GetComponentName() string

GetComponentName returns the ComponentName field.

func (*ToggleDatabaseTrustedSourceRequest) GetEnable

GetEnable returns the Enable field.

type ToggleDatabaseTrustedSourceResponse

type ToggleDatabaseTrustedSourceResponse struct {
	IsEnabled bool `json:"is_enabled,omitempty"`
}

ToggleDatabaseTrustedSourceResponse struct for ToggleDatabaseTrustedSourceResponse

func (*ToggleDatabaseTrustedSourceResponse) GetIsEnabled

func (t *ToggleDatabaseTrustedSourceResponse) GetIsEnabled() bool

GetIsEnabled returns the IsEnabled field.

type TokenListOptions

type TokenListOptions 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"`

	// For paginated result sets which support tokens, the token provided by the last set
	// of results in order to retrieve the next set of results. This is expected to be faster
	// than incrementing or decrementing the page number.
	Token string `url:"page_token,omitempty"`
}

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

type TopicConfig

type TopicConfig struct {
	CleanupPolicy                   string   `json:"cleanup_policy,omitempty"`
	CompressionType                 string   `json:"compression_type,omitempty"`
	DeleteRetentionMS               *uint64  `json:"delete_retention_ms,omitempty"`
	FileDeleteDelayMS               *uint64  `json:"file_delete_delay_ms,omitempty"`
	FlushMessages                   *uint64  `json:"flush_messages,omitempty"`
	FlushMS                         *uint64  `json:"flush_ms,omitempty"`
	IndexIntervalBytes              *uint64  `json:"index_interval_bytes,omitempty"`
	MaxCompactionLagMS              *uint64  `json:"max_compaction_lag_ms,omitempty"`
	MaxMessageBytes                 *uint64  `json:"max_message_bytes,omitempty"`
	MessageDownConversionEnable     *bool    `json:"message_down_conversion_enable,omitempty"`
	MessageFormatVersion            string   `json:"message_format_version,omitempty"`
	MessageTimestampDifferenceMaxMS *uint64  `json:"message_timestamp_difference_max_ms,omitempty"`
	MessageTimestampType            string   `json:"message_timestamp_type,omitempty"`
	MinCleanableDirtyRatio          *float32 `json:"min_cleanable_dirty_ratio,omitempty"`
	MinCompactionLagMS              *uint64  `json:"min_compaction_lag_ms,omitempty"`
	MinInsyncReplicas               *uint32  `json:"min_insync_replicas,omitempty"`
	Preallocate                     *bool    `json:"preallocate,omitempty"`
	RetentionBytes                  *int64   `json:"retention_bytes,omitempty"`
	RetentionMS                     *int64   `json:"retention_ms,omitempty"`
	SegmentBytes                    *uint64  `json:"segment_bytes,omitempty"`
	SegmentIndexBytes               *uint64  `json:"segment_index_bytes,omitempty"`
	SegmentJitterMS                 *uint64  `json:"segment_jitter_ms,omitempty"`
	SegmentMS                       *uint64  `json:"segment_ms,omitempty"`
}

TopicConfig represents all configurable options for a Kafka topic

type TopicConsumerGroup

type TopicConsumerGroup struct {
	Name   string `json:"name,omitempty"`
	Offset uint64 `json:"offset,omitempty"`
}

TopicConsumerGroup represents a consumer group for a particular Kafka topic

type TopicPartition

type TopicPartition struct {
	EarliestOffset uint64                `json:"earliest_offset,omitempty"`
	InSyncReplicas uint32                `json:"in_sync_replicas,omitempty"`
	Id             uint32                `json:"id,omitempty"`
	Size           uint64                `json:"size,omitempty"`
	ConsumerGroups []*TopicConsumerGroup `json:"consumer_groups,omitempty"`
}

TopicPartition represents the state of a Kafka topic partition

type TriggerScheduledDetails

type TriggerScheduledDetails struct {
	Cron string                 `json:"cron,omitempty"`
	Body map[string]interface{} `json:"body,omitempty"`
}

type TriggerScheduledRuns

type TriggerScheduledRuns struct {
	LastRunAt time.Time `json:"last_run_at,omitempty"`
	NextRunAt time.Time `json:"next_run_at,omitempty"`
}

type UntagResourcesRequest

type UntagResourcesRequest struct {
	Resources []Resource `json:"resources"`
}

UntagResourcesRequest represents the JSON structure of a request of that type.

type UpdateGarbageCollectionRequest

type UpdateGarbageCollectionRequest struct {
	Cancel bool `json:"cancel"`
}

UpdateGarbageCollectionRequest represents a request to update a garbage collection.

type UpdateProjectRequest

type UpdateProjectRequest struct {
	Name        interface{}
	Description interface{}
	Purpose     interface{}
	Environment interface{}
	IsDefault   interface{}
}

UpdateProjectRequest represents the request to update project information. This type expects certain attribute types, but is built this way to allow nil values as well. See `updateProjectRequest` for the "real" types.

func (*UpdateProjectRequest) MarshalJSON

func (upr *UpdateProjectRequest) MarshalJSON() ([]byte, error)

MarshalJSON takes an UpdateRequest and converts it to the "typed" request which is sent to the projects API. This is a PATCH request, which allows partial attributes, so `null` values are OK.

type UpdateUptimeAlertRequest

type UpdateUptimeAlertRequest struct {
	Name          string          `json:"name"`
	Type          string          `json:"type"`
	Threshold     int             `json:"threshold"`
	Comparison    UptimeAlertComp `json:"comparison"`
	Notifications *Notifications  `json:"notifications"`
	Period        string          `json:"period"`
}

UpdateUptimeAlertRequest represents the request to update an alert.

type UpdateUptimeCheckRequest

type UpdateUptimeCheckRequest struct {
	Name    string   `json:"name"`
	Type    string   `json:"type"`
	Target  string   `json:"target"`
	Regions []string `json:"regions"`
	Enabled bool     `json:"enabled"`
}

UpdateUptimeCheckRequest represents the request to update uptime check information.

type UpgradeBuildpackOptions

type UpgradeBuildpackOptions struct {
	// The ID of the buildpack to upgrade.
	BuildpackID string `json:"buildpack_id,omitempty"`
	// The Major Version to upgrade the buildpack to. If omitted, the latest available major version will be used.
	MajorVersion int32 `json:"major_version,omitempty"`
	// Whether or not to trigger a deployment for the app after upgrading the buildpack.
	TriggerDeployment bool `json:"trigger_deployment,omitempty"`
}

UpgradeBuildpackOptions struct for UpgradeBuildpackOptions

type UpgradeBuildpackResponse

type UpgradeBuildpackResponse struct {
	// The components that were affected by the upgrade.
	AffectedComponents []string    `json:"affected_components,omitempty"`
	Deployment         *Deployment `json:"deployment,omitempty"`
}

UpgradeBuildpackResponse struct for UpgradeBuildpackResponse

func (*UpgradeBuildpackResponse) GetAffectedComponents

func (u *UpgradeBuildpackResponse) GetAffectedComponents() []string

GetAffectedComponents returns the AffectedComponents field.

func (*UpgradeBuildpackResponse) GetDeployment

func (u *UpgradeBuildpackResponse) GetDeployment() *Deployment

GetDeployment returns the Deployment field.

type UpgradeVersionRequest

type UpgradeVersionRequest struct {
	Version string `json:"version"`
}

type UptimeAlert

type UptimeAlert struct {
	ID            string          `json:"id"`
	Name          string          `json:"name"`
	Type          string          `json:"type"`
	Threshold     int             `json:"threshold"`
	Comparison    UptimeAlertComp `json:"comparison"`
	Notifications *Notifications  `json:"notifications"`
	Period        string          `json:"period"`
}

UptimeAlert represents a Abrha Uptime Alert configuration.

type UptimeAlertComp

type UptimeAlertComp string

UptimeAlertComp represents an uptime alert comparison operation

const (

	// UptimeAlertGreaterThan is the comparison >
	UptimeAlertGreaterThan UptimeAlertComp = "greater_than"
	// UptimeAlertLessThan is the comparison <
	UptimeAlertLessThan UptimeAlertComp = "less_than"
)

type UptimeCheck

type UptimeCheck struct {
	ID      string   `json:"id"`
	Name    string   `json:"name"`
	Type    string   `json:"type"`
	Target  string   `json:"target"`
	Regions []string `json:"regions"`
	Enabled bool     `json:"enabled"`
}

UptimeCheck represents a Abrha UptimeCheck configuration.

type UptimeCheckState

type UptimeCheckState struct {
	Regions        map[string]UptimeRegion `json:"regions"`
	PreviousOutage UptimePreviousOutage    `json:"previous_outage"`
}

UptimeCheckState represents a Abrha Uptime Check's state configuration.

type UptimeChecksServiceOp

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

UptimeChecksServiceOp handles communication with Uptime Check methods of the Abrha API.

func (*UptimeChecksServiceOp) Create

Create a new uptime check.

func (*UptimeChecksServiceOp) CreateAlert

func (p *UptimeChecksServiceOp) CreateAlert(ctx context.Context, uptimeCheckID string, cr *CreateUptimeAlertRequest) (*UptimeAlert, *Response, error)

CreateAlert creates a new check alert.

func (*UptimeChecksServiceOp) Delete

func (p *UptimeChecksServiceOp) Delete(ctx context.Context, uptimeCheckID string) (*Response, error)

Delete an existing uptime check.

func (*UptimeChecksServiceOp) DeleteAlert

func (p *UptimeChecksServiceOp) DeleteAlert(ctx context.Context, uptimeCheckID string, alertID string) (*Response, error)

DeleteAlert deletes an existing check's alert.

func (*UptimeChecksServiceOp) Get

func (p *UptimeChecksServiceOp) Get(ctx context.Context, uptimeCheckID string) (*UptimeCheck, *Response, error)

Get retrieves a single uptime check by its ID.

func (*UptimeChecksServiceOp) GetAlert

func (p *UptimeChecksServiceOp) GetAlert(ctx context.Context, uptimeCheckID string, alertID string) (*UptimeAlert, *Response, error)

GetAlert retrieves a single uptime check alert by its ID.

func (*UptimeChecksServiceOp) GetState

func (p *UptimeChecksServiceOp) GetState(ctx context.Context, uptimeCheckID string) (*UptimeCheckState, *Response, error)

GetState of uptime check.

func (*UptimeChecksServiceOp) List

List Checks.

func (*UptimeChecksServiceOp) ListAlerts

func (p *UptimeChecksServiceOp) ListAlerts(ctx context.Context, uptimeCheckID string, opts *ListOptions) ([]UptimeAlert, *Response, error)

ListAlerts lists alerts for a check.

func (*UptimeChecksServiceOp) Update

Update an uptime check.

func (*UptimeChecksServiceOp) UpdateAlert

func (p *UptimeChecksServiceOp) UpdateAlert(ctx context.Context, uptimeCheckID string, alertID string, ur *UpdateUptimeAlertRequest) (*UptimeAlert, *Response, error)

UpdateAlert updates an check's alert.

type UptimePreviousOutage

type UptimePreviousOutage struct {
	Region          string `json:"region"`
	StartedAt       string `json:"started_at"`
	EndedAt         string `json:"ended_at"`
	DurationSeconds int    `json:"duration_seconds"`
}

UptimePreviousOutage represents a Abrha Uptime Check's previous outage configuration.

type UptimeRegion

type UptimeRegion struct {
	Status                    string  `json:"status"`
	StatusChangedAt           string  `json:"status_changed_at"`
	ThirtyDayUptimePercentage float32 `json:"thirty_day_uptime_percentage"`
}

type VCSSourceSpec

type VCSSourceSpec interface {
	SourceSpec
	GetRepo() string
	GetBranch() string
}

VCSSourceSpec represents a VCS source.

type VPC

type VPC struct {
	ID          string `json:"id,omitempty"`
	URN         string `json:"urn"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	IPRange     string `json:"ip_range,omitempty"`
	RegionSlug  string `json:"region,omitempty"`
	CreatedAt   string `json:"created_at,omitempty"`
	Default     bool   `json:"default,omitempty"`
}

VPC represents a Abrha Virtual Private Cloud configuration.

type VPCCreateRequest

type VPCCreateRequest struct {
	Name        string `json:"name,omitempty"`
	RegionSlug  string `json:"region,omitempty"`
	Description string `json:"description,omitempty"`
	IPRange     string `json:"ip_range,omitempty"`
}

VPCCreateRequest represents a request to create a Virtual Private Cloud.

type VPCListMembersRequest

type VPCListMembersRequest struct {
	ResourceType string `url:"resource_type,omitempty"`
}

type VPCMember

type VPCMember struct {
	URN       string    `json:"urn,omitempty"`
	Name      string    `json:"name,omitempty"`
	CreatedAt time.Time `json:"created_at,omitempty"`
}

type VPCPeering

type VPCPeering struct {
	// ID is the generated ID of the VPC Peering
	ID string `json:"id"`
	// Name is the name of the VPC Peering
	Name string `json:"name"`
	// VPCIDs is the IDs of the pair of VPCs between which a peering is created
	VPCIDs []string `json:"vpc_ids"`
	// CreatedAt is time when this VPC Peering was first created
	CreatedAt time.Time `json:"created_at"`
	// Status is the status of the VPC Peering
	Status string `json:"status"`
}

VPCPeering represents a Abrha Virtual Private Cloud Peering configuration.

type VPCPeeringCreateRequest

type VPCPeeringCreateRequest struct {
	// Name is the name of the VPC Peering
	Name string `json:"name"`
	// VPCIDs is the IDs of the pair of VPCs between which a peering is created
	VPCIDs []string `json:"vpc_ids"`
}

VPCPeeringCreateRequest represents a request to create a Virtual Private Cloud Peering for a list of associated VPC IDs.

type VPCPeeringCreateRequestByVPCID

type VPCPeeringCreateRequestByVPCID struct {
	// Name is the name of the VPC Peering
	Name string `json:"name"`
	// VPCID is the ID of one of the VPCs with which the peering has to be created
	VPCID string `json:"vpc_id"`
}

VPCPeeringCreateRequestByVPCID represents a request to create a Virtual Private Cloud Peering for an associated VPC ID.

type VPCPeeringUpdateRequest

type VPCPeeringUpdateRequest struct {
	// Name is the name of the VPC Peering
	Name string `json:"name"`
}

VPCPeeringUpdateRequest represents a request to update a Virtual Private Cloud Peering.

type VPCSetDescription

type VPCSetDescription string

VPCSetDescription is used when one want to set the `description` field of a VPC. Ex.: VPCs.Set(..., VPCSetDescription("vpc description"))

type VPCSetField

type VPCSetField interface {
	// contains filtered or unexported methods
}

VPCSetField allows one to set individual fields within a VPC configuration.

func VPCSetDefault

func VPCSetDefault() VPCSetField

VPCSetDefault is used when one wants to enable the `default` field of a VPC, to set a VPC as the default one in the region Ex.: VPCs.Set(..., VPCSetDefault())

type VPCSetName

type VPCSetName string

VPCSetName is used when one want to set the `name` field of a VPC. Ex.: VPCs.Set(..., VPCSetName("new-name"))

type VPCUpdateRequest

type VPCUpdateRequest struct {
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	Default     *bool  `json:"default,omitempty"`
}

VPCUpdateRequest represents a request to update a Virtual Private Cloud.

type VPCsService

VPCsService is an interface for managing Virtual Private Cloud configurations with the Abrha API. See: https://docs.parspack.com/api/#tag/VPCs

type VPCsServiceOp

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

VPCsServiceOp interfaces with VPC endpoints in the Abrha API.

func (*VPCsServiceOp) Create

func (v *VPCsServiceOp) Create(ctx context.Context, create *VPCCreateRequest) (*VPC, *Response, error)

Create creates a new Virtual Private Cloud.

func (*VPCsServiceOp) CreateVPCPeering

func (v *VPCsServiceOp) CreateVPCPeering(ctx context.Context, create *VPCPeeringCreateRequest) (*VPCPeering, *Response, error)

CreateVPCPeering creates a new Virtual Private Cloud Peering.

func (*VPCsServiceOp) CreateVPCPeeringByVPCID

func (v *VPCsServiceOp) CreateVPCPeeringByVPCID(ctx context.Context, id string, create *VPCPeeringCreateRequestByVPCID) (*VPCPeering, *Response, error)

CreateVPCPeeringByVPCID creates a new Virtual Private Cloud Peering for requested VPC ID.

func (*VPCsServiceOp) Delete

func (v *VPCsServiceOp) Delete(ctx context.Context, id string) (*Response, error)

Delete deletes a Virtual Private Cloud. There is no way to recover a VPC once it has been destroyed.

func (*VPCsServiceOp) DeleteVPCPeering

func (v *VPCsServiceOp) DeleteVPCPeering(ctx context.Context, id string) (*Response, error)

DeleteVPCPeering deletes a Virtual Private Cloud Peering.

func (*VPCsServiceOp) Get

func (v *VPCsServiceOp) Get(ctx context.Context, id string) (*VPC, *Response, error)

Get returns the details of a Virtual Private Cloud.

func (*VPCsServiceOp) GetVPCPeering

func (v *VPCsServiceOp) GetVPCPeering(ctx context.Context, id string) (*VPCPeering, *Response, error)

GetVPCPeering retrieves a Virtual Private Cloud Peering.

func (*VPCsServiceOp) List

func (v *VPCsServiceOp) List(ctx context.Context, opt *ListOptions) ([]*VPC, *Response, error)

List returns a list of the caller's VPCs, with optional pagination.

func (*VPCsServiceOp) ListMembers

func (v *VPCsServiceOp) ListMembers(ctx context.Context, id string, request *VPCListMembersRequest, opt *ListOptions) ([]*VPCMember, *Response, error)

func (*VPCsServiceOp) ListVPCPeerings

func (v *VPCsServiceOp) ListVPCPeerings(ctx context.Context, opt *ListOptions) ([]*VPCPeering, *Response, error)

ListVPCPeerings lists all Virtual Private Cloud Peerings.

func (*VPCsServiceOp) ListVPCPeeringsByVPCID

func (v *VPCsServiceOp) ListVPCPeeringsByVPCID(ctx context.Context, id string, opt *ListOptions) ([]*VPCPeering, *Response, error)

ListVPCPeeringsByVPCID lists all Virtual Private Cloud Peerings for requested VPC ID.

func (*VPCsServiceOp) Set

func (v *VPCsServiceOp) Set(ctx context.Context, id string, fields ...VPCSetField) (*VPC, *Response, error)

Set updates specific properties of a Virtual Private Cloud.

func (*VPCsServiceOp) Update

func (v *VPCsServiceOp) Update(ctx context.Context, id string, update *VPCUpdateRequest) (*VPC, *Response, error)

Update updates a Virtual Private Cloud's properties.

func (*VPCsServiceOp) UpdateVPCPeering

func (v *VPCsServiceOp) UpdateVPCPeering(ctx context.Context, id string, update *VPCPeeringUpdateRequest) (*VPCPeering, *Response, error)

UpdateVPCPeering updates a Virtual Private Cloud Peering.

func (*VPCsServiceOp) UpdateVPCPeeringByVPCID

func (v *VPCsServiceOp) UpdateVPCPeeringByVPCID(ctx context.Context, vpcID, peerID string, update *VPCPeeringUpdateRequest) (*VPCPeering, *Response, error)

UpdateVPCPeeringByVPCID updates a Virtual Private Cloud Peering for requested VPC ID.

type VRAM

type VRAM struct {
	Amount int    `json:"amount,omitempty"`
	Unit   string `json:"unit,omitempty"`
}

VRAM provides information about the amount of VRAM available to the GPU.

type Vm

type Vm struct {
	ID               string        `json:"id,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"`
}

Vm represents a Abrha Vm

func (*Vm) PrivateIPv4

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

PrivateIPv4 returns the private IPv4 address for the Vm.

func (*Vm) PublicIPv4

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

PublicIPv4 returns the public IPv4 address for the Vm.

func (*Vm) PublicIPv6

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

PublicIPv6 returns the public IPv6 address for the Vm.

func (Vm) String

func (d Vm) String() string

Convert Vm to a string

func (Vm) URN

func (d Vm) URN() string

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

type VmActionsService

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

VmActionsService is an interface for interfacing with the Vm actions endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/VM-Actions

type VmActionsServiceOp

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

VmActionsServiceOp handles communication with the Vm action related methods of the Abrha API.

func (*VmActionsServiceOp) ChangeBackupPolicy

func (s *VmActionsServiceOp) ChangeBackupPolicy(ctx context.Context, id string, policy *VmBackupPolicyRequest) (*Action, *Response, error)

ChangeBackupPolicy updates a backup policy when backups are enabled.

func (*VmActionsServiceOp) ChangeKernel

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

ChangeKernel changes the kernel for a Vm.

func (*VmActionsServiceOp) DisableBackups

func (s *VmActionsServiceOp) DisableBackups(ctx context.Context, id string) (*Action, *Response, error)

DisableBackups disables backups for a Vm.

func (*VmActionsServiceOp) DisableBackupsByTag

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

DisableBackupsByTag disables backups for Vm matched by a Tag.

func (*VmActionsServiceOp) EnableBackups

func (s *VmActionsServiceOp) EnableBackups(ctx context.Context, id string) (*Action, *Response, error)

EnableBackups enables backups for a Vm.

func (*VmActionsServiceOp) EnableBackupsByTag

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

EnableBackupsByTag enables backups for Vms matched by a Tag.

func (*VmActionsServiceOp) EnableBackupsWithPolicy

func (s *VmActionsServiceOp) EnableBackupsWithPolicy(ctx context.Context, id string, policy *VmBackupPolicyRequest) (*Action, *Response, error)

EnableBackupsWithPolicy enables vm's backup with a backup policy applied.

func (*VmActionsServiceOp) EnableIPv6

func (s *VmActionsServiceOp) EnableIPv6(ctx context.Context, id string) (*Action, *Response, error)

EnableIPv6 enables IPv6 for a Vm.

func (*VmActionsServiceOp) EnableIPv6ByTag

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

EnableIPv6ByTag enables IPv6 for Vms matched by a Tag.

func (*VmActionsServiceOp) EnablePrivateNetworking

func (s *VmActionsServiceOp) EnablePrivateNetworking(ctx context.Context, id string) (*Action, *Response, error)

EnablePrivateNetworking enables private networking for a Vm.

func (*VmActionsServiceOp) EnablePrivateNetworkingByTag

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

EnablePrivateNetworkingByTag enables private networking for Vms matched by a Tag.

func (*VmActionsServiceOp) Get

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

Get an action for a particular Vm by id.

func (*VmActionsServiceOp) GetByURI

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

GetByURI gets an action for a particular Vm by URI.

func (*VmActionsServiceOp) PasswordReset

func (s *VmActionsServiceOp) PasswordReset(ctx context.Context, id string) (*Action, *Response, error)

PasswordReset resets the password for a Vm.

func (*VmActionsServiceOp) PowerCycle

func (s *VmActionsServiceOp) PowerCycle(ctx context.Context, id string) (*Action, *Response, error)

PowerCycle a Vm

func (*VmActionsServiceOp) PowerCycleByTag

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

PowerCycleByTag power cycles Vms matched by a Tag.

func (*VmActionsServiceOp) PowerOff

func (s *VmActionsServiceOp) PowerOff(ctx context.Context, id string) (*Action, *Response, error)

PowerOff a Vm

func (*VmActionsServiceOp) PowerOffByTag

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

PowerOffByTag powers off Vms matched by a Tag.

func (*VmActionsServiceOp) PowerOn

func (s *VmActionsServiceOp) PowerOn(ctx context.Context, id string) (*Action, *Response, error)

PowerOn a Vm

func (*VmActionsServiceOp) PowerOnByTag

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

PowerOnByTag powers on Vms matched by a Tag.

func (*VmActionsServiceOp) Reboot

func (s *VmActionsServiceOp) Reboot(ctx context.Context, id string) (*Action, *Response, error)

Reboot a Vm

func (*VmActionsServiceOp) RebuildByImageID

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

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

func (*VmActionsServiceOp) RebuildByImageSlug

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

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

func (*VmActionsServiceOp) Rename

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

Rename a Vm

func (*VmActionsServiceOp) Resize

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

Resize a Vm

func (*VmActionsServiceOp) Restore

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

Restore an image to a Vm

func (*VmActionsServiceOp) Shutdown

func (s *VmActionsServiceOp) Shutdown(ctx context.Context, id string) (*Action, *Response, error)

Shutdown a Vm

func (*VmActionsServiceOp) ShutdownByTag

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

ShutdownByTag shuts down Vms matched by a Tag.

func (*VmActionsServiceOp) Snapshot

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

Snapshot a Vm.

func (*VmActionsServiceOp) SnapshotByTag

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

SnapshotByTag snapshots Vms matched by a Tag.

type VmAutoscaleConfiguration

type VmAutoscaleConfiguration struct {
	MinInstances            uint64  `json:"min_instances,omitempty"`
	MaxInstances            uint64  `json:"max_instances,omitempty"`
	TargetCPUUtilization    float64 `json:"target_cpu_utilization,omitempty"`
	TargetMemoryUtilization float64 `json:"target_memory_utilization,omitempty"`
	CooldownMinutes         uint32  `json:"cooldown_minutes,omitempty"`
	TargetNumberInstances   uint64  `json:"target_number_instances,omitempty"`
}

VmAutoscaleConfiguration represents a Abrha vm autoscale pool configuration

type VmAutoscaleHistoryEvent

type VmAutoscaleHistoryEvent struct {
	HistoryEventID       string    `json:"history_event_id"`
	CurrentInstanceCount uint64    `json:"current_instance_count"`
	DesiredInstanceCount uint64    `json:"desired_instance_count"`
	Reason               string    `json:"reason"`
	Status               string    `json:"status"`
	ErrorReason          string    `json:"error_reason,omitempty"`
	CreatedAt            time.Time `json:"created_at"`
	UpdatedAt            time.Time `json:"updated_at"`
}

VmAutoscaleHistoryEvent represents a Abrha vm autoscale pool history event

type VmAutoscalePool

type VmAutoscalePool struct {
	ID                 string                          `json:"id"`
	Name               string                          `json:"name"`
	Config             *VmAutoscaleConfiguration       `json:"config"`
	VmTemplate         *VmAutoscaleResourceTemplate    `json:"vm_template"`
	CreatedAt          time.Time                       `json:"created_at"`
	UpdatedAt          time.Time                       `json:"updated_at"`
	CurrentUtilization *VmAutoscaleResourceUtilization `json:"current_utilization,omitempty"`
	Status             string                          `json:"status"`
}

VmAutoscalePool represents a Abrha vm autoscale pool

type VmAutoscalePoolRequest

type VmAutoscalePoolRequest struct {
	Name       string                       `json:"name"`
	Config     *VmAutoscaleConfiguration    `json:"config"`
	VmTemplate *VmAutoscaleResourceTemplate `json:"vm_template"`
}

VmAutoscalePoolRequest represents a Abrha vm autoscale pool create/update request

type VmAutoscaleResource

type VmAutoscaleResource struct {
	VmID               string                          `json:"vm_id"`
	CreatedAt          time.Time                       `json:"created_at"`
	UpdatedAt          time.Time                       `json:"updated_at"`
	HealthStatus       string                          `json:"health_status"`
	UnhealthyReason    string                          `json:"unhealthy_reason,omitempty"`
	Status             string                          `json:"status"`
	CurrentUtilization *VmAutoscaleResourceUtilization `json:"current_utilization,omitempty"`
}

VmAutoscaleResource represents a Abrha vm autoscale pool resource

type VmAutoscaleResourceTemplate

type VmAutoscaleResourceTemplate struct {
	Size        string   `json:"size"`
	Region      string   `json:"region"`
	Image       string   `json:"image"`
	Tags        []string `json:"tags"`
	SSHKeys     []string `json:"ssh_keys"`
	VpcUUID     string   `json:"vpc_uuid"`
	WithVmAgent bool     `json:"with_vm_agent"`
	ProjectID   string   `json:"project_id"`
	IPV6        bool     `json:"ipv6"`
	UserData    string   `json:"user_data"`
}

VmAutoscaleResourceTemplate represents a Abrha vm autoscale pool resource template

type VmAutoscaleResourceUtilization

type VmAutoscaleResourceUtilization struct {
	Memory float64 `json:"memory,omitempty"`
	CPU    float64 `json:"cpu,omitempty"`
}

VmAutoscaleResourceUtilization represents a Abrha vm autoscale pool resource utilization

type VmAutoscaleService

VmAutoscaleService defines an interface for managing vm autoscale pools through Abrha API

type VmAutoscaleServiceOp

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

VmAutoscaleServiceOp handles communication with vm autoscale-related methods of the Abrha API

func (*VmAutoscaleServiceOp) Create

Create a new vm autoscale pool

func (*VmAutoscaleServiceOp) Delete

func (d *VmAutoscaleServiceOp) Delete(ctx context.Context, id string) (*Response, error)

Delete an existing autoscale pool

func (*VmAutoscaleServiceOp) DeleteDangerous

func (d *VmAutoscaleServiceOp) DeleteDangerous(ctx context.Context, id string) (*Response, error)

DeleteDangerous deletes an existing autoscale pool with all underlying resources

func (*VmAutoscaleServiceOp) Get

Get an existing vm autoscale pool

func (*VmAutoscaleServiceOp) List

List all existing vm autoscale pools

func (*VmAutoscaleServiceOp) ListHistory

ListHistory all history events for an existing vm autoscale pool

func (*VmAutoscaleServiceOp) ListMembers

ListMembers all members for an existing vm autoscale pool

func (*VmAutoscaleServiceOp) Update

Update an existing autoscale pool

type VmBackupPolicy

type VmBackupPolicy struct {
	VmID             string                `json:"vm_id,omitempty"`
	BackupEnabled    bool                  `json:"backup_enabled,omitempty"`
	BackupPolicy     *VmBackupPolicyConfig `json:"backup_policy,omitempty"`
	NextBackupWindow *BackupWindow         `json:"next_backup_window,omitempty"`
}

VmBackupPolicy defines the information about a vm's backup policy.

type VmBackupPolicyConfig

type VmBackupPolicyConfig struct {
	Plan                string `json:"plan,omitempty"`
	Weekday             string `json:"weekday,omitempty"`
	Monthday            int    `json:"monthday,omitempty"`
	Hour                int    `json:"hour,omitempty"`
	WindowLengthHours   int    `json:"window_length_hours,omitempty"`
	RetentionPeriodDays int    `json:"retention_period_days,omitempty"`
}

VmBackupPolicyConfig defines the backup policy for a Vm.

type VmBackupPolicyRequest

type VmBackupPolicyRequest struct {
	Plan     string `json:"plan,omitempty"`
	Weekday  string `json:"weekday,omitempty"`
	Monthday int    `json:"monthday,omitempty"`
	Hour     *int   `json:"hour,omitempty"`
}

VmBackupPolicyRequest defines the backup policy when creating a Vm.

type VmBandwidthMetricsRequest

type VmBandwidthMetricsRequest struct {
	VmMetricsRequest
	Interface string
	Direction string
}

VmBandwidthMetricsRequest holds the information needed to retrieve Vm bandwidth metrics.

type VmCreateImage

type VmCreateImage struct {
	ID   int
	Slug string
}

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

func (VmCreateImage) MarshalJSON

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

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

type VmCreateRequest

type VmCreateRequest struct {
	Name              string                 `json:"name"`
	Region            string                 `json:"region"`
	Size              string                 `json:"size"`
	Image             VmCreateImage          `json:"image"`
	SSHKeys           []VmCreateSSHKey       `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           []VmCreateVolume       `json:"volumes,omitempty"`
	Tags              []string               `json:"tags"`
	VPCUUID           string                 `json:"vpc_uuid,omitempty"`
	WithVmAgent       *bool                  `json:"with_vm_agent,omitempty"`
	BackupPolicy      *VmBackupPolicyRequest `json:"backup_policy,omitempty"`
}

VmCreateRequest represents a request to create a Vm.

func (VmCreateRequest) String

func (d VmCreateRequest) String() string

type VmCreateSSHKey

type VmCreateSSHKey struct {
	ID          int
	Fingerprint string
}

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

func (VmCreateSSHKey) MarshalJSON

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

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

type VmCreateVolume

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

VmCreateVolume identifies a volume to attach for the create request.

func (VmCreateVolume) MarshalJSON

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

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

type VmMetricsRequest

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

VmMetricsRequest holds the information needed to retrieve Vm various metrics.

type VmMultiCreateRequest

type VmMultiCreateRequest struct {
	Names             []string               `json:"names"`
	Region            string                 `json:"region"`
	Size              string                 `json:"size"`
	Image             VmCreateImage          `json:"image"`
	SSHKeys           []VmCreateSSHKey       `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"`
	WithVmAgent       *bool                  `json:"with_vm_agent,omitempty"`
	BackupPolicy      *VmBackupPolicyRequest `json:"backup_policy,omitempty"`
}

VmMultiCreateRequest is a request to create multiple Vms.

func (VmMultiCreateRequest) String

func (d VmMultiCreateRequest) String() string

type VmsService

type VmsService interface {
	List(context.Context, *ListOptions) ([]Vm, *Response, error)
	ListWithGPUs(context.Context, *ListOptions) ([]Vm, *Response, error)
	ListByName(context.Context, string, *ListOptions) ([]Vm, *Response, error)
	ListByTag(context.Context, string, *ListOptions) ([]Vm, *Response, error)
	Get(context.Context, string) (*Vm, *Response, error)
	Create(context.Context, *VmCreateRequest) (*vmRoot, *Response, error)
	CreateMultiple(context.Context, *VmMultiCreateRequest) ([]Vm, *Response, error)
	Delete(context.Context, string) (*Response, error)
	DeleteByTag(context.Context, string) (*Response, error)
	Kernels(context.Context, string, *ListOptions) ([]Kernel, *Response, error)
	Snapshots(context.Context, string, *ListOptions) ([]Image, *Response, error)
	Backups(context.Context, string, *ListOptions) ([]Image, *Response, error)
	Actions(context.Context, string, *ListOptions) ([]Action, *Response, error)
	Neighbors(context.Context, string) ([]Vm, *Response, error)
	GetBackupPolicy(context.Context, string) (*VmBackupPolicy, *Response, error)
	ListBackupPolicies(context.Context, *ListOptions) (map[int]*VmBackupPolicy, *Response, error)
	ListSupportedBackupPolicies(context.Context) ([]*SupportedBackupPolicy, *Response, error)
}

VmsService is an interface for interfacing with the Vm endpoints of the Abrha API See: https://docs.parspack.com/api/#tag/VMs

type VmsServiceOp

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

VmsServiceOp handles communication with the Vm related methods of the Abrha API.

func (*VmsServiceOp) Actions

func (s *VmsServiceOp) Actions(ctx context.Context, vmID string, opt *ListOptions) ([]Action, *Response, error)

Actions lists the actions for a Vm.

func (*VmsServiceOp) Backups

func (s *VmsServiceOp) Backups(ctx context.Context, vmID string, opt *ListOptions) ([]Image, *Response, error)

Backups lists the backups for a Vm.

func (*VmsServiceOp) Create

func (s *VmsServiceOp) Create(ctx context.Context, createRequest *VmCreateRequest) (*vmRoot, *Response, error)

Create Vm

func (*VmsServiceOp) CreateMultiple

func (s *VmsServiceOp) CreateMultiple(ctx context.Context, createRequest *VmMultiCreateRequest) ([]Vm, *Response, error)

CreateMultiple creates multiple Vms.

func (*VmsServiceOp) Delete

func (s *VmsServiceOp) Delete(ctx context.Context, vmID string) (*Response, error)

Delete Vm.

func (*VmsServiceOp) DeleteByTag

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

DeleteByTag deletes Vms matched by a Tag.

func (*VmsServiceOp) Get

func (s *VmsServiceOp) Get(ctx context.Context, vmID string) (*Vm, *Response, error)

Get individual Vm.

func (*VmsServiceOp) GetBackupPolicy

func (s *VmsServiceOp) GetBackupPolicy(ctx context.Context, vmID string) (*VmBackupPolicy, *Response, error)

Get individual vm backup policy.

func (*VmsServiceOp) Kernels

func (s *VmsServiceOp) Kernels(ctx context.Context, vmID string, opt *ListOptions) ([]Kernel, *Response, error)

Kernels lists kernels available for a Vm.

func (*VmsServiceOp) List

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

List all Vms.

func (*VmsServiceOp) ListBackupPolicies

func (s *VmsServiceOp) ListBackupPolicies(ctx context.Context, opt *ListOptions) (map[int]*VmBackupPolicy, *Response, error)

List all vm backup policies.

func (*VmsServiceOp) ListByName

func (s *VmsServiceOp) ListByName(ctx context.Context, name string, opt *ListOptions) ([]Vm, *Response, error)

ListByName lists all Vms filtered by name returning only exact matches. It is case-insensitive

func (*VmsServiceOp) ListByTag

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

ListByTag lists all Vms matched by a Tag.

func (*VmsServiceOp) ListSupportedBackupPolicies

func (s *VmsServiceOp) ListSupportedBackupPolicies(ctx context.Context) ([]*SupportedBackupPolicy, *Response, error)

List supported vm backup policies.

func (*VmsServiceOp) ListWithGPUs

func (s *VmsServiceOp) ListWithGPUs(ctx context.Context, opt *ListOptions) ([]Vm, *Response, error)

ListWithGPUs lists all Vms with GPUs.

func (*VmsServiceOp) Neighbors

func (s *VmsServiceOp) Neighbors(ctx context.Context, vmID string) ([]Vm, *Response, error)

Neighbors lists the neighbors for a Vm.

func (*VmsServiceOp) Snapshots

func (s *VmsServiceOp) Snapshots(ctx context.Context, vmID string, opt *ListOptions) ([]Image, *Response, error)

Snapshots lists the snapshots available for a Vm.

type Volume

type Volume struct {
	ID              string    `json:"id"`
	Region          *Region   `json:"region"`
	Name            string    `json:"name"`
	SizeGigaBytes   int64     `json:"size_gigabytes"`
	Description     string    `json:"description"`
	VmIDs           []string  `json:"vm_ids"`
	CreatedAt       time.Time `json:"created_at"`
	FilesystemType  string    `json:"filesystem_type"`
	FilesystemLabel string    `json:"filesystem_label"`
	Tags            []string  `json:"tags"`
}

Volume represents a Pars Pack block store volume.

func (Volume) String

func (f Volume) String() string

func (Volume) URN

func (f Volume) URN() string

URN returns the volume ID as a valid DO API URN

type VolumeCreateRequest

type VolumeCreateRequest struct {
	Region          string   `json:"region"`
	Name            string   `json:"name"`
	Description     string   `json:"description"`
	SizeGigaBytes   int64    `json:"size_gigabytes"`
	SnapshotID      string   `json:"snapshot_id"`
	FilesystemType  string   `json:"filesystem_type"`
	FilesystemLabel string   `json:"filesystem_label"`
	Tags            []string `json:"tags"`
}

VolumeCreateRequest represents a request to create a block store volume.

Directories

Path Synopsis
Package metrics is a minimal copy of github.com/prometheus/common/model providing types to work with the Prometheus-style results in a Abrha Monitoring metrics response.
Package metrics is a minimal copy of github.com/prometheus/common/model providing types to work with the Prometheus-style results in a Abrha Monitoring metrics response.

Jump to

Keyboard shortcuts

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