google-cloud-pubsub 2.7.0 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +2 -1
- data/CHANGELOG.md +44 -0
- data/OVERVIEW.md +1 -1
- data/lib/google/cloud/pubsub/project.rb +12 -2
- data/lib/google/cloud/pubsub/service.rb +25 -11
- data/lib/google/cloud/pubsub/subscription.rb +20 -3
- data/lib/google/cloud/pubsub/topic.rb +37 -0
- data/lib/google/cloud/pubsub/version.rb +1 -1
- data/lib/google/cloud/pubsub.rb +4 -4
- data/lib/google-cloud-pubsub.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e56f8ca6212ea03d9ede9593222eda8574a047d56e9c60e3149b722eb4951197
|
4
|
+
data.tar.gz: ac2802eb09654de3efb5011fd15d49f3a51a2ae0b794bee78a4b955adf5748d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dc04aba0cecb3560aa8c667b3e9c79be288f14db5060d9624138f552bfdfe6cdfcc9a3114a977dbeb2918c94527ab166bd111711755796b40b6a672789b6a92
|
7
|
+
data.tar.gz: ae94d8fe7a07afb8a893f3b5ddc102b0b01a4b7649f84c5cda27c6e57dbe535adf8b87c6cc22f0f96af117464efa04997b4db54c6775d5f9fad43d0ea14550e1
|
data/AUTHENTICATION.md
CHANGED
@@ -96,7 +96,8 @@ client = Google::Cloud::PubSub.new
|
|
96
96
|
|
97
97
|
### Configuration
|
98
98
|
|
99
|
-
The **Project ID** and **Credentials JSON** can be configured
|
99
|
+
The **Project ID** and the path to the **Credentials JSON** file can be configured
|
100
|
+
instead of placing them in environment variables or providing them as arguments.
|
100
101
|
|
101
102
|
```ruby
|
102
103
|
require "google/cloud/pubsub"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,49 @@
|
|
1
1
|
# Release History
|
2
2
|
|
3
|
+
### 2.9.0 / 2021-10-28
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* Expand timeout type from Integer to Numeric
|
8
|
+
* feat: Expand timeout type from Integer to Numeric. This is backwards-compatible.
|
9
|
+
* Change timeout from Integer to Numeric in Google::Cloud.pubsub
|
10
|
+
* Change timeout from Integer to Numeric in Google::Cloud#pubsub
|
11
|
+
* Change timeout from Integer to Numeric in Google::Cloud::PubSub.configure
|
12
|
+
* Change timeout from Integer to Numeric in Google::Cloud::PubSub.new
|
13
|
+
* fix: Propagate timeout to client RPC configs.
|
14
|
+
|
15
|
+
#### Documentation
|
16
|
+
|
17
|
+
* Add documentation for quota_project Configuration attribute
|
18
|
+
* Fix documentation for PubSub.configure
|
19
|
+
* Remove retries property that does not exist in code.
|
20
|
+
|
21
|
+
### 2.8.1 / 2021-09-22
|
22
|
+
|
23
|
+
#### Bug Fixes
|
24
|
+
|
25
|
+
* Change IAM and Schema client metadata hash keys to symbols
|
26
|
+
|
27
|
+
#### Documentation
|
28
|
+
|
29
|
+
* Fix typo in Emulator guide links
|
30
|
+
|
31
|
+
### 2.8.0 / 2021-08-30
|
32
|
+
|
33
|
+
#### Features
|
34
|
+
|
35
|
+
* Add Pub/Sub topic retention fields
|
36
|
+
* Add retention to Project#create_topic
|
37
|
+
* Add Topic#retention
|
38
|
+
* Add Topic#retention=
|
39
|
+
* Add Subscription#topic_retention
|
40
|
+
|
41
|
+
### 2.7.1 / 2021-07-08
|
42
|
+
|
43
|
+
#### Documentation
|
44
|
+
|
45
|
+
* Update AUTHENTICATION.md in handwritten packages
|
46
|
+
|
3
47
|
### 2.7.0 / 2021-06-15
|
4
48
|
|
5
49
|
#### Features
|
data/OVERVIEW.md
CHANGED
@@ -524,5 +524,5 @@ sub.topic.name #=> "projects/other-project-id/topics/other-topic"
|
|
524
524
|
## Additional information
|
525
525
|
|
526
526
|
Google Cloud Pub/Sub can be configured to use an emulator or to enable gRPC's
|
527
|
-
logging. To learn more, see the {file:EMULATOR.md Emulator guide}
|
527
|
+
logging. To learn more, see the {file:EMULATOR.md Emulator guide} and
|
528
528
|
{file:LOGGING.md Logging guide}.
|
@@ -238,6 +238,14 @@ module Google
|
|
238
238
|
# * `JSON` - JSON encoding.
|
239
239
|
# * `BINARY` - Binary encoding, as defined by the schema type. For some
|
240
240
|
# schema types, binary encoding may not be available.
|
241
|
+
# @param [Numeric] retention Indicates the minimum number of seconds to retain a message
|
242
|
+
# after it is published to the topic. If this field is set, messages published
|
243
|
+
# to the topic within the `retention` number of seconds are always available to
|
244
|
+
# subscribers. For instance, it allows any attached subscription to [seek to a
|
245
|
+
# timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
|
246
|
+
# that is up to `retention` number of seconds in the past. If this field is
|
247
|
+
# not set, message retention is controlled by settings on individual
|
248
|
+
# subscriptions. Cannot be less than 600 (10 minutes) or more than 604,800 (7 days).
|
241
249
|
#
|
242
250
|
# @return [Google::Cloud::PubSub::Topic]
|
243
251
|
#
|
@@ -253,14 +261,16 @@ module Google
|
|
253
261
|
persistence_regions: nil,
|
254
262
|
async: nil,
|
255
263
|
schema_name: nil,
|
256
|
-
message_encoding: nil
|
264
|
+
message_encoding: nil,
|
265
|
+
retention: nil
|
257
266
|
ensure_service!
|
258
267
|
grpc = service.create_topic topic_name,
|
259
268
|
labels: labels,
|
260
269
|
kms_key_name: kms_key,
|
261
270
|
persistence_regions: persistence_regions,
|
262
271
|
schema_name: schema_name,
|
263
|
-
message_encoding: message_encoding
|
272
|
+
message_encoding: message_encoding,
|
273
|
+
retention: retention
|
264
274
|
Topic.from_grpc grpc, service, async: async
|
265
275
|
end
|
266
276
|
alias new_topic create_topic
|
@@ -51,7 +51,7 @@ module Google
|
|
51
51
|
return mocked_subscriber if mocked_subscriber
|
52
52
|
@subscriber ||= V1::Subscriber::Client.new do |config|
|
53
53
|
config.credentials = credentials if credentials
|
54
|
-
config
|
54
|
+
override_client_config_timeouts config if timeout
|
55
55
|
config.endpoint = host if host
|
56
56
|
config.lib_name = "gccl"
|
57
57
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
@@ -64,7 +64,7 @@ module Google
|
|
64
64
|
return mocked_publisher if mocked_publisher
|
65
65
|
@publisher ||= V1::Publisher::Client.new do |config|
|
66
66
|
config.credentials = credentials if credentials
|
67
|
-
config
|
67
|
+
override_client_config_timeouts config if timeout
|
68
68
|
config.endpoint = host if host
|
69
69
|
config.lib_name = "gccl"
|
70
70
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
@@ -77,11 +77,11 @@ module Google
|
|
77
77
|
return mocked_iam if mocked_iam
|
78
78
|
@iam ||= V1::IAMPolicy::Client.new do |config|
|
79
79
|
config.credentials = credentials if credentials
|
80
|
-
config
|
80
|
+
override_client_config_timeouts config if timeout
|
81
81
|
config.endpoint = host if host
|
82
82
|
config.lib_name = "gccl"
|
83
83
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
84
|
-
config.metadata = { "google-cloud-resource-prefix"
|
84
|
+
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
85
85
|
end
|
86
86
|
end
|
87
87
|
attr_accessor :mocked_iam
|
@@ -90,11 +90,11 @@ module Google
|
|
90
90
|
return mocked_schemas if mocked_schemas
|
91
91
|
@schemas ||= V1::SchemaService::Client.new do |config|
|
92
92
|
config.credentials = credentials if credentials
|
93
|
-
config
|
93
|
+
override_client_config_timeouts config if timeout
|
94
94
|
config.endpoint = host if host
|
95
95
|
config.lib_name = "gccl"
|
96
96
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
97
|
-
config.metadata = { "google-cloud-resource-prefix"
|
97
|
+
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
98
98
|
end
|
99
99
|
end
|
100
100
|
attr_accessor :mocked_schemas
|
@@ -127,6 +127,7 @@ module Google
|
|
127
127
|
persistence_regions: nil,
|
128
128
|
schema_name: nil,
|
129
129
|
message_encoding: nil,
|
130
|
+
retention: nil,
|
130
131
|
options: {}
|
131
132
|
if persistence_regions
|
132
133
|
message_storage_policy = Google::Cloud::PubSub::V1::MessageStoragePolicy.new(
|
@@ -145,11 +146,12 @@ module Google
|
|
145
146
|
end
|
146
147
|
|
147
148
|
publisher.create_topic \
|
148
|
-
name:
|
149
|
-
labels:
|
150
|
-
kms_key_name:
|
151
|
-
message_storage_policy:
|
152
|
-
schema_settings:
|
149
|
+
name: topic_path(topic_name, options),
|
150
|
+
labels: labels,
|
151
|
+
kms_key_name: kms_key_name,
|
152
|
+
message_storage_policy: message_storage_policy,
|
153
|
+
schema_settings: schema_settings,
|
154
|
+
message_retention_duration: Convert.number_to_duration(retention)
|
153
155
|
end
|
154
156
|
|
155
157
|
def update_topic topic_obj, *fields
|
@@ -459,6 +461,18 @@ module Google
|
|
459
461
|
|
460
462
|
protected
|
461
463
|
|
464
|
+
# Set the timeout in the client config.
|
465
|
+
# Override the default timeout in each individual RPC config as well, since when they are non-nil, these
|
466
|
+
# defaults have precedence over the top-level config.timeout. See Gapic::CallOptions#apply_defaults.
|
467
|
+
def override_client_config_timeouts config
|
468
|
+
config.timeout = timeout
|
469
|
+
rpc_names = config.rpcs.methods - Object.methods
|
470
|
+
rpc_names.each do |rpc_name|
|
471
|
+
rpc = config.rpcs.send rpc_name
|
472
|
+
rpc.timeout = timeout if rpc.respond_to? :timeout=
|
473
|
+
end
|
474
|
+
end
|
475
|
+
|
462
476
|
def a_time? obj
|
463
477
|
return false unless obj.respond_to? :to_time
|
464
478
|
# Rails' String#to_time returns nil if the string doesn't parse.
|
@@ -168,9 +168,8 @@ module Google
|
|
168
168
|
# backlog, from the moment a message is published. If
|
169
169
|
# {#retain_acked} is `true`, then this also configures the retention of
|
170
170
|
# acknowledged messages, and thus configures how far back in time a
|
171
|
-
# {#seek} can be done. Cannot be
|
172
|
-
#
|
173
|
-
# days).
|
171
|
+
# {#seek} can be done. Cannot be less than 600 (10 minutes) or more
|
172
|
+
# than 604,800 (7 days). Default is 604,800 seconds (7 days).
|
174
173
|
#
|
175
174
|
# Makes an API call to retrieve the retention value when called on a
|
176
175
|
# reference object. See {#reference?}.
|
@@ -195,6 +194,24 @@ module Google
|
|
195
194
|
@resource_name = nil
|
196
195
|
end
|
197
196
|
|
197
|
+
##
|
198
|
+
# Indicates the minimum duration for which a message is retained after
|
199
|
+
# it is published to the subscription's topic. If this field is set,
|
200
|
+
# messages published to the subscription's topic in the last
|
201
|
+
# `topic_message_retention_duration` are always available to subscribers.
|
202
|
+
# Output only. See {Topic#retention}.
|
203
|
+
#
|
204
|
+
# Makes an API call to retrieve the retention value when called on a
|
205
|
+
# reference object. See {#reference?}.
|
206
|
+
#
|
207
|
+
# @return [Numeric, nil] The topic message retention duration in seconds,
|
208
|
+
# or `nil` if not set.
|
209
|
+
#
|
210
|
+
def topic_retention
|
211
|
+
ensure_grpc!
|
212
|
+
Convert.duration_to_number @grpc.topic_message_retention_duration
|
213
|
+
end
|
214
|
+
|
198
215
|
##
|
199
216
|
# Returns the URL locating the endpoint to which messages should be
|
200
217
|
# pushed. For example, a Webhook endpoint might use
|
@@ -305,6 +305,43 @@ module Google
|
|
305
305
|
message_encoding.to_s.upcase == "JSON"
|
306
306
|
end
|
307
307
|
|
308
|
+
##
|
309
|
+
# Indicates the minimum number of seconds to retain a message after it is
|
310
|
+
# published to the topic. If this field is set, messages published to the topic
|
311
|
+
# within the `retention` number of seconds are always available to subscribers.
|
312
|
+
# For instance, it allows any attached subscription to [seek to a
|
313
|
+
# timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
|
314
|
+
# that is up to `retention` number of seconds in the past. If this field is
|
315
|
+
# not set, message retention is controlled by settings on individual
|
316
|
+
# subscriptions. Cannot be less than 600 (10 minutes) or more than 604,800 (7 days).
|
317
|
+
# See {#retention=}.
|
318
|
+
#
|
319
|
+
# Makes an API call to retrieve the retention value when called on a
|
320
|
+
# reference object. See {#reference?}.
|
321
|
+
#
|
322
|
+
# @return [Numeric, nil] The message retention duration in seconds, or `nil` if not set.
|
323
|
+
#
|
324
|
+
def retention
|
325
|
+
ensure_grpc!
|
326
|
+
Convert.duration_to_number @grpc.message_retention_duration
|
327
|
+
end
|
328
|
+
|
329
|
+
##
|
330
|
+
# Sets the message retention duration in seconds. If set to a positive duration
|
331
|
+
# between 600 (10 minutes) and 604,800 (7 days), inclusive, the message retention
|
332
|
+
# duration is changed. If set to `nil`, this clears message retention duration
|
333
|
+
# from the topic. See {#retention}.
|
334
|
+
#
|
335
|
+
# @param [Numeric, nil] new_retention The new message retention duration value.
|
336
|
+
#
|
337
|
+
def retention= new_retention
|
338
|
+
new_retention_duration = Convert.number_to_duration new_retention
|
339
|
+
update_grpc = Google::Cloud::PubSub::V1::Topic.new name: name,
|
340
|
+
message_retention_duration: new_retention_duration
|
341
|
+
@grpc = service.update_topic update_grpc, :message_retention_duration
|
342
|
+
@resource_name = nil
|
343
|
+
end
|
344
|
+
|
308
345
|
##
|
309
346
|
# Permanently deletes the topic.
|
310
347
|
#
|
data/lib/google/cloud/pubsub.rb
CHANGED
@@ -54,7 +54,7 @@ module Google
|
|
54
54
|
# The default scope is:
|
55
55
|
#
|
56
56
|
# * `https://www.googleapis.com/auth/pubsub`
|
57
|
-
# @param [
|
57
|
+
# @param [Numeric] timeout Default timeout to use in requests. Optional.
|
58
58
|
# @param [String] endpoint Override of the endpoint host name. Optional.
|
59
59
|
# If the param is nil, uses the default endpoint.
|
60
60
|
# @param [String] emulator_host Pub/Sub emulator host. Optional.
|
@@ -121,9 +121,9 @@ module Google
|
|
121
121
|
# parameter `keyfile` is considered deprecated, but may also be used.)
|
122
122
|
# * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
|
123
123
|
# the set of resources and operations that the connection can access.
|
124
|
-
# * `
|
125
|
-
#
|
126
|
-
# * `timeout` - (
|
124
|
+
# * `quota_project` - (String) The project ID for a project that can be
|
125
|
+
# used by client libraries for quota and billing purposes.
|
126
|
+
# * `timeout` - (Numeric) Default timeout to use in requests.
|
127
127
|
# * `endpoint` - (String) Override of the endpoint host name, or `nil`
|
128
128
|
# to use the default endpoint.
|
129
129
|
# * `emulator_host` - (String) Host name of the emulator. Defaults to
|
data/lib/google-cloud-pubsub.rb
CHANGED
@@ -41,7 +41,7 @@ module Google
|
|
41
41
|
# The default scope is:
|
42
42
|
#
|
43
43
|
# * `https://www.googleapis.com/auth/pubsub`
|
44
|
-
# @param [
|
44
|
+
# @param [Numeric] timeout Default timeout to use in requests. Optional.
|
45
45
|
#
|
46
46
|
# @return [Google::Cloud::PubSub::Project]
|
47
47
|
#
|
@@ -87,7 +87,7 @@ module Google
|
|
87
87
|
# The default scope is:
|
88
88
|
#
|
89
89
|
# * `https://www.googleapis.com/auth/pubsub`
|
90
|
-
# @param [
|
90
|
+
# @param [Numeric] timeout Default timeout to use in requests. Optional.
|
91
91
|
#
|
92
92
|
# @return [Google::Cloud::PubSub::Project]
|
93
93
|
#
|
@@ -133,7 +133,7 @@ Google::Cloud.configure.add_config! :pubsub do |config|
|
|
133
133
|
config.add_alias! :keyfile, :credentials
|
134
134
|
config.add_field! :scope, default_scopes, match: [String, Array]
|
135
135
|
config.add_field! :quota_project, nil, match: String
|
136
|
-
config.add_field! :timeout, nil, match:
|
136
|
+
config.add_field! :timeout, nil, match: Numeric
|
137
137
|
config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
|
138
138
|
config.add_field! :on_error, nil, match: Proc
|
139
139
|
config.add_field! :endpoint, "pubsub.googleapis.com", match: String
|
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: 2.
|
4
|
+
version: 2.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: 2021-
|
12
|
+
date: 2021-10-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|