google-cloud-pubsub 0.38.1 → 0.39.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: f651d0f3a5709a23fe001543fdc0c362b1b125e9641cfb86464724e84318b744
4
- data.tar.gz: 9d95824382157ffeb3e42148b6504c5915d6a92feea9882fde9cad7208cc53ce
3
+ metadata.gz: d0fd7553d4bbada28a7a6f4059d46e4251e822133d17cb083a04b227baf644f8
4
+ data.tar.gz: 5533102d2f2f9ed27165c194a611d80dfa33c434cdeb28b99a07aaeb715a3e23
5
5
  SHA512:
6
- metadata.gz: 9ae5641b74e9ec7277645ca7ef401613c7a3347f590ecea6994a67ced0562bfd0b5dee1928acd2ecbeacbae937b7bc09419f6f5878f8157f884414411f0d52c4
7
- data.tar.gz: 5d2f57bb4eb865e8f876b5e6ec5468550058de0a58a17c5bacbd392aee4f2200119758d26c26743dccadc9515d5cc069abca9796153c1b22e24baad011efca8b
6
+ metadata.gz: ce65f101dc44c8d4abb96a5c3762f55935d1bf47ad0171309f7109b66c4367e466eb0fbb7ef1341202520a1b7723b327a3764476d495976d6a644ad714679482
7
+ data.tar.gz: 40c1f20213de5af4108305b8cbdb6849bdeb3101f2cfad12a595ef9daae1297b529d318bf0bb3c7f2e898705b59c663374857fde9902e9558cd23d3b17611fc5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Release History
2
2
 
3
+ ### 0.39.0 / 2019-08-23
4
+
5
+ #### Features
6
+
7
+ * Add Dead Letter Policy to low-level API
8
+ * Add Google::Cloud::PubSub::V1::Subscription#dead_letter_policy
9
+ * Add Google::Cloud::PubSub::V1::DeadLetterPolicy class
10
+
11
+ #### Documentation
12
+
13
+ * Update documentation
14
+
3
15
  ### 0.38.1 / 2019-08-02
4
16
 
5
17
  * Add endpoint argument to constructor
@@ -19,12 +19,11 @@ module Google
19
19
  module V1
20
20
  # @!attribute [rw] allowed_persistence_regions
21
21
  # @return [Array<String>]
22
- # The list of GCP region IDs where messages that are published to the topic
22
+ # A list of IDs of GCP regions where messages that are published to the topic
23
23
  # may be persisted in storage. Messages published by publishers running in
24
24
  # non-allowed GCP regions (or running outside of GCP altogether) will be
25
- # routed for storage in one of the allowed regions. An empty list indicates a
26
- # misconfiguration at the project or organization level, which will result in
27
- # all Publish operations failing.
25
+ # routed for storage in one of the allowed regions. An empty list means that
26
+ # no regions are allowed, and is not a valid configuration.
28
27
  class MessageStoragePolicy; end
29
28
 
30
29
  # A topic resource.
@@ -42,21 +41,15 @@ module Google
42
41
  # managing labels</a>.
43
42
  # @!attribute [rw] message_storage_policy
44
43
  # @return [Google::Cloud::PubSub::V1::MessageStoragePolicy]
45
- # Policy constraining how messages published to the topic may be stored. It
46
- # is determined when the topic is created based on the policy configured at
47
- # the project level. It must not be set by the caller in the request to
48
- # CreateTopic or to UpdateTopic. This field will be populated in the
49
- # responses for GetTopic, CreateTopic, and UpdateTopic: if not present in the
50
- # response, then no constraints are in effect.
44
+ # Policy constraining the set of Google Cloud Platform regions where messages
45
+ # published to the topic may be stored. If not present, then no constraints
46
+ # are in effect.
51
47
  # @!attribute [rw] kms_key_name
52
48
  # @return [String]
53
49
  # The resource name of the Cloud KMS CryptoKey to be used to protect access
54
50
  # to messages published on this topic.
55
51
  #
56
52
  # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
57
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
58
- # API might be changed in backward-incompatible ways and is not recommended
59
- # for production use. It is not subject to any SLA or deprecation policy.
60
53
  class Topic; end
61
54
 
62
55
  # A message that is published by publishers and consumed by subscribers. The
@@ -298,8 +291,54 @@ module Google
298
291
  # operations on the subscription. If `expiration_policy` is not set, a
299
292
  # *default policy* with `ttl` of 31 days will be used. The minimum allowed
300
293
  # value for `expiration_policy.ttl` is 1 day.
294
+ # @!attribute [rw] dead_letter_policy
295
+ # @return [Google::Cloud::PubSub::V1::DeadLetterPolicy]
296
+ # A policy that specifies the conditions for dead lettering messages in
297
+ # this subscription. If dead_letter_policy is not set, dead lettering
298
+ # is disabled.
299
+ #
300
+ # The Cloud Pub/Sub service account associated with this subscriptions's
301
+ # parent project (i.e.,
302
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
303
+ # permission to Acknowledge() messages on this subscription.
304
+ # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
305
+ # API might be changed in backward-incompatible ways and is not recommended
306
+ # for production use. It is not subject to any SLA or deprecation policy.
301
307
  class Subscription; end
