package pubsub
import "cloud.google.com/go/pubsub/apiv1"
Package pubsub is an auto-generated package for the Cloud Pub/Sub API.
Provides reliable, many-to-many, asynchronous messaging between applications.
General documentation
For information that is relevant for all client libraries please reference https://pkg.go.dev/cloud.google.com/go#pkg-overview. Some information on this page includes:
- Authentication and Authorization
- Timeouts and Cancellation
- Testing against Client Libraries
- Debugging Client Libraries
- Inspecting errors
Example usage
To get started with this package, create a client.
// go get cloud.google.com/go/pubsub/apiv1@latest ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in: // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options c, err := pubsub.NewSchemaClient(ctx) if err != nil { // TODO: Handle error. } defer c.Close()
The client will use your default application credentials. Clients should be reused instead of created as needed. The methods of Client are safe for concurrent use by multiple goroutines. The returned client must be Closed when it is done being used.
Using the Client
The following is an example of making an API call with the newly created client, mentioned above.
req := &pubsubpb.CommitSchemaRequest{ // TODO: Fill request struct fields. // See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#CommitSchemaRequest. } resp, err := c.CommitSchema(ctx, req) if err != nil { // TODO: Handle error. } // TODO: Use resp. _ = resp
Use of Context
The ctx passed to NewSchemaClient is used for authentication requests and for creating the underlying connection, but is not used for subsequent calls. Individual methods on the client use the ctx given to them.
To close the open connection, use the Close() method.
Index ¶
- func DefaultAuthScopes() []string
- func PublisherProjectPath(project string) string
- func PublisherTopicPath(project, topic string) string
- func SubscriberProjectPath(project string) string
- func SubscriberSnapshotPath(project, snapshot string) string
- func SubscriberSubscriptionPath(project, subscription string) string
- func SubscriberTopicPath(project, topic string) string
- type PublisherCallOptions
- type PublisherClient
- func NewPublisherClient(ctx context.Context, opts ...option.ClientOption) (*PublisherClient, error)
- func NewPublisherRESTClient(ctx context.Context, opts ...option.ClientOption) (*PublisherClient, error)
- func (c *PublisherClient) Close() error
- func (c *PublisherClient) Connection() *grpc.ClientConn
- func (c *PublisherClient) CreateTopic(ctx context.Context, req *pubsubpb.Topic, opts ...gax.CallOption) (*pubsubpb.Topic, error)
- func (c *PublisherClient) DeleteTopic(ctx context.Context, req *pubsubpb.DeleteTopicRequest, opts ...gax.CallOption) error
- func (c *PublisherClient) DetachSubscription(ctx context.Context, req *pubsubpb.DetachSubscriptionRequest, opts ...gax.CallOption) (*pubsubpb.DetachSubscriptionResponse, error)
- func (c *PublisherClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *PublisherClient) GetTopic(ctx context.Context, req *pubsubpb.GetTopicRequest, opts ...gax.CallOption) (*pubsubpb.Topic, error)
- func (c *PublisherClient) ListTopicSnapshots(ctx context.Context, req *pubsubpb.ListTopicSnapshotsRequest, opts ...gax.CallOption) *StringIterator
- func (c *PublisherClient) ListTopicSubscriptions(ctx context.Context, req *pubsubpb.ListTopicSubscriptionsRequest, opts ...gax.CallOption) *StringIterator
- func (c *PublisherClient) ListTopics(ctx context.Context, req *pubsubpb.ListTopicsRequest, opts ...gax.CallOption) *TopicIterator
- func (c *PublisherClient) Publish(ctx context.Context, req *pubsubpb.PublishRequest, opts ...gax.CallOption) (*pubsubpb.PublishResponse, error)
- func (pc *PublisherClient) SetGoogleClientInfo(keyval ...string)
- func (c *PublisherClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *PublisherClient) SubscriptionIAM(subscription *pubsubpb.Subscription) *iam.Handle
- func (c *PublisherClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
- func (c *PublisherClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle
- func (c *PublisherClient) UpdateTopic(ctx context.Context, req *pubsubpb.UpdateTopicRequest, opts ...gax.CallOption) (*pubsubpb.Topic, error)
- type SchemaCallOptions
- type SchemaClient
- func NewSchemaClient(ctx context.Context, opts ...option.ClientOption) (*SchemaClient, error)
- func NewSchemaRESTClient(ctx context.Context, opts ...option.ClientOption) (*SchemaClient, error)
- func (c *SchemaClient) Close() error
- func (c *SchemaClient) CommitSchema(ctx context.Context, req *pubsubpb.CommitSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
- func (c *SchemaClient) Connection() *grpc.ClientConn
- func (c *SchemaClient) CreateSchema(ctx context.Context, req *pubsubpb.CreateSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
- func (c *SchemaClient) DeleteSchema(ctx context.Context, req *pubsubpb.DeleteSchemaRequest, opts ...gax.CallOption) error
- func (c *SchemaClient) DeleteSchemaRevision(ctx context.Context, req *pubsubpb.DeleteSchemaRevisionRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
- func (c *SchemaClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *SchemaClient) GetSchema(ctx context.Context, req *pubsubpb.GetSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
- func (c *SchemaClient) ListSchemaRevisions(ctx context.Context, req *pubsubpb.ListSchemaRevisionsRequest, opts ...gax.CallOption) *SchemaIterator
- func (c *SchemaClient) ListSchemas(ctx context.Context, req *pubsubpb.ListSchemasRequest, opts ...gax.CallOption) *SchemaIterator
- func (c *SchemaClient) RollbackSchema(ctx context.Context, req *pubsubpb.RollbackSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
- func (c *SchemaClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *SchemaClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
- func (c *SchemaClient) ValidateMessage(ctx context.Context, req *pubsubpb.ValidateMessageRequest, opts ...gax.CallOption) (*pubsubpb.ValidateMessageResponse, error)
- func (c *SchemaClient) ValidateSchema(ctx context.Context, req *pubsubpb.ValidateSchemaRequest, opts ...gax.CallOption) (*pubsubpb.ValidateSchemaResponse, error)
- type SchemaIterator
- func (it *SchemaIterator) All() iter.Seq2[*pubsubpb.Schema, error]
- func (it *SchemaIterator) Next() (*pubsubpb.Schema, error)
- func (it *SchemaIterator) PageInfo() *iterator.PageInfo
- type SnapshotIterator
- func (it *SnapshotIterator) All() iter.Seq2[*pubsubpb.Snapshot, error]
- func (it *SnapshotIterator) Next() (*pubsubpb.Snapshot, error)
- func (it *SnapshotIterator) PageInfo() *iterator.PageInfo
- type StringIterator
- func (it *StringIterator) All() iter.Seq2[string, error]
- func (it *StringIterator) Next() (string, error)
- func (it *StringIterator) PageInfo() *iterator.PageInfo
- type SubscriberCallOptions
- type SubscriberClient
- func NewSubscriberClient(ctx context.Context, opts ...option.ClientOption) (*SubscriberClient, error)
- func NewSubscriberRESTClient(ctx context.Context, opts ...option.ClientOption) (*SubscriberClient, error)
- func (c *SubscriberClient) Acknowledge(ctx context.Context, req *pubsubpb.AcknowledgeRequest, opts ...gax.CallOption) error
- func (c *SubscriberClient) Close() error
- func (c *SubscriberClient) Connection() *grpc.ClientConn
- func (c *SubscriberClient) CreateSnapshot(ctx context.Context, req *pubsubpb.CreateSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error)
- func (c *SubscriberClient) CreateSubscription(ctx context.Context, req *pubsubpb.Subscription, opts ...gax.CallOption) (*pubsubpb.Subscription, error)
- func (c *SubscriberClient) DeleteSnapshot(ctx context.Context, req *pubsubpb.DeleteSnapshotRequest, opts ...gax.CallOption) error
- func (c *SubscriberClient) DeleteSubscription(ctx context.Context, req *pubsubpb.DeleteSubscriptionRequest, opts ...gax.CallOption) error
- func (c *SubscriberClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *SubscriberClient) GetSnapshot(ctx context.Context, req *pubsubpb.GetSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error)
- func (c *SubscriberClient) GetSubscription(ctx context.Context, req *pubsubpb.GetSubscriptionRequest, opts ...gax.CallOption) (*pubsubpb.Subscription, error)
- func (c *SubscriberClient) ListSnapshots(ctx context.Context, req *pubsubpb.ListSnapshotsRequest, opts ...gax.CallOption) *SnapshotIterator
- func (c *SubscriberClient) ListSubscriptions(ctx context.Context, req *pubsubpb.ListSubscriptionsRequest, opts ...gax.CallOption) *SubscriptionIterator
- func (c *SubscriberClient) ModifyAckDeadline(ctx context.Context, req *pubsubpb.ModifyAckDeadlineRequest, opts ...gax.CallOption) error
- func (c *SubscriberClient) ModifyPushConfig(ctx context.Context, req *pubsubpb.ModifyPushConfigRequest, opts ...gax.CallOption) error
- func (c *SubscriberClient) Pull(ctx context.Context, req *pubsubpb.PullRequest, opts ...gax.CallOption) (*pubsubpb.PullResponse, error)
- func (c *SubscriberClient) Seek(ctx context.Context, req *pubsubpb.SeekRequest, opts ...gax.CallOption) (*pubsubpb.SeekResponse, error)
- func (sc *SubscriberClient) SetGoogleClientInfo(keyval ...string)
- func (c *SubscriberClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *SubscriberClient) StreamingPull(ctx context.Context, opts ...gax.CallOption) (pubsubpb.Subscriber_StreamingPullClient, error)
- func (c *SubscriberClient) SubscriptionIAM(subscription *pubsubpb.Subscription) *iam.Handle
- func (c *SubscriberClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
- func (c *SubscriberClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle
- func (c *SubscriberClient) UpdateSnapshot(ctx context.Context, req *pubsubpb.UpdateSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error)
- func (c *SubscriberClient) UpdateSubscription(ctx context.Context, req *pubsubpb.UpdateSubscriptionRequest, opts ...gax.CallOption) (*pubsubpb.Subscription, error)
- type SubscriptionIterator
- func (it *SubscriptionIterator) All() iter.Seq2[*pubsubpb.Subscription, error]
- func (it *SubscriptionIterator) Next() (*pubsubpb.Subscription, error)
- func (it *SubscriptionIterator) PageInfo() *iterator.PageInfo
- type TopicIterator
Examples ¶
- NewPublisherClient
- NewPublisherRESTClient
- NewSchemaClient
- NewSchemaRESTClient
- NewSubscriberClient
- NewSubscriberRESTClient
- PublisherClient.CreateTopic
- PublisherClient.DeleteTopic
- PublisherClient.DetachSubscription
- PublisherClient.GetIamPolicy
- PublisherClient.GetTopic
- PublisherClient.ListTopicSnapshots
- PublisherClient.ListTopicSnapshots (All)
- PublisherClient.ListTopicSubscriptions
- PublisherClient.ListTopicSubscriptions (All)
- PublisherClient.ListTopics
- PublisherClient.ListTopics (All)
- PublisherClient.Publish
- PublisherClient.SetIamPolicy
- PublisherClient.TestIamPermissions
- PublisherClient.UpdateTopic
- SchemaClient.CommitSchema
- SchemaClient.CreateSchema
- SchemaClient.DeleteSchema
- SchemaClient.DeleteSchemaRevision
- SchemaClient.GetIamPolicy
- SchemaClient.GetSchema
- SchemaClient.ListSchemaRevisions
- SchemaClient.ListSchemaRevisions (All)
- SchemaClient.ListSchemas
- SchemaClient.ListSchemas (All)
- SchemaClient.RollbackSchema
- SchemaClient.SetIamPolicy
- SchemaClient.TestIamPermissions
- SchemaClient.ValidateMessage
- SchemaClient.ValidateSchema
- SubscriberClient.Acknowledge
- SubscriberClient.CreateSnapshot
- SubscriberClient.CreateSubscription
- SubscriberClient.DeleteSnapshot
- SubscriberClient.DeleteSubscription
- SubscriberClient.GetIamPolicy
- SubscriberClient.GetSnapshot
- SubscriberClient.GetSubscription
- SubscriberClient.ListSnapshots
- SubscriberClient.ListSnapshots (All)
- SubscriberClient.ListSubscriptions
- SubscriberClient.ListSubscriptions (All)
- SubscriberClient.ModifyAckDeadline
- SubscriberClient.ModifyPushConfig
- SubscriberClient.Pull
- SubscriberClient.Pull (LengthyClientProcessing)
- SubscriberClient.Seek
- SubscriberClient.SetIamPolicy
- SubscriberClient.StreamingPull
- SubscriberClient.TestIamPermissions
- SubscriberClient.UpdateSnapshot
- SubscriberClient.UpdateSubscription
Functions ¶
func DefaultAuthScopes ¶
func DefaultAuthScopes() []string
DefaultAuthScopes reports the default set of authentication scopes to use with this package.
func PublisherProjectPath ¶
PublisherProjectPath returns the path for the project resource.
Deprecated: Use
fmt.Sprintf("projects/%s", project)
instead.
func PublisherTopicPath ¶
PublisherTopicPath returns the path for the topic resource.
Deprecated: Use
fmt.Sprintf("projects/%s/topics/%s", project, topic)
instead.
func SubscriberProjectPath ¶
SubscriberProjectPath returns the path for the project resource.
Deprecated: Use
fmt.Sprintf("projects/%s", project)
instead.
func SubscriberSnapshotPath ¶
SubscriberSnapshotPath returns the path for the snapshot resource.
Deprecated: Use
fmt.Sprintf("projects/%s/snapshots/%s", project, snapshot)
instead.
func SubscriberSubscriptionPath ¶
SubscriberSubscriptionPath returns the path for the subscription resource.
Deprecated: Use
fmt.Sprintf("projects/%s/subscriptions/%s", project, subscription)
instead.
func SubscriberTopicPath ¶
SubscriberTopicPath returns the path for the topic resource.
Deprecated: Use
fmt.Sprintf("projects/%s/topics/%s", project, topic)
instead.
Types ¶
type PublisherCallOptions ¶
type PublisherCallOptions struct { CreateTopic []gax.CallOption UpdateTopic []gax.CallOption Publish []gax.CallOption GetTopic []gax.CallOption ListTopics []gax.CallOption ListTopicSubscriptions []gax.CallOption ListTopicSnapshots []gax.CallOption DeleteTopic []gax.CallOption DetachSubscription []gax.CallOption GetIamPolicy []gax.CallOption SetIamPolicy []gax.CallOption TestIamPermissions []gax.CallOption }
PublisherCallOptions contains the retry settings for each method of PublisherClient.
type PublisherClient ¶
type PublisherClient struct { // The call options for this service. CallOptions *PublisherCallOptions // contains filtered or unexported fields }
PublisherClient is a client for interacting with Cloud Pub/Sub API. Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
The service that an application uses to manipulate topics, and to send messages to a topic.
func NewPublisherClient ¶
func NewPublisherClient(ctx context.Context, opts ...option.ClientOption) (*PublisherClient, error)
NewPublisherClient creates a new publisher client based on gRPC. The returned client must be Closed when it is done being used to clean up its underlying connections.
The service that an application uses to manipulate topics, and to send
messages to a topic.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
// TODO: Use client.
_ = c
}
func NewPublisherRESTClient ¶
func NewPublisherRESTClient(ctx context.Context, opts ...option.ClientOption) (*PublisherClient, error)
NewPublisherRESTClient creates a new publisher rest client.
The service that an application uses to manipulate topics, and to send
messages to a topic.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherRESTClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
// TODO: Use client.
_ = c
}
func (*PublisherClient) Close ¶
func (c *PublisherClient) Close() error
Close closes the connection to the API service. The user should invoke this when the client is no longer required.
func (*PublisherClient) Connection ¶
func (c *PublisherClient) Connection() *grpc.ClientConn
Connection returns a connection to the API service.
Deprecated: Connections are now pooled so this method does not always return the same resource.
func (*PublisherClient) CreateTopic ¶
func (c *PublisherClient) CreateTopic(ctx context.Context, req *pubsubpb.Topic, opts ...gax.CallOption) (*pubsubpb.Topic, error)
CreateTopic creates the given topic with the given name. See the [resource name rules]
(https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names (at https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names)).
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.Topic{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#Topic.
}
resp, err := c.CreateTopic(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) DeleteTopic ¶
func (c *PublisherClient) DeleteTopic(ctx context.Context, req *pubsubpb.DeleteTopicRequest, opts ...gax.CallOption) error
DeleteTopic deletes the topic with the given name. Returns NOT_FOUND if the topic
does not exist. After a topic is deleted, a new topic may be created with
the same name; this is an entirely new topic with none of the old
configuration or subscriptions. Existing subscriptions to this topic are
not deleted, but their topic field is set to _deleted-topic_.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.DeleteTopicRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#DeleteTopicRequest.
}
err = c.DeleteTopic(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*PublisherClient) DetachSubscription ¶
func (c *PublisherClient) DetachSubscription(ctx context.Context, req *pubsubpb.DetachSubscriptionRequest, opts ...gax.CallOption) (*pubsubpb.DetachSubscriptionResponse, error)
DetachSubscription detaches a subscription from this topic. All messages retained in the
subscription are dropped. Subsequent Pull and StreamingPull requests
will return FAILED_PRECONDITION. If the subscription is a push
subscription, pushes to the endpoint will stop.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.DetachSubscriptionRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#DetachSubscriptionRequest.
}
resp, err := c.DetachSubscription(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) GetIamPolicy ¶
func (c *PublisherClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
GetIamPolicy gets the access control policy for a resource. Returns an empty policy
if the resource exists and does not have a policy set.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.GetIamPolicyRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest.
}
resp, err := c.GetIamPolicy(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) GetTopic ¶
func (c *PublisherClient) GetTopic(ctx context.Context, req *pubsubpb.GetTopicRequest, opts ...gax.CallOption) (*pubsubpb.Topic, error)
GetTopic gets the configuration of a topic.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.GetTopicRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#GetTopicRequest.
}
resp, err := c.GetTopic(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) ListTopicSnapshots ¶
func (c *PublisherClient) ListTopicSnapshots(ctx context.Context, req *pubsubpb.ListTopicSnapshotsRequest, opts ...gax.CallOption) *StringIterator
ListTopicSnapshots lists the names of the snapshots on this topic. Snapshots are used in
Seek (at https://cloud.google.com/pubsub/docs/replay-overview) operations,
which allow you to manage message acknowledgments in bulk. That is, you can
set the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListTopicSnapshotsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListTopicSnapshotsRequest.
}
it := c.ListTopicSnapshots(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListTopicSnapshotsResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListTopicSnapshotsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListTopicSnapshotsRequest.
}
for resp, err := range c.ListTopicSnapshots(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*PublisherClient) ListTopicSubscriptions ¶
func (c *PublisherClient) ListTopicSubscriptions(ctx context.Context, req *pubsubpb.ListTopicSubscriptionsRequest, opts ...gax.CallOption) *StringIterator
ListTopicSubscriptions lists the names of the attached subscriptions on this topic.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListTopicSubscriptionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListTopicSubscriptionsRequest.
}
it := c.ListTopicSubscriptions(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListTopicSubscriptionsResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListTopicSubscriptionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListTopicSubscriptionsRequest.
}
for resp, err := range c.ListTopicSubscriptions(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*PublisherClient) ListTopics ¶
func (c *PublisherClient) ListTopics(ctx context.Context, req *pubsubpb.ListTopicsRequest, opts ...gax.CallOption) *TopicIterator
ListTopics lists matching topics.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListTopicsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListTopicsRequest.
}
it := c.ListTopics(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListTopicsResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListTopicsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListTopicsRequest.
}
for resp, err := range c.ListTopics(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*PublisherClient) Publish ¶
func (c *PublisherClient) Publish(ctx context.Context, req *pubsubpb.PublishRequest, opts ...gax.CallOption) (*pubsubpb.PublishResponse, error)
Publish adds one or more messages to the topic. Returns NOT_FOUND if the topic
does not exist.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.PublishRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#PublishRequest.
}
resp, err := c.Publish(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) SetGoogleClientInfo ¶
func (pc *PublisherClient) SetGoogleClientInfo(keyval ...string)
SetGoogleClientInfo sets the name and version of the application in the `x-goog-api-client` header passed on each request. Also passes any provided key-value pairs. Intended for use by Google-written clients.
Internal use only.
func (*PublisherClient) SetIamPolicy ¶
func (c *PublisherClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
SetIamPolicy sets the access control policy on the specified resource. Replaces any existing policy.
Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED
errors.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.SetIamPolicyRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest.
}
resp, err := c.SetIamPolicy(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) SubscriptionIAM ¶
func (c *PublisherClient) SubscriptionIAM(subscription *pubsubpb.Subscription) *iam.Handle
func (*PublisherClient) TestIamPermissions ¶
func (c *PublisherClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
TestIamPermissions returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.
Note: This operation is designed to be used for building
permission-aware UIs and command-line tools, not for authorization
checking. This operation may “fail open” without warning.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.TestIamPermissionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest.
}
resp, err := c.TestIamPermissions(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*PublisherClient) TopicIAM ¶
func (c *PublisherClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle
func (*PublisherClient) UpdateTopic ¶
func (c *PublisherClient) UpdateTopic(ctx context.Context, req *pubsubpb.UpdateTopicRequest, opts ...gax.CallOption) (*pubsubpb.Topic, error)
UpdateTopic updates an existing topic by updating the fields specified in the update
mask. Note that certain properties of a topic are not modifiable.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.UpdateTopicRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#UpdateTopicRequest.
}
resp, err := c.UpdateTopic(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
type SchemaCallOptions ¶
type SchemaCallOptions struct { CreateSchema []gax.CallOption GetSchema []gax.CallOption ListSchemas []gax.CallOption ListSchemaRevisions []gax.CallOption CommitSchema []gax.CallOption RollbackSchema []gax.CallOption DeleteSchemaRevision []gax.CallOption DeleteSchema []gax.CallOption ValidateSchema []gax.CallOption ValidateMessage []gax.CallOption GetIamPolicy []gax.CallOption SetIamPolicy []gax.CallOption TestIamPermissions []gax.CallOption }
SchemaCallOptions contains the retry settings for each method of SchemaClient.
type SchemaClient ¶
type SchemaClient struct { // The call options for this service. CallOptions *SchemaCallOptions // contains filtered or unexported fields }
SchemaClient is a client for interacting with Cloud Pub/Sub API. Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
Service for doing schema-related operations.
func NewSchemaClient ¶
func NewSchemaClient(ctx context.Context, opts ...option.ClientOption) (*SchemaClient, error)
NewSchemaClient creates a new schema service client based on gRPC. The returned client must be Closed when it is done being used to clean up its underlying connections.
Service for doing schema-related operations.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
// TODO: Use client.
_ = c
}
func NewSchemaRESTClient ¶
func NewSchemaRESTClient(ctx context.Context, opts ...option.ClientOption) (*SchemaClient, error)
NewSchemaRESTClient creates a new schema service rest client.
Service for doing schema-related operations.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaRESTClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
// TODO: Use client.
_ = c
}
func (*SchemaClient) Close ¶
func (c *SchemaClient) Close() error
Close closes the connection to the API service. The user should invoke this when the client is no longer required.
func (*SchemaClient) CommitSchema ¶
func (c *SchemaClient) CommitSchema(ctx context.Context, req *pubsubpb.CommitSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
CommitSchema commits a new schema revision to an existing schema.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.CommitSchemaRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#CommitSchemaRequest.
}
resp, err := c.CommitSchema(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) Connection ¶
func (c *SchemaClient) Connection() *grpc.ClientConn
Connection returns a connection to the API service.
Deprecated: Connections are now pooled so this method does not always return the same resource.
func (*SchemaClient) CreateSchema ¶
func (c *SchemaClient) CreateSchema(ctx context.Context, req *pubsubpb.CreateSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
CreateSchema creates a schema.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.CreateSchemaRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#CreateSchemaRequest.
}
resp, err := c.CreateSchema(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) DeleteSchema ¶
func (c *SchemaClient) DeleteSchema(ctx context.Context, req *pubsubpb.DeleteSchemaRequest, opts ...gax.CallOption) error
DeleteSchema deletes a schema.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.DeleteSchemaRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#DeleteSchemaRequest.
}
err = c.DeleteSchema(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*SchemaClient) DeleteSchemaRevision ¶
func (c *SchemaClient) DeleteSchemaRevision(ctx context.Context, req *pubsubpb.DeleteSchemaRevisionRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
DeleteSchemaRevision deletes a specific schema revision.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.DeleteSchemaRevisionRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#DeleteSchemaRevisionRequest.
}
resp, err := c.DeleteSchemaRevision(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) GetIamPolicy ¶
func (c *SchemaClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
GetIamPolicy gets the access control policy for a resource. Returns an empty policy
if the resource exists and does not have a policy set.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.GetIamPolicyRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest.
}
resp, err := c.GetIamPolicy(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) GetSchema ¶
func (c *SchemaClient) GetSchema(ctx context.Context, req *pubsubpb.GetSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
GetSchema gets a schema.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.GetSchemaRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#GetSchemaRequest.
}
resp, err := c.GetSchema(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) ListSchemaRevisions ¶
func (c *SchemaClient) ListSchemaRevisions(ctx context.Context, req *pubsubpb.ListSchemaRevisionsRequest, opts ...gax.CallOption) *SchemaIterator
ListSchemaRevisions lists all schema revisions for the named schema.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSchemaRevisionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSchemaRevisionsRequest.
}
it := c.ListSchemaRevisions(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListSchemaRevisionsResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSchemaRevisionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSchemaRevisionsRequest.
}
for resp, err := range c.ListSchemaRevisions(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*SchemaClient) ListSchemas ¶
func (c *SchemaClient) ListSchemas(ctx context.Context, req *pubsubpb.ListSchemasRequest, opts ...gax.CallOption) *SchemaIterator
ListSchemas lists schemas in a project.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSchemasRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSchemasRequest.
}
it := c.ListSchemas(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListSchemasResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSchemasRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSchemasRequest.
}
for resp, err := range c.ListSchemas(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*SchemaClient) RollbackSchema ¶
func (c *SchemaClient) RollbackSchema(ctx context.Context, req *pubsubpb.RollbackSchemaRequest, opts ...gax.CallOption) (*pubsubpb.Schema, error)
RollbackSchema creates a new schema revision that is a copy of the provided revision_id.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.RollbackSchemaRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#RollbackSchemaRequest.
}
resp, err := c.RollbackSchema(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) SetIamPolicy ¶
func (c *SchemaClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
SetIamPolicy sets the access control policy on the specified resource. Replaces any existing policy.
Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED
errors.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.SetIamPolicyRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest.
}
resp, err := c.SetIamPolicy(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) TestIamPermissions ¶
func (c *SchemaClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
TestIamPermissions returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.
Note: This operation is designed to be used for building
permission-aware UIs and command-line tools, not for authorization
checking. This operation may “fail open” without warning.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.TestIamPermissionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest.
}
resp, err := c.TestIamPermissions(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) ValidateMessage ¶
func (c *SchemaClient) ValidateMessage(ctx context.Context, req *pubsubpb.ValidateMessageRequest, opts ...gax.CallOption) (*pubsubpb.ValidateMessageResponse, error)
ValidateMessage validates a message against a schema.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ValidateMessageRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ValidateMessageRequest.
}
resp, err := c.ValidateMessage(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SchemaClient) ValidateSchema ¶
func (c *SchemaClient) ValidateSchema(ctx context.Context, req *pubsubpb.ValidateSchemaRequest, opts ...gax.CallOption) (*pubsubpb.ValidateSchemaResponse, error)
ValidateSchema validates a schema.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSchemaClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ValidateSchemaRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ValidateSchemaRequest.
}
resp, err := c.ValidateSchema(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
type SchemaIterator ¶
type SchemaIterator struct { // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*pubsubpb.Schema, nextPageToken string, err error) // contains filtered or unexported fields }
SchemaIterator manages a stream of *pubsubpb.Schema.
func (*SchemaIterator) All ¶
All returns an iterator. If an error is returned by the iterator, the iterator will stop after that iteration.
func (*SchemaIterator) Next ¶
func (it *SchemaIterator) Next() (*pubsubpb.Schema, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*SchemaIterator) PageInfo ¶
func (it *SchemaIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type SnapshotIterator ¶
type SnapshotIterator struct { // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*pubsubpb.Snapshot, nextPageToken string, err error) // contains filtered or unexported fields }
SnapshotIterator manages a stream of *pubsubpb.Snapshot.
func (*SnapshotIterator) All ¶
All returns an iterator. If an error is returned by the iterator, the iterator will stop after that iteration.
func (*SnapshotIterator) Next ¶
func (it *SnapshotIterator) Next() (*pubsubpb.Snapshot, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*SnapshotIterator) PageInfo ¶
func (it *SnapshotIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type StringIterator ¶
type StringIterator struct { // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []string, nextPageToken string, err error) // contains filtered or unexported fields }
StringIterator manages a stream of string.
func (*StringIterator) All ¶
func (it *StringIterator) All() iter.Seq2[string, error]
All returns an iterator. If an error is returned by the iterator, the iterator will stop after that iteration.
func (*StringIterator) Next ¶
func (it *StringIterator) Next() (string, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*StringIterator) PageInfo ¶
func (it *StringIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type SubscriberCallOptions ¶
type SubscriberCallOptions struct { CreateSubscription []gax.CallOption GetSubscription []gax.CallOption UpdateSubscription []gax.CallOption ListSubscriptions []gax.CallOption DeleteSubscription []gax.CallOption ModifyAckDeadline []gax.CallOption Acknowledge []gax.CallOption Pull []gax.CallOption StreamingPull []gax.CallOption ModifyPushConfig []gax.CallOption GetSnapshot []gax.CallOption ListSnapshots []gax.CallOption CreateSnapshot []gax.CallOption UpdateSnapshot []gax.CallOption DeleteSnapshot []gax.CallOption Seek []gax.CallOption GetIamPolicy []gax.CallOption SetIamPolicy []gax.CallOption TestIamPermissions []gax.CallOption }
SubscriberCallOptions contains the retry settings for each method of SubscriberClient.
type SubscriberClient ¶
type SubscriberClient struct { // The call options for this service. CallOptions *SubscriberCallOptions // contains filtered or unexported fields }
SubscriberClient is a client for interacting with Cloud Pub/Sub API. Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
The service that an application uses to manipulate subscriptions and to consume messages from a subscription via the Pull method or by establishing a bi-directional stream using the StreamingPull method.
func NewSubscriberClient ¶
func NewSubscriberClient(ctx context.Context, opts ...option.ClientOption) (*SubscriberClient, error)
NewSubscriberClient creates a new subscriber client based on gRPC. The returned client must be Closed when it is done being used to clean up its underlying connections.
The service that an application uses to manipulate subscriptions and to
consume messages from a subscription via the Pull method or by
establishing a bi-directional stream using the StreamingPull method.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
// TODO: Use client.
_ = c
}
func NewSubscriberRESTClient ¶
func NewSubscriberRESTClient(ctx context.Context, opts ...option.ClientOption) (*SubscriberClient, error)
NewSubscriberRESTClient creates a new subscriber rest client.
The service that an application uses to manipulate subscriptions and to
consume messages from a subscription via the Pull method or by
establishing a bi-directional stream using the StreamingPull method.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberRESTClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
// TODO: Use client.
_ = c
}
func (*SubscriberClient) Acknowledge ¶
func (c *SubscriberClient) Acknowledge(ctx context.Context, req *pubsubpb.AcknowledgeRequest, opts ...gax.CallOption) error
Acknowledge acknowledges the messages associated with the ack_ids in the AcknowledgeRequest. The Pub/Sub system can remove the relevant messages from the subscription.
Acknowledging a message whose ack deadline has expired may succeed,
but such a message may be redelivered later. Acknowledging a message more
than once will not result in an error.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.AcknowledgeRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#AcknowledgeRequest.
}
err = c.Acknowledge(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*SubscriberClient) Close ¶
func (c *SubscriberClient) Close() error
Close closes the connection to the API service. The user should invoke this when the client is no longer required.
func (*SubscriberClient) Connection ¶
func (c *SubscriberClient) Connection() *grpc.ClientConn
Connection returns a connection to the API service.
Deprecated: Connections are now pooled so this method does not always return the same resource.
func (*SubscriberClient) CreateSnapshot ¶
func (c *SubscriberClient) CreateSnapshot(ctx context.Context, req *pubsubpb.CreateSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error)
CreateSnapshot creates a snapshot from the requested subscription. Snapshots are used in
Seek (at https://cloud.google.com/pubsub/docs/replay-overview) operations,
which allow you to manage message acknowledgments in bulk. That is, you can
set the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot.
If the snapshot already exists, returns ALREADY_EXISTS.
If the requested subscription doesn’t exist, returns NOT_FOUND.
If the backlog in the subscription is too old – and the resulting snapshot
would expire in less than 1 hour – then FAILED_PRECONDITION is returned.
See also the Snapshot.expire_time field. If the name is not provided in
the request, the server will assign a random
name for this snapshot on the same project as the subscription, conforming
to the [resource name format]
(https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names (at https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names)). The
generated name is populated in the returned Snapshot object. Note that for
REST API requests, you must specify a name in the request.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.CreateSnapshotRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#CreateSnapshotRequest.
}
resp, err := c.CreateSnapshot(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) CreateSubscription ¶
func (c *SubscriberClient) CreateSubscription(ctx context.Context, req *pubsubpb.Subscription, opts ...gax.CallOption) (*pubsubpb.Subscription, error)
CreateSubscription creates a subscription to a given topic. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names (at https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names)). If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn’t exist, returns NOT_FOUND.
If the name is not provided in the request, the server will assign a random
name for this subscription on the same project as the topic, conforming
to the [resource name format]
(https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names (at https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names)). The
generated name is populated in the returned Subscription object. Note that
for REST API requests, you must specify a name in the request.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.Subscription{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#Subscription.
}
resp, err := c.CreateSubscription(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) DeleteSnapshot ¶
func (c *SubscriberClient) DeleteSnapshot(ctx context.Context, req *pubsubpb.DeleteSnapshotRequest, opts ...gax.CallOption) error
DeleteSnapshot removes an existing snapshot. Snapshots are used in [Seek]
(https://cloud.google.com/pubsub/docs/replay-overview (at https://cloud.google.com/pubsub/docs/replay-overview)) operations, which
allow you to manage message acknowledgments in bulk. That is, you can set
the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot.
When the snapshot is deleted, all messages retained in the snapshot
are immediately dropped. After a snapshot is deleted, a new one may be
created with the same name, but the new one has no association with the old
snapshot or its subscription, unless the same subscription is specified.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.DeleteSnapshotRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#DeleteSnapshotRequest.
}
err = c.DeleteSnapshot(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*SubscriberClient) DeleteSubscription ¶
func (c *SubscriberClient) DeleteSubscription(ctx context.Context, req *pubsubpb.DeleteSubscriptionRequest, opts ...gax.CallOption) error
DeleteSubscription deletes an existing subscription. All messages retained in the subscription
are immediately dropped. Calls to Pull after deletion will return
NOT_FOUND. After a subscription is deleted, a new one may be created with
the same name, but the new one has no association with the old
subscription or its topic unless the same topic is specified.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.DeleteSubscriptionRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#DeleteSubscriptionRequest.
}
err = c.DeleteSubscription(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*SubscriberClient) GetIamPolicy ¶
func (c *SubscriberClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
GetIamPolicy gets the access control policy for a resource. Returns an empty policy
if the resource exists and does not have a policy set.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.GetIamPolicyRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest.
}
resp, err := c.GetIamPolicy(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) GetSnapshot ¶
func (c *SubscriberClient) GetSnapshot(ctx context.Context, req *pubsubpb.GetSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error)
GetSnapshot gets the configuration details of a snapshot. Snapshots are used in
Seek (at https://cloud.google.com/pubsub/docs/replay-overview) operations,
which allow you to manage message acknowledgments in bulk. That is, you can
set the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.GetSnapshotRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#GetSnapshotRequest.
}
resp, err := c.GetSnapshot(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) GetSubscription ¶
func (c *SubscriberClient) GetSubscription(ctx context.Context, req *pubsubpb.GetSubscriptionRequest, opts ...gax.CallOption) (*pubsubpb.Subscription, error)
GetSubscription gets the configuration details of a subscription.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.GetSubscriptionRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#GetSubscriptionRequest.
}
resp, err := c.GetSubscription(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) ListSnapshots ¶
func (c *SubscriberClient) ListSnapshots(ctx context.Context, req *pubsubpb.ListSnapshotsRequest, opts ...gax.CallOption) *SnapshotIterator
ListSnapshots lists the existing snapshots. Snapshots are used in Seek (at https://cloud.google.com/pubsub/docs/replay-overview) operations, which
allow you to manage message acknowledgments in bulk. That is, you can set
the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSnapshotsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSnapshotsRequest.
}
it := c.ListSnapshots(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListSnapshotsResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSnapshotsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSnapshotsRequest.
}
for resp, err := range c.ListSnapshots(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*SubscriberClient) ListSubscriptions ¶
func (c *SubscriberClient) ListSubscriptions(ctx context.Context, req *pubsubpb.ListSubscriptionsRequest, opts ...gax.CallOption) *SubscriptionIterator
ListSubscriptions lists matching subscriptions.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
"google.golang.org/api/iterator"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSubscriptionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSubscriptionsRequest.
}
it := c.ListSubscriptions(ctx, req)
for {
resp, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
// If you need to access the underlying RPC response,
// you can do so by casting the `Response` as below.
// Otherwise, remove this line. Only populated after
// first call to Next(). Not safe for concurrent access.
_ = it.Response.(*pubsubpb.ListSubscriptionsResponse)
}
}
Example (All)¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ListSubscriptionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ListSubscriptionsRequest.
}
for resp, err := range c.ListSubscriptions(ctx, req).All() {
if err != nil {
// TODO: Handle error and break/return/continue. Iteration will stop after any error.
}
// TODO: Use resp.
_ = resp
}
}
func (*SubscriberClient) ModifyAckDeadline ¶
func (c *SubscriberClient) ModifyAckDeadline(ctx context.Context, req *pubsubpb.ModifyAckDeadlineRequest, opts ...gax.CallOption) error
ModifyAckDeadline modifies the ack deadline for a specific message. This method is useful
to indicate that more time is needed to process a message by the
subscriber, or to make the message available for redelivery if the
processing was interrupted. Note that this does not modify the
subscription-level ackDeadlineSeconds used for subsequent messages.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ModifyAckDeadlineRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ModifyAckDeadlineRequest.
}
err = c.ModifyAckDeadline(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*SubscriberClient) ModifyPushConfig ¶
func (c *SubscriberClient) ModifyPushConfig(ctx context.Context, req *pubsubpb.ModifyPushConfigRequest, opts ...gax.CallOption) error
ModifyPushConfig modifies the PushConfig for a specified subscription.
This may be used to change a push subscription to a pull one (signified by
an empty PushConfig) or vice versa, or change the endpoint URL and other
attributes of a push subscription. Messages will accumulate for delivery
continuously through the call regardless of changes to the PushConfig.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.ModifyPushConfigRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#ModifyPushConfigRequest.
}
err = c.ModifyPushConfig(ctx, req)
if err != nil {
// TODO: Handle error.
}
}
func (*SubscriberClient) Pull ¶
func (c *SubscriberClient) Pull(ctx context.Context, req *pubsubpb.PullRequest, opts ...gax.CallOption) (*pubsubpb.PullResponse, error)
Pull pulls messages from the server.
Code:play
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.PullRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#PullRequest.
}
resp, err := c.Pull(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
Example (LengthyClientProcessing)¶
package main
import (
"context"
"fmt"
"log"
"time"
pubsub "cloud.google.com/go/pubsub/apiv1"
"cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
projectID := "some-project"
subscriptionID := "some-subscription"
ctx := context.Background()
client, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
log.Fatal(err)
}
defer client.Close()
sub := fmt.Sprintf("projects/%s/subscriptions/%s", projectID, subscriptionID)
// Be sure to tune the MaxMessages parameter per your project's needs, and accordingly
// adjust the ack behavior below to batch acknowledgements.
req := pubsubpb.PullRequest{
Subscription: sub,
MaxMessages: 1,
}
fmt.Println("Listening..")
for {
res, err := client.Pull(ctx, &req)
if err != nil {
log.Fatal(err)
}
// client.Pull returns an empty list if there are no messages available in the
// backlog. We should skip processing steps when that happens.
if len(res.ReceivedMessages) == 0 {
continue
}
var recvdAckIDs []string
for _, m := range res.ReceivedMessages {
recvdAckIDs = append(recvdAckIDs, m.AckId)
}
var done = make(chan struct{})
var delay = 0 * time.Second // Tick immediately upon reception
var ackDeadline = 10 * time.Second
// Continuously notify the server that processing is still happening on this batch.
go func() {
for {
select {
case <-ctx.Done():
return
case <-done:
return
case <-time.After(delay):
err := client.ModifyAckDeadline(ctx, &pubsubpb.ModifyAckDeadlineRequest{
Subscription: sub,
AckIds: recvdAckIDs,
AckDeadlineSeconds: int32(ackDeadline.Seconds()),
})
if err != nil {
log.Fatal(err)
}
delay = ackDeadline - 5*time.Second // 5 seconds grace period.
}
}
}()
for _, m := range res.ReceivedMessages {
// Process the message here, possibly in a goroutine.
log.Printf("Got message: %s", string(m.Message.Data))
err := client.Acknowledge(ctx, &pubsubpb.AcknowledgeRequest{
Subscription: sub,
AckIds: []string{m.AckId},
})
if err != nil {
log.Fatal(err)
}
}
close(done)
}
}
func (*SubscriberClient) Seek ¶
func (c *SubscriberClient) Seek(ctx context.Context, req *pubsubpb.SeekRequest, opts ...gax.CallOption) (*pubsubpb.SeekResponse, error)
Seek seeks an existing subscription to a point in time or to a given snapshot,
whichever is provided in the request. Snapshots are used in [Seek]
(https://cloud.google.com/pubsub/docs/replay-overview (at https://cloud.google.com/pubsub/docs/replay-overview)) operations, which
allow you to manage message acknowledgments in bulk. That is, you can set
the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot. Note that both the subscription and the
snapshot must be on the same topic.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.SeekRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#SeekRequest.
}
resp, err := c.Seek(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) SetGoogleClientInfo ¶
func (sc *SubscriberClient) SetGoogleClientInfo(keyval ...string)
SetGoogleClientInfo sets the name and version of the application in the `x-goog-api-client` header passed on each request. Also passes any provided key-value pairs. Intended for use by Google-written clients.
Internal use only.
func (*SubscriberClient) SetIamPolicy ¶
func (c *SubscriberClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
SetIamPolicy sets the access control policy on the specified resource. Replaces any existing policy.
Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED
errors.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.SetIamPolicyRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest.
}
resp, err := c.SetIamPolicy(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) StreamingPull ¶
func (c *SubscriberClient) StreamingPull(ctx context.Context, opts ...gax.CallOption) (pubsubpb.Subscriber_StreamingPullClient, error)
StreamingPull establishes a stream with the server, which sends messages down to the client. The client streams acknowledgements and ack deadline modifications back to the server. The server will close the stream and return the status on any error. The server may close the stream with status UNAVAILABLE to reassign server-side resources, in which case, the client should re-establish the stream. Flow control can be achieved by configuring the underlying RPC channel.
This method is not supported for the REST transport.
Code:play
Example¶
package main
import (
"context"
"io"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
stream, err := c.StreamingPull(ctx)
if err != nil {
// TODO: Handle error.
}
go func() {
reqs := []*pubsubpb.StreamingPullRequest{
// TODO: Create requests.
}
for _, req := range reqs {
if err := stream.Send(req); err != nil {
// TODO: Handle error.
}
}
stream.CloseSend()
}()
for {
resp, err := stream.Recv()
if err == io.EOF {
break
}
if err != nil {
// TODO: handle error.
}
// TODO: Use resp.
_ = resp
}
}
func (*SubscriberClient) SubscriptionIAM ¶
func (c *SubscriberClient) SubscriptionIAM(subscription *pubsubpb.Subscription) *iam.Handle
func (*SubscriberClient) TestIamPermissions ¶
func (c *SubscriberClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
TestIamPermissions returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.
Note: This operation is designed to be used for building
permission-aware UIs and command-line tools, not for authorization
checking. This operation may “fail open” without warning.
Code:play
Example¶
package main
import (
"context"
iampb "cloud.google.com/go/iam/apiv1/iampb"
pubsub "cloud.google.com/go/pubsub/apiv1"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &iampb.TestIamPermissionsRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest.
}
resp, err := c.TestIamPermissions(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) TopicIAM ¶
func (c *SubscriberClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle
func (*SubscriberClient) UpdateSnapshot ¶
func (c *SubscriberClient) UpdateSnapshot(ctx context.Context, req *pubsubpb.UpdateSnapshotRequest, opts ...gax.CallOption) (*pubsubpb.Snapshot, error)
UpdateSnapshot updates an existing snapshot by updating the fields specified in the update
mask. Snapshots are used in
Seek (at https://cloud.google.com/pubsub/docs/replay-overview) operations,
which allow you to manage message acknowledgments in bulk. That is, you can
set the acknowledgment state of messages in an existing subscription to the
state captured by a snapshot.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.UpdateSnapshotRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#UpdateSnapshotRequest.
}
resp, err := c.UpdateSnapshot(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
func (*SubscriberClient) UpdateSubscription ¶
func (c *SubscriberClient) UpdateSubscription(ctx context.Context, req *pubsubpb.UpdateSubscriptionRequest, opts ...gax.CallOption) (*pubsubpb.Subscription, error)
UpdateSubscription updates an existing subscription by updating the fields specified in the
update mask. Note that certain properties of a subscription, such as its
topic, are not modifiable.
Code:play
Example¶
package main
import (
"context"
pubsub "cloud.google.com/go/pubsub/apiv1"
pubsubpb "cloud.google.com/go/pubsub/apiv1/pubsubpb"
)
func main() {
ctx := context.Background()
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in:
// https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
// TODO: Handle error.
}
defer c.Close()
req := &pubsubpb.UpdateSubscriptionRequest{
// TODO: Fill request struct fields.
// See https://pkg.go.dev/cloud.google.com/go/pubsub/apiv1/pubsubpb#UpdateSubscriptionRequest.
}
resp, err := c.UpdateSubscription(ctx, req)
if err != nil {
// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
}
type SubscriptionIterator ¶
type SubscriptionIterator struct { // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*pubsubpb.Subscription, nextPageToken string, err error) // contains filtered or unexported fields }
SubscriptionIterator manages a stream of *pubsubpb.Subscription.
func (*SubscriptionIterator) All ¶
func (it *SubscriptionIterator) All() iter.Seq2[*pubsubpb.Subscription, error]
All returns an iterator. If an error is returned by the iterator, the iterator will stop after that iteration.
func (*SubscriptionIterator) Next ¶
func (it *SubscriptionIterator) Next() (*pubsubpb.Subscription, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*SubscriptionIterator) PageInfo ¶
func (it *SubscriptionIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type TopicIterator ¶
type TopicIterator struct { // Response is the raw response for the current page. // It must be cast to the RPC response type. // Calling Next() or InternalFetch() updates this value. Response interface{} // InternalFetch is for use by the Google Cloud Libraries only. // It is not part of the stable interface of this package. // // InternalFetch returns results from a single call to the underlying RPC. // The number of results is no greater than pageSize. // If there are no more results, nextPageToken is empty and err is nil. InternalFetch func(pageSize int, pageToken string) (results []*pubsubpb.Topic, nextPageToken string, err error) // contains filtered or unexported fields }
TopicIterator manages a stream of *pubsubpb.Topic.
func (*TopicIterator) All ¶
All returns an iterator. If an error is returned by the iterator, the iterator will stop after that iteration.
func (*TopicIterator) Next ¶
func (it *TopicIterator) Next() (*pubsubpb.Topic, error)
Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*TopicIterator) PageInfo ¶
func (it *TopicIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
Source Files ¶
auxiliary.go auxiliary_go123.go doc.go helpers.go iam.go info.go path_funcs.go publisher_client.go schema_client.go subscriber_client.go version.go
Directories ¶
Path | Synopsis |
---|---|
apiv1/pubsubpb |
- Version
- v1.47.0 (latest)
- Published
- Jan 31, 2025
- Platform
- linux/amd64
- Imports
- 29 packages
- Last checked
- 3 hours ago –
Tools for package owners.