// NewClient returns a new log client, logging to the named log in the // provided project. // // The exported fields on the returned client may be modified before // the client is used for logging. Once log entries are in flight, // the fields must not be modified. func NewClient(ctx context.Context, projectID, logName string, opts ...cloud.ClientOption) (*Client, error) { httpClient, endpoint, err := transport.NewHTTPClient(ctx, append([]cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(api.CloudPlatformScope), cloud.WithUserAgent(userAgent), }, opts...)...) if err != nil { return nil, err } svc, err := api.New(httpClient) if err != nil { return nil, err } svc.BasePath = endpoint c := &Client{ svc: svc, logs: api.NewProjectsLogsEntriesService(svc), logName: logName, projID: projectID, } for i := range c.writer { level := Level(i) c.writer[level] = levelWriter{level, c} c.logger[level] = log.New(c.writer[level], "", 0) } return c, nil }
// NewClient creates a new Client for a given dataset. func NewClient(ctx context.Context, projectID string, opts ...cloud.ClientOption) (*Client, error) { o := []cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(ScopeDatastore, ScopeUserEmail), cloud.WithUserAgent(userAgent), } o = append(o, opts...) client, err := transport.NewProtoClient(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &Client{ client: client, dataset: projectID, }, nil }
// NewClusterAdminClient creates a new ClusterAdminClient for a given project. func NewClusterAdminClient(ctx context.Context, project string, opts ...cloud.ClientOption) (*ClusterAdminClient, error) { o := []cloud.ClientOption{ cloud.WithEndpoint(clusterAdminAddr), cloud.WithScopes(ClusterAdminScope), cloud.WithUserAgent(clientUserAgent), } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &ClusterAdminClient{ conn: conn, cClient: btcspb.NewBigtableClusterServiceClient(conn), project: project, }, nil }
// NewClient creates a new Google Cloud Storage client. // The default scope is ScopeFullControl. To use a different scope, like ScopeReadOnly, use cloud.WithScopes. func NewClient(ctx context.Context, opts ...cloud.ClientOption) (*Client, error) { o := []cloud.ClientOption{ cloud.WithScopes(ScopeFullControl), cloud.WithUserAgent(userAgent), } opts = append(o, opts...) hc, _, err := transport.NewHTTPClient(ctx, opts...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } rawService, err := raw.New(hc) if err != nil { return nil, fmt.Errorf("storage client: %v", err) } return &Client{ hc: hc, raw: rawService, }, nil }
// NewClient create a new PubSub client. func NewClient(ctx context.Context, projectID string, opts ...cloud.ClientOption) (*Client, error) { o := []cloud.ClientOption{ cloud.WithEndpoint(prodAddr), cloud.WithScopes(raw.PubsubScope, raw.CloudPlatformScope), cloud.WithUserAgent(userAgent), } o = append(o, opts...) httpClient, endpoint, err := transport.NewHTTPClient(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } s, err := raw.New(httpClient) if err != nil { return nil, err } s.BasePath = endpoint c := &Client{ projectID: projectID, s: s, } return c, nil }