302
308
 
309
+ # Dead lettering is done on a best effort basis. The same message might be
310
+ # dead lettered multiple times.
311
+ #
312
+ # If validation on any of the fields fails at subscription creation/updation,
313
+ # the create/update subscription request will fail.
314
+ # @!attribute [rw] dead_letter_topic
315
+ # @return [String]
316
+ # The name of the topic to which dead letter messages should be published.
317
+ # Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
318
+ # account associated with the enclosing subscription's parent project (i.e.,
319
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
320
+ # permission to Publish() to this topic.
321
+ #
322
+ # The operation will fail if the topic does not exist.
323
+ # Users should ensure that there is a subscription attached to this topic
324
+ # since messages published to a topic with no subscriptions are lost.
325
+ # @!attribute [rw] max_delivery_attempts
326
+ # @return [Integer]
327
+ # The maximum number of delivery attempts for any message. The value must be
328
+ # between 5 and 100.
329
+ #
330
+ # The number of delivery attempts is defined as 1 + (the sum of number of
331
+ # NACKs and number of times the acknowledgement deadline has been exceeded
332
+ # for the message).
333
+ #
334
+ # A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
335
+ # client libraries may automatically extend ack_deadlines.
336
+ #
337
+ # This field will be honored on a best effort basis.
338
+ #
339
+ # If this parameter is 0, a default value of 5 is used.
340
+ class DeadLetterPolicy; end
341
+
303
342
  # A policy that specifies the conditions for resource expiration (i.e.,
304
343
  # automatic resource deletion).
305
344
  # @!attribute [rw] ttl
@@ -319,27 +358,27 @@ module Google
319
358
  # For example, a Webhook endpoint might use "https://example.com/push".
320
359
  # @!attribute [rw] attributes
321
360
  # @return [Hash{String => String}]
322
- # Endpoint configuration attributes.
361
+ # Endpoint configuration attributes that can be used to control different
362
+ # aspects of the message delivery.
323
363
  #
324
- # Every endpoint has a set of API supported attributes that can be used to
325
- # control different aspects of the message delivery.
326
- #
327
- # The currently supported attribute is `x-goog-version`, which you can
364
+ # The only currently supported attribute is `x-goog-version`, which you can
328
365
  # use to change the format of the pushed message. This attribute
329
366
  # indicates the version of the data expected by the endpoint. This
330
367
  # controls the shape of the pushed message (i.e., its fields and metadata).
331
- # The endpoint version is based on the version of the Pub/Sub API.
332
368
  #
333
369
  # If not present during the `CreateSubscription` call, it will default to
334
- # the version of the API used to make such call. If not present during a
370
+ # the version of the Pub/Sub API used to make such call. If not present in a
335
371
  # `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
336
372
  # calls will always return a valid version, even if the subscription was
337
373
  # created without this attribute.
338
374
  #
339
- # The possible values for this attribute are:
375
+ # The only supported values for the `x-goog-version` attribute are:
340
376
  #
341
377
  # * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
342
378
  # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
379
+ #
380
+ # For example:
381
+ # <pre><code>attributes { "x-goog-version": "v1" } </code></pre>
343
382
  # @!attribute [rw] oidc_token
344
383
  # @return [Google::Cloud::PubSub::V1::PushConfig::OidcToken]
345
384
  # If specified, Pub/Sub will generate and attach an OIDC JWT token as an
@@ -453,8 +492,9 @@ module Google
453
492
  # least one message is available, rather than returning no messages.
454
493
  # @!attribute [rw] max_messages
455
494
  # @return [Integer]
456
- # The maximum number of messages returned for this request. The Pub/Sub
457
- # system may return fewer than the number specified.
495
+ # The maximum number of messages to return for this request. Must be a
496
+ # positive integer. The Pub/Sub system may return fewer than the number
497
+ # specified.
458
498
  class PullRequest; end
459
499
 
460
500
  # Response for the `Pull` method.
@@ -340,12 +340,9 @@ module Google
340
340
  # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
341
341
  # managing labels</a>.
342
342
  # @param message_storage_policy [Google::Cloud::PubSub::V1::MessageStoragePolicy | Hash]
343
- # Policy constraining how messages published to the topic may be stored. It
344
- # is determined when the topic is created based on the policy configured at
345
- # the project level. It must not be set by the caller in the request to
346
- # CreateTopic or to UpdateTopic. This field will be populated in the
347
- # responses for GetTopic, CreateTopic, and UpdateTopic: if not present in the
348
- # response, then no constraints are in effect.
343
+ # Policy constraining the set of Google Cloud Platform regions where messages
344
+ # published to the topic may be stored. If not present, then no constraints
345
+ # are in effect.
349
346
  # A hash of the same form as `Google::Cloud::PubSub::V1::MessageStoragePolicy`
350
347
  # can also be provided.
351
348
  # @param kms_key_name [String]
