pubsub

package
v0.24.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2018 License: Apache-2.0 Imports: 13 Imported by: 0

README

Auto-generated pubsub v1 clients

This package includes auto-generated clients for the pubsub v1 API.

Use the handwritten client (in the parent directory, cloud.google.com/go/pubsub) in preference to this.

This code is EXPERIMENTAL and subject to CHANGE AT ANY TIME.

Documentation

Overview

Package pubsub is an auto-generated package for the Google Cloud Pub/Sub API.

NOTE: This package is in alpha. It is not stable, and is likely to change.

Provides reliable, many-to-many, asynchronous messaging between applications.

Use the client at cloud.google.com/go/pubsub in preference to this.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultAuthScopes added in v0.8.0

func DefaultAuthScopes() []string

DefaultAuthScopes reports the default set of authentication scopes to use with this package.

func PublisherProjectPath deprecated

func PublisherProjectPath(project string) string

PublisherProjectPath returns the path for the project resource.

Deprecated: Use

fmt.Sprintf("projects/%s", project)

instead.

func PublisherTopicPath deprecated

func PublisherTopicPath(project, topic string) string

PublisherTopicPath returns the path for the topic resource.

Deprecated: Use

fmt.Sprintf("projects/%s/topics/%s", project, topic)

instead.

func SubscriberProjectPath deprecated

func SubscriberProjectPath(project string) string

SubscriberProjectPath returns the path for the project resource.

Deprecated: Use

fmt.Sprintf("projects/%s", project)

instead.

func SubscriberSnapshotPath deprecated added in v0.8.0

func SubscriberSnapshotPath(project, snapshot string) string

SubscriberSnapshotPath returns the path for the snapshot resource.

Deprecated: Use

fmt.Sprintf("projects/%s/snapshots/%s", project, snapshot)

instead.

func SubscriberSubscriptionPath deprecated

func SubscriberSubscriptionPath(project, subscription string) string

SubscriberSubscriptionPath returns the path for the subscription resource.

Deprecated: Use

fmt.Sprintf("projects/%s/subscriptions/%s", project, subscription)

instead.

func SubscriberTopicPath deprecated

func SubscriberTopicPath(project, topic string) string

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
	DeleteTopic            []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 Google Cloud Pub/Sub API.

Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.

func NewPublisherClient

func NewPublisherClient(ctx context.Context, opts ...option.ClientOption) (*PublisherClient, error)

NewPublisherClient creates a new publisher client.

The service that an application uses to manipulate topics, and to send messages to a topic.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use client.
_ = c
Output:

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 the client's connection to the API service.

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.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.Topic{
	// TODO: Fill request struct fields.
}
resp, err := c.CreateTopic(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

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_.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.DeleteTopicRequest{
	// TODO: Fill request struct fields.
}
err = c.DeleteTopic(ctx, req)
if err != nil {
	// TODO: Handle error.
}
Output:

func (*PublisherClient) GetTopic

GetTopic gets the configuration of a topic.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.GetTopicRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.GetTopic(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

func (*PublisherClient) ListTopicSubscriptions

func (c *PublisherClient) ListTopicSubscriptions(ctx context.Context, req *pubsubpb.ListTopicSubscriptionsRequest, opts ...gax.CallOption) *StringIterator

ListTopicSubscriptions lists the name of the subscriptions for this topic.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.ListTopicSubscriptionsRequest{
	// TODO: Fill request struct fields.
}
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
}
Output:

func (*PublisherClient) ListTopics

ListTopics lists matching topics.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.ListTopicsRequest{
	// TODO: Fill request struct fields.
}
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
}
Output:

func (*PublisherClient) Publish

