blob: 0324ba897d4af46e47ee2faa8e0d6f4d929e6aaf [file] [log] [blame]
package cloudtasks
// Package cloudtasks provides a client interface for GCP's Cloud Tasks API,
// with a standard set of options set by command line flags.
import (
"context"
"flag"
cloudtasks "cloud.google.com/go/cloudtasks/apiv2"
"infra/libs/grpcclient"
)
// Options describes the client configuration for cloudtasks.
type Options struct {
*grpcclient.Options
}
// NewOptionsFromFlags returns an Options instance populated from command line flag options.
func NewOptionsFromFlags() *Options {
ret := &Options{&grpcclient.Options{}}
ret.registerFlags(flag.CommandLine)
return ret
}
// NewClient returns a cloudtasks Client according to Options settings.
func (c *Options) NewClient(ctx context.Context) (*cloudtasks.Client, error) {
opts, err := c.DefaultClientOptions(ctx)
if err != nil {
return nil, err
}
client, err := cloudtasks.NewClient(ctx, opts...)
return client, err
}
func (c *Options) registerFlags(fs *flag.FlagSet) {
fs.StringVar(&c.Address, "cloudtasks-address", "cloudtasks.googleapis.com:443", "Address for cloudttasks service")
fs.IntVar(&c.DefaultTimeoutMs, "cloudtasks-timeout-ms", 25*1000, "Default RPC timeout for cloudttasks service")
}