google-cloud-pubsub 1.7.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25d3602668077c7dee90a868dcc01353710ac3001ece8ebe92b7acc6c7bc1bb3
4
- data.tar.gz: 2119781ea548d6e87d201bdb759643c7ac78b7ffab0a4ee7505f731c3c812670
3
+ metadata.gz: dfbd62e0e48c406ed08325e5a216f03a0afc4f8319c5ef144fbb6b1fa189e16c
4
+ data.tar.gz: 31995baf9d81c17e1c867efb5584da5d0be27e1baa3bfa256311e803d43cbfb9
5
5
  SHA512:
6
- metadata.gz: ed1de151bbd790feb886162024dbe20e75825c7313de7f0349468d8adbdf0400ce0616f53925315a1a2558b2683fd9ac8b478b842b2008dae67990676c163a4b
7
- data.tar.gz: 2247b98b5f04c936bd908c7a517d396e03af0f07030e7939282f750d8d2b9f569f428961c793f929d5595da60445a55948fe17864a1f25f1ab7d1746b06be9c0
6
+ metadata.gz: 8d50149459ec7bc696a15785ae7f0d77777d9f95edefb4da0775f9e005c25cd8cfe17d20899649fb17c6fc928eb9e0bbc0baddce26afc773d300c54728b04bd6
7
+ data.tar.gz: b599664094c01fc88030478e9076ad72a73ceb6bb3aa4b3a64240193694f0d47f6a34bbbd2ab8ce1188c45d6bbd6322d91e91f157362de0a8a6307c002e6084a
@@ -1,5 +1,17 @@
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
+
3
15
  ### 1.7.1 / 2020-05-28
4
16
 
5
17
  #### Documentation
@@ -241,20 +241,17 @@ module Google
241
241
  push_endpoint: options[:endpoint],
242
242
  attributes: (options[:attributes] || {}).to_h
243
243
  end
244
- deadline = options[:deadline]
245
- retain_acked = options[:retain_acked]
246
244
  mrd = Convert.number_to_duration options[:retention]
247
- labels = options[:labels]
248
- message_ordering = options[:message_ordering]
249
245
  execute do
250
246
  subscriber.create_subscription \
251
247
  name, topic,
252
248
  push_config: push_config,
253
- ack_deadline_seconds: deadline,
254
- retain_acked_messages: retain_acked,
249
+ ack_deadline_seconds: options[:deadline],
250
+ retain_acked_messages: options[:retain_acked],
255
251
  message_retention_duration: mrd,
256
- labels: labels,
257
- enable_message_ordering: message_ordering,
252
+ labels: options[:labels],
253
+ enable_message_ordering: options[:message_ordering],
254
+ filter: options[:filter],
258
255
  dead_letter_policy: dead_letter_policy(options),
259
256
  retry_policy: options[:retry_policy],
260
257
  options: default_options
@@ -364,6 +364,8 @@ module Google
364
364
  req.modify_deadline_ack_ids += @inventory.ack_ids
365
365
  req.modify_deadline_seconds += @inventory.ack_ids.map { @subscriber.deadline }
366
366
  req.client_id = @subscriber.service.client_id
367
+ req.max_outstanding_messages = @inventory.limit
368
+ req.max_outstanding_bytes = @inventory.bytesize
367
369
  end
368
370
  end
369
371
 
@@ -353,6 +353,18 @@ module Google
353
353
  @resource_name = nil
354
354
  end
355
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
+
356
368
  ##
357
369
  # Returns the {Topic} to which dead letter messages should be published if a dead letter policy is configured,
358
370
  # otherwise `nil`. Dead lettering is done on a best effort basis. The same message might be dead lettered
@@ -286,6 +286,9 @@ module Google
286
286
  # Managing Labels](https://cloud.google.com/pubsub/docs/labels).
287
287
  # @param [Boolean] message_ordering Whether to enable message ordering
288
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.
289
292
  # @param [Topic] dead_letter_topic The {Topic} to which dead letter messages for the subscription should be
290
293
  # published. Dead lettering is done on a best effort basis. The same message might be dead lettered multiple
291
294
  # times. The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e.,
@@ -359,11 +362,11 @@ module Google
359
362
  # sub = topic.subscribe "my-topic-sub", retry_policy: retry_policy
360
363
  #
361
364
  def subscribe subscription_name, deadline: nil, retain_acked: false, retention: nil, endpoint: nil, labels: nil,
362
- message_ordering: nil, dead_letter_topic: nil, dead_letter_max_delivery_attempts: nil,
363
- retry_policy: nil
365
+ message_ordering: nil, filter: nil, dead_letter_topic: nil,
366
+ dead_letter_max_delivery_attempts: nil, retry_policy: nil
364
367
  ensure_service!
365
368
  options = { deadline: deadline, retain_acked: retain_acked, retention: retention, endpoint: endpoint,
366
- labels: labels, message_ordering: message_ordering,
369
+ labels: labels, message_ordering: message_ordering, filter: filter,
367
370
  dead_letter_max_delivery_attempts: dead_letter_max_delivery_attempts }
368
371
  options[:dead_letter_topic_name] = dead_letter_topic.name if dead_letter_topic
369
372
  if options[:dead_letter_max_delivery_attempts] && !options[:dead_letter_topic_name]