@@ -353,9 +350,6 @@ module Google
353
350
  # to messages published on this topic.
354
351
  #
355
352
  # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
356
- # <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
357
- # API might be changed in backward-incompatible ways and is not recommended
358
- # for production use. It is not subject to any SLA or deprecation policy.
359
353
  # @param options [Google::Gax::CallOptions]
360
354
  # Overrides the default settings for this call, e.g, timeout,
361
355
  # retries, etc.
@@ -499,6 +499,20 @@ module Google
499
499
  # value for `expiration_policy.ttl` is 1 day.
500
500
  # A hash of the same form as `Google::Cloud::PubSub::V1::ExpirationPolicy`
501
501
  # can also be provided.
502
+ # @param dead_letter_policy [Google::Cloud::PubSub::V1::DeadLetterPolicy | Hash]
503
+ # A policy that specifies the conditions for dead lettering messages in
504
+ # this subscription. If dead_letter_policy is not set, dead lettering
505
+ # is disabled.
506
+ #
507
+ # The Cloud Pub/Sub service account associated with this subscriptions's
508
+ # parent project (i.e.,
509
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
510
+ # permission to Acknowledge() messages on this subscription.
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
+ # A hash of the same form as `Google::Cloud::PubSub::V1::DeadLetterPolicy`
515
+ # can also be provided.
502
516
  # @param options [Google::Gax::CallOptions]
503
517
  # Overrides the default settings for this call, e.g, timeout,
504
518
  # retries, etc.
@@ -525,6 +539,7 @@ module Google
525
539
  labels: nil,
526
540
  enable_message_ordering: nil,
527
541
  expiration_policy: nil,
542
+ dead_letter_policy: nil,
528
543
  options: nil,
529
544
  &block
530
545
  req = {
@@ -536,7 +551,8 @@ module Google
536
551
  message_retention_duration: message_retention_duration,
537
552
  labels: labels,
538
553
  enable_message_ordering: enable_message_ordering,
539
- expiration_policy: expiration_policy
554
+ expiration_policy: expiration_policy,
555
+ dead_letter_policy: dead_letter_policy
540
556
  }.delete_if { |_, v| v.nil? }
541
557
  req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::Subscription)
542
558
  @create_subscription.call(req, options, &block)
@@ -816,8 +832,9 @@ module Google
816
832
  # The subscription from which messages should be pulled.
817
833
  # Format is `projects/{project}/subscriptions/{sub}`.
818
834
  # @param max_messages [Integer]
819
- # The maximum number of messages returned for this request. The Pub/Sub
820
- # system may return fewer than the number specified.
835
+ # The maximum number of messages to return for this request. Must be a
836
+ # positive integer. The Pub/Sub system may return fewer than the number
837
+ # specified.
821
838
  # @param return_immediately [true, false]
822
839
  # If this field set to true, the system will respond immediately even if
823
840
  # it there are no messages available to return in the `Pull` response.
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module PubSub
19
- VERSION = "0.38.1".freeze
19
+ VERSION = "0.39.0".freeze
20
20
  end
21
21
 
22
22
  Pubsub = PubSub unless const_defined? :Pubsub
@@ -5,7 +5,7 @@
5
5
  require 'google/protobuf'
6
6
 
7
7
  require 'google/api/annotations_pb'
8
- require 'google/api/resource_pb'
8
+ require 'google/api/client_pb'
9
9
  require 'google/protobuf/duration_pb'
10
10
  require 'google/protobuf/empty_pb'
11
11
  require 'google/protobuf/field_mask_pb'
@@ -81,6 +81,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
81
81
  map :labels, :string, :string, 9
82
82
  optional :enable_message_ordering, :bool, 10
83
83
  optional :expiration_policy, :message, 11, "google.pubsub.v1.ExpirationPolicy"
84
+ optional :dead_letter_policy, :message, 13, "google.pubsub.v1.DeadLetterPolicy"
85
+ end
86
+ add_message "google.pubsub.v1.DeadLetterPolicy" do
87
+ optional :dead_letter_topic, :string, 1
88
+ optional :max_delivery_attempts, :int32, 2
84
89
  end
85
90
  add_message "google.pubsub.v1.ExpirationPolicy" do
86
91
  optional :ttl, :message, 1, "google.protobuf.Duration"
@@ -214,6 +219,7 @@ module Google::Cloud::PubSub::V1
214
219
  ListTopicSnapshotsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.ListTopicSnapshotsResponse").msgclass
215
220
  DeleteTopicRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.DeleteTopicRequest").msgclass
216
221
  Subscription = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.Subscription").msgclass
222
+ DeadLetterPolicy = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.DeadLetterPolicy").msgclass
217
223
  ExpirationPolicy = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.ExpirationPolicy").msgclass
218
224
  PushConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.PushConfig").msgclass
219
225
  PushConfig::OidcToken = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.pubsub.v1.PushConfig.OidcToken").msgclass
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: 0.38.1
4
+ version: 0.39.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: 2019-08-02 00:00:00.000000000 Z
12
+ date: 2019-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core