google-cloud-pubsub 0.33.2 → 0.34.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +4 -4
  3. data/CHANGELOG.md +45 -0
  4. data/EMULATOR.md +2 -2
  5. data/OVERVIEW.md +81 -43
  6. data/lib/google-cloud-pubsub.rb +10 -7
  7. data/lib/google/cloud/pubsub.rb +38 -21
  8. data/lib/google/cloud/pubsub/async_publisher.rb +8 -6
  9. data/lib/google/cloud/pubsub/batch_publisher.rb +7 -5
  10. data/lib/google/cloud/pubsub/convert.rb +5 -3
  11. data/lib/google/cloud/pubsub/credentials.rb +6 -4
  12. data/lib/google/cloud/pubsub/message.rb +9 -6
  13. data/lib/google/cloud/pubsub/policy.rb +12 -10
  14. data/lib/google/cloud/pubsub/project.rb +30 -28
  15. data/lib/google/cloud/pubsub/publish_result.rb +3 -1
  16. data/lib/google/cloud/pubsub/received_message.rb +11 -10
  17. data/lib/google/cloud/pubsub/service.rb +47 -37
  18. data/lib/google/cloud/pubsub/snapshot.rb +11 -9
  19. data/lib/google/cloud/pubsub/snapshot/list.rb +10 -8
  20. data/lib/google/cloud/pubsub/subscriber.rb +32 -6
  21. data/lib/google/cloud/pubsub/subscriber/enumerator_queue.rb +3 -1
  22. data/lib/google/cloud/pubsub/subscriber/inventory.rb +4 -2
  23. data/lib/google/cloud/pubsub/subscriber/stream.rb +23 -43
  24. data/lib/google/cloud/pubsub/subscriber/timed_unary_buffer.rb +221 -0
  25. data/lib/google/cloud/pubsub/subscription.rb +157 -80
  26. data/lib/google/cloud/pubsub/subscription/list.rb +12 -10
  27. data/lib/google/cloud/pubsub/topic.rb +79 -51
  28. data/lib/google/cloud/pubsub/topic/list.rb +10 -8
  29. data/lib/google/cloud/pubsub/v1/credentials.rb +4 -2
  30. data/lib/google/cloud/pubsub/v1/doc/google/iam/v1/iam_policy.rb +1 -43
  31. data/lib/google/cloud/pubsub/v1/doc/google/iam/v1/policy.rb +1 -108
  32. data/lib/google/cloud/pubsub/v1/doc/google/protobuf/duration.rb +1 -1
  33. data/lib/google/cloud/pubsub/v1/doc/google/protobuf/empty.rb +1 -1
  34. data/lib/google/cloud/pubsub/v1/doc/google/protobuf/field_mask.rb +1 -1
  35. data/lib/google/cloud/pubsub/v1/doc/google/protobuf/timestamp.rb +1 -1
  36. data/lib/google/cloud/pubsub/v1/doc/google/pubsub/v1/pubsub.rb +107 -61
  37. data/lib/google/cloud/pubsub/v1/publisher_client.rb +58 -55
  38. data/lib/google/cloud/pubsub/v1/publisher_client_config.json +0 -4
  39. data/lib/google/cloud/pubsub/v1/subscriber_client.rb +177 -128
  40. data/lib/google/cloud/pubsub/v1/subscriber_client_config.json +0 -4
  41. data/lib/google/cloud/pubsub/version.rb +4 -2
  42. data/lib/google/pubsub/v1/pubsub_pb.rb +48 -40
  43. data/lib/google/pubsub/v1/pubsub_services_pb.rb +201 -161
  44. metadata +6 -7
  45. data/lib/google/cloud/pubsub/subscriber/async_stream_pusher.rb +0 -223
  46. data/lib/google/cloud/pubsub/subscriber/async_unary_pusher.rb +0 -271
@@ -17,7 +17,7 @@ require "delegate"
17
17
 
18
18
  module Google
19
19
  module Cloud
20
- module Pubsub
20
+ module PubSub
21
21
  class Topic
22
22
  ##
23
23
  # Topic::List is a special case Array with additional values.
@@ -25,7 +25,7 @@ module Google
25
25
  ##
26
26
  # If not empty, indicates that there are more topics
27
27
  # that match the request and this value should be passed to
