google-cloud-pubsub 1.6.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 350813891a25b960230adbe7a22dc40cd847065d368598650a0c663e81d66bc7
4
- data.tar.gz: 881a92aec3d136aef23bee956241bf400a5dd203a7f6c0a100e162a4c22c97d0
3
+ metadata.gz: dfbd62e0e48c406ed08325e5a216f03a0afc4f8319c5ef144fbb6b1fa189e16c
4
+ data.tar.gz: 31995baf9d81c17e1c867efb5584da5d0be27e1baa3bfa256311e803d43cbfb9
5
5
  SHA512:
6
- metadata.gz: c364975f01a107d41f1282eecdbec83d25e1d3717abcb45252afebfb64c6d028b9651e9d054bfb5b1caeb6e179045505f79e5faf802c30071f202e7a42e576af
7
- data.tar.gz: 7a9d23c2d74e734ad184d6dbb3acabad3868a6dd74b5836d7aa149c4c03edb7c80b414e4d52b2fe8bed9ae4e6794a0634c90c1919a5471196cda408c423f2610
6
+ metadata.gz: 8d50149459ec7bc696a15785ae7f0d77777d9f95edefb4da0775f9e005c25cd8cfe17d20899649fb17c6fc928eb9e0bbc0baddce26afc773d300c54728b04bd6
7
+ data.tar.gz: b599664094c01fc88030478e9076ad72a73ceb6bb3aa4b3a64240193694f0d47f6a34bbbd2ab8ce1188c45d6bbd6322d91e91f157362de0a8a6307c002e6084a
@@ -1,5 +1,42 @@
1
1
  # Release History
2
2
 
3
+ ### 1.9.0 / 2020-07-21
4
+
5
+ #### Features
6
+
7
+ * Add support for server-side flow control
8
+
9
+ ### 1.8.0 / 2020-06-29
10
+
11
+ #### Features
12
+
13
+ * Add Subscription#filter
14
+
15
+ ### 1.7.1 / 2020-05-28
16
+
17
+ #### Documentation
18
+
19
+ * Fix a few broken links
20
+
21
+ ### 1.7.0 / 2020-05-21
22
+
23
+ #### Features
24
+
25
+ * Add Retry Policy support
26
+ * Add RetryPolicy
27
+ * Add retry_policy param to Topic#subscribe
28
+ * Add Subscription#retry_policy
29
+ * Add Subscription#retry_policy=
30
+ * Set client-scoped UUID in initial StreamingPullRequest#client_id
31
+
32
+ ### 1.6.1 / 2020-05-06
33
+
34
+ #### Documentation
35
+
36
+ * Fix example in Emulator documentation
37
+ * Remove experimental notice from ReceivedMessage#delivery_attempt
38
+ * Wrap example URLs in backticks
39
+
3
40
  ### 1.6.0 / 2020-04-06
4
41
 
5
42
  #### Features
@@ -17,7 +17,7 @@ require "google/cloud/pubsub"
17
17
  # Make Pub/Sub use the emulator
18
18
  ENV["PUBSUB_EMULATOR_HOST"] = "localhost:8918"
19
19
 
20
- pubsub = Google::Cloud::PubSub.new "emulator-project-id"
20
+ pubsub = Google::Cloud::PubSub.new project_id:"emulator-project-id"
21
21
 
22
22
  # Get a topic in the current project
23
23
  my_topic = pubsub.new_topic "my-topic"
@@ -24,14 +24,8 @@ improved, *please* create a new issue on GitHub so we can talk about it.
24
24
 
25
25
  - [New issue][gh-ruby]
26
26
 
27
- Or, you can ask questions on the [Google Cloud Platform Slack][slack-ruby]. You
28
- can use the "ruby" channel for general Ruby questions, or use the
29
- "google-cloud-ruby" channel if you have questions about this gem in particular.
30
-
31
27
  [so-ruby]: http://stackoverflow.com/questions/tagged/google-cloud-platform+ruby+pubsub
32
28
 
33
- [gh-search-ruby]: https://github.com/googlecloudplatform/google-cloud-ruby/issues?q=label%3A%22api%3A+pubsub%22
34
-
35
- [gh-ruby]: https://github.com/googlecloudplatform/google-cloud-ruby/issues/new
29
+ [gh-search-ruby]: https://github.com/googleapis/google-cloud-ruby/issues?q=label%3A%22api%3A+pubsub%22
36
30
 
37
- [slack-ruby]: https://gcp-slack.appspot.com/
31
+ [gh-ruby]: https://github.com/googleapis/google-cloud-ruby/issues/new
@@ -78,11 +78,6 @@ module Google
78
78
  # The first delivery of a given message will have this value as `1`. The value is calculated at best effort and
79
79
  # is approximate.
80
80
  #
81
- # EXPERIMENTAL: This feature is part of a closed alpha release and is available only to whitelisted partners.
82
- # This method will return `nil` if a dead letter policy is not set on the subscription. This API might be
83
- # changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA
84
- # or deprecation policy.
85
- #
86
81
  # @return [Integer, nil] A delivery attempt value of `1` or greater, or `nil` if a dead letter policy is not set
87
82
  # on the subscription.
88
83
  #
