google-cloud-pubsub 1.5.0 → 1.8.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 +4 -4
- data/CHANGELOG.md +43 -0
- data/EMULATOR.md +1 -1
- data/TROUBLESHOOTING.md +2 -8
- data/lib/google/cloud/pubsub/received_message.rb +0 -5
- data/lib/google/cloud/pubsub/retry_policy.rb +90 -0
- data/lib/google/cloud/pubsub/service.rb +14 -8
- data/lib/google/cloud/pubsub/subscriber/stream.rb +1 -0
- data/lib/google/cloud/pubsub/subscription.rb +74 -2
- data/lib/google/cloud/pubsub/subscription/push_config.rb +2 -2
- data/lib/google/cloud/pubsub/topic.rb +25 -2
- data/lib/google/cloud/pubsub/v1/doc/google/pubsub/v1/pubsub.rb +58 -24
- data/lib/google/cloud/pubsub/v1/publisher_client.rb +139 -10
- data/lib/google/cloud/pubsub/v1/publisher_client_config.json +15 -0
- data/lib/google/cloud/pubsub/v1/subscriber_client.rb +58 -17
- data/lib/google/cloud/pubsub/v1/subscriber_client_config.json +9 -0
- data/lib/google/cloud/pubsub/version.rb +1 -1
- data/lib/google/pubsub/v1/pubsub_pb.rb +10 -0
- data/lib/google/pubsub/v1/pubsub_services_pb.rb +6 -1
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5dc069dbd6e0c8e77d39c6a27b148755fe6935d58ca2af7babc2c167c22513e0
|
|
4
|
+
data.tar.gz: b2509a217ba7e2a76675a95e1b95884c1e285224c8b194af9299e56aedf9ceea
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e5d900b940dd93fb85be47f23f233d9183a5cb150a18a7e93687ed4dba45ece70d044129ccc5162477f0bc4a58b439c25b7aca2cc3ccdc5dc1ff7434b869b5e6
|
|
7
|
+
data.tar.gz: 4e5960220728a2ab73ff69ee3da5a6e11322a6fb1c50d40d7aadaffb7adf26d01383a9972d15ea2af0ed29b3b867f8b05b4194dac55db9f3c808eeea55030e51
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
### 1.8.0 / 2020-06-29
|
|
4
|
+
|
|
5
|
+
#### Features
|
|
6
|
+
|
|
7
|
+
* Add Subscription#filter
|
|
8
|
+
|
|
9
|
+
### 1.7.1 / 2020-05-28
|
|
10
|
+
|
|
11
|
+
#### Documentation
|
|
12
|
+
|
|
13
|
+
* Fix a few broken links
|
|
14
|
+
|
|
15
|
+
### 1.7.0 / 2020-05-21
|
|
16
|
+
|
|
17
|
+
#### Features
|
|
18
|
+
|
|
19
|
+
* Add Retry Policy support
|
|
20
|
+
* Add RetryPolicy
|
|
21
|
+
* Add retry_policy param to Topic#subscribe
|
|
22
|
+
* Add Subscription#retry_policy
|
|
23
|
+
* Add Subscription#retry_policy=
|
|
24
|
+
* Set client-scoped UUID in initial StreamingPullRequest#client_id
|
|
25
|
+
|
|
26
|
+
### 1.6.1 / 2020-05-06
|
|
27
|
+
|
|
28
|
+
#### Documentation
|
|
29
|
+
|
|
30
|
+
* Fix example in Emulator documentation
|
|
31
|
+
* Remove experimental notice from ReceivedMessage#delivery_attempt
|
|
32
|
+
* Wrap example URLs in backticks
|
|
33
|
+
|
|
34
|
+
### 1.6.0 / 2020-04-06
|
|
35
|
+
|
|
36
|
+
#### Features
|
|
37
|
+
|
|
38
|
+
* Add list_topic_snapshots and get_snapshot
|
|
39
|
+
* Add PublisherClient#list_topic_snapshots
|
|
40
|
+
* Add SubscriberClient#get_snapshot
|
|
41
|
+
|
|
42
|
+
#### Documentation
|
|
43
|
+
|
|
44
|
+
* Remove a spurious link in the low-level interface documentation.
|
|
45
|
+
|
|
3
46
|
### 1.5.0 / 2020-03-25
|
|
4
47
|
|
|
5
48
|
#### Features
|
data/EMULATOR.md
CHANGED
|
@@ -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"
|
data/TROUBLESHOOTING.md
CHANGED
|
@@ -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/
|
|
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
|
-
[
|
|
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,7 @@ 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
|
|
366
367
|
end
|
|
367
368
|
end
|
|
368
369
|
|
|
@@ -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
|
-
#
|
|
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
|
|
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
|
|
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
|
-
#
|
|
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,
|
|
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"
|
|
111
|
-
#
|
|
112
|
-
#
|
|
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
|
|
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
|
|
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
|
|
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
|
-
#
|
|
328
|
-
#
|
|
329
|
-
#
|
|
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.
|
|
@@ -399,7 +411,7 @@ module Google
|
|
|
399
411
|
# @!attribute [rw] push_endpoint
|
|
400
412
|
# @return [String]
|
|
401
413
|
# A URL locating the endpoint to which messages should be pushed.
|
|
402
|
-
# For example, a Webhook endpoint might use
|
|
414
|
+
# For example, a Webhook endpoint might use `https://example.com/push`.
|
|
403
415
|
# @!attribute [rw] attributes
|
|
404
416
|
# @return [Hash{String => String}]
|
|
405
417
|
# Endpoint configuration attributes that can be used to control different
|
|
@@ -458,8 +470,11 @@ module Google
|
|
|
458
470
|
# The message.
|
|
459
471
|
# @!attribute [rw] delivery_attempt
|
|
460
472
|
# @return [Integer]
|
|
461
|
-
#
|
|
462
|
-
#
|
|
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
|
-
#
|
|
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
|
|
@@ -64,7 +64,11 @@ module Google
|
|
|
64
64
|
"list_topic_subscriptions" => Google::Gax::PageDescriptor.new(
|
|
65
65
|
"page_token",
|
|
66
66
|
"next_page_token",
|
|
67
|
-
"subscriptions")
|
|
67
|
+
"subscriptions"),
|
|
68
|
+
"list_topic_snapshots" => Google::Gax::PageDescriptor.new(
|
|
69
|
+
"page_token",
|
|
70
|
+
"next_page_token",
|
|
71
|
+
"snapshots")
|
|
68
72
|
}.freeze
|
|
69
73
|
|
|
70
74
|
private_constant :PAGE_DESCRIPTORS
|
|
@@ -94,6 +98,12 @@ module Google
|
|
|
94
98
|
|
|
95
99
|
private_constant :PROJECT_PATH_TEMPLATE
|
|
96
100
|
|
|
101
|
+
SUBSCRIPTION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
|
102
|
+
"projects/{project}/subscriptions/{subscription}"
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
private_constant :SUBSCRIPTION_PATH_TEMPLATE
|
|
106
|
+
|
|
97
107
|
TOPIC_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
|
98
108
|
"projects/{project}/topics/{topic}"
|
|
99
109
|
)
|
|
@@ -109,9 +119,18 @@ module Google
|
|
|
109
119
|
)
|
|
110
120
|
end
|
|
111
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
|
+
|
|
112
133
|
# Returns a fully-qualified topic resource name string.
|
|
113
|
-
# @deprecated Multi-pattern resource names will have unified creation and parsing helper functions.
|
|
114
|
-
# This helper function will be deleted in the next major version.
|
|
115
134
|
# @param project [String]
|
|
116
135
|
# @param topic [String]
|
|
117
136
|
# @return [String]
|
|
@@ -294,6 +313,14 @@ module Google
|
|
|
294
313
|
{'topic' => request.topic}
|
|
295
314
|
end
|
|
296
315
|
)
|
|
316
|
+
@list_topic_snapshots = Google::Gax.create_api_call(
|
|
317
|
+
@publisher_stub.method(:list_topic_snapshots),
|
|
318
|
+
defaults["list_topic_snapshots"],
|
|
319
|
+
exception_transformer: exception_transformer,
|
|
320
|
+
params_extractor: proc do |request|
|
|
321
|
+
{'topic' => request.topic}
|
|
322
|
+
end
|
|
323
|
+
)
|
|
297
324
|
@delete_topic = Google::Gax.create_api_call(
|
|
298
325
|
@publisher_stub.method(:delete_topic),
|
|
299
326
|
defaults["delete_topic"],
|
|
@@ -326,6 +353,14 @@ module Google
|
|
|
326
353
|
{'resource' => request.resource}
|
|
327
354
|
end
|
|
328
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
|
+
)
|
|
329
364
|
end
|
|
330
365
|
|
|
331
366
|
# Service calls
|
|
@@ -397,9 +432,9 @@ module Google
|
|
|
397
432
|
# @param update_mask [Google::Protobuf::FieldMask | Hash]
|
|
398
433
|
# Required. Indicates which fields in the provided topic to update. Must be
|
|
399
434
|
# specified and non-empty. Note that if `update_mask` contains
|
|
400
|
-
# "message_storage_policy"
|
|
401
|
-
#
|
|
402
|
-
#
|
|
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.
|
|
403
438
|
# A hash of the same form as `Google::Protobuf::FieldMask`
|
|
404
439
|
# can also be provided.
|
|
405
440
|
# @param options [Google::Gax::CallOptions]
|
|
@@ -562,7 +597,7 @@ module Google
|
|
|
562
597
|
@list_topics.call(req, options, &block)
|
|
563
598
|
end
|
|
564
599
|
|
|
565
|
-
# Lists the names of the subscriptions on this topic.
|
|
600
|
+
# Lists the names of the attached subscriptions on this topic.
|
|
566
601
|
#
|
|
567
602
|
# @param topic [String]
|
|
568
603
|
# Required. The name of the topic that subscriptions are attached to.
|
|
@@ -617,6 +652,66 @@ module Google
|
|
|
617
652
|
@list_topic_subscriptions.call(req, options, &block)
|
|
618
653
|
end
|
|
619
654
|
|
|
655
|
+
# Lists the names of the snapshots on this topic. Snapshots are used in
|
|
656
|
+
# <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
|
|
657
|
+
# operations, which allow
|
|
658
|
+
# you to manage message acknowledgments in bulk. That is, you can set the
|
|
659
|
+
# acknowledgment state of messages in an existing subscription to the state
|
|
660
|
+
# captured by a snapshot.
|
|
661
|
+
#
|
|
662
|
+
# @param topic [String]
|
|
663
|
+
# Required. The name of the topic that snapshots are attached to.
|
|
664
|
+
# Format is `projects/{project}/topics/{topic}`.
|
|
665
|
+
# @param page_size [Integer]
|
|
666
|
+
# The maximum number of resources contained in the underlying API
|
|
667
|
+
# response. If page streaming is performed per-resource, this
|
|
668
|
+
# parameter does not affect the return value. If page streaming is
|
|
669
|
+
# performed per-page, this determines the maximum number of
|
|
670
|
+
# resources in a page.
|
|
671
|
+
# @param options [Google::Gax::CallOptions]
|
|
672
|
+
# Overrides the default settings for this call, e.g, timeout,
|
|
673
|
+
# retries, etc.
|
|
674
|
+
# @yield [result, operation] Access the result along with the RPC operation
|
|
675
|
+
# @yieldparam result [Google::Gax::PagedEnumerable<String>]
|
|
676
|
+
# @yieldparam operation [GRPC::ActiveCall::Operation]
|
|
677
|
+
# @return [Google::Gax::PagedEnumerable<String>]
|
|
678
|
+
# An enumerable of String instances.
|
|
679
|
+
# See Google::Gax::PagedEnumerable documentation for other
|
|
680
|
+
# operations such as per-page iteration or access to the response
|
|
681
|
+
# object.
|
|
682
|
+
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
|
683
|
+
# @example
|
|
684
|
+
# require "google/cloud/pubsub"
|
|
685
|
+
#
|
|
686
|
+
# publisher_client = Google::Cloud::PubSub::Publisher.new(version: :v1)
|
|
687
|
+
# formatted_topic = Google::Cloud::PubSub::V1::PublisherClient.topic_path("[PROJECT]", "[TOPIC]")
|
|
688
|
+
#
|
|
689
|
+
# # Iterate over all results.
|
|
690
|
+
# publisher_client.list_topic_snapshots(formatted_topic).each do |element|
|
|
691
|
+
# # Process element.
|
|
692
|
+
# end
|
|
693
|
+
#
|
|
694
|
+
# # Or iterate over results one page at a time.
|
|
695
|
+
# publisher_client.list_topic_snapshots(formatted_topic).each_page do |page|
|
|
696
|
+
# # Process each page at a time.
|
|
697
|
+
# page.each do |element|
|
|
698
|
+
# # Process element.
|
|
699
|
+
# end
|
|
700
|
+
# end
|
|
701
|
+
|
|
702
|
+
def list_topic_snapshots \
|
|
703
|
+
topic,
|
|
704
|
+
page_size: nil,
|
|
705
|
+
options: nil,
|
|
706
|
+
&block
|
|
707
|
+
req = {
|
|
708
|
+
topic: topic,
|
|
709
|
+
page_size: page_size
|
|
710
|
+
}.delete_if { |_, v| v.nil? }
|
|
711
|
+
req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::ListTopicSnapshotsRequest)
|
|
712
|
+
@list_topic_snapshots.call(req, options, &block)
|
|
713
|
+
end
|
|
714
|
+
|
|
620
715
|
# Deletes the topic with the given name. Returns `NOT_FOUND` if the topic
|
|
621
716
|
# does not exist. After a topic is deleted, a new topic may be created with
|
|
622
717
|
# the same name; this is an entirely new topic with none of the old
|
|
@@ -655,8 +750,8 @@ module Google
|
|
|
655
750
|
# Sets the access control policy on the specified resource. Replaces
|
|
656
751
|
# any existing policy.
|
|
657
752
|
#
|
|
658
|
-
# Can return
|
|
659
|
-
#
|
|
753
|
+
# Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
|
|
754
|
+
# errors.
|
|
660
755
|
#
|
|
661
756
|
# @param resource [String]
|
|
662
757
|
# REQUIRED: The resource for which the policy is being specified.
|
|
@@ -744,7 +839,7 @@ module Google
|
|
|
744
839
|
|
|
745
840
|
# Returns permissions that a caller has on the specified resource. If the
|
|
746
841
|
# resource does not exist, this will return an empty set of
|
|
747
|
-
# permissions, not a NOT_FOUND error.
|
|
842
|
+
# permissions, not a `NOT_FOUND` error.
|
|
748
843
|
#
|
|
749
844
|
# Note: This operation is designed to be used for building
|
|
750
845
|
# permission-aware UIs and command-line tools, not for authorization
|
|
@@ -790,6 +885,40 @@ module Google
|
|
|
790
885
|
req = Google::Gax::to_proto(req, Google::Iam::V1::TestIamPermissionsRequest)
|
|
791
886
|
@test_iam_permissions.call(req, options, &block)
|
|
792
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
|
|
793
922
|
end
|
|
794
923
|
end
|
|
795
924
|
end
|
|
@@ -7,9 +7,14 @@
|
|
|
7
7
|
"UNAVAILABLE",
|
|
8
8
|
"UNKNOWN"
|
|
9
9
|
],
|
|
10
|
+
"non_idempotent2": [],
|
|
10
11
|
"non_idempotent": [
|
|
11
12
|
"UNAVAILABLE"
|
|
12
13
|
],
|
|
14
|
+
"idempotent2": [
|
|
15
|
+
"DEADLINE_EXCEEDED",
|
|
16
|
+
"UNAVAILABLE"
|
|
17
|
+
],
|
|
13
18
|
"none": [],
|
|
14
19
|
"publish": [
|
|
15
20
|
"ABORTED",
|
|
@@ -79,6 +84,11 @@
|
|
|
79
84
|
"retry_codes_name": "idempotent",
|
|
80
85
|
"retry_params_name": "default"
|
|
81
86
|
},
|
|
87
|
+
"ListTopicSnapshots": {
|
|
88
|
+
"timeout_millis": 60000,
|
|
89
|
+
"retry_codes_name": "idempotent2",
|
|
90
|
+
"retry_params_name": "default"
|
|
91
|
+
},
|
|
82
92
|
"DeleteTopic": {
|
|
83
93
|
"timeout_millis": 60000,
|
|
84
94
|
"retry_codes_name": "non_idempotent",
|
|
@@ -98,6 +108,11 @@
|
|
|
98
108
|
"timeout_millis": 60000,
|
|
99
109
|
"retry_codes_name": "non_idempotent",
|
|
100
110
|
"retry_params_name": "default"
|
|
111
|
+
},
|
|
112
|
+
"DetachSubscription": {
|
|
113
|
+
"timeout_millis": 60000,
|
|
114
|
+
"retry_codes_name": "non_idempotent2",
|
|
115
|
+
"retry_params_name": "default"
|
|
101
116
|
}
|
|
102
117
|
}
|
|
103
118
|
}
|
|
@@ -134,8 +134,6 @@ module Google
|
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
# Returns a fully-qualified topic resource name string.
|
|
137
|
-
# @deprecated Multi-pattern resource names will have unified creation and parsing helper functions.
|
|
138
|
-
# This helper function will be deleted in the next major version.
|
|
139
137
|
# @param project [String]
|
|
140
138
|
# @param topic [String]
|
|
141
139
|
# @return [String]
|
|
@@ -309,6 +307,14 @@ module Google
|
|
|
309
307
|
{'subscription' => request.subscription}
|
|
310
308
|
end
|
|
311
309
|
)
|
|
310
|
+
@get_snapshot = Google::Gax.create_api_call(
|
|
311
|
+
@subscriber_stub.method(:get_snapshot),
|
|
312
|
+
defaults["get_snapshot"],
|
|
313
|
+
exception_transformer: exception_transformer,
|
|
314
|
+
params_extractor: proc do |request|
|
|
315
|
+
{'snapshot' => request.snapshot}
|
|
316
|
+
end
|
|
317
|
+
)
|
|
312
318
|
@modify_ack_deadline = Google::Gax.create_api_call(
|
|
313
319
|
@subscriber_stub.method(:modify_ack_deadline),
|
|
314
320
|
defaults["modify_ack_deadline"],
|
|
@@ -504,13 +510,11 @@ module Google
|
|
|
504
510
|
# A hash of the same form as `Google::Cloud::PubSub::V1::ExpirationPolicy`
|
|
505
511
|
# can also be provided.
|
|
506
512
|
# @param filter [String]
|
|
507
|
-
# An expression written in the
|
|
513
|
+
# An expression written in the Pub/Sub [filter
|
|
514
|
+
# language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
|
|
508
515
|
# then only `PubsubMessage`s whose `attributes` field matches the filter are
|
|
509
516
|
# delivered on this subscription. If empty, then no messages are filtered
|
|
510
517
|
# out.
|
|
511
|
-
# <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
|
|
512
|
-
# API might be changed in backward-incompatible ways and is not recommended
|
|
513
|
-
# for production use. It is not subject to any SLA or deprecation policy.
|
|
514
518
|
# @param dead_letter_policy [Google::Cloud::PubSub::V1::DeadLetterPolicy | Hash]
|
|
515
519
|
# A policy that specifies the conditions for dead lettering messages in
|
|
516
520
|
# this subscription. If dead_letter_policy is not set, dead lettering
|
|
@@ -520,24 +524,24 @@ module Google
|
|
|
520
524
|
# parent project (i.e.,
|
|
521
525
|
# service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
|
|
522
526
|
# permission to Acknowledge() messages on this subscription.
|
|
523
|
-
# <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
|
|
524
|
-
# API might be changed in backward-incompatible ways and is not recommended
|
|
525
|
-
# for production use. It is not subject to any SLA or deprecation policy.
|
|
526
527
|
# A hash of the same form as `Google::Cloud::PubSub::V1::DeadLetterPolicy`
|
|
527
528
|
# can also be provided.
|
|
528
529
|
# @param retry_policy [Google::Cloud::PubSub::V1::RetryPolicy | Hash]
|
|
529
|
-
# A policy that specifies how
|
|
530
|
+
# A policy that specifies how Pub/Sub retries message delivery for this
|
|
530
531
|
# subscription.
|
|
531
532
|
#
|
|
532
533
|
# If not set, the default retry policy is applied. This generally implies
|
|
533
534
|
# that messages will be retried as soon as possible for healthy subscribers.
|
|
534
535
|
# RetryPolicy will be triggered on NACKs or acknowledgement deadline
|
|
535
536
|
# exceeded events for a given message.
|
|
536
|
-
# <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible
|
|
537
|
-
# ways and is not recommended for production use. It is not subject to any
|
|
538
|
-
# SLA or deprecation policy.
|
|
539
537
|
# A hash of the same form as `Google::Cloud::PubSub::V1::RetryPolicy`
|
|
540
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.
|
|
541
545
|
# @param options [Google::Gax::CallOptions]
|
|
542
546
|
# Overrides the default settings for this call, e.g, timeout,
|
|
543
547
|
# retries, etc.
|
|
@@ -567,6 +571,7 @@ module Google
|
|
|
567
571
|
filter: nil,
|
|
568
572
|
dead_letter_policy: nil,
|
|
569
573
|
retry_policy: nil,
|
|
574
|
+
detached: nil,
|
|
570
575
|
options: nil,
|
|
571
576
|
&block
|
|
572
577
|
req = {
|
|
@@ -581,7 +586,8 @@ module Google
|
|
|
581
586
|
expiration_policy: expiration_policy,
|
|
582
587
|
filter: filter,
|
|
583
588
|
dead_letter_policy: dead_letter_policy,
|
|
584
|
-
retry_policy: retry_policy
|
|
589
|
+
retry_policy: retry_policy,
|
|
590
|
+
detached: detached
|
|
585
591
|
}.delete_if { |_, v| v.nil? }
|
|
586
592
|
req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::Subscription)
|
|
587
593
|
@create_subscription.call(req, options, &block)
|
|
@@ -752,6 +758,41 @@ module Google
|
|
|
752
758
|
nil
|
|
753
759
|
end
|
|
754
760
|
|
|
761
|
+
# Gets the configuration details of a snapshot. Snapshots are used in
|
|
762
|
+
# <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
|
|
763
|
+
# operations, which allow you to manage message acknowledgments in bulk. That
|
|
764
|
+
# is, you can set the acknowledgment state of messages in an existing
|
|
765
|
+
# subscription to the state captured by a snapshot.
|
|
766
|
+
#
|
|
767
|
+
# @param snapshot [String]
|
|
768
|
+
# Required. The name of the snapshot to get.
|
|
769
|
+
# Format is `projects/{project}/snapshots/{snap}`.
|
|
770
|
+
# @param options [Google::Gax::CallOptions]
|
|
771
|
+
# Overrides the default settings for this call, e.g, timeout,
|
|
772
|
+
# retries, etc.
|
|
773
|
+
# @yield [result, operation] Access the result along with the RPC operation
|
|
774
|
+
# @yieldparam result [Google::Cloud::PubSub::V1::Snapshot]
|
|
775
|
+
# @yieldparam operation [GRPC::ActiveCall::Operation]
|
|
776
|
+
# @return [Google::Cloud::PubSub::V1::Snapshot]
|
|
777
|
+
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
|
778
|
+
# @example
|
|
779
|
+
# require "google/cloud/pubsub"
|
|
780
|
+
#
|
|
781
|
+
# subscriber_client = Google::Cloud::PubSub::Subscriber.new(version: :v1)
|
|
782
|
+
# formatted_snapshot = Google::Cloud::PubSub::V1::SubscriberClient.snapshot_path("[PROJECT]", "[SNAPSHOT]")
|
|
783
|
+
# response = subscriber_client.get_snapshot(formatted_snapshot)
|
|
784
|
+
|
|
785
|
+
def get_snapshot \
|
|
786
|
+
snapshot,
|
|
787
|
+
options: nil,
|
|
788
|
+
&block
|
|
789
|
+
req = {
|
|
790
|
+
snapshot: snapshot
|
|
791
|
+
}.delete_if { |_, v| v.nil? }
|
|
792
|
+
req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::GetSnapshotRequest)
|
|
793
|
+
@get_snapshot.call(req, options, &block)
|
|
794
|
+
end
|
|
795
|
+
|
|
755
796
|
# Modifies the ack deadline for a specific message. This method is useful
|
|
756
797
|
# to indicate that more time is needed to process a message by the
|
|
757
798
|
# subscriber, or to make the message available for redelivery if the
|
|
@@ -1281,8 +1322,8 @@ module Google
|
|
|
1281
1322
|
# Sets the access control policy on the specified resource. Replaces
|
|
1282
1323
|
# any existing policy.
|
|
1283
1324
|
#
|
|
1284
|
-
# Can return
|
|
1285
|
-
#
|
|
1325
|
+
# Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
|
|
1326
|
+
# errors.
|
|
1286
1327
|
#
|
|
1287
1328
|
# @param resource [String]
|
|
1288
1329
|
# REQUIRED: The resource for which the policy is being specified.
|
|
@@ -1370,7 +1411,7 @@ module Google
|
|
|
1370
1411
|
|
|
1371
1412
|
# Returns permissions that a caller has on the specified resource. If the
|
|
1372
1413
|
# resource does not exist, this will return an empty set of
|
|
1373
|
-
# permissions, not a NOT_FOUND error.
|
|
1414
|
+
# permissions, not a `NOT_FOUND` error.
|
|
1374
1415
|
#
|
|
1375
1416
|
# Note: This operation is designed to be used for building
|
|
1376
1417
|
# permission-aware UIs and command-line tools, not for authorization
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
"non_idempotent": [
|
|
11
11
|
"UNAVAILABLE"
|
|
12
12
|
],
|
|
13
|
+
"idempotent2": [
|
|
14
|
+
"DEADLINE_EXCEEDED",
|
|
15
|
+
"UNAVAILABLE"
|
|
16
|
+
],
|
|
13
17
|
"streaming_pull": [
|
|
14
18
|
"ABORTED",
|
|
15
19
|
"DEADLINE_EXCEEDED",
|
|
@@ -73,6 +77,11 @@
|
|
|
73
77
|
"retry_codes_name": "non_idempotent",
|
|
74
78
|
"retry_params_name": "default"
|
|
75
79
|
},
|
|
80
|
+
"GetSnapshot": {
|
|
81
|
+
"timeout_millis": 60000,
|
|
82
|
+
"retry_codes_name": "idempotent2",
|
|
83
|
+
"retry_params_name": "default"
|
|
84
|
+
},
|
|
76
85
|
"ModifyAckDeadline": {
|
|
77
86
|
"timeout_millis": 60000,
|
|
78
87
|
"retry_codes_name": "non_idempotent",
|
|
@@ -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.
|
|
4
|
+
version: 1.8.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-
|
|
12
|
+
date: 2020-06-29 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.
|
|
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.
|
|
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.
|
|
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
|