28
- # the next {Google::Cloud::Pubsub::Project#topics} to continue.
28
+ # the next {Google::Cloud::PubSub::Project#topics} to continue.
29
29
  attr_accessor :token
30
30
 
31
31
  ##
@@ -42,7 +42,7 @@ module Google
42
42
  # @example
43
43
  # require "google/cloud/pubsub"
44
44
  #
45
- # pubsub = Google::Cloud::Pubsub.new
45
+ # pubsub = Google::Cloud::PubSub.new
46
46
  #
47
47
  # topics = pubsub.topics
48
48
  # if topics.next?
@@ -61,7 +61,7 @@ module Google
61
61
  # @example
62
62
  # require "google/cloud/pubsub"
63
63
  #
64
- # pubsub = Google::Cloud::Pubsub.new
64
+ # pubsub = Google::Cloud::PubSub.new
65
65
  #
66
66
  # topics = pubsub.topics
67
67
  # if topics.next?
@@ -97,7 +97,7 @@ module Google
97
97
  # @example Iterating each topic by passing a block:
98
98
  # require "google/cloud/pubsub"
99
99
  #
100
- # pubsub = Google::Cloud::Pubsub.new
100
+ # pubsub = Google::Cloud::PubSub.new
101
101
  #
102
102
  # topics = pubsub.topics
103
103
  # topics.all do |topic|
@@ -107,7 +107,7 @@ module Google
107
107
  # @example Using the enumerator by not passing a block:
108
108
  # require "google/cloud/pubsub"
109
109
  #
110
- # pubsub = Google::Cloud::Pubsub.new
110
+ # pubsub = Google::Cloud::PubSub.new
111
111
  #
112
112
  # topics = pubsub.topics
113
113
  # all_names = topics.all.map do |topic|
@@ -117,7 +117,7 @@ module Google
117
117
  # @example Limit the number of API calls made:
118
118
  # require "google/cloud/pubsub"
119
119
  #
120
- # pubsub = Google::Cloud::Pubsub.new
120
+ # pubsub = Google::Cloud::PubSub.new
121
121
  #
122
122
  # topics = pubsub.topics
123
123
  # topics.all(request_limit: 10) do |topic|
@@ -143,7 +143,7 @@ module Google
143
143
 
144
144
  ##
145
145
  # @private New Topic::List from a
146
- # Google::Pubsub::V1::ListTopicsResponse object.
146
+ # Google::Cloud::PubSub::V1::ListTopicsResponse object.
147
147
  def self.from_grpc grpc_list, service, max = nil