@@ -0,0 +1,90 @@
1
+ # Copyright 2016 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "google/cloud/errors"
17
+
18
+ module Google
19
+ module Cloud
20
+ module PubSub
21
+ ##
22
+ # # RetryPolicy
23
+ #
24
+ # An immutable Retry Policy value object that specifies how Cloud Pub/Sub retries message delivery.
25
+ #
26
+ # Retry delay will be exponential based on provided minimum and maximum backoffs. (See [Exponential
27
+ # backoff](https://en.wikipedia.org/wiki/Exponential_backoff).)
28
+ #
29
+ # Retry Policy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
30
+ #
31
+ # Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not
32
+ # match the configuration. That is, delay can be more or less than configured backoff.
33
+ #
34
+ # **EXPERIMENTAL:** This API might be changed in backward-incompatible ways and is not recommended for production
35
+ # use. It is not subject to any SLA or deprecation policy.
36
+ #
37
+ # @attr [Numeric] minimum_backoff The minimum delay between consecutive deliveries of a given message. Value
38
+ # should be between 0 and 600 seconds. The default value is 10 seconds.
39
+ # @attr [Numeric] maximum_backoff The maximum delay between consecutive deliveries of a given message. Value
40
+ # should be between 0 and 600 seconds. The default value is 600 seconds.
41
+ #
42
+ # @example
43
+ # require "google/cloud/pubsub"
44
+ #
45
+ # pubsub = Google::Cloud::PubSub.new
46
+ #
47
+ # sub = pubsub.subscription "my-topic-sub"
48
+ #
49
+ # sub.retry_policy = Google::Cloud::PubSub::RetryPolicy.new minimum_backoff: 5, maximum_backoff: 300
50
+ #
51
+ # sub.retry_policy.minimum_backoff #=> 5
52
+ # sub.retry_policy.maximum_backoff #=> 300
53
+ #
54
+ class RetryPolicy
55
+ attr_reader :minimum_backoff, :maximum_backoff
56
+
57
+ ##
58
+ # Creates a new, immutable RetryPolicy value object.
59
+ #
60
+ # @attr [Numeric, nil] minimum_backoff The minimum delay between consecutive deliveries of a given message.
61
+ # Value should be between 0 and 600 seconds. If `nil` is provided, the default value is 10 seconds.
62
+ # @attr [Numeric, nil] maximum_backoff The maximum delay between consecutive deliveries of a given message.
63
+ # Value should be between 0 and 600 seconds. If `nil` is provided, the default value is 600 seconds.
64
+ #
65
+ def initialize minimum_backoff: nil, maximum_backoff: nil
66
+ @minimum_backoff = minimum_backoff
67
+ @maximum_backoff = maximum_backoff
68
+ end
69
+
70
+ ##
71
+ # @private Convert the RetryPolicy to a Google::Cloud::PubSub::V1::RetryPolicy object.
72
+ def to_grpc
73
+ Google::Cloud::PubSub::V1::RetryPolicy.new(
74
+ minimum_backoff: Convert.number_to_duration(minimum_backoff),
75
+ maximum_backoff: Convert.number_to_duration(maximum_backoff)
76
+ )
77
+ end
78
+
79
+ ##
80
+ # @private New RetryPolicy from a Google::Cloud::PubSub::V1::RetryPolicy object.
81
+ def self.from_grpc grpc
82
+ new(
83
+ minimum_backoff: Convert.duration_to_number(grpc.minimum_backoff),
84
+ maximum_backoff: Convert.duration_to_number(grpc.maximum_backoff)
85
+ )
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -19,6 +19,7 @@ require "google/cloud/pubsub/convert"
19
19
  require "google/cloud/pubsub/version"
20
20
  require "google/cloud/pubsub/v1"
21
21
  require "google/gax/errors"
22
+ require "securerandom"
22
23
 
23
24
  module Google
24
25
  module Cloud
@@ -28,6 +29,12 @@ module Google
28
29
  # methods.
29
30
  class Service
30
31
  attr_accessor :project, :credentials, :host, :timeout, :client_config
32
+ ###
33
+ # The same client_id is used across all streaming pull connections that are created by this client. This is
34
+ # intentional, as it indicates to the server that any guarantees, such as message ordering, made for a stream
35
+ # that is disconnected will be made for the stream that is created to replace it. The attr_accessor allows the
36
+ # value to be replaced for unit testing.
37
+ attr_accessor :client_id
31
38
 
32
39
  ##
33
40
  # Creates a new Service instance.
@@ -38,6 +45,7 @@ module Google
38
45
  @host = host || V1::PublisherClient::SERVICE_ADDRESS
39
46
  @timeout = timeout
40
47
  @client_config = client_config || {}
48
+ @client_id = SecureRandom.uuid.freeze
41
49
  end
42
50
 
43
51
  def channel
@@ -233,21 +241,19 @@ module Google
233
241
  push_endpoint: options[:endpoint],
234
242
  attributes: (options[:attributes] || {}).to_h
235
243
  end
236
- deadline = options[:deadline]
237
- retain_acked = options[:retain_acked]
238
244
  mrd = Convert.number_to_duration options[:retention]
239
- labels = options[:labels]
240
- message_ordering = options[:message_ordering]
241
245
  execute do
242
246
  subscriber.create_subscription \
243
247
  name, topic,
244
248
  push_config: push_config,
245
- ack_deadline_seconds: deadline,
246
- retain_acked_messages: retain_acked,
249
+ ack_deadline_seconds: options[:deadline],
250
+ retain_acked_messages: options[:retain_acked],
247
251
  message_retention_duration: mrd,
248
- labels: labels,
249
- enable_message_ordering: message_ordering,
252
+ labels: options[:labels],
253
+ enable_message_ordering: options[:message_ordering],
254
+ filter: options[:filter],
250
255
  dead_letter_policy: dead_letter_policy(options),
256
+ retry_policy: options[:retry_policy],
251
257
  options: default_options
252
258
  end
253
259
  end
@@ -363,6 +363,9 @@ module Google
363
363
  req.stream_ack_deadline_seconds = @subscriber.deadline
364
364
  req.modify_deadline_ack_ids += @inventory.ack_ids
365
365
  req.modify_deadline_seconds += @inventory.ack_ids.map { @subscriber.deadline }
366
+ req.client_id = @subscriber.service.client_id
367
+ req.max_outstanding_messages = @inventory.limit
368
+ req.max_outstanding_bytes = @inventory.bytesize
366
369
  end
367
370
  end
368
371
 
@@ -18,6 +18,7 @@ require "google/cloud/errors"
18
18
  require "google/cloud/pubsub/subscription/list"
19
19
  require "google/cloud/pubsub/subscription/push_config"
20
20
  require "google/cloud/pubsub/received_message"
21
+ require "google/cloud/pubsub/retry_policy"
21
22
  require "google/cloud/pubsub/snapshot"
22
23
  require "google/cloud/pubsub/subscriber"
23
24
  require "google/cloud/pubsub/v1"
@@ -188,7 +189,7 @@ module Google
188
189
  ##
189
190
  # Returns the URL locating the endpoint to which messages should be
190
191
  # pushed. For example, a Webhook endpoint might use
191
- # "https://example.com/push".
192
+ # `https://example.com/push`.
192
193
  #
193
194
  # Makes an API call to retrieve the endpoint value when called on a
194
195
  # reference object. See {#reference?}.
@@ -202,7 +203,7 @@ module Google
202
203
 
203
204
  ##
204
205
  # Sets the URL locating the endpoint to which messages should be pushed.
205
- # For example, a Webhook endpoint might use "https://example.com/push".
206
+ # For example, a Webhook endpoint might use `https://example.com/push`.
206
207
  #
207
208
  # @param [String] new_endpoint The new endpoint value.
208
209
  #
@@ -352,6 +353,18 @@ module Google
352
353
  @resource_name = nil
353
354
  end
354
355
 
356
+ ##
357
+ # An expression written in the Cloud Pub/Sub filter language. If non-empty, then only {Message} instances whose
358
+ # `attributes` field matches the filter are delivered on this subscription. If empty, then no messages are
359
+ # filtered out.
360
+ #
361
+ # @return [String] The frozen filter string.
362
+ #
363
+ def filter
364
+ ensure_grpc!
365
+ @grpc.filter.freeze
366
+ end
367
+
355
368
  ##
356
369
  # Returns the {Topic} to which dead letter messages should be published if a dead letter policy is configured,
357
370
  # otherwise `nil`. Dead lettering is done on a best effort basis. The same message might be dead lettered
@@ -483,6 +496,65 @@ module Google
483
496
  @resource_name = nil
484
497
  end
485
498
 
499
+ ##
500
+ # A policy that specifies how Cloud Pub/Sub retries message delivery for this subscription. If `nil`, the
501
+ # default retry policy is applied. This generally implies that messages will be retried as soon as possible
502
+ # for healthy subscribers. Retry Policy will be triggered on NACKs or acknowledgement deadline exceeded events
503
+ # for a given message.
504
+ #
505
+ # **EXPERIMENTAL:** This API might be changed in backward-incompatible ways and is not recommended for
506
+ # production use. It is not subject to any SLA or deprecation policy.
507
+ #
508
+ # @return [RetryPolicy, nil] The retry policy for the subscription, or `nil`.
509
+ #
510
+ # @example
511
+ # require "google/cloud/pubsub"
512
+ #
513
+ # pubsub = Google::Cloud::PubSub.new
514
+ #
515
+ # sub = pubsub.subscription "my-topic-sub"
516
+ #
517
+ # sub.retry_policy = Google::Cloud::PubSub::RetryPolicy.new minimum_backoff: 5, maximum_backoff: 300
518
+ #
519
+ # sub.retry_policy.minimum_backoff #=> 5
520
+ # sub.retry_policy.maximum_backoff #=> 300
521
+ #
522
+ def retry_policy
523
+ ensure_grpc!
524
+ return nil unless @grpc.retry_policy
525
+ RetryPolicy.from_grpc @grpc.retry_policy
526
+ end
527
+
528
+ ##
529
+ # Sets a policy that specifies how Cloud Pub/Sub retries message delivery for this subscription. If `nil`, the
530
+ # default retry policy is applied. This generally implies that messages will be retried as soon as possible
531
+ # for healthy subscribers. Retry Policy will be triggered on NACKs or acknowledgement deadline exceeded events
532
+ # for a given message.
533
+ #
534
+ # **EXPERIMENTAL:** This API might be changed in backward-incompatible ways and is not recommended for
535
+ # production use. It is not subject to any SLA or deprecation policy.
536
+ #
537
+ # @param [RetryPolicy, nil] new_retry_policy A new retry policy for the subscription, or `nil`.
538
+ #
539
+ # @example
540
+ # require "google/cloud/pubsub"
541
+ #
542
+ # pubsub = Google::Cloud::PubSub.new
543
+ #
544
+ # sub = pubsub.subscription "my-topic-sub"
545
+ #
546
+ # sub.retry_policy = Google::Cloud::PubSub::RetryPolicy.new minimum_backoff: 5, maximum_backoff: 300
547
+ #
548
+ # sub.retry_policy.minimum_backoff #=> 5
549
+ # sub.retry_policy.maximum_backoff #=> 300
550
+ #
551
+ def retry_policy= new_retry_policy
552
+ ensure_grpc!
553
+ new_retry_policy = new_retry_policy.to_grpc if new_retry_policy
554
+ update_grpc = Google::Cloud::PubSub::V1::Subscription.new name: name, retry_policy: new_retry_policy
555
+ @grpc = service.update_subscription update_grpc, :retry_policy
556
+ end
557
+
486
558
  ##
487
559
  # Whether message ordering has been enabled. When enabled, messages
488
560
  # published with the same `ordering_key` will be delivered in the order
@@ -52,7 +52,7 @@ module Google
52
52
 
53
53
  ##
54
54
  # A URL locating the endpoint to which messages should be pushed. For
55
- # example, a Webhook endpoint might use "https://example.com/push".
55
+ # example, a Webhook endpoint might use `https://example.com/push`.
56
56
  #