@@ -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.
@@ -306,13 +308,11 @@ module Google
306
308
  # value for `expiration_policy.ttl` is 1 day.
307
309
  # @!attribute [rw] filter
308
310
  # @return [String]
309
- # 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,
310
313
  # then only `PubsubMessage`s whose `attributes` field matches the filter are
311
314
  # delivered on this subscription. If empty, then no messages are filtered
312
315
  # out.
313
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
314
- # API might be changed in backward-incompatible ways and is not recommended
315
- # for production use. It is not subject to any SLA or deprecation policy.
316
316
  # @!attribute [rw] dead_letter_policy
317
317
  # @return [Google::Cloud::PubSub::V1::DeadLetterPolicy]
318
318
  # A policy that specifies the conditions for dead lettering messages in
@@ -325,16 +325,20 @@ module Google
325
325
  # permission to Acknowledge() messages on this subscription.
326
326
  # @!attribute [rw] retry_policy
327
327
  # @return [Google::Cloud::PubSub::V1::RetryPolicy]
328
- # 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
329
329
  # subscription.
330
330
  #
331
331
  # If not set, the default retry policy is applied. This generally implies
332
332
  # that messages will be retried as soon as possible for healthy subscribers.
333
333
  # RetryPolicy will be triggered on NACKs or acknowledgement deadline
334
334
  # exceeded events for a given message.
335
- # <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible
336
- # ways and is not recommended for production use. It is not subject to any
337
- # 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.
338
342
  class Subscription; end
339
343
 
340
344
  # A policy that specifies how Cloud Pub/Sub retries message delivery.
@@ -661,6 +665,28 @@ module Google
661
665
  # to the same value so that state associated with the old stream can be
662
666
  # transferred to the new stream. The same client_id should not be used for
663
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`.
664
690
  class StreamingPullRequest; end
665
691
 
666
692
  # Response for the `StreamingPull` method. This response is used to stream
@@ -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
@@ -529,18 +527,21 @@ module Google
529
527
  # A hash of the same form as `Google::Cloud::PubSub::V1::DeadLetterPolicy`
530
528
  # can also be provided.
531
529
  # @param retry_policy [Google::Cloud::PubSub::V1::RetryPolicy | Hash]
532
- # 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
533
531
  # subscription.
534
532
  #
535
533
  # If not set, the default retry policy is applied. This generally implies
536
534
  # that messages will be retried as soon as possible for healthy subscribers.
537
535
  # RetryPolicy will be triggered on NACKs or acknowledgement deadline
538
536
  # exceeded events for a given message.
539
- # <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible
540
- # ways and is not recommended for production use. It is not subject to any
541
- # SLA or deprecation policy.
542
537
  # A hash of the same form as `Google::Cloud::PubSub::V1::RetryPolicy`
543
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.
544
545
  # @param options [Google::Gax::CallOptions]
545
546
  # Overrides the default settings for this call, e.g, timeout,
546
547
  # retries, etc.
@@ -570,6 +571,7 @@ module Google
570
571
  filter: nil,
571
572
  dead_letter_policy: nil,
572
573
  retry_policy: nil,
574
+ detached: nil,
573
575
  options: nil,
574
576
  &block
575
577
  req = {
@@ -584,7 +586,8 @@ module Google
584
586
  expiration_policy: expiration_policy,
585
587
  filter: filter,
586
588
  dead_letter_policy: dead_letter_policy,
587
- retry_policy: retry_policy
589
+ retry_policy: retry_policy,
590
+ detached: detached
588
591
  }.delete_if { |_, v| v.nil? }
589
592
  req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::Subscription)
590
593
  @create_subscription.call(req, options, &block)
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module PubSub
19
- VERSION = "1.7.1".freeze
19
+ VERSION = "1.9.0".freeze
20
20
  end
21
21
 
22
22
  Pubsub = PubSub unless const_defined? :Pubsub
@@ -91,6 +91,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
91
91
  optional :filter, :string, 12
92
92
  optional :dead_letter_policy, :message, 13, "google.pubsub.v1.DeadLetterPolicy"
93
93
  optional :retry_policy, :message, 14, "google.pubsub.v1.RetryPolicy"
94
+ optional :detached, :bool, 15
94
95
  end
95
96
  add_message "google.pubsub.v1.RetryPolicy" do
96
97
  optional :minimum_backoff, :message, 1, "google.protobuf.Duration"
@@ -166,6 +167,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
166
167
  repeated :modify_deadline_ack_ids, :string, 4
167
168
  optional :stream_ack_deadline_seconds, :int32, 5
168
169
  optional :client_id, :string, 6
170
+ optional :max_outstanding_messages, :int64, 7
171
+ optional :max_outstanding_bytes, :int64, 8
169
172
  end
170
173
  add_message "google.pubsub.v1.StreamingPullResponse" do
171
174
  repeated :received_messages, :message, 1, "google.pubsub.v1.ReceivedMessage"
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.7.1
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-05-28 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
@@ -330,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
330
  - !ruby/object:Gem::Version
331
331
  version: '0'
332
332
  requirements: []
333
- rubygems_version: 3.0.6
333
+ rubygems_version: 3.1.3
334
334
  signing_key:
335
335
  specification_version: 4
336
336
  summary: API Client library for Google Cloud Pub/Sub