// DialGRPC returns a GRPC connection for use communicating with a Google cloud // service, configured with the given ClientOptions. func DialGRPC(ctx context.Context, opt ...cloud.ClientOption) (*grpc.ClientConn, error) { o := make([]option.ClientOption, 0, len(opt)) for _, opt := range opt { o = append(o, opt.Resolve()) } return transport.DialGRPC(ctx, o...) }
// NewClient creates a new logging service client. // // Service for ingesting and querying logs. func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { conn, err := transport.DialGRPC(ctx, append(defaultClientOptions(), opts...)...) if err != nil { return nil, err } c := &Client{ conn: conn, client: loggingpb.NewLoggingServiceV2Client(conn), CallOptions: defaultCallOptions(), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewSubscriberClient creates a new subscriber service client. // // The service that an application uses to manipulate subscriptions and to // consume messages from a subscription via the `Pull` method. func NewSubscriberClient(ctx context.Context, opts ...option.ClientOption) (*SubscriberClient, error) { conn, err := transport.DialGRPC(ctx, append(defaultSubscriberClientOptions(), opts...)...) if err != nil { return nil, err } c := &SubscriberClient{ conn: conn, client: pubsubpb.NewSubscriberClient(conn), CallOptions: defaultSubscriberCallOptions(), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewAgentTranslationClient creates a new agent_translation service client. // // The AgentTranslation API allows `collectd`-based agents to // write time series data to Cloud Monitoring. // See [google.monitoring.v3.MetricService.CreateTimeSeries] instead. func NewAgentTranslationClient(ctx context.Context, opts ...option.ClientOption) (*AgentTranslationClient, error) { conn, err := transport.DialGRPC(ctx, append(defaultAgentTranslationClientOptions(), opts...)...) if err != nil { return nil, err } c := &AgentTranslationClient{ conn: conn, client: monitoringpb.NewAgentTranslationServiceClient(conn), CallOptions: defaultAgentTranslationCallOptions(), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewErrorGroupClient creates a new error_group service client. // // Service for retrieving and updating individual error groups. func NewErrorGroupClient(ctx context.Context, opts ...option.ClientOption) (*ErrorGroupClient, error) { conn, err := transport.DialGRPC(ctx, append(defaultErrorGroupClientOptions(), opts...)...) if err != nil { return nil, err } c := &ErrorGroupClient{ conn: conn, client: clouderrorreportingpb.NewErrorGroupServiceClient(conn), CallOptions: defaultErrorGroupCallOptions(), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewPublisherClient creates a new publisher service client. // // The service that an application uses to manipulate topics, and to send // messages to a topic. func NewPublisherClient(ctx context.Context, opts ...option.ClientOption) (*PublisherClient, error) { conn, err := transport.DialGRPC(ctx, append(defaultPublisherClientOptions(), opts...)...) if err != nil { return nil, err } c := &PublisherClient{ conn: conn, client: googleapis_pubsub_v1.NewPublisherClient(conn), CallOptions: defaultPublisherCallOptions(), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewIamClient creates a new iam client. // // Creates and manages service account objects. // // Service account is an account that belongs to your project instead // of to an individual end user. It is used to authenticate calls // to a Google API. // // To create a service account, specify the `project_id` and `account_id` // for the account. The `account_id` is unique within the project, and used // to generate the service account email address and a stable // `unique_id`. // // All other methods can identify accounts using the format // `projects/{project}/serviceAccounts/{account}`. // Using `-` as a wildcard for the project will infer the project from // the account. The `account` value can be the `email` address or the // `unique_id` of the service account. func NewIamClient(ctx context.Context, opts ...option.ClientOption) (*IamClient, error) { conn, err := transport.DialGRPC(ctx, append(defaultIamClientOptions(), opts...)...) if err != nil { return nil, err } c := &IamClient{ conn: conn, CallOptions: defaultIamCallOptions(), iamClient: adminpb.NewIAMClient(conn), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewController2Client creates a new controller2 client. // // The Controller service provides the API for orchestrating a collection of // debugger agents to perform debugging tasks. These agents are each attached // to a process of an application which may include one or more replicas. // // The debugger agents register with the Controller to identify the application // being debugged, the Debuggee. All agents that register with the same data, // represent the same Debuggee, and are assigned the same `debuggee_id`. // // The debugger agents call the Controller to retrieve the list of active // Breakpoints. Agents with the same `debuggee_id` get the same breakpoints // list. An agent that can fulfill the breakpoint request updates the // Controller with the breakpoint result. The controller selects the first // result received and discards the rest of the results. // Agents that poll again for active breakpoints will no longer have // the completed breakpoint in the list and should remove that breakpoint from // their attached process. // // The Controller service does not provide a way to retrieve the results of // a completed breakpoint. This functionality is available using the Debugger // service. func NewController2Client(ctx context.Context, opts ...option.ClientOption) (*Controller2Client, error) { conn, err := transport.DialGRPC(ctx, append(defaultController2ClientOptions(), opts...)...) if err != nil { return nil, err } c := &Controller2Client{ conn: conn, CallOptions: defaultController2CallOptions(), controller2Client: clouddebuggerpb.NewController2Client(conn), } c.SetGoogleClientInfo("gax", gax.Version) return c, nil }
// NewClient creates a new Client for a given project and instance. func NewClient(ctx context.Context, project, instance string, opts ...option.ClientOption) (*Client, error) { o, err := btopt.DefaultClientOptions(prodAddr, Scope, clientUserAgent) if err != nil { return nil, err } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &Client{ conn: conn, client: btpb.NewBigtableClient(conn), project: project, instance: instance, }, nil }
// NewAdminClient creates a new AdminClient for a given project and instance. func NewAdminClient(ctx context.Context, project, instance string, opts ...option.ClientOption) (*AdminClient, error) { o, err := btopt.DefaultClientOptions(adminAddr, AdminScope, clientUserAgent) if err != nil { return nil, err } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &AdminClient{ conn: conn, tClient: btapb.NewBigtableTableAdminClient(conn), project: project, instance: instance, md: metadata.Pairs(resourcePrefixHeader, fmt.Sprintf("projects/%s/instances/%s", project, instance)), }, nil }
// NewInstanceAdminClient creates a new InstanceAdminClient for a given project. func NewInstanceAdminClient(ctx context.Context, project string, opts ...option.ClientOption) (*InstanceAdminClient, error) { o, err := btopt.DefaultClientOptions(instanceAdminAddr, InstanceAdminScope, clientUserAgent) if err != nil { return nil, err } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &InstanceAdminClient{ conn: conn, iClient: btapb.NewBigtableInstanceAdminClient(conn), project: project, md: metadata.Pairs(resourcePrefixHeader, "projects/"+project), }, nil }
// NewClient creates a new Client for a given dataset. // If the project ID is empty, it is derived from the DATASTORE_PROJECT_ID environment variable. // If the DATASTORE_EMULATOR_HOST environment variable is set, client will use its value // to connect to a locally-running datastore emulator. func NewClient(ctx context.Context, projectID string, opts ...option.ClientOption) (*Client, error) { var o []option.ClientOption // Environment variables for gcd emulator: // https://cloud.google.com/datastore/docs/tools/datastore-emulator // If the emulator is available, dial it directly (and don't pass any credentials). if addr := os.Getenv("DATASTORE_EMULATOR_HOST"); addr != "" { conn, err := grpc.Dial(addr, grpc.WithInsecure()) if err != nil { return nil, fmt.Errorf("grpc.Dial: %v", err) } o = []option.ClientOption{option.WithGRPCConn(conn)} } else { o = []option.ClientOption{ option.WithEndpoint(prodAddr), option.WithScopes(ScopeDatastore), option.WithUserAgent(userAgent), } } // Warn if we see the legacy emulator environment variables. if os.Getenv("DATASTORE_HOST") != "" && os.Getenv("DATASTORE_EMULATOR_HOST") == "" { log.Print("WARNING: legacy environment variable DATASTORE_HOST is ignored. Use DATASTORE_EMULATOR_HOST instead.") } if os.Getenv("DATASTORE_DATASET") != "" && os.Getenv("DATASTORE_PROJECT_ID") == "" { log.Print("WARNING: legacy environment variable DATASTORE_DATASET is ignored. Use DATASTORE_PROJECT_ID instead.") } if projectID == "" { projectID = os.Getenv("DATASTORE_PROJECT_ID") } if projectID == "" { return nil, errors.New("datastore: missing project/dataset id") } o = append(o, opts...) conn, err := transport.DialGRPC(ctx, o...) if err != nil { return nil, fmt.Errorf("dialing: %v", err) } return &Client{ conn: conn, client: newDatastoreClient(conn, projectID), dataset: projectID, }, nil }
func main() { ctx := context.Background() conn, err := transport.DialGRPC(ctx, option.WithEndpoint("speech.googleapis.com:443"), option.WithScopes("https://www.googleapis.com/auth/cloud-platform"), ) if err != nil { log.Fatal(err) } defer conn.Close() // [START speech_streaming_mic_recognize] client, err := speech.NewClient(ctx) if err != nil { log.Fatal(err) } stream, err := client.StreamingRecognize(ctx) if err != nil { log.Fatal(err) } // Send the initial configuration message. if err := stream.Send(&speechpb.StreamingRecognizeRequest{ StreamingRequest: &speechpb.StreamingRecognizeRequest_StreamingConfig{ StreamingConfig: &speechpb.StreamingRecognitionConfig{ Config: &speechpb.RecognitionConfig{ Encoding: speechpb.RecognitionConfig_LINEAR16, SampleRate: 16000, }, }, }, }); err != nil { log.Fatal(err) } go func() { // Pipe stdin to the API. buf := make([]byte, 1024) for { n, err := os.Stdin.Read(buf) if err == io.EOF { return // Nothing else to pipe, return from this goroutine. } if err != nil { log.Printf("Could not read from stdin: %v", err) continue } if err = stream.Send(&speechpb.StreamingRecognizeRequest{ StreamingRequest: &speechpb.StreamingRecognizeRequest_AudioContent{ AudioContent: buf[:n], }, }); err != nil { log.Printf("Could not send audio: %v", err) } } }() for { resp, err := stream.Recv() if err == io.EOF { break } if err != nil { log.Fatalf("Cannot stream results: %v", err) } if err := resp.Error; err != nil { log.Fatalf("Could not recognize: %v", err) } for _, result := range resp.Results { fmt.Printf("Result: %+v\n", result) } } // [END speech_streaming_mic_recognize] }