57
57
  # @return [String]
58
58
  def endpoint
@@ -62,7 +62,7 @@ module Google
62
62
  ##
63
63
  # Sets the URL locating the endpoint to which messages should be
64
64
  # pushed. For example, a Webhook endpoint might use
65
- # "https://example.com/push".
65
+ # `https://example.com/push`.
66
66
  #
67
67
  # @param [String, nil] new_endpoint New URL value
68
68
  def endpoint= new_endpoint
@@ -19,6 +19,7 @@ require "google/cloud/pubsub/async_publisher"
19
19
  require "google/cloud/pubsub/batch_publisher"
20
20
  require "google/cloud/pubsub/subscription"
21
21
  require "google/cloud/pubsub/policy"
22
+ require "google/cloud/pubsub/retry_policy"
22
23
 
23
24
  module Google
24
25
  module Cloud
@@ -285,6 +286,9 @@ module Google
285
286
  # Managing Labels](https://cloud.google.com/pubsub/docs/labels).
286
287
  # @param [Boolean] message_ordering Whether to enable message ordering
287
288
  # on the subscription.
289
+ # @param [String] filter An expression written in the Cloud Pub/Sub filter language. If non-empty, then only
290
+ # {Message} instances whose `attributes` field matches the filter are delivered on this subscription. If
291
+ # empty, then no messages are filtered out. Optional.
288
292
  # @param [Topic] dead_letter_topic The {Topic} to which dead letter messages for the subscription should be
289
293
  # published. Dead lettering is done on a best effort basis. The same message might be dead lettered multiple
290
294
  # times. The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e.,
@@ -297,6 +301,13 @@ module Google
297
301
  # the subscription's dead letter policy. Dead lettering is done on a best effort basis. The same message might
298
302
  # be dead lettered multiple times. The value must be between 5 and 100. If this parameter is 0, a default
299
303
  # value of 5 is used. The `dead_letter_topic` must also be set.
304
+ # @param [RetryPolicy] retry_policy A policy that specifies how Cloud Pub/Sub retries message delivery for
305
+ # this subscription. If not set, the default retry policy is applied. This generally implies that messages
306
+ # will be retried as soon as possible for healthy subscribers. Retry Policy will be triggered on NACKs or
307
+ # acknowledgement deadline exceeded events for a given message.
308
+ #
309
+ # **EXPERIMENTAL:** This API might be changed in backward-incompatible ways and is not recommended for
310
+ # production use. It is not subject to any SLA or deprecation policy.
300
311
  #
301
312
  # @return [Google::Cloud::PubSub::Subscription]
302
313
  #
@@ -340,17 +351,29 @@ module Google
340
351
  # dead_letter_topic: dead_letter_topic,
341
352
  # dead_letter_max_delivery_attempts: 10
342
353
  #
354
+ # @example Configure a Retry Policy:
355
+ # require "google/cloud/pubsub"
356
+ #
357
+ # pubsub = Google::Cloud::PubSub.new
358
+ #
359
+ # topic = pubsub.topic "my-topic"
360
+ #
361
+ # retry_policy = Google::Cloud::PubSub::RetryPolicy.new minimum_backoff: 5, maximum_backoff: 300
362
+ # sub = topic.subscribe "my-topic-sub", retry_policy: retry_policy
363
+ #
343
364
  def subscribe subscription_name, deadline: nil, retain_acked: false, retention: nil, endpoint: nil, labels: nil,
344
- message_ordering: nil, dead_letter_topic: nil, dead_letter_max_delivery_attempts: nil
365
+ message_ordering: nil, filter: nil, dead_letter_topic: nil,
366
+ dead_letter_max_delivery_attempts: nil, retry_policy: nil
345
367
  ensure_service!
346
368
  options = { deadline: deadline, retain_acked: retain_acked, retention: retention, endpoint: endpoint,
347
- labels: labels, message_ordering: message_ordering,
369
+ labels: labels, message_ordering: message_ordering, filter: filter,
348
370
  dead_letter_max_delivery_attempts: dead_letter_max_delivery_attempts }
349
371
  options[:dead_letter_topic_name] = dead_letter_topic.name if dead_letter_topic
350
372
  if options[:dead_letter_max_delivery_attempts] && !options[:dead_letter_topic_name]
351
373
  # Service error message "3:Invalid resource name given (name=)." does not identify param.
352
374
  raise ArgumentError, "dead_letter_topic is required with dead_letter_max_delivery_attempts"
353
375
  end
376
+ options[:retry_policy] = retry_policy.to_grpc if retry_policy
354
377
  grpc = service.create_subscription name, subscription_name, options
355
378
  Subscription.from_grpc grpc, service
356
379
  end
@@ -17,6 +17,7 @@ module Google
17
17
  module Cloud
18
18
  module PubSub
19
19
  module V1
20
+ # A policy constraining the storage of messages published to the topic.
20
21
  # @!attribute [rw] allowed_persistence_regions
21
22
  # @return [Array<String>]
22
23
  # A list of IDs of GCP regions where messages that are published to the topic
@@ -67,7 +68,8 @@ module Google
67
68
  # @!attribute [rw] attributes
68
69
  # @return [Hash{String => String}]
69
70
  # Attributes for this message. If this field is empty, the message must
70
- # contain non-empty data.
71
+ # contain non-empty data. This can be used to filter messages on the
72
+ # subscription.
71
73
  # @!attribute [rw] message_id
72
74
  # @return [String]
73
75
  # ID of this message, assigned by the server when the message is published.
@@ -107,9 +109,9 @@ module Google
107
109
  # @return [Google::Protobuf::FieldMask]
108
110
  # Required. Indicates which fields in the provided topic to update. Must be
109
111
  # specified and non-empty. Note that if `update_mask` contains