148
148
  topics = new(Array(grpc_list.topics).map do |grpc|
149
149
  Topic.from_grpc grpc, service
@@ -167,5 +167,7 @@ module Google
167
167
  end
168
168
  end
169
169
  end
170
+
171
+ Pubsub = PubSub unless const_defined? :Pubsub
170
172
  end
171
173
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@ require "googleauth"
17
17
 
18
18
  module Google
19
19
  module Cloud
20
- module Pubsub
20
+ module PubSub
21
21
  module V1
22
22
  class Credentials < Google::Auth::Credentials
23
23
  SCOPE = ["https://www.googleapis.com/auth/pubsub"].freeze
@@ -35,5 +35,7 @@ module Google
35
35
  end
36
36
  end
37
37
  end
38
+
39
+ Pubsub = PubSub unless const_defined? :Pubsub
38
40
  end
39
41
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -16,48 +16,6 @@
16
16
  module Google
17
17
  module Iam
18
18
  module V1
19
- # Request message for `SetIamPolicy` method.
20
- # @!attribute [rw] resource
21
- # @return [String]
22
- # REQUIRED: The resource for which the policy is being specified.
23
- # `resource` is usually specified as a path. For example, a Project
24
- # resource is specified as `projects/{project}`.
25
- # @!attribute [rw] policy
26
- # @return [Google::Iam::V1::Policy]
27
- # REQUIRED: The complete policy to be applied to the `resource`. The size of
28
- # the policy is limited to a few 10s of KB. An empty policy is a
29
- # valid policy but certain Cloud Platform services (such as Projects)
30
- # might reject them.
31
- class SetIamPolicyRequest; end
32
-
33
- # Request message for `GetIamPolicy` method.
34
- # @!attribute [rw] resource
35
- # @return [String]
36
- # REQUIRED: The resource for which the policy is being requested.
37
- # `resource` is usually specified as a path. For example, a Project
38
- # resource is specified as `projects/{project}`.
39
- class GetIamPolicyRequest; end
40
-
41
- # Request message for `TestIamPermissions` method.
42
- # @!attribute [rw] resource
43
- # @return [String]
44
- # REQUIRED: The resource for which the policy detail is being requested.
45
- # `resource` is usually specified as a path. For example, a Project
46
- # resource is specified as `projects/{project}`.
47
- # @!attribute [rw] permissions
48
- # @return [Array<String>]
49
- # The set of permissions to check for the `resource`. Permissions with
50
- # wildcards (such as '*' or 'storage.*') are not allowed. For more
51
- # information see
52
- # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
53
- class TestIamPermissionsRequest; end
54
-
55
- # Response message for `TestIamPermissions` method.
56
- # @!attribute [rw] permissions
57
- # @return [Array<String>]
58
- # A subset of `TestPermissionsRequest.permissions` that the caller is
59
- # allowed.
60
- class TestIamPermissionsResponse; end
61
19
  end
62
20
  end
63
21
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -16,113 +16,6 @@
16
16
  module Google
17
17
  module Iam
18
18
  module V1
19
- # Defines an Identity and Access Management (IAM) policy. It is used to
20
- # specify access control policies for Cloud Platform resources.
21
- #
22
- #
23
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
24
- # `members` to a `role`, where the members can be user accounts, Google groups,
25
- # Google domains, and service accounts. A `role` is a named list of permissions
26
- # defined by IAM.
27
- #
28
- # **Example**
29
- #
30
- # {
31
- # "bindings": [
32
- # {
33
- # "role": "roles/owner",
34
- # "members": [
35
- # "user:mike@example.com",
36
- # "group:admins@example.com",
37
- # "domain:google.com",
38
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
39
- # ]
40
- # },
41
- # {
42
- # "role": "roles/viewer",
43
- # "members": ["user:sean@example.com"]
44
- # }
45
- # ]
46
- # }
47
- #
48
- # For a description of IAM and its features, see the
49
- # [IAM developer's guide](https://cloud.google.com/iam).
50
- # @!attribute [rw] version
51
- # @return [Integer]
52
- # Version of the `Policy`. The default version is 0.
53
- # @!attribute [rw] bindings
54
- # @return [Array<Google::Iam::V1::Binding>]
55
- # Associates a list of `members` to a `role`.
56
- # Multiple `bindings` must not be specified for the same `role`.
57
- # `bindings` with no members will result in an error.
58
- # @!attribute [rw] etag
59
- # @return [String]
60
- # `etag` is used for optimistic concurrency control as a way to help
61
- # prevent simultaneous updates of a policy from overwriting each other.
62
- # It is strongly suggested that systems make use of the `etag` in the
63
- # read-modify-write cycle to perform policy updates in order to avoid race
64
- # conditions: An `etag` is returned in the response to `getIamPolicy`, and
65
- # systems are expected to put that etag in the request to `setIamPolicy` to
66
- # ensure that their change will be applied to the same version of the policy.
67
- #
68
- # If no `etag` is provided in the call to `setIamPolicy`, then the existing
69
- # policy is overwritten blindly.
70
- class Policy; end
71
-
72
- # Associates `members` with a `role`.
73
- # @!attribute [rw] role
74
- # @return [String]
75
- # Role that is assigned to `members`.
76
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
77
- # Required
78
- # @!attribute [rw] members
79
- # @return [Array<String>]
80
- # Specifies the identities requesting access for a Cloud Platform resource.
81
- # `members` can have the following values:
82
- #
83
- # * `allUsers`: A special identifier that represents anyone who is
84
- # on the internet; with or without a Google account.
85
- #
86
- # * `allAuthenticatedUsers`: A special identifier that represents anyone
87
- # who is authenticated with a Google account or a service account.
88
- #
89
- # * `user:{emailid}`: An email address that represents a specific Google
90
- # account. For example, `alice@gmail.com` or `joe@example.com`.
91
- #
92
- #
93
- # * `serviceAccount:{emailid}`: An email address that represents a service
94
- # account. For example, `my-other-app@appspot.gserviceaccount.com`.
95
- #
96
- # * `group:{emailid}`: An email address that represents a Google group.
97
- # For example, `admins@example.com`.
98
- #
99
- # * `domain:{domain}`: A Google Apps domain name that represents all the
100
- # users of that domain. For example, `google.com` or `example.com`.
101
- class Binding; end
102
-
103
- # The difference delta between two policies.
104
- # @!attribute [rw] binding_deltas
105
- # @return [Array<Google::Iam::V1::BindingDelta>]
106
- # The delta for Bindings between two policies.
107
- class PolicyDelta; end
108
-
109
- # One delta entry for Binding. Each individual change (only one member in each
110
- # entry) to a binding will be a separate entry.
111
- # @!attribute [rw] action
112
- # @return [Google::Iam::V1::BindingDelta::Action]
113
- # The action that was performed on a Binding.
114
- # Required
115
- # @!attribute [rw] role
116
- # @return [String]
117
- # Role that is assigned to `members`.
118
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
119
- # Required
120
- # @!attribute [rw] member
121
- # @return [String]
122
- # A single identity requesting access for a Cloud Platform resource.
123
- # Follows the same format of Binding.members.
124
- # Required
125
- class BindingDelta; end
126
19
  end
127
20
  end
128
21
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2018 Google LLC
1
+ # Copyright 2019 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -14,12 +14,13 @@
14
14
 
15
15
 
16
16
  module Google
17
- module Pubsub
17
+ module Cloud
18
+ module PubSub
18
19
  module V1
19
20
  # @!attribute [rw] allowed_persistence_regions
20
21
  # @return [Array<String>]
21
- # The list of GCP regions where messages that are published to the topic may
22
- # be persisted in storage. Messages published by publishers running in
22
+ # The list of GCP region IDs where messages that are published to the topic
23
+ # may be persisted in storage. Messages published by publishers running in
23
24
  # non-allowed GCP regions (or running outside of GCP altogether) will be
24
25
  # routed for storage in one of the allowed regions. An empty list indicates a
25
26
  # misconfiguration at the project or organization level, which will result in
@@ -37,9 +38,10 @@ module Google
37
38
  # must not start with `"goog"`.
38
39
  # @!attribute [rw] labels
39
40
  # @return [Hash{String => String}]
40
- # User labels.
41
+ # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
42
+ # managing labels</a>.
41
43
  # @!attribute [rw] message_storage_policy
42
- # @return [Google::Pubsub::V1::MessageStoragePolicy]
44
+ # @return [Google::Cloud::PubSub::V1::MessageStoragePolicy]
43
45
  # Policy constraining how messages published to the topic may be stored. It
44
46
  # is determined when the topic is created based on the policy configured at
45
47
  # the project level. It must not be set by the caller in the request to
@@ -48,11 +50,18 @@ module Google
48
50
  # response, then no constraints are in effect.
49
51
  class Topic; end
50
52
 
51
- # A message data and its attributes. The message payload must not be empty;
52
- # it must contain either a non-empty data field, or at least one attribute.
53
+ # A message that is published by publishers and consumed by subscribers. The
54
+ # message must contain either a non-empty data field or at least one attribute.
55
+ # Note that client libraries represent this object differently
56
+ # depending on the language. See the corresponding
57
+ # <a href="https://cloud.google.com/pubsub/docs/reference/libraries">client
58
+ # library documentation</a> for more information. See
59
+ # <a href="https://cloud.google.com/pubsub/quotas">Quotas and limits</a>
60
+ # for more information about message limits.
53
61
  # @!attribute [rw] data
54
62
  # @return [String]
55
- # The message payload.
63
+ # The message data field. If this field is empty, the message must contain
64
+ # at least one attribute.
56
65
  # @!attribute [rw] attributes
57
66
  # @return [Hash{String => String}]
58
67
  # Optional attributes for this message.
@@ -78,7 +87,7 @@ module Google
78
87
 
79
88
  # Request for the UpdateTopic method.
80
89
  # @!attribute [rw] topic
81
- # @return [Google::Pubsub::V1::Topic]
90
+ # @return [Google::Cloud::PubSub::V1::Topic]
82
91
  # The updated topic object.
83
92
  # @!attribute [rw] update_mask
84
93
  # @return [Google::Protobuf::FieldMask]
@@ -95,7 +104,7 @@ module Google
95
104
  # The messages in the request will be published on this topic.
96
105
  # Format is `projects/{project}/topics/{topic}`.
97
106
  # @!attribute [rw] messages
98
- # @return [Array<Google::Pubsub::V1::PubsubMessage>]
107
+ # @return [Array<Google::Cloud::PubSub::V1::PubsubMessage>]
99
108
  # The messages to publish.
100
109
  class PublishRequest; end
101
110
 
@@ -110,8 +119,8 @@ module Google
110
119
  # Request for the `ListTopics` method.
111
120
  # @!attribute [rw] project
112
121
  # @return [String]
113
- # The name of the cloud project that topics belong to.
114
- # Format is `projects/{project}`.
122
+ # The name of the project in which to list topics.
123
+ # Format is `projects/{project-id}`.
115
124
  # @!attribute [rw] page_size
116
125
  # @return [Integer]
117
126
  # Maximum number of topics to return.
@@ -124,7 +133,7 @@ module Google
124
133
 
125
134
  # Response for the `ListTopics` method.
126
135
  # @!attribute [rw] topics
127
- # @return [Array<Google::Pubsub::V1::Topic>]
136
+ # @return [Array<Google::Cloud::PubSub::V1::Topic>]
128
137
  # The resulting topics.
129
138
  # @!attribute [rw] next_page_token
130
139
  # @return [String]
@@ -158,8 +167,8 @@ module Google
158
167
  # `ListTopicSubscriptionsRequest` to get more subscriptions.
159
168
  class ListTopicSubscriptionsResponse; end
160
169
 
161
- # Request for the `ListTopicSnapshots` method.<br><br>
162
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
170
+ # Request for the `ListTopicSnapshots` method. <br><br>
171
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
163
172
  # changed in backward-incompatible ways and is not recommended for production
164
173
  # use. It is not subject to any SLA or deprecation policy.
165
174
  # @!attribute [rw] topic
@@ -177,7 +186,7 @@ module Google
177
186
  class ListTopicSnapshotsRequest; end
178
187
 
179
188
  # Response for the `ListTopicSnapshots` method.<br><br>
180
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
189
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
181
190
  # changed in backward-incompatible ways and is not recommended for production
182
191
  # use. It is not subject to any SLA or deprecation policy.
183
192
  # @!attribute [rw] snapshots
@@ -213,17 +222,17 @@ module Google
213
222
  # The value of this field will be `_deleted-topic_` if the topic has been
214
223
  # deleted.
215
224
  # @!attribute [rw] push_config
216
- # @return [Google::Pubsub::V1::PushConfig]
225
+ # @return [Google::Cloud::PubSub::V1::PushConfig]
217
226
  # If push delivery is used with this subscription, this field is
218
227
  # used to configure it. An empty `pushConfig` signifies that the subscriber
219
228
  # will pull and ack messages using API methods.
220
229
  # @!attribute [rw] ack_deadline_seconds
221
230
  # @return [Integer]
222
- # This value is the maximum time after a subscriber receives a message
223
- # before the subscriber should acknowledge the message. After message
224
- # delivery but before the ack deadline expires and before the message is
225
- # acknowledged, it is an outstanding message and will not be delivered
226
- # again during that time (on a best-effort basis).
231
+ # The approximate amount of time (on a best-effort basis) Pub/Sub waits for
232
+ # the subscriber to acknowledge receipt before resending the message. In the
233
+ # interval after the message is delivered and before it is acknowledged, it
234
+ # is considered to be <i>outstanding</i>. During that time period, the
235
+ # message will not be redelivered (on a best-effort basis).
227
236
  #
228
237
  # For pull subscriptions, this value is used as the initial value for the ack
229
238
  # deadline. To override this value for a given message, call
@@ -244,8 +253,11 @@ module Google
244
253
  # Indicates whether to retain acknowledged messages. If true, then
245
254
  # messages are not expunged from the subscription's backlog, even if they are
246
255
  # acknowledged, until they fall out of the `message_retention_duration`
247
- # window.<br><br>
248
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
256
+ # window. This must be true if you would like to
257
+ # <a href="https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time">
258
+ # Seek to a timestamp</a>.
259
+ # <br><br>
260
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
249
261
  # changed in backward-incompatible ways and is not recommended for production
250
262
  # use. It is not subject to any SLA or deprecation policy.
251
263
  # @!attribute [rw] message_retention_duration
@@ -256,14 +268,38 @@ module Google
256
268
  # of acknowledged messages, and thus configures how far back in time a `Seek`
257
269
  # can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
258
270
  # minutes.<br><br>
259
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
271
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
260
272
  # changed in backward-incompatible ways and is not recommended for production
261
273
  # use. It is not subject to any SLA or deprecation policy.
262
274
  # @!attribute [rw] labels
263
275
  # @return [Hash{String => String}]
264
- # User labels.
276
+ # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
277
+ # managing labels</a>.
278
+ # @!attribute [rw] expiration_policy
279
+ # @return [Google::Cloud::PubSub::V1::ExpirationPolicy]
280
+ # A policy that specifies the conditions for this subscription's expiration.
281
+ # A subscription is considered active as long as any connected subscriber is
282
+ # successfully consuming messages from the subscription or is issuing
283
+ # operations on the subscription. If `expiration_policy` is not set, a
284
+ # *default policy* with `ttl` of 31 days will be used. The minimum allowed
285
+ # value for `expiration_policy.ttl` is 1 day.
286
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
287
+ # changed in backward-incompatible ways and is not recommended for production
288
+ # use. It is not subject to any SLA or deprecation policy.
265
289
  class Subscription; end
266
290
 
291
+ # A policy that specifies the conditions for resource expiration (i.e.,
292
+ # automatic resource deletion).
293
+ # @!attribute [rw] ttl
294
+ # @return [Google::Protobuf::Duration]
295
+ # Specifies the "time-to-live" duration for an associated resource. The
296
+ # resource expires if it is not active for a period of `ttl`. The definition
297
+ # of "activity" depends on the type of the associated resource. The minimum
298
+ # and maximum allowed values for `ttl` depend on the type of the associated
299
+ # resource, as well. If `ttl` is not set, the associated resource never
300
+ # expires.
301
+ class ExpirationPolicy; end
302
+
267
303
  # Configuration for a push delivery endpoint.
268
304
  # @!attribute [rw] push_endpoint
269
305
  # @return [String]
@@ -299,7 +335,7 @@ module Google
299
335
  # @return [String]
300
336
  # This ID can be used to acknowledge the received message.
301
337
  # @!attribute [rw] message
302
- # @return [Google::Pubsub::V1::PubsubMessage]
338
+ # @return [Google::Cloud::PubSub::V1::PubsubMessage]
303
339
  # The message.
304
340
  class ReceivedMessage; end
305
341
 
@@ -312,7 +348,7 @@ module Google
312
348
 
313
349
  # Request for the UpdateSubscription method.
314
350
  # @!attribute [rw] subscription
315
- # @return [Google::Pubsub::V1::Subscription]
351
+ # @return [Google::Cloud::PubSub::V1::Subscription]
316
352
  # The updated subscription object.
317
353
  # @!attribute [rw] update_mask
318
354
  # @return [Google::Protobuf::FieldMask]
@@ -323,8 +359,8 @@ module Google
323
359
  # Request for the `ListSubscriptions` method.
324
360
  # @!attribute [rw] project
325
361
  # @return [String]
326
- # The name of the cloud project that subscriptions belong to.
327
- # Format is `projects/{project}`.
362
+ # The name of the project in which to list subscriptions.
363
+ # Format is `projects/{project-id}`.
328
364
  # @!attribute [rw] page_size
329
365
  # @return [Integer]
330
366
  # Maximum number of subscriptions to return.
@@ -337,7 +373,7 @@ module Google
337
373
 
338
374
  # Response for the `ListSubscriptions` method.
339
375
  # @!attribute [rw] subscriptions
340
- # @return [Array<Google::Pubsub::V1::Subscription>]
376
+ # @return [Array<Google::Cloud::PubSub::V1::Subscription>]
341
377
  # The subscriptions that match the request.
342
378
  # @!attribute [rw] next_page_token
343
379
  # @return [String]
@@ -359,7 +395,7 @@ module Google
359
395
  # The name of the subscription.
360
396
  # Format is `projects/{project}/subscriptions/{sub}`.
361
397
  # @!attribute [rw] push_config
362
- # @return [Google::Pubsub::V1::PushConfig]
398
+ # @return [Google::Cloud::PubSub::V1::PushConfig]
363
399
  # The push configuration for future deliveries.
364
400
  #
365
401
  # An empty `pushConfig` indicates that the Pub/Sub system should
@@ -378,9 +414,7 @@ module Google
378
414
  # If this field set to true, the system will respond immediately even if
379
415
  # it there are no messages available to return in the `Pull` response.
380
416
  # Otherwise, the system may wait (for a bounded amount of time) until at
381
- # least one message is available, rather than returning no messages. The
382
- # client may cancel the request if it does not wish to wait any longer for
383
- # the response.
417
+ # least one message is available, rather than returning no messages.
384
418
  # @!attribute [rw] max_messages
385
419
  # @return [Integer]
386
420
  # The maximum number of messages returned for this request. The Pub/Sub
@@ -389,11 +423,11 @@ module Google
389
423
 
390
424
  # Response for the `Pull` method.
391
425
  # @!attribute [rw] received_messages
392
- # @return [Array<Google::Pubsub::V1::ReceivedMessage>]
393
- # Received Pub/Sub messages. The Pub/Sub system will return zero messages if
394
- # there are no more available in the backlog. The Pub/Sub system may return
395
- # fewer than the `maxMessages` requested even if there are more messages
396
- # available in the backlog.
426
+ # @return [Array<Google::Cloud::PubSub::V1::ReceivedMessage>]
427
+ # Received Pub/Sub messages. The list will be empty if there are no more
428
+ # messages available in the backlog. For JSON, the response can be entirely
429
+ # empty. The Pub/Sub system may return fewer than the `maxMessages` requested
430
+ # even if there are more messages available in the backlog.
397
431
  class PullResponse; end
398
432
 
399
433
  # Request for the ModifyAckDeadline method.
@@ -409,8 +443,9 @@ module Google
409
443
  # The new ack deadline with respect to the time this request was sent to
410
444
  # the Pub/Sub system. For example, if the value is 10, the new
411
445
  # ack deadline will expire 10 seconds after the `ModifyAckDeadline` call
412
- # was made. Specifying zero may immediately make the message available for
413
- # another pull request.
446
+ # was made. Specifying zero might immediately make the message available for
447
+ # delivery to another subscriber client. This typically results in an
448
+ # increase in the rate of message redeliveries (that is, duplicates).
414
449
  # The minimum deadline you can specify is 0 seconds.
415
450
  # The maximum deadline you can specify is 600 seconds (10 minutes).
416
451
  class ModifyAckDeadlineRequest; end
@@ -473,12 +508,12 @@ module Google
473
508
  # Response for the `StreamingPull` method. This response is used to stream
474
509
  # messages from the server to the client.
475
510
  # @!attribute [rw] received_messages
476
- # @return [Array<Google::Pubsub::V1::ReceivedMessage>]
511
+ # @return [Array<Google::Cloud::PubSub::V1::ReceivedMessage>]
477
512
  # Received Pub/Sub messages. This will not be empty.
478
513
  class StreamingPullResponse; end
479
514
 
480
515
  # Request for the `CreateSnapshot` method.<br><br>
481
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be changed in
516
+ # <b>BETA:</b> This feature is part of a beta release. This API might be changed in
482
517
  # backward-incompatible ways and is not recommended for production use.
483
518
  # It is not subject to any SLA or deprecation policy.
484
519
  # @!attribute [rw] name
@@ -486,7 +521,9 @@ module Google
486
521
  # Optional user-provided name for this snapshot.
487
522
  # If the name is not provided in the request, the server will assign a random
488
523
  # name for this snapshot on the same project as the subscription.
489
- # Note that for REST API requests, you must specify a name.
524
+ # Note that for REST API requests, you must specify a name. See the
525
+ # <a href="https://cloud.google.com/pubsub/docs/admin#resource_names">
526
+ # resource name rules</a>.
490
527
  # Format is `projects/{project}/snapshots/{snap}`.
491
528
  # @!attribute [rw] subscription
492
529
  # @return [String]
@@ -501,15 +538,16 @@ module Google
501
538
  # Format is `projects/{project}/subscriptions/{sub}`.
502
539
  # @!attribute [rw] labels
503
540
  # @return [Hash{String => String}]
504
- # User labels.
541
+ # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
542
+ # managing labels</a>.
505
543
  class CreateSnapshotRequest; end
506
544
 
507
545
  # Request for the UpdateSnapshot method.<br><br>
508
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
546
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
509
547
  # changed in backward-incompatible ways and is not recommended for production
510
548
  # use. It is not subject to any SLA or deprecation policy.
511
549
  # @!attribute [rw] snapshot
512
- # @return [Google::Pubsub::V1::Snapshot]
550
+ # @return [Google::Cloud::PubSub::V1::Snapshot]
513
551
  # The updated snapshot object.
514
552
  # @!attribute [rw] update_mask
515
553
  # @return [Google::Protobuf::FieldMask]
@@ -517,8 +555,13 @@ module Google
517
555
  # Must be specified and non-empty.
518
556
  class UpdateSnapshotRequest; end
519
557
 
520
- # A snapshot resource.<br><br>
521
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
558
+ # A snapshot resource. Snapshots are used in
559
+ # <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
560
+ # operations, which allow
561
+ # you to manage message acknowledgments in bulk. That is, you can set the
562
+ # acknowledgment state of messages in an existing subscription to the state
563
+ # captured by a snapshot.<br><br>
564
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
522
565
  # changed in backward-incompatible ways and is not recommended for production
523
566
  # use. It is not subject to any SLA or deprecation policy.
524
567
  # @!attribute [rw] name
@@ -541,11 +584,12 @@ module Google
541
584
  # snapshot that would expire in less than 1 hour after creation.
542
585
  # @!attribute [rw] labels
543
586
  # @return [Hash{String => String}]
544
- # User labels.
587
+ # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
588
+ # managing labels</a>.
545
589
  class Snapshot; end
546
590
 
547
591
  # Request for the GetSnapshot method.<br><br>
548
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
592
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
549
593
  # changed in backward-incompatible ways and is not recommended for production
550
594
  # use. It is not subject to any SLA or deprecation policy.
551
595
  # @!attribute [rw] snapshot
@@ -555,13 +599,13 @@ module Google
555
599
  class GetSnapshotRequest; end
556
600
 
557
601
  # Request for the `ListSnapshots` method.<br><br>
558
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
602
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
559
603
  # changed in backward-incompatible ways and is not recommended for production
560
604
  # use. It is not subject to any SLA or deprecation policy.
561
605
  # @!attribute [rw] project
562
606
  # @return [String]
563
- # The name of the cloud project that snapshots belong to.
564
- # Format is `projects/{project}`.
607
+ # The name of the project in which to list snapshots.
608
+ # Format is `projects/{project-id}`.
565
609
  # @!attribute [rw] page_size
566
610
  # @return [Integer]
567
611
  # Maximum number of snapshots to return.
@@ -573,11 +617,11 @@ module Google
573
617
  class ListSnapshotsRequest; end
574
618
 
575
619
  # Response for the `ListSnapshots` method.<br><br>
576
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
620
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
577
621
  # changed in backward-incompatible ways and is not recommended for production
578
622
  # use. It is not subject to any SLA or deprecation policy.
579
623
  # @!attribute [rw] snapshots
580
- # @return [Array<Google::Pubsub::V1::Snapshot>]
624
+ # @return [Array<Google::Cloud::PubSub::V1::Snapshot>]
581
625
  # The resulting snapshots.
582
626
  # @!attribute [rw] next_page_token
583
627
  # @return [String]
@@ -586,7 +630,7 @@ module Google
586
630
  class ListSnapshotsResponse; end
587
631
 
588
632
  # Request for the `DeleteSnapshot` method.<br><br>
589
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
633
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
590
634
  # changed in backward-incompatible ways and is not recommended for production
591
635
  # use. It is not subject to any SLA or deprecation policy.
592
636
  # @!attribute [rw] snapshot
@@ -595,8 +639,8 @@ module Google
595
639
  # Format is `projects/{project}/snapshots/{snap}`.
596
640
  class DeleteSnapshotRequest; end
597
641
 
598
- # Request for the `Seek` method.<br><br>
599
- # <b>ALPHA:</b> This feature is part of an alpha release. This API might be
642
+ # Request for the `Seek` method. <br><br>
643
+ # <b>BETA:</b> This feature is part of a beta release. This API might be
600
644
  # changed in backward-incompatible ways and is not recommended for production
601
645
  # use. It is not subject to any SLA or deprecation policy.
602
646
  # @!attribute [rw] subscription
@@ -622,7 +666,9 @@ module Google
622
666
  # Format is `projects/{project}/snapshots/{snap}`.
623
667
  class SeekRequest; end
624
668
 
669
+ # Response for the `Seek` method (this response is empty).
625
670
  class SeekResponse; end
626
671
  end
627
672
  end
673
+ end
628
674
  end