cloudsql

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// PublicIP is the value for public IP Cloud SQL instances.
	PublicIP = "PUBLIC"
	// PrivateIP is the value for private IP Cloud SQL instances.
	PrivateIP = "PRIVATE"
	// PSC is the value for private service connect Cloud SQL instances.
	PSC = "PSC"
	// AutoIP selects public IP if available and otherwise selects private
	// IP.
	AutoIP = "AutoIP"
)
View Source
const (

	// RefreshTimeout is the maximum amount of time to wait for a refresh
	// cycle to complete. This value should be greater than the
	// refreshInterval.
	RefreshTimeout = 60 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnName

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

ConnName represents the "instance connection name", in the format "project:region:name".

func ParseConnName

func ParseConnName(cn string) (ConnName, error)

ParseConnName initializes a new ConnName struct.

func (*ConnName) String

func (c *ConnName) String() string

type Instance

type Instance struct {
	// OpenConns is the number of open connections to the instance.
	OpenConns uint64

	ConnName

	RefreshCfg RefreshCfg
	// contains filtered or unexported fields
}

Instance manages the information used to connect to the Cloud SQL instance by periodically calling the Cloud SQL Admin API. It automatically refreshes the required information approximately 4 minutes before the previous certificate expires (every ~56 minutes).

func NewInstance

func NewInstance(
	cn ConnName,
	client *sqladmin.Service,
	key *rsa.PrivateKey,
	refreshTimeout time.Duration,
	ts oauth2.TokenSource,
	dialerID string,
	r RefreshCfg,
) *Instance

NewInstance initializes a new Instance given an instance connection name

func (*Instance) Close

func (i *Instance) Close()

Close closes the instance; it stops the refresh cycle and prevents it from making additional calls to the Cloud SQL Admin API.

func (*Instance) ConnectInfo

func (i *Instance) ConnectInfo(ctx context.Context, ipType string) (string, *tls.Config, error)

ConnectInfo returns an IP address specified by ipType (i.e., public or private) and a TLS config that can be used to connect to a Cloud SQL instance.

func (*Instance) ForceRefresh

func (i *Instance) ForceRefresh()

ForceRefresh triggers an immediate refresh operation to be scheduled and used for future connection attempts.

func (*Instance) InstanceEngineVersion

func (i *Instance) InstanceEngineVersion(ctx context.Context) (string, error)

InstanceEngineVersion returns the engine type and version for the instance. The value corresponds to one of the following types for the instance: https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/SqlDatabaseVersion

func (*Instance) String

func (i *Instance) String() string

String returns the instance's connection name.

func (*Instance) UpdateRefresh

func (i *Instance) UpdateRefresh(cfg RefreshCfg)

UpdateRefresh cancels all existing refresh attempts and schedules new attempts with the provided config.

type RefreshCfg

type RefreshCfg struct {
	UseIAMAuthN bool
}

RefreshCfg is a collection of attributes that trigger new refresh operations.

Jump to

Keyboard shortcuts

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