internal

package
v0.213.0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: BSD-3-Clause Imports: 27 Imported by: 0

Documentation

Overview

Package internal supports the options and transport packages.

Package internal supports the options and transport packages.

Index

Constants

View Source
const Version = "0.213.0"

Version is the current tagged release of the library.

Variables

This section is empty.

Functions

func AuthCreds added in v0.210.0

func AuthCreds(ctx context.Context, settings *DialSettings) (*auth.Credentials, error)

AuthCreds returns cloud.google.com/go/auth.Credentials based on credentials options provided via [option.ClientOption], including legacy oauth2/google options. If there are no applicable options, then it returns the result of cloud.google.com/go/auth/credentials.DetectDefault.

func Creds

func Creds(ctx context.Context, ds *DialSettings) (*google.Credentials, error)

Creds returns credential information obtained from DialSettings, or if none, then it returns default credential information.

func GetGRPCTransportConfigAndEndpoint added in v0.117.0

func GetGRPCTransportConfigAndEndpoint(settings *DialSettings) (credentials.TransportCredentials, string, error)

GetGRPCTransportConfigAndEndpoint returns an instance of credentials.TransportCredentials, and the corresponding endpoint to use for GRPC client.

func GetHTTPTransportConfigAndEndpoint added in v0.117.0

func GetHTTPTransportConfigAndEndpoint(settings *DialSettings) (cert.Source, func(context.Context, string, string) (net.Conn, error), string, error)

GetHTTPTransportConfigAndEndpoint returns a client certificate source, a function for dialing MTLS with S2A, and the endpoint to use for HTTP client.

func GetOAuth2Configuration added in v0.184.0

func GetOAuth2Configuration(ctx context.Context, settings *DialSettings) (string, *http.Client, error)

GetOAuth2Configuration determines configurations for the OAuth2 transport, which is separate from the API transport. The OAuth2 transport and endpoint will be configured for mTLS if applicable.

func GetQuotaProject added in v0.113.0

func GetQuotaProject(creds *google.Credentials, clientOpt string) string

GetQuotaProject retrieves quota project with precedence being: client option, environment variable, creds file.

func GetS2AAddress added in v0.117.0

func GetS2AAddress() string

GetS2AAddress returns the S2A address to be reached via plaintext connection.

func GetUniverseDomain added in v0.162.0

func GetUniverseDomain(creds *google.Credentials) (string, error)

GetUniverseDomain returns the default service domain for a given Cloud universe, from google.Credentials. This wrapper function should be removed to close https://github.com/googleapis/google-api-go-client/issues/2399.

Types

type ConnPool added in v0.17.0

type ConnPool interface {
	// Conn returns a ClientConn from the pool.
	//
	// Conns aren't returned to the pool.
	Conn() *grpc.ClientConn

	// Num returns the number of connections in the pool.
	//
	// It will always return the same value.
	Num() int

	// Close closes every ClientConn in the pool.
	//
	// The error returned by Close may be a single error or multiple errors.
	Close() error

	// ConnPool implements grpc.ClientConnInterface to enable it to be used directly with generated proto stubs.
	grpc.ClientConnInterface
}

ConnPool is a pool of grpc.ClientConns.

type DialSettings

type DialSettings struct {
	Endpoint                      string
	DefaultEndpoint               string
	DefaultEndpointTemplate       string
	DefaultMTLSEndpoint           string
	Scopes                        []string
	DefaultScopes                 []string
	EnableJwtWithScope            bool
	TokenSource                   oauth2.TokenSource
	Credentials                   *google.Credentials
	CredentialsFile               string // if set, Token Source is ignored.
	CredentialsJSON               []byte
	InternalCredentials           *google.Credentials
	UserAgent                     string
	APIKey                        string
	Audiences                     []string
	DefaultAudience               string
	HTTPClient                    *http.Client
	GRPCDialOpts                  []grpc.DialOption
	GRPCConn                      *grpc.ClientConn
	GRPCConnPool                  ConnPool
	GRPCConnPoolSize              int
	NoAuth                        bool
	TelemetryDisabled             bool
	ClientCertSource              func(*tls.CertificateRequestInfo) (*tls.Certificate, error)
	CustomClaims                  map[string]interface{}
	SkipValidation                bool
	ImpersonationConfig           *impersonate.Config
	EnableDirectPath              bool
	EnableDirectPathXds           bool
	AllowNonDefaultServiceAccount bool
	DefaultUniverseDomain         string
	UniverseDomain                string
	Logger                        *slog.Logger
	// Google API system parameters. For more information please read:
	// https://cloud.google.com/apis/docs/system-parameters
	QuotaProject  string
	RequestReason string

	// New Auth library Options
	AuthCredentials      *auth.Credentials
	EnableNewAuthLibrary bool

	// TODO(b/372244283): Remove after b/358175516 has been fixed
	EnableAsyncRefreshDryRun func()
}

DialSettings holds information needed to establish a connection with a Google API service.

func (*DialSettings) GetAudience added in v0.49.0

func (ds *DialSettings) GetAudience() string

GetAudience returns the user-provided audience, if set, or else falls back to the default audience.

func (*DialSettings) GetDefaultUniverseDomain added in v0.158.0

func (ds *DialSettings) GetDefaultUniverseDomain() string

GetDefaultUniverseDomain returns the Google default universe domain ("googleapis.com").

func (*DialSettings) GetScopes added in v0.36.0

func (ds *DialSettings) GetScopes() []string

GetScopes returns the user-provided scopes, if set, or else falls back to the default scopes.

func (*DialSettings) GetUniverseDomain added in v0.158.0

func (ds *DialSettings) GetUniverseDomain() string

GetUniverseDomain returns the default service domain for a given Cloud universe, with the following precedence:

1. A non-empty option.WithUniverseDomain. 2. A non-empty environment variable GOOGLE_CLOUD_UNIVERSE_DOMAIN. 3. The default value "googleapis.com".

func (*DialSettings) HasCustomAudience added in v0.49.0

func (ds *DialSettings) HasCustomAudience() bool

HasCustomAudience returns true if a custom audience is provided by users.

func (*DialSettings) IsNewAuthLibraryEnabled added in v0.142.0

func (ds *DialSettings) IsNewAuthLibraryEnabled() bool

IsNewAuthLibraryEnabled returns true if the new auth library should be used.

func (*DialSettings) IsUniverseDomainGDU added in v0.158.0

func (ds *DialSettings) IsUniverseDomainGDU() bool

IsUniverseDomainGDU returns true if the universe domain is the default Google universe ("googleapis.com").

func (*DialSettings) Validate

func (ds *DialSettings) Validate() error

Validate reports an error if ds is invalid.

Directories

Path Synopsis
Package cert contains certificate tools for Google API clients.
Package cert contains certificate tools for Google API clients.
examples
fake
Package fake demonstrates how to use concrete services and fake the interactions with them in tests.
Package fake demonstrates how to use concrete services and fake the interactions with them in tests.
mock
Package mock demonstrates how to use interfaces to mock interactions with service in tests.
Package mock demonstrates how to use interfaces to mock interactions with service in tests.
Package gensupport is an internal implementation detail used by code generated by the google-api-go-generator tool.
Package gensupport is an internal implementation detail used by code generated by the google-api-go-generator tool.
Package impersonate is used to impersonate Google Credentials.
Package impersonate is used to impersonate Google Credentials.
kokoro
discogen Module
third_party
uritemplates
Package uritemplates is a level 3 implementation of RFC 6570 (URI Template, http://tools.ietf.org/html/rfc6570).
Package uritemplates is a level 3 implementation of RFC 6570 (URI Template, http://tools.ietf.org/html/rfc6570).

Jump to

Keyboard shortcuts

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