110
- # "message_storage_policy" then the new value will be determined based on the
111
- # policy configured at the project or organization level. The
112
- # `message_storage_policy` must not be set in the `topic` provided above.
112
+ # "message_storage_policy" but the `message_storage_policy` is not set in
113
+ # the `topic` provided above, then the updated value is determined by the
114
+ # policy configured at the project or organization level.
113
115
  class UpdateTopicRequest; end
114
116
 
115
117
  # Request for the Publish method.
@@ -173,7 +175,7 @@ module Google
173
175
  # Response for the `ListTopicSubscriptions` method.
174
176
  # @!attribute [rw] subscriptions
175
177
  # @return [Array<String>]
176
- # The names of the subscriptions that match the request.
178
+ # The names of subscriptions attached to the topic specified in the request.
177
179
  # @!attribute [rw] next_page_token
178
180
  # @return [String]
179
181
  # If not empty, indicates that there may be more subscriptions that match
@@ -214,6 +216,17 @@ module Google
214
216
  # Format is `projects/{project}/topics/{topic}`.
215
217
  class DeleteTopicRequest; end
216
218
 
219
+ # Request for the DetachSubscription method.
220
+ # @!attribute [rw] subscription
221
+ # @return [String]
222
+ # Required. The subscription to detach.
223
+ # Format is `projects/{project}/subscriptions/{subscription}`.
224
+ class DetachSubscriptionRequest; end
225
+
226
+ # Response for the DetachSubscription method.
227
+ # Reserved for future use.
228
+ class DetachSubscriptionResponse; end
229
+
217
230
  # A subscription resource.
218
231
  # @!attribute [rw] name
219
232
  # @return [String]
@@ -295,13 +308,11 @@ module Google
295
308
  # value for `expiration_policy.ttl` is 1 day.
296
309
  # @!attribute [rw] filter
297
310
  # @return [String]
298
- # An expression written in the Cloud Pub/Sub filter language. If non-empty,
311
+ # An expression written in the Pub/Sub [filter
312
+ # language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
299
313
  # then only `PubsubMessage`s whose `attributes` field matches the filter are
300
314
  # delivered on this subscription. If empty, then no messages are filtered
301
315
  # out.
302
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
303
- # API might be changed in backward-incompatible ways and is not recommended
304
- # for production use. It is not subject to any SLA or deprecation policy.
305
316
  # @!attribute [rw] dead_letter_policy
306
317
  # @return [Google::Cloud::PubSub::V1::DeadLetterPolicy]
307
318
  # A policy that specifies the conditions for dead lettering messages in
@@ -312,21 +323,22 @@ module Google
312
323
  # parent project (i.e.,
313
324
  # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
314
325
  # permission to Acknowledge() messages on this subscription.
315
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
316
- # API might be changed in backward-incompatible ways and is not recommended
317
- # for production use. It is not subject to any SLA or deprecation policy.
318
326
  # @!attribute [rw] retry_policy
319
327
  # @return [Google::Cloud::PubSub::V1::RetryPolicy]
320
- # A policy that specifies how Cloud Pub/Sub retries message delivery for this
328
+ # A policy that specifies how Pub/Sub retries message delivery for this
321
329
  # subscription.
322
330
  #
323
331
  # If not set, the default retry policy is applied. This generally implies
324
332
  # that messages will be retried as soon as possible for healthy subscribers.
325
333
  # RetryPolicy will be triggered on NACKs or acknowledgement deadline
326
334
  # exceeded events for a given message.
327
- # <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible
328
- # ways and is not recommended for production use. It is not subject to any
329
- # SLA or deprecation policy.
335
+ # @!attribute [rw] detached
336
+ # @return [true, false]
337
+ # Indicates whether the subscription is detached from its topic. Detached
338
+ # subscriptions don't receive messages from their topic and don't retain any
339
+ # backlog. `Pull` and `StreamingPull` requests will return
340
+ # FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
341
+ # the endpoint will not be made.
330
342
  class Subscription; end
331
343
 
332
344
  # A policy that specifies how Cloud Pub/Sub retries message delivery.
@@ -458,8 +470,11 @@ module Google
458
470
  # The message.
459
471
  # @!attribute [rw] delivery_attempt
460
472
  # @return [Integer]
461
- # Delivery attempt counter is 1 + (the sum of number of NACKs and number of
462
- # ack_deadline exceeds) for this message.
473
+ # The approximate number of times that Cloud Pub/Sub has attempted to deliver
474
+ # the associated message to a subscriber.
475
+ #
476
+ # More precisely, this is 1 + (number of NACKs) +
477
+ # (number of ack_deadline exceeds) for this message.
463
478
  #
464
479
  # A NACK is any call to ModifyAckDeadline with a 0 deadline. An ack_deadline
465
480
  # exceeds event is whenever a message is not acknowledged within
@@ -467,13 +482,10 @@ module Google
467
482
  # Subscription.ackDeadlineSeconds, but may get extended automatically by
468
483
  # the client library.
469
484
  #
470
- # The first delivery of a given message will have this value as 1. The value
471
- # is calculated at best effort and is approximate.
485
+ # Upon the first delivery of a given message, `delivery_attempt` will have a
486
+ # value of 1. The value is calculated at best effort and is approximate.
472
487
  #
473
488
  # If a DeadLetterPolicy is not set on the subscription, this will be 0.
474
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
475
- # API might be changed in backward-incompatible ways and is not recommended
476
- # for production use. It is not subject to any SLA or deprecation policy.
477
489
  class ReceivedMessage; end
478
490
 
479
491
  # Request for the GetSubscription method.
@@ -653,6 +665,28 @@ module Google
653
665
  # to the same value so that state associated with the old stream can be
654
666
  # transferred to the new stream. The same client_id should not be used for
