diff --git a/package.json b/package.json index 6ec7cf6e7..b62c8b948 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "null-loader": "^4.0.0", "protobufjs": "^7.0.0", "proxyquire": "^2.0.0", - "sinon": "^16.0.0", + "sinon": "^17.0.0", "tmp": "^0.2.0", "ts-loader": "^9.0.0", "typescript": "^5.1.6", diff --git a/protos/google/pubsub/v1/pubsub.proto b/protos/google/pubsub/v1/pubsub.proto index 4468de178..700324dc7 100644 --- a/protos/google/pubsub/v1/pubsub.proto +++ b/protos/google/pubsub/v1/pubsub.proto @@ -44,7 +44,7 @@ service Publisher { "https://www.googleapis.com/auth/pubsub"; // Creates the given topic with the given name. See the [resource name rules] - // (https://cloud.google.com/pubsub/docs/admin#resource_names). + // (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). rpc CreateTopic(Topic) returns (Topic) { option (google.api.http) = { put: "/v1/{name=projects/*/topics/*}" @@ -137,11 +137,12 @@ service Publisher { // A policy constraining the storage of messages published to the topic. message MessageStoragePolicy { - // A list of IDs of GCP regions where messages that are published to the topic - // may be persisted in storage. Messages published by publishers running in - // non-allowed GCP regions (or running outside of GCP altogether) will be - // routed for storage in one of the allowed regions. An empty list means that - // no regions are allowed, and is not a valid configuration. + // A list of IDs of Google Cloud regions where messages that are published + // to the topic may be persisted in storage. Messages published by publishers + // running in non-allowed Google Cloud regions (or running outside of Google + // Cloud altogether) are routed for storage in one of the allowed regions. + // An empty list means that no regions are allowed, and is not a valid + // configuration. repeated string allowed_persistence_regions = 1; } @@ -430,16 +431,16 @@ service Subscriber { "https://www.googleapis.com/auth/pubsub"; // Creates a subscription to a given topic. See the [resource name rules] - // (https://cloud.google.com/pubsub/docs/admin#resource_names). + // (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/admin#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. + // (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. rpc CreateSubscription(Subscription) returns (Subscription) { option (google.api.http) = { put: "/v1/{name=projects/*/subscriptions/*}" @@ -592,7 +593,7 @@ service Subscriber { // 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/admin#resource_names). The + // (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. rpc CreateSnapshot(CreateSnapshotRequest) returns (Snapshot) { @@ -1429,8 +1430,8 @@ message CreateSnapshotRequest { // in the request, the server will assign a random name for this snapshot on // the same project as the subscription. Note that for REST API requests, you // must specify a name. See the [resource name - // rules](https://cloud.google.com/pubsub/docs/admin#resource_names). Format - // is `projects/{project}/snapshots/{snap}`. + // rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). + // Format is `projects/{project}/snapshots/{snap}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "pubsub.googleapis.com/Snapshot" } diff --git a/src/message-stream.ts b/src/message-stream.ts index 7ea275ee5..80b714496 100644 --- a/src/message-stream.ts +++ b/src/message-stream.ts @@ -323,8 +323,13 @@ export class MessageStream extends PassThrough { ? 0 : this._subscriber.maxBytes, }; + const otherArgs = { + headers: { + 'x-goog-request-params': 'subscription=' + this._subscriber.name, + }, + }; - const stream: PullStream = client.streamingPull({deadline}); + const stream: PullStream = client.streamingPull({deadline, otherArgs}); this._replaceStream(index, stream); stream.write(request); } diff --git a/src/v1/publisher_client.ts b/src/v1/publisher_client.ts index 7183a2a94..7eb92ba0c 100644 --- a/src/v1/publisher_client.ts +++ b/src/v1/publisher_client.ts @@ -386,7 +386,7 @@ export class PublisherClient { // ------------------- /** * Creates the given topic with the given name. See the [resource name rules] - * (https://cloud.google.com/pubsub/docs/admin#resource_names). + * (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). * * @param {Object} request * The request object that will be sent. diff --git a/src/v1/subscriber_client.ts b/src/v1/subscriber_client.ts index 661c31e19..a92a9c951 100644 --- a/src/v1/subscriber_client.ts +++ b/src/v1/subscriber_client.ts @@ -394,16 +394,16 @@ export class SubscriberClient { // ------------------- /** * Creates a subscription to a given topic. See the [resource name rules] - * (https://cloud.google.com/pubsub/docs/admin#resource_names). + * (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/admin#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. + * (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. * * @param {Object} request * The request object that will be sent. @@ -1324,7 +1324,7 @@ export class SubscriberClient { * 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/admin#resource_names). The + * (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. * @@ -1335,8 +1335,8 @@ export class SubscriberClient { * in the request, the server will assign a random name for this snapshot on * the same project as the subscription. Note that for REST API requests, you * must specify a name. See the [resource name - * rules](https://cloud.google.com/pubsub/docs/admin#resource_names). Format - * is `projects/{project}/snapshots/{snap}`. + * rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). + * Format is `projects/{project}/snapshots/{snap}`. * @param {string} request.subscription * Required. The subscription whose backlog the snapshot retains. * Specifically, the created snapshot is guaranteed to retain: