Documentation
¶
Overview ¶
Package internal supports the options and transport packages.
Package internal supports the options and transport packages.
Index ¶
- Constants
- func AuthCreds(ctx context.Context, settings *DialSettings) (*auth.Credentials, error)
- func Creds(ctx context.Context, ds *DialSettings) (*google.Credentials, error)
- func GetGRPCTransportConfigAndEndpoint(settings *DialSettings) (credentials.TransportCredentials, string, error)
- func GetHTTPTransportConfigAndEndpoint(settings *DialSettings) (cert.Source, func(context.Context, string, string) (net.Conn, error), string, ...)
- func GetOAuth2Configuration(ctx context.Context, settings *DialSettings) (string, *http.Client, error)
- func GetQuotaProject(creds *google.Credentials, clientOpt string) string
- func GetS2AAddress() string
- func GetUniverseDomain(creds *google.Credentials) (string, error)
- type ConnPool
- type DialSettings
- func (ds *DialSettings) GetAudience() string
- func (ds *DialSettings) GetAuthCredentialsFile() (string, credentialstype.CredType)
- func (ds *DialSettings) GetAuthCredentialsJSON() ([]byte, credentialstype.CredType)
- func (ds *DialSettings) GetDefaultUniverseDomain() string
- func (ds *DialSettings) GetScopes() []string
- func (ds *DialSettings) GetUniverseDomain() string
- func (ds *DialSettings) HasCustomAudience() bool
- func (ds *DialSettings) IsNewAuthLibraryEnabled() bool
- func (ds *DialSettings) IsUniverseDomainGDU() bool
- func (ds *DialSettings) Validate() error
Constants ¶
const Version = "0.258.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. Note: If NoAuth is true, when google.golang.org/api/option.WithoutAuthentication is passed, then no authentication will be performed and this function will return nil, nil.
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
// Deprecated: Use AuthCredentialsFile instead, due to security risk.
CredentialsFile string
// Deprecated: Use AuthCredentialsJSON instead, due to security risk.
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
AllowHardBoundTokens []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
AuthCredentialsJSON []byte
AuthCredentialsFile string
AuthCredentialsType credentialstype.CredType
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) GetAuthCredentialsFile ¶ added in v0.258.0
func (ds *DialSettings) GetAuthCredentialsFile() (string, credentialstype.CredType)
GetAuthCredentialsFile returns the AuthCredentialsFile and AuthCredentialsType, if set. Otherwise it falls back to the deprecated CredentialsFile with an Unknown type.
Use AuthCredentialsFile if provided, as it is the safer, recommended option. CredentialsFile is populated by the deprecated WithCredentialsFile.
func (*DialSettings) GetAuthCredentialsJSON ¶ added in v0.258.0
func (ds *DialSettings) GetAuthCredentialsJSON() ([]byte, credentialstype.CredType)
GetAuthCredentialsJSON returns the AuthCredentialsJSON and AuthCredentialsType, if set. Otherwise it falls back to the deprecated CredentialsJSON with an Unknown type.
Use AuthCredentialsJSON if provided, as it is the safer, recommended option. CredentialsJSON is populated by the deprecated WithCredentialsJSON.
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. |
|
Package credentialstype defines the CredType used for specifying the type of JSON credentials.
|
Package credentialstype defines the CredType used for specifying the type of JSON credentials. |
|
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). |