655
667
  # different client instances.
668
+ # @!attribute [rw] max_outstanding_messages
669
+ # @return [Integer]
670
+ # Flow control settings for the maximum number of outstanding messages. When
671
+ # there are `max_outstanding_messages` or more currently sent to the
672
+ # streaming pull client that have not yet been acked or nacked, the server
673
+ # stops sending more messages. The sending of messages resumes once the
674
+ # number of outstanding messages is less than this value. If the value is
675
+ # <= 0, there is no limit to the number of outstanding messages. This
676
+ # property can only be set on the initial StreamingPullRequest. If it is set
677
+ # on a subsequent request, the stream will be aborted with status
678
+ # `INVALID_ARGUMENT`.
679
+ # @!attribute [rw] max_outstanding_bytes
680
+ # @return [Integer]
681
+ # Flow control settings for the maximum number of outstanding bytes. When
682
+ # there are `max_outstanding_bytes` or more worth of messages currently sent
683
+ # to the streaming pull client that have not yet been acked or nacked, the
684
+ # server will stop sending more messages. The sending of messages resumes
685
+ # once the number of outstanding bytes is less than this value. If the value
686
+ # is <= 0, there is no limit to the number of outstanding bytes. This
687
+ # property can only be set on the initial StreamingPullRequest. If it is set
688
+ # on a subsequent request, the stream will be aborted with status
689
+ # `INVALID_ARGUMENT`.
656
690
  class StreamingPullRequest; end
657
691
 
658
692
  # Response for the `StreamingPull` method. This response is used to stream
@@ -98,6 +98,12 @@ module Google
98
98
 
99
99
  private_constant :PROJECT_PATH_TEMPLATE
100
100
 
101
+ SUBSCRIPTION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
102
+ "projects/{project}/subscriptions/{subscription}"
103
+ )
104
+
105
+ private_constant :SUBSCRIPTION_PATH_TEMPLATE
106
+
101
107
  TOPIC_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
102
108
  "projects/{project}/topics/{topic}"
103
109
  )
@@ -113,6 +119,17 @@ module Google
113
119
  )
114
120
  end
115
121
 
122
+ # Returns a fully-qualified subscription resource name string.
123
+ # @param project [String]
124
+ # @param subscription [String]
125
+ # @return [String]
126
+ def self.subscription_path project, subscription
127
+ SUBSCRIPTION_PATH_TEMPLATE.render(
128
+ :"project" => project,
129
+ :"subscription" => subscription
130
+ )
131
+ end
132
+
116
133
  # Returns a fully-qualified topic resource name string.
117
134
  # @param project [String]
118
135
  # @param topic [String]
@@ -336,6 +353,14 @@ module Google
336
353
  {'resource' => request.resource}
337
354
  end
338
355
  )
356
+ @detach_subscription = Google::Gax.create_api_call(
357
+ @publisher_stub.method(:detach_subscription),
358
+ defaults["detach_subscription"],
359
+ exception_transformer: exception_transformer,
360
+ params_extractor: proc do |request|
361
+ {'subscription' => request.subscription}
362
+ end
363
+ )
339
364
  end
340
365
 
341
366
  # Service calls
@@ -407,9 +432,9 @@ module Google
407
432
  # @param update_mask [Google::Protobuf::FieldMask | Hash]
408
433
  # Required. Indicates which fields in the provided topic to update. Must be
409
434
  # specified and non-empty. Note that if `update_mask` contains
410
- # "message_storage_policy" then the new value will be determined based on the
411
- # policy configured at the project or organization level. The
412
- # `message_storage_policy` must not be set in the `topic` provided above.
435
+ # "message_storage_policy" but the `message_storage_policy` is not set in
436
+ # the `topic` provided above, then the updated value is determined by the
437
+ # policy configured at the project or organization level.
413
438
  # A hash of the same form as `Google::Protobuf::FieldMask`
414
439
  # can also be provided.
415
440
  # @param options [Google::Gax::CallOptions]
@@ -572,7 +597,7 @@ module Google
572
597
  @list_topics.call(req, options, &block)
573
598
  end
574
599
 
575
- # Lists the names of the subscriptions on this topic.
600
+ # Lists the names of the attached subscriptions on this topic.
576
601
  #
577
602
  # @param topic [String]
578
603
  # Required. The name of the topic that subscriptions are attached to.
@@ -725,8 +750,8 @@ module Google
725
750
  # Sets the access control policy on the specified resource. Replaces
726
751
  # any existing policy.
727
752
  #
728
- # Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and
729
- # PERMISSION_DENIED
753
+ # Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
754
+ # errors.
730
755
  #
731
756
  # @param resource [String]
732
757
  # REQUIRED: The resource for which the policy is being specified.
@@ -814,7 +839,7 @@ module Google
814
839
 
815
840
  # Returns permissions that a caller has on the specified resource. If the
816
841
  # resource does not exist, this will return an empty set of
817
- # permissions, not a NOT_FOUND error.
842
+ # permissions, not a `NOT_FOUND` error.
818
843
  #
819
844
  # Note: This operation is designed to be used for building
820
845
  # permission-aware UIs and command-line tools, not for authorization
@@ -860,6 +885,40 @@ module Google
860
885
  req = Google::Gax::to_proto(req, Google::Iam::V1::TestIamPermissionsRequest)
861
886
  @test_iam_permissions.call(req, options, &block)
862
887
  end