Publish adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist. The message payload must not be empty; it must contain either a non-empty data field, or at least one attribute.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.PublishRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.Publish(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

func (*PublisherClient) SetGoogleClientInfo

func (c *PublisherClient) SetGoogleClientInfo(keyval ...string)

SetGoogleClientInfo sets the name and version of the application in the `x-goog-api-client` header passed on each request. Intended for use by Google-written clients.

func (*PublisherClient) SubscriptionIAM added in v0.4.0

func (c *PublisherClient) SubscriptionIAM(subscription *pubsubpb.Subscription) *iam.Handle
Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

subscription := &pubsubpb.Subscription{}
h := c.SubscriptionIAM(subscription)
policy, err := h.Policy(ctx)
if err != nil {
	// TODO: Handle error.
}
//TODO: Use the IAM policy
_ = policy
Output:

func (*PublisherClient) TopicIAM added in v0.4.0

func (c *PublisherClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle
Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

topic := &pubsubpb.Topic{}
h := c.TopicIAM(topic)
policy, err := h.Policy(ctx)
if err != nil {
	// TODO: Handle error.
}
//TODO: Use the IAM policy
_ = policy
Output:

func (*PublisherClient) UpdateTopic added in v0.13.0

UpdateTopic updates an existing topic. Note that certain properties of a topic are not modifiable. Options settings follow the style guide: NOTE: The style guide requires body: "topic" instead of body: "*". Keeping the latter for internal consistency in V1, however it should be corrected in V2. See https://cloud.google.com/apis/design/standard_methods#update for details.

Example
ctx := context.Background()
c, err := pubsub.NewPublisherClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.UpdateTopicRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.UpdateTopic(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

type SnapshotIterator added in v0.8.0

type SnapshotIterator struct {

	// 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) Next added in v0.8.0

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 added in v0.8.0

func (it *SnapshotIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

type StringIterator

type StringIterator struct {

	// 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) 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 added in v0.3.0

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
	ListSnapshots      []gax.CallOption
	CreateSnapshot     []gax.CallOption
	UpdateSnapshot     []gax.CallOption
	DeleteSnapshot     []gax.CallOption
	Seek               []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 Google Cloud Pub/Sub API.

Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.

func NewSubscriberClient

func NewSubscriberClient(ctx context.Context, opts ...option.ClientOption) (*SubscriberClient, error)

NewSubscriberClient creates a new subscriber client.

The service that an application uses to manipulate subscriptions and to consume messages from a subscription via the Pull method.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use client.
_ = c
Output:

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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.AcknowledgeRequest{
	// TODO: Fill request struct fields.
}
err = c.Acknowledge(ctx, req)
if err != nil {
	// TODO: Handle error.
}
Output:

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 the client's connection to the API service.

func (*SubscriberClient) CreateSnapshot added in v0.8.0

CreateSnapshot creates a snapshot from the requested subscription. If the snapshot already exists, returns ALREADY_EXISTS. If the requested subscription doesn't exist, returns NOT_FOUND.

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 (at https://cloud.google.com/pubsub/docs/overview#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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.CreateSnapshotRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.CreateSnapshot(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

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. 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 (at https://cloud.google.com/pubsub/docs/overview#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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.Subscription{
	// TODO: Fill request struct fields.
}
resp, err := c.CreateSubscription(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

func (*SubscriberClient) DeleteSnapshot added in v0.8.0

func (c *SubscriberClient) DeleteSnapshot(ctx context.Context, req *pubsubpb.DeleteSnapshotRequest, opts ...gax.CallOption) error

DeleteSnapshot removes an existing snapshot. 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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.DeleteSnapshotRequest{
	// TODO: Fill request struct fields.
}
err = c.DeleteSnapshot(ctx, req)
if err != nil {
	// TODO: Handle error.
}
Output:

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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.DeleteSubscriptionRequest{
	// TODO: Fill request struct fields.
}
err = c.DeleteSubscription(ctx, req)
if err != nil {
	// TODO: Handle error.
}
Output:

func (*SubscriberClient) GetSubscription

GetSubscription gets the configuration details of a subscription.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.GetSubscriptionRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.GetSubscription(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

func (*SubscriberClient) ListSnapshots added in v0.8.0

ListSnapshots lists the existing snapshots.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.ListSnapshotsRequest{
	// TODO: Fill request struct fields.
}
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
}
Output:

func (*SubscriberClient) ListSubscriptions

ListSubscriptions lists matching subscriptions.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.ListSubscriptionsRequest{
	// TODO: Fill request struct fields.
}
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
}
Output:

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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.ModifyAckDeadlineRequest{
	// TODO: Fill request struct fields.
}
err = c.ModifyAckDeadline(ctx, req)
if err != nil {
	// TODO: Handle error.
}
Output:

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.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.ModifyPushConfigRequest{
	// TODO: Fill request struct fields.
}
err = c.ModifyPushConfig(ctx, req)
if err != nil {
	// TODO: Handle error.
}
Output:

func (*SubscriberClient) Pull

Pull pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The server may return UNAVAILABLE if there are too many concurrent pull requests pending for the given subscription.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.PullRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.Pull(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

Example (LengthyClientProcessing)
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)
}
Output:

func (*SubscriberClient) Seek added in v0.8.0

Seek seeks an existing subscription to a point in time or to a given snapshot, whichever is provided in the request.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.SeekRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.Seek(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

func (*SubscriberClient) SetGoogleClientInfo

func (c *SubscriberClient) SetGoogleClientInfo(keyval ...string)

SetGoogleClientInfo sets the name and version of the application in the `x-goog-api-client` header passed on each request. Intended for use by Google-written clients.

func (*SubscriberClient) StreamingPull added in v0.7.0

StreamingPull (EXPERIMENTAL) StreamingPull is an experimental feature. This RPC will respond with UNIMPLEMENTED errors unless you have been invited to test this feature. Contact cloud-pubsub@google.com with any questions.

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 OK to reassign server-side resources, in which case, the client should re-establish the stream. UNAVAILABLE may also be returned in the case of a transient error (e.g., a server restart). These should also be retried by the client. Flow control can be achieved by configuring the underlying RPC channel.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}
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
}
Output:

func (*SubscriberClient) SubscriptionIAM added in v0.4.0

func (c *SubscriberClient) SubscriptionIAM(subscription *pubsubpb.Subscription) *iam.Handle
Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

subscription := &pubsubpb.Subscription{}
h := c.SubscriptionIAM(subscription)
policy, err := h.Policy(ctx)
if err != nil {
	// TODO: Handle error.
}
//TODO: Use the IAM policy
_ = policy
Output:

func (*SubscriberClient) TopicIAM added in v0.4.0

func (c *SubscriberClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle
Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

topic := &pubsubpb.Topic{}
h := c.TopicIAM(topic)
policy, err := h.Policy(ctx)
if err != nil {
	// TODO: Handle error.
}
//TODO: Use the IAM policy
_ = policy
Output:

func (*SubscriberClient) UpdateSnapshot added in v0.13.0

UpdateSnapshot updates an existing snapshot. Note that certain properties of a snapshot are not modifiable. NOTE: The style guide requires body: "snapshot" instead of body: "*". Keeping the latter for internal consistency in V1, however it should be corrected in V2. See https://cloud.google.com/apis/design/standard_methods#update for details.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.UpdateSnapshotRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.UpdateSnapshot(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

func (*SubscriberClient) UpdateSubscription added in v0.8.0

UpdateSubscription updates an existing subscription. Note that certain properties of a subscription, such as its topic, are not modifiable. NOTE: The style guide requires body: "subscription" instead of body: "*". Keeping the latter for internal consistency in V1, however it should be corrected in V2. See https://cloud.google.com/apis/design/standard_methods#update for details.

Example
ctx := context.Background()
c, err := pubsub.NewSubscriberClient(ctx)
if err != nil {
	// TODO: Handle error.
}

req := &pubsubpb.UpdateSubscriptionRequest{
	// TODO: Fill request struct fields.
}
resp, err := c.UpdateSubscription(ctx, req)
if err != nil {
	// TODO: Handle error.
}
// TODO: Use resp.
_ = resp
Output:

type SubscriptionIterator

type SubscriptionIterator struct {

	// 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) Next

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 added in v0.3.0

func (it *SubscriptionIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

type TopicIterator

type TopicIterator struct {

	// 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) 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 added in v0.3.0

func (it *TopicIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL