Documentation ¶
Index ¶
- Constants
- type ConnName
- type Instance
- func (i *Instance) Close()
- func (i *Instance) ConnectInfo(ctx context.Context, ipType string) (string, *tls.Config, error)
- func (i *Instance) ForceRefresh()
- func (i *Instance) InstanceEngineVersion(ctx context.Context) (string, error)
- func (i *Instance) String() string
- func (i *Instance) UpdateRefresh(cfg RefreshCfg)
- type RefreshCfg
Constants ¶
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" )
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 ¶
ParseConnName initializes a new ConnName struct.
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 ¶
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 ¶
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) 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.