888
+
889
+ # Detaches a subscription from this topic. All messages retained in the
890
+ # subscription are dropped. Subsequent `Pull` and `StreamingPull` requests
891
+ # will return FAILED_PRECONDITION. If the subscription is a push
892
+ # subscription, pushes to the endpoint will stop.
893
+ #
894
+ # @param subscription [String]
895
+ # Required. The subscription to detach.
896
+ # Format is `projects/{project}/subscriptions/{subscription}`.
897
+ # @param options [Google::Gax::CallOptions]
898
+ # Overrides the default settings for this call, e.g, timeout,
899
+ # retries, etc.
900
+ # @yield [result, operation] Access the result along with the RPC operation
901
+ # @yieldparam result [Google::Cloud::PubSub::V1::DetachSubscriptionResponse]
902
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
903
+ # @return [Google::Cloud::PubSub::V1::DetachSubscriptionResponse]
904
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
905
+ # @example
906
+ # require "google/cloud/pubsub"
907
+ #
908
+ # publisher_client = Google::Cloud::PubSub::Publisher.new(version: :v1)
909
+ # formatted_subscription = Google::Cloud::PubSub::V1::PublisherClient.subscription_path("[PROJECT]", "[SUBSCRIPTION]")
910
+ # response = publisher_client.detach_subscription(formatted_subscription)
911
+
912
+ def detach_subscription \
913
+ subscription,
914
+ options: nil,
915
+ &block
916
+ req = {
917
+ subscription: subscription
918
+ }.delete_if { |_, v| v.nil? }
919
+ req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::DetachSubscriptionRequest)
920
+ @detach_subscription.call(req, options, &block)
921
+ end
863
922
  end
864
923
  end
865
924
  end
@@ -7,6 +7,7 @@
7
7
  "UNAVAILABLE",
8
8
  "UNKNOWN"
9
9
  ],
10
+ "non_idempotent2": [],
10
11
  "non_idempotent": [
11
12
  "UNAVAILABLE"
12
13
  ],
@@ -107,6 +108,11 @@
107
108
  "timeout_millis": 60000,
108
109
  "retry_codes_name": "non_idempotent",
109
110
  "retry_params_name": "default"
111
+ },
112
+ "DetachSubscription": {
113
+ "timeout_millis": 60000,
114
+ "retry_codes_name": "non_idempotent2",
115
+ "retry_params_name": "default"
110
116
  }
111
117
  }
112
118
  }
@@ -510,13 +510,11 @@ module Google
510
510
  # A hash of the same form as `Google::Cloud::PubSub::V1::ExpirationPolicy`
511
511
  # can also be provided.
512
512
  # @param filter [String]
513
- # An expression written in the Cloud Pub/Sub filter language. If non-empty,
513
+ # An expression written in the Pub/Sub [filter
514
+ # language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
514
515
  # then only `PubsubMessage`s whose `attributes` field matches the filter are
515
516
  # delivered on this subscription. If empty, then no messages are filtered
516
517
  # out.
517
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
518
- # API might be changed in backward-incompatible ways and is not recommended
519
- # for production use. It is not subject to any SLA or deprecation policy.
520
518
  # @param dead_letter_policy [Google::Cloud::PubSub::V1::DeadLetterPolicy | Hash]
521
519
  # A policy that specifies the conditions for dead lettering messages in
522
520
  # this subscription. If dead_letter_policy is not set, dead lettering
@@ -526,24 +524,24 @@ module Google
526
524
  # parent project (i.e.,
527
525
  # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
528
526
  # permission to Acknowledge() messages on this subscription.
529
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
530
- # API might be changed in backward-incompatible ways and is not recommended
531
- # for production use. It is not subject to any SLA or deprecation policy.
532
527
  # A hash of the same form as `Google::Cloud::PubSub::V1::DeadLetterPolicy`
533
528
  # can also be provided.
534
529
  # @param retry_policy [Google::Cloud::PubSub::V1::RetryPolicy | Hash]
535
- # A policy that specifies how Cloud Pub/Sub retries message delivery for this
530
+ # A policy that specifies how Pub/Sub retries message delivery for this
536
531
  # subscription.
537
532
  #
538
533
  # If not set, the default retry policy is applied. This generally implies
539
534
  # that messages will be retried as soon as possible for healthy subscribers.
540
535
  # RetryPolicy will be triggered on NACKs or acknowledgement deadline
541
536
  # exceeded events for a given message.
542
- # <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible
543
- # ways and is not recommended for production use. It is not subject to any
544
- # SLA or deprecation policy.
545
537
  # A hash of the same form as `Google::Cloud::PubSub::V1::RetryPolicy`
546
538
  # can also be provided.
539
+ # @param detached [true, false]
540
+ # Indicates whether the subscription is detached from its topic. Detached
541
+ # subscriptions don't receive messages from their topic and don't retain any
542
+ # backlog. `Pull` and `StreamingPull` requests will return
543
+ # FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
544
+ # the endpoint will not be made.
547
545
  # @param options [Google::Gax::CallOptions]
548
546
  # Overrides the default settings for this call, e.g, timeout,
549
547
  # retries, etc.
@@ -573,6 +571,7 @@ module Google
573
571
  filter: nil,
574
572
  dead_letter_policy: nil,
575
573
  retry_policy: nil,
574
+ detached: nil,
576
575
  options: nil,
577
576
  &block
578
577
  req = {
@@ -587,7 +586,8 @@ module Google
587
586
  expiration_policy: expiration_policy,
588
587
  filter: filter,
589
588
  dead_letter_policy: dead_letter_policy,
590
- retry_policy: retry_policy
589
+ retry_policy: retry_policy,
590
+ detached: detached
591
591
  }.delete_if { |_, v| v.nil? }
592
592
  req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::Subscription)
593
593
  @create_subscription.call(req, options, &block)
@@ -1322,8 +1322,8 @@ module Google
1322
1322
  # Sets the access control policy on the specified resource. Replaces
1323
1323
  # any existing policy.
1324
1324
  #
1325
- # Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and
1326
- # PERMISSION_DENIED
1325
+ # Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
1326
+ # errors.
1327
1327
  #
1328
1328
  # @param resource [String]
1329
1329
  # REQUIRED: The resource for which the policy is being specified.
@@ -1411,7 +1411,7 @@ module Google
1411
1411
 
1412
1412
  # Returns permissions that a caller has on the specified resource. If the
1413
1413
  # resource does not exist, this will return an empty set of
1414
- # permissions, not a NOT_FOUND error.
1414
+ # permissions, not a `NOT_FOUND` error.
1415
1415
  #
1416
1416
  # Note: This operation is designed to be used for building
1417
1417
  # permission-aware UIs and command-line tools, not for authorization
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module PubSub
19
- VERSION = "1.6.0".freeze
19
+ VERSION = "1.9.0".freeze
20
20
  end
21
21
 
22
22
  Pubsub = PubSub unless const_defined? :Pubsub
@@ -73,6 +73,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
73
73
  add_message "google.pubsub.v1.DeleteTopicRequest" do
74
74
  optional :topic, :string, 1
75
75
  end
76
+ add_message "google.pubsub.v1.DetachSubscriptionRequest" do
77
+ optional :subscription, :string, 1
78
+ end
79
+ add_message "google.pubsub.v1.DetachSubscriptionResponse" do
80
+ end
76
81
  add_message "google.pubsub.v1.Subscription" do
77
82
  optional :name, :string, 1
78
83
  optional :topic, :string, 2
@@ -86,6 +91,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
86
91
  optional :filter, :string, 12
87
92
  optional :dead_letter_policy, :message, 13, "google.pubsub.v1.DeadLetterPolicy"
88
93
  optional :retry_policy, :message, 14, "google.pubsub.v1.RetryPolicy"
94
+ optional :detached, :bool, 15
89
95
  end
90
96
  add_message "google.pubsub.v1.RetryPolicy" do
91
97
  optional :minimum_backoff, :message, 1, "google.protobuf.Duration"
@@ -161,6 +167,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
161
167
  repeated :modify_deadline_ack_ids, :string, 4
162
168
  optional :stream_ack_deadline_seconds, :int32, 5
163
169
  optional :client_id, :string, 6
170
+ optional :max_outstanding_messages, :int64, 7
171
+ optional :max_outstanding_bytes, :int64, 8
164
172
  end
165
173
  add_message "google.pubsub.v1.StreamingPullResponse" do
166
174
  repeated :received_messages, :message, 1, "google.pubsub.v1.ReceivedMessage"
@@ -228,6 +236,8 @@ module Google::Cloud::PubSub::V1
228
236
  ListTopicSnapshotsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.ListTopicSnapshotsRequest").msgclass
229
237
  ListTopicSnapshotsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.ListTopicSnapshotsResponse").msgclass
230
238
  DeleteTopicRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.DeleteTopicRequest").msgclass
239
+ DetachSubscriptionRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.DetachSubscriptionRequest").msgclass
240
+ DetachSubscriptionResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.DetachSubscriptionResponse").msgclass
231
241
  Subscription = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.Subscription").msgclass
232
242
  RetryPolicy = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.RetryPolicy").msgclass
233
243
  DeadLetterPolicy = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.DeadLetterPolicy").msgclass
@@ -53,7 +53,7 @@ module Google::Cloud::PubSub::V1
53
53
  rpc :GetTopic, GetTopicRequest, Topic
54
54
  # Lists matching topics.
55
55
  rpc :ListTopics, ListTopicsRequest, ListTopicsResponse
56
- # Lists the names of the subscriptions on this topic.
56
+ # Lists the names of the attached subscriptions on this topic.
57
57
  rpc :ListTopicSubscriptions, ListTopicSubscriptionsRequest, ListTopicSubscriptionsResponse
58
58
  # Lists the names of the snapshots on this topic. Snapshots are used in
59
59
  # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
@@ -68,6 +68,11 @@ module Google::Cloud::PubSub::V1
68
68
  # configuration or subscriptions. Existing subscriptions to this topic are
69
69
  # not deleted, but their `topic` field is set to `_deleted-topic_`.
70
70
  rpc :DeleteTopic, DeleteTopicRequest, Google::Protobuf::Empty
71
+ # Detaches a subscription from this topic. All messages retained in the
72
+ # subscription are dropped. Subsequent `Pull` and `StreamingPull` requests
73
+ # will return FAILED_PRECONDITION. If the subscription is a push
74
+ # subscription, pushes to the endpoint will stop.
75
+ rpc :DetachSubscription, DetachSubscriptionRequest, DetachSubscriptionResponse
71
76
  end
72
77
 
73
78
  Stub = Service.rpc_stub_class
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-pubsub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-06 00:00:00.000000000 Z
12
+ date: 2020-07-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: concurrent-ruby
@@ -141,14 +141,14 @@ dependencies:
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '5.10'
144
+ version: '5.14'
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '5.10'
151
+ version: '5.14'
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: minitest-autotest
154
154
  requirement: !ruby/object:Gem::Requirement
@@ -278,6 +278,7 @@ files:
278
278
  - lib/google/cloud/pubsub/project.rb
279
279
  - lib/google/cloud/pubsub/publish_result.rb
280
280
  - lib/google/cloud/pubsub/received_message.rb
281
+ - lib/google/cloud/pubsub/retry_policy.rb
281
282
  - lib/google/cloud/pubsub/service.rb
282
283
  - lib/google/cloud/pubsub/snapshot.rb
283
284
  - lib/google/cloud/pubsub/snapshot/list.rb
@@ -329,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
329
330
  - !ruby/object:Gem::Version
330
331
  version: '0'
331
332
  requirements: []
332
- rubygems_version: 3.0.6
333
+ rubygems_version: 3.1.3
333
334
  signing_key:
334
335
  specification_version: 4
335
336
  summary: API Client library for Google Cloud Pub/Sub