google-cloud-pubsub-v1 0.11.0 → 1.11.1

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +72 -101
  3. data/README.md +32 -22
  4. data/lib/google/cloud/pubsub/v1/{publisher/helpers.rb → _helpers.rb} +4 -10
  5. data/lib/google/cloud/pubsub/v1/iam_policy/client.rb +33 -337
  6. data/lib/google/cloud/pubsub/v1/iam_policy/credentials.rb +6 -2
  7. data/lib/google/cloud/pubsub/v1/iam_policy.rb +5 -31
  8. data/lib/google/cloud/pubsub/v1/publisher/credentials.rb +2 -37
  9. data/lib/google/cloud/pubsub/v1/publisher.rb +2 -35
  10. data/lib/google/cloud/pubsub/v1/schema_service/client.rb +571 -35
  11. data/lib/google/cloud/pubsub/v1/schema_service.rb +1 -1
  12. data/lib/google/cloud/pubsub/v1/subscriber/credentials.rb +2 -37
  13. data/lib/google/cloud/pubsub/v1/subscriber.rb +2 -36
  14. data/lib/google/cloud/pubsub/v1/{subscriber → subscription_admin}/client.rb +299 -208
  15. data/lib/google/cloud/pubsub/v1/subscription_admin/credentials.rb +52 -0
  16. data/lib/google/cloud/pubsub/v1/subscription_admin/helpers.rb +50 -0
  17. data/lib/google/cloud/pubsub/v1/{subscriber → subscription_admin}/paths.rb +3 -3
  18. data/lib/google/cloud/pubsub/v1/subscription_admin.rb +51 -0
  19. data/lib/google/cloud/pubsub/v1/{publisher → topic_admin}/client.rb +199 -108
  20. data/lib/google/cloud/pubsub/v1/topic_admin/credentials.rb +52 -0
  21. data/lib/google/cloud/pubsub/v1/topic_admin/helpers.rb +50 -0
  22. data/lib/google/cloud/pubsub/v1/{publisher → topic_admin}/paths.rb +3 -3
  23. data/lib/google/cloud/pubsub/v1/topic_admin.rb +50 -0
  24. data/lib/google/cloud/pubsub/v1/version.rb +1 -1
  25. data/lib/google/cloud/pubsub/v1.rb +4 -5
  26. data/lib/google/pubsub/v1/pubsub_pb.rb +63 -246
  27. data/lib/google/pubsub/v1/pubsub_services_pb.rb +23 -24
  28. data/lib/google/pubsub/v1/schema_pb.rb +31 -60
  29. data/lib/google/pubsub/v1/schema_services_pb.rb +8 -0
  30. data/proto_docs/google/api/client.rb +473 -0
  31. data/proto_docs/google/api/field_behavior.rb +14 -0
  32. data/proto_docs/google/api/launch_stage.rb +71 -0
  33. data/proto_docs/google/api/resource.rb +7 -2
  34. data/proto_docs/google/protobuf/empty.rb +0 -2
  35. data/proto_docs/google/protobuf/timestamp.rb +1 -3
  36. data/proto_docs/google/pubsub/v1/pubsub.rb +1189 -227
  37. data/proto_docs/google/pubsub/v1/schema.rb +93 -4
  38. metadata +25 -142
  39. data/lib/google/cloud/pubsub/v1/subscriber/helpers.rb +0 -25
  40. data/proto_docs/google/iam/v1/iam_policy.rb +0 -87
  41. data/proto_docs/google/iam/v1/options.rb +0 -50
  42. data/proto_docs/google/iam/v1/policy.rb +0 -418
@@ -24,11 +24,19 @@ module Google
24
24
  # A policy constraining the storage of messages published to the topic.
25
25
  # @!attribute [rw] allowed_persistence_regions
26
26
  # @return [::Array<::String>]
27
- # A list of IDs of GCP regions where messages that are published to the topic
28
- # may be persisted in storage. Messages published by publishers running in
29
- # non-allowed GCP regions (or running outside of GCP altogether) will be
30
- # routed for storage in one of the allowed regions. An empty list means that
31
- # no regions are allowed, and is not a valid configuration.
27
+ # Optional. A list of IDs of Google Cloud regions where messages that are
28
+ # published to the topic may be persisted in storage. Messages published by
29
+ # publishers running in non-allowed Google Cloud regions (or running outside
30
+ # of Google Cloud altogether) are routed for storage in one of the allowed
31
+ # regions. An empty list means that no regions are allowed, and is not a
32
+ # valid configuration.
33
+ # @!attribute [rw] enforce_in_transit
34
+ # @return [::Boolean]
35
+ # Optional. If true, `allowed_persistence_regions` is also used to enforce
36
+ # in-transit guarantees for messages. That is, Pub/Sub will fail
37
+ # Publish operations on this topic and subscribe operations
38
+ # on any subscription attached to this topic in any region that is
39
+ # not in `allowed_persistence_regions`.
32
40
  class MessageStoragePolicy
33
41
  include ::Google::Protobuf::MessageExts
34
42
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -43,12 +51,720 @@ module Google
43
51
  # deleted.
44
52
  # @!attribute [rw] encoding
45
53
  # @return [::Google::Cloud::PubSub::V1::Encoding]
46
- # The encoding of messages validated against `schema`.
54
+ # Optional. The encoding of messages validated against `schema`.
55
+ # @!attribute [rw] first_revision_id
56
+ # @return [::String]
57
+ # Optional. The minimum (inclusive) revision allowed for validating messages.
58
+ # If empty or not present, allow any revision to be validated against
59
+ # last_revision or any revision created before.
60
+ # @!attribute [rw] last_revision_id
61
+ # @return [::String]
62
+ # Optional. The maximum (inclusive) revision allowed for validating messages.
63
+ # If empty or not present, allow any revision to be validated against
64
+ # first_revision or any revision created after.
47
65
  class SchemaSettings
48
66
  include ::Google::Protobuf::MessageExts
49
67
  extend ::Google::Protobuf::MessageExts::ClassMethods
50
68
  end
51
69
 
70
+ # Settings for an ingestion data source on a topic.
71
+ # @!attribute [rw] aws_kinesis
72
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AwsKinesis]
73
+ # Optional. Amazon Kinesis Data Streams.
74
+ #
75
+ # Note: The following fields are mutually exclusive: `aws_kinesis`, `cloud_storage`, `azure_event_hubs`, `aws_msk`, `confluent_cloud`. If a field in that set is populated, all other fields in the set will automatically be cleared.
76
+ # @!attribute [rw] cloud_storage
77
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage]
78
+ # Optional. Cloud Storage.
79
+ #
80
+ # Note: The following fields are mutually exclusive: `cloud_storage`, `aws_kinesis`, `azure_event_hubs`, `aws_msk`, `confluent_cloud`. If a field in that set is populated, all other fields in the set will automatically be cleared.
81
+ # @!attribute [rw] azure_event_hubs
82
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AzureEventHubs]
83
+ # Optional. Azure Event Hubs.
84
+ #
85
+ # Note: The following fields are mutually exclusive: `azure_event_hubs`, `aws_kinesis`, `cloud_storage`, `aws_msk`, `confluent_cloud`. If a field in that set is populated, all other fields in the set will automatically be cleared.
86
+ # @!attribute [rw] aws_msk
87
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AwsMsk]
88
+ # Optional. Amazon MSK.
89
+ #
90
+ # Note: The following fields are mutually exclusive: `aws_msk`, `aws_kinesis`, `cloud_storage`, `azure_event_hubs`, `confluent_cloud`. If a field in that set is populated, all other fields in the set will automatically be cleared.
91
+ # @!attribute [rw] confluent_cloud
92
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::ConfluentCloud]
93
+ # Optional. Confluent Cloud.
94
+ #
95
+ # Note: The following fields are mutually exclusive: `confluent_cloud`, `aws_kinesis`, `cloud_storage`, `azure_event_hubs`, `aws_msk`. If a field in that set is populated, all other fields in the set will automatically be cleared.
96
+ # @!attribute [rw] platform_logs_settings
97
+ # @return [::Google::Cloud::PubSub::V1::PlatformLogsSettings]
98
+ # Optional. Platform Logs settings. If unset, no Platform Logs will be
99
+ # generated.
100
+ class IngestionDataSourceSettings
101
+ include ::Google::Protobuf::MessageExts
102
+ extend ::Google::Protobuf::MessageExts::ClassMethods
103
+
104
+ # Ingestion settings for Amazon Kinesis Data Streams.
105
+ # @!attribute [r] state
106
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AwsKinesis::State]
107
+ # Output only. An output-only field that indicates the state of the Kinesis
108
+ # ingestion source.
109
+ # @!attribute [rw] stream_arn
110
+ # @return [::String]
111
+ # Required. The Kinesis stream ARN to ingest data from.
112
+ # @!attribute [rw] consumer_arn
113
+ # @return [::String]
114
+ # Required. The Kinesis consumer ARN to used for ingestion in Enhanced
115
+ # Fan-Out mode. The consumer must be already created and ready to be used.
116
+ # @!attribute [rw] aws_role_arn
117
+ # @return [::String]
118
+ # Required. AWS role ARN to be used for Federated Identity authentication
119
+ # with Kinesis. Check the Pub/Sub docs for how to set up this role and the
120
+ # required permissions that need to be attached to it.
121
+ # @!attribute [rw] gcp_service_account
122
+ # @return [::String]
123
+ # Required. The GCP service account to be used for Federated Identity
124
+ # authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for
125
+ # the provided role). The `aws_role_arn` must be set up with
126
+ # `accounts.google.com:sub` equals to this service account number.
127
+ class AwsKinesis
128
+ include ::Google::Protobuf::MessageExts
129
+ extend ::Google::Protobuf::MessageExts::ClassMethods
130
+
131
+ # Possible states for ingestion from Amazon Kinesis Data Streams.
132
+ module State
133
+ # Default value. This value is unused.
134
+ STATE_UNSPECIFIED = 0
135
+
136
+ # Ingestion is active.
137
+ ACTIVE = 1
138
+
139
+ # Permission denied encountered while consuming data from Kinesis.
140
+ # This can happen if:
141
+ # - The provided `aws_role_arn` does not exist or does not have the
142
+ # appropriate permissions attached.
143
+ # - The provided `aws_role_arn` is not set up properly for Identity
144
+ # Federation using `gcp_service_account`.
145
+ # - The Pub/Sub SA is not granted the
146
+ # `iam.serviceAccounts.getOpenIdToken` permission on
147
+ # `gcp_service_account`.
148
+ KINESIS_PERMISSION_DENIED = 2
149
+
150
+ # Permission denied encountered while publishing to the topic. This can
151
+ # happen if the Pub/Sub SA has not been granted the [appropriate publish
152
+ # permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
153
+ PUBLISH_PERMISSION_DENIED = 3
154
+
155
+ # The Kinesis stream does not exist.
156
+ STREAM_NOT_FOUND = 4
157
+
158
+ # The Kinesis consumer does not exist.
159
+ CONSUMER_NOT_FOUND = 5
160
+ end
161
+ end
162
+
163
+ # Ingestion settings for Cloud Storage.
164
+ # @!attribute [r] state
165
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::State]
166
+ # Output only. An output-only field that indicates the state of the Cloud
167
+ # Storage ingestion source.
168
+ # @!attribute [rw] bucket
169
+ # @return [::String]
170
+ # Optional. Cloud Storage bucket. The bucket name must be without any
171
+ # prefix like "gs://". See the [bucket naming requirements]
172
+ # (https://cloud.google.com/storage/docs/buckets#naming).
173
+ # @!attribute [rw] text_format
174
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::TextFormat]
175
+ # Optional. Data from Cloud Storage will be interpreted as text.
176
+ #
177
+ # Note: The following fields are mutually exclusive: `text_format`, `avro_format`, `pubsub_avro_format`. If a field in that set is populated, all other fields in the set will automatically be cleared.
178
+ # @!attribute [rw] avro_format
179
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::AvroFormat]
180
+ # Optional. Data from Cloud Storage will be interpreted in Avro format.
181
+ #
182
+ # Note: The following fields are mutually exclusive: `avro_format`, `text_format`, `pubsub_avro_format`. If a field in that set is populated, all other fields in the set will automatically be cleared.
183
+ # @!attribute [rw] pubsub_avro_format
184
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::CloudStorage::PubSubAvroFormat]
185
+ # Optional. It will be assumed data from Cloud Storage was written via
186
+ # [Cloud Storage
187
+ # subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage).
188
+ #
189
+ # Note: The following fields are mutually exclusive: `pubsub_avro_format`, `text_format`, `avro_format`. If a field in that set is populated, all other fields in the set will automatically be cleared.
190
+ # @!attribute [rw] minimum_object_create_time
191
+ # @return [::Google::Protobuf::Timestamp]
192
+ # Optional. Only objects with a larger or equal creation timestamp will be
193
+ # ingested.
194
+ # @!attribute [rw] match_glob
195
+ # @return [::String]
196
+ # Optional. Glob pattern used to match objects that will be ingested. If
197
+ # unset, all objects will be ingested. See the [supported
198
+ # patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob).
199
+ class CloudStorage
200
+ include ::Google::Protobuf::MessageExts
201
+ extend ::Google::Protobuf::MessageExts::ClassMethods
202
+
203
+ # Configuration for reading Cloud Storage data in text format. Each line of
204
+ # text as specified by the delimiter will be set to the `data` field of a
205
+ # Pub/Sub message.
206
+ # @!attribute [rw] delimiter
207
+ # @return [::String]
208
+ # Optional. When unset, '\n' is used.
209
+ class TextFormat
210
+ include ::Google::Protobuf::MessageExts
211
+ extend ::Google::Protobuf::MessageExts::ClassMethods
212
+ end
213
+
214
+ # Configuration for reading Cloud Storage data in Avro binary format. The
215
+ # bytes of each object will be set to the `data` field of a Pub/Sub
216
+ # message.
217
+ class AvroFormat
218
+ include ::Google::Protobuf::MessageExts
219
+ extend ::Google::Protobuf::MessageExts::ClassMethods
220
+ end
221
+
222
+ # Configuration for reading Cloud Storage data written via [Cloud Storage
223
+ # subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). The
224
+ # data and attributes fields of the originally exported Pub/Sub message
225
+ # will be restored when publishing.
226
+ class PubSubAvroFormat
227
+ include ::Google::Protobuf::MessageExts
228
+ extend ::Google::Protobuf::MessageExts::ClassMethods
229
+ end
230
+
231
+ # Possible states for ingestion from Cloud Storage.
232
+ module State
233
+ # Default value. This value is unused.
234
+ STATE_UNSPECIFIED = 0
235
+
236
+ # Ingestion is active.
237
+ ACTIVE = 1
238
+
239
+ # Permission denied encountered while calling the Cloud Storage API. This
240
+ # can happen if the Pub/Sub SA has not been granted the
241
+ # [appropriate
242
+ # permissions](https://cloud.google.com/storage/docs/access-control/iam-permissions):
243
+ # - storage.objects.list: to list the objects in a bucket.
244
+ # - storage.objects.get: to read the objects in a bucket.
245
+ # - storage.buckets.get: to verify the bucket exists.
246
+ CLOUD_STORAGE_PERMISSION_DENIED = 2
247
+
248
+ # Permission denied encountered while publishing to the topic. This can
249
+ # happen if the Pub/Sub SA has not been granted the [appropriate publish
250
+ # permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)
251
+ PUBLISH_PERMISSION_DENIED = 3
252
+
253
+ # The provided Cloud Storage bucket doesn't exist.
254
+ BUCKET_NOT_FOUND = 4
255
+
256
+ # The Cloud Storage bucket has too many objects, ingestion will be
257
+ # paused.
258
+ TOO_MANY_OBJECTS = 5
259
+ end
260
+ end
261
+
262
+ # Ingestion settings for Azure Event Hubs.
263
+ # @!attribute [r] state
264
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AzureEventHubs::State]
265
+ # Output only. An output-only field that indicates the state of the Event
266
+ # Hubs ingestion source.
267
+ # @!attribute [rw] resource_group
268
+ # @return [::String]
269
+ # Optional. Name of the resource group within the azure subscription.
270
+ # @!attribute [rw] namespace
271
+ # @return [::String]
272
+ # Optional. The name of the Event Hubs namespace.
273
+ # @!attribute [rw] event_hub
274
+ # @return [::String]
275
+ # Optional. The name of the Event Hub.
276
+ # @!attribute [rw] client_id
277
+ # @return [::String]
278
+ # Optional. The client id of the Azure application that is being used to
279
+ # authenticate Pub/Sub.
280
+ # @!attribute [rw] tenant_id
281
+ # @return [::String]
282
+ # Optional. The tenant id of the Azure application that is being used to
283
+ # authenticate Pub/Sub.
284
+ # @!attribute [rw] subscription_id
285
+ # @return [::String]
286
+ # Optional. The Azure subscription id.
287
+ # @!attribute [rw] gcp_service_account
288
+ # @return [::String]
289
+ # Optional. The GCP service account to be used for Federated Identity
290
+ # authentication.
291
+ class AzureEventHubs
292
+ include ::Google::Protobuf::MessageExts
293
+ extend ::Google::Protobuf::MessageExts::ClassMethods
294
+
295
+ # Possible states for managed ingestion from Event Hubs.
296
+ module State
297
+ # Default value. This value is unused.
298
+ STATE_UNSPECIFIED = 0
299
+
300
+ # Ingestion is active.
301
+ ACTIVE = 1
302
+
303
+ # Permission denied encountered while consuming data from Event Hubs.
304
+ # This can happen when `client_id`, or `tenant_id` are invalid. Or the
305
+ # right permissions haven't been granted.
306
+ EVENT_HUBS_PERMISSION_DENIED = 2
307
+
308
+ # Permission denied encountered while publishing to the topic.
309
+ PUBLISH_PERMISSION_DENIED = 3
310
+
311
+ # The provided Event Hubs namespace couldn't be found.
312
+ NAMESPACE_NOT_FOUND = 4
313
+
314
+ # The provided Event Hub couldn't be found.
315
+ EVENT_HUB_NOT_FOUND = 5
316
+
317
+ # The provided Event Hubs subscription couldn't be found.
318
+ SUBSCRIPTION_NOT_FOUND = 6
319
+
320
+ # The provided Event Hubs resource group couldn't be found.
321
+ RESOURCE_GROUP_NOT_FOUND = 7
322
+ end
323
+ end
324
+
325
+ # Ingestion settings for Amazon MSK.
326
+ # @!attribute [r] state
327
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::AwsMsk::State]
328
+ # Output only. An output-only field that indicates the state of the Amazon
329
+ # MSK ingestion source.
330
+ # @!attribute [rw] cluster_arn
331
+ # @return [::String]
332
+ # Required. The Amazon Resource Name (ARN) that uniquely identifies the
333
+ # cluster.
334
+ # @!attribute [rw] topic
335
+ # @return [::String]
336
+ # Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
337
+ # will import from.
338
+ # @!attribute [rw] aws_role_arn
339
+ # @return [::String]
340
+ # Required. AWS role ARN to be used for Federated Identity authentication
341
+ # with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
342
+ # the required permissions that need to be attached to it.
343
+ # @!attribute [rw] gcp_service_account
344
+ # @return [::String]
345
+ # Required. The GCP service account to be used for Federated Identity
346
+ # authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
347
+ # for the provided role). The `aws_role_arn` must be set up with
348
+ # `accounts.google.com:sub` equals to this service account number.
349
+ class AwsMsk
350
+ include ::Google::Protobuf::MessageExts
351
+ extend ::Google::Protobuf::MessageExts::ClassMethods
352
+
353
+ # Possible states for managed ingestion from Amazon MSK.
354
+ module State
355
+ # Default value. This value is unused.
356
+ STATE_UNSPECIFIED = 0
357
+
358
+ # Ingestion is active.
359
+ ACTIVE = 1
360
+
361
+ # Permission denied encountered while consuming data from Amazon MSK.
362
+ MSK_PERMISSION_DENIED = 2
363
+
364
+ # Permission denied encountered while publishing to the topic.
365
+ PUBLISH_PERMISSION_DENIED = 3
366
+
367
+ # The provided MSK cluster wasn't found.
368
+ CLUSTER_NOT_FOUND = 4
369
+
370
+ # The provided topic wasn't found.
371
+ TOPIC_NOT_FOUND = 5
372
+ end
373
+ end
374
+
375
+ # Ingestion settings for Confluent Cloud.
376
+ # @!attribute [r] state
377
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings::ConfluentCloud::State]
378
+ # Output only. An output-only field that indicates the state of the
379
+ # Confluent Cloud ingestion source.
380
+ # @!attribute [rw] bootstrap_server
381
+ # @return [::String]
382
+ # Required. The address of the bootstrap server. The format is url:port.
383
+ # @!attribute [rw] cluster_id
384
+ # @return [::String]
385
+ # Required. The id of the cluster.
386
+ # @!attribute [rw] topic
387
+ # @return [::String]
388
+ # Required. The name of the topic in the Confluent Cloud cluster that
389
+ # Pub/Sub will import from.
390
+ # @!attribute [rw] identity_pool_id
391
+ # @return [::String]
392
+ # Required. The id of the identity pool to be used for Federated Identity
393
+ # authentication with Confluent Cloud. See
394
+ # https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
395
+ # @!attribute [rw] gcp_service_account
396
+ # @return [::String]
397
+ # Required. The GCP service account to be used for Federated Identity
398
+ # authentication with `identity_pool_id`.
399
+ class ConfluentCloud
400
+ include ::Google::Protobuf::MessageExts
401
+ extend ::Google::Protobuf::MessageExts::ClassMethods
402
+
403
+ # Possible states for managed ingestion from Confluent Cloud.
404
+ module State
405
+ # Default value. This value is unused.
406
+ STATE_UNSPECIFIED = 0
407
+
408
+ # Ingestion is active.
409
+ ACTIVE = 1
410
+
411
+ # Permission denied encountered while consuming data from Confluent
412
+ # Cloud.
413
+ CONFLUENT_CLOUD_PERMISSION_DENIED = 2
414
+
415
+ # Permission denied encountered while publishing to the topic.
416
+ PUBLISH_PERMISSION_DENIED = 3
417
+
418
+ # The provided bootstrap server address is unreachable.
419
+ UNREACHABLE_BOOTSTRAP_SERVER = 4
420
+
421
+ # The provided cluster wasn't found.
422
+ CLUSTER_NOT_FOUND = 5
423
+
424
+ # The provided topic wasn't found.
425
+ TOPIC_NOT_FOUND = 6
426
+ end
427
+ end
428
+ end
429
+
430
+ # Settings for Platform Logs produced by Pub/Sub.
431
+ # @!attribute [rw] severity
432
+ # @return [::Google::Cloud::PubSub::V1::PlatformLogsSettings::Severity]
433
+ # Optional. The minimum severity level of Platform Logs that will be written.
434
+ class PlatformLogsSettings
435
+ include ::Google::Protobuf::MessageExts
436
+ extend ::Google::Protobuf::MessageExts::ClassMethods
437
+
438
+ # Severity levels of Platform Logs.
439
+ module Severity
440
+ # Default value. Logs level is unspecified. Logs will be disabled.
441
+ SEVERITY_UNSPECIFIED = 0
442
+
443
+ # Logs will be disabled.
444
+ DISABLED = 1
445
+
446
+ # Debug logs and higher-severity logs will be written.
447
+ DEBUG = 2
448
+
449
+ # Info logs and higher-severity logs will be written.
450
+ INFO = 3
451
+
452
+ # Warning logs and higher-severity logs will be written.
453
+ WARNING = 4
454
+
455
+ # Only error logs will be written.
456
+ ERROR = 5
457
+ end
458
+ end
459
+
460
+ # Payload of the Platform Log entry sent when a failure is encountered while
461
+ # ingesting.
462
+ # @!attribute [rw] topic
463
+ # @return [::String]
464
+ # Required. Name of the import topic. Format is:
465
+ # projects/\\{project_name}/topics/\\{topic_name}.
466
+ # @!attribute [rw] error_message
467
+ # @return [::String]
468
+ # Required. Error details explaining why ingestion to Pub/Sub has failed.
469
+ # @!attribute [rw] cloud_storage_failure
470
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::CloudStorageFailure]
471
+ # Optional. Failure when ingesting from Cloud Storage.
472
+ #
473
+ # Note: The following fields are mutually exclusive: `cloud_storage_failure`, `aws_msk_failure`, `azure_event_hubs_failure`, `confluent_cloud_failure`, `aws_kinesis_failure`. If a field in that set is populated, all other fields in the set will automatically be cleared.
474
+ # @!attribute [rw] aws_msk_failure
475
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::AwsMskFailureReason]
476
+ # Optional. Failure when ingesting from Amazon MSK.
477
+ #
478
+ # Note: The following fields are mutually exclusive: `aws_msk_failure`, `cloud_storage_failure`, `azure_event_hubs_failure`, `confluent_cloud_failure`, `aws_kinesis_failure`. If a field in that set is populated, all other fields in the set will automatically be cleared.
479
+ # @!attribute [rw] azure_event_hubs_failure
480
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::AzureEventHubsFailureReason]
481
+ # Optional. Failure when ingesting from Azure Event Hubs.
482
+ #
483
+ # Note: The following fields are mutually exclusive: `azure_event_hubs_failure`, `cloud_storage_failure`, `aws_msk_failure`, `confluent_cloud_failure`, `aws_kinesis_failure`. If a field in that set is populated, all other fields in the set will automatically be cleared.
484
+ # @!attribute [rw] confluent_cloud_failure
485
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::ConfluentCloudFailureReason]
486
+ # Optional. Failure when ingesting from Confluent Cloud.
487
+ #
488
+ # Note: The following fields are mutually exclusive: `confluent_cloud_failure`, `cloud_storage_failure`, `aws_msk_failure`, `azure_event_hubs_failure`, `aws_kinesis_failure`. If a field in that set is populated, all other fields in the set will automatically be cleared.
489
+ # @!attribute [rw] aws_kinesis_failure
490
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::AwsKinesisFailureReason]
491
+ # Optional. Failure when ingesting from AWS Kinesis.
492
+ #
493
+ # Note: The following fields are mutually exclusive: `aws_kinesis_failure`, `cloud_storage_failure`, `aws_msk_failure`, `azure_event_hubs_failure`, `confluent_cloud_failure`. If a field in that set is populated, all other fields in the set will automatically be cleared.
494
+ class IngestionFailureEvent
495
+ include ::Google::Protobuf::MessageExts
496
+ extend ::Google::Protobuf::MessageExts::ClassMethods
497
+
498
+ # Specifies the reason why some data may have been left out of
499
+ # the desired Pub/Sub message due to the API message limits
500
+ # (https://cloud.google.com/pubsub/quotas#resource_limits). For example,
501
+ # when the number of attributes is larger than 100, the number of
502
+ # attributes is truncated to 100 to respect the limit on the attribute count.
503
+ # Other attribute limits are treated similarly. When the size of the desired
504
+ # message would've been larger than 10MB, the message won't be published at
505
+ # all, and ingestion of the subsequent messages will proceed as normal.
506
+ class ApiViolationReason
507
+ include ::Google::Protobuf::MessageExts
508
+ extend ::Google::Protobuf::MessageExts::ClassMethods
509
+ end
510
+
511
+ # Set when an Avro file is unsupported or its format is not valid. When this
512
+ # occurs, one or more Avro objects won't be ingested.
513
+ class AvroFailureReason
514
+ include ::Google::Protobuf::MessageExts
515
+ extend ::Google::Protobuf::MessageExts::ClassMethods
516
+ end
517
+
518
+ # Set when a Pub/Sub message fails to get published due to a schema
519
+ # validation violation.
520
+ class SchemaViolationReason
521
+ include ::Google::Protobuf::MessageExts
522
+ extend ::Google::Protobuf::MessageExts::ClassMethods
523
+ end
524
+
525
+ # Set when a Pub/Sub message fails to get published due to a message
526
+ # transformation error.
527
+ class MessageTransformationFailureReason
528
+ include ::Google::Protobuf::MessageExts
529
+ extend ::Google::Protobuf::MessageExts::ClassMethods
530
+ end
531
+
532
+ # Failure when ingesting from a Cloud Storage source.
533
+ # @!attribute [rw] bucket
534
+ # @return [::String]
535
+ # Optional. Name of the Cloud Storage bucket used for ingestion.
536
+ # @!attribute [rw] object_name
537
+ # @return [::String]
538
+ # Optional. Name of the Cloud Storage object which contained the section
539
+ # that couldn't be ingested.
540
+ # @!attribute [rw] object_generation
541
+ # @return [::Integer]
542
+ # Optional. Generation of the Cloud Storage object which contained the
543
+ # section that couldn't be ingested.
544
+ # @!attribute [rw] avro_failure_reason
545
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::AvroFailureReason]
546
+ # Optional. Failure encountered when parsing an Avro file.
547
+ #
548
+ # Note: The following fields are mutually exclusive: `avro_failure_reason`, `api_violation_reason`, `schema_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
549
+ # @!attribute [rw] api_violation_reason
550
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::ApiViolationReason]
551
+ # Optional. The Pub/Sub API limits prevented the desired message from
552
+ # being published.
553
+ #
554
+ # Note: The following fields are mutually exclusive: `api_violation_reason`, `avro_failure_reason`, `schema_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
555
+ # @!attribute [rw] schema_violation_reason
556
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::SchemaViolationReason]
557
+ # Optional. The Pub/Sub message failed schema validation.
558
+ #
559
+ # Note: The following fields are mutually exclusive: `schema_violation_reason`, `avro_failure_reason`, `api_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
560
+ # @!attribute [rw] message_transformation_failure_reason
561
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::MessageTransformationFailureReason]
562
+ # Optional. Failure encountered when applying a message transformation to
563
+ # the Pub/Sub message.
564
+ #
565
+ # Note: The following fields are mutually exclusive: `message_transformation_failure_reason`, `avro_failure_reason`, `api_violation_reason`, `schema_violation_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
566
+ class CloudStorageFailure
567
+ include ::Google::Protobuf::MessageExts
568
+ extend ::Google::Protobuf::MessageExts::ClassMethods
569
+ end
570
+
571
+ # Failure when ingesting from an Amazon MSK source.
572
+ # @!attribute [rw] cluster_arn
573
+ # @return [::String]
574
+ # Optional. The ARN of the cluster of the topic being ingested from.
575
+ # @!attribute [rw] kafka_topic
576
+ # @return [::String]
577
+ # Optional. The name of the Kafka topic being ingested from.
578
+ # @!attribute [rw] partition_id
579
+ # @return [::Integer]
580
+ # Optional. The partition ID of the message that failed to be ingested.
581
+ # @!attribute [rw] offset
582
+ # @return [::Integer]
583
+ # Optional. The offset within the partition of the message that failed to
584
+ # be ingested.
585
+ # @!attribute [rw] api_violation_reason
586
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::ApiViolationReason]
587
+ # Optional. The Pub/Sub API limits prevented the desired message from
588
+ # being published.
589
+ #
590
+ # Note: The following fields are mutually exclusive: `api_violation_reason`, `schema_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
591
+ # @!attribute [rw] schema_violation_reason
592
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::SchemaViolationReason]
593
+ # Optional. The Pub/Sub message failed schema validation.
594
+ #
595
+ # Note: The following fields are mutually exclusive: `schema_violation_reason`, `api_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
596
+ # @!attribute [rw] message_transformation_failure_reason
597
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::MessageTransformationFailureReason]
598
+ # Optional. Failure encountered when applying a message transformation to
599
+ # the Pub/Sub message.
600
+ #
601
+ # Note: The following fields are mutually exclusive: `message_transformation_failure_reason`, `api_violation_reason`, `schema_violation_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
602
+ class AwsMskFailureReason
603
+ include ::Google::Protobuf::MessageExts
604
+ extend ::Google::Protobuf::MessageExts::ClassMethods
605
+ end
606
+
607
+ # Failure when ingesting from an Azure Event Hubs source.
608
+ # @!attribute [rw] namespace
609
+ # @return [::String]
610
+ # Optional. The namespace containing the event hub being ingested from.
611
+ # @!attribute [rw] event_hub
612
+ # @return [::String]
613
+ # Optional. The name of the event hub being ingested from.
614
+ # @!attribute [rw] partition_id
615
+ # @return [::Integer]
616
+ # Optional. The partition ID of the message that failed to be ingested.
617
+ # @!attribute [rw] offset
618
+ # @return [::Integer]
619
+ # Optional. The offset within the partition of the message that failed to
620
+ # be ingested.
621
+ # @!attribute [rw] api_violation_reason
622
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::ApiViolationReason]
623
+ # Optional. The Pub/Sub API limits prevented the desired message from
624
+ # being published.
625
+ #
626
+ # Note: The following fields are mutually exclusive: `api_violation_reason`, `schema_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
627
+ # @!attribute [rw] schema_violation_reason
628
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::SchemaViolationReason]
629
+ # Optional. The Pub/Sub message failed schema validation.
630
+ #
631
+ # Note: The following fields are mutually exclusive: `schema_violation_reason`, `api_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
632
+ # @!attribute [rw] message_transformation_failure_reason
633
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::MessageTransformationFailureReason]
634
+ # Optional. Failure encountered when applying a message transformation to
635
+ # the Pub/Sub message.
636
+ #
637
+ # Note: The following fields are mutually exclusive: `message_transformation_failure_reason`, `api_violation_reason`, `schema_violation_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
638
+ class AzureEventHubsFailureReason
639
+ include ::Google::Protobuf::MessageExts
640
+ extend ::Google::Protobuf::MessageExts::ClassMethods
641
+ end
642
+
643
+ # Failure when ingesting from a Confluent Cloud source.
644
+ # @!attribute [rw] cluster_id
645
+ # @return [::String]
646
+ # Optional. The cluster ID containing the topic being ingested from.
647
+ # @!attribute [rw] kafka_topic
648
+ # @return [::String]
649
+ # Optional. The name of the Kafka topic being ingested from.
650
+ # @!attribute [rw] partition_id
651
+ # @return [::Integer]
652
+ # Optional. The partition ID of the message that failed to be ingested.
653
+ # @!attribute [rw] offset
654
+ # @return [::Integer]
655
+ # Optional. The offset within the partition of the message that failed to
656
+ # be ingested.
657
+ # @!attribute [rw] api_violation_reason
658
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::ApiViolationReason]
659
+ # Optional. The Pub/Sub API limits prevented the desired message from
660
+ # being published.
661
+ #
662
+ # Note: The following fields are mutually exclusive: `api_violation_reason`, `schema_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
663
+ # @!attribute [rw] schema_violation_reason
664
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::SchemaViolationReason]
665
+ # Optional. The Pub/Sub message failed schema validation.
666
+ #
667
+ # Note: The following fields are mutually exclusive: `schema_violation_reason`, `api_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
668
+ # @!attribute [rw] message_transformation_failure_reason
669
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::MessageTransformationFailureReason]
670
+ # Optional. Failure encountered when applying a message transformation to
671
+ # the Pub/Sub message.
672
+ #
673
+ # Note: The following fields are mutually exclusive: `message_transformation_failure_reason`, `api_violation_reason`, `schema_violation_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
674
+ class ConfluentCloudFailureReason
675
+ include ::Google::Protobuf::MessageExts
676
+ extend ::Google::Protobuf::MessageExts::ClassMethods
677
+ end
678
+
679
+ # Failure when ingesting from an AWS Kinesis source.
680
+ # @!attribute [rw] stream_arn
681
+ # @return [::String]
682
+ # Optional. The stream ARN of the Kinesis stream being ingested from.
683
+ # @!attribute [rw] partition_key
684
+ # @return [::String]
685
+ # Optional. The partition key of the message that failed to be ingested.
686
+ # @!attribute [rw] sequence_number
687
+ # @return [::String]
688
+ # Optional. The sequence number of the message that failed to be ingested.
689
+ # @!attribute [rw] schema_violation_reason
690
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::SchemaViolationReason]
691
+ # Optional. The Pub/Sub message failed schema validation.
692
+ #
693
+ # Note: The following fields are mutually exclusive: `schema_violation_reason`, `message_transformation_failure_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
694
+ # @!attribute [rw] message_transformation_failure_reason
695
+ # @return [::Google::Cloud::PubSub::V1::IngestionFailureEvent::MessageTransformationFailureReason]
696
+ # Optional. Failure encountered when applying a message transformation to
697
+ # the Pub/Sub message.
698
+ #
699
+ # Note: The following fields are mutually exclusive: `message_transformation_failure_reason`, `schema_violation_reason`. If a field in that set is populated, all other fields in the set will automatically be cleared.
700
+ class AwsKinesisFailureReason
701
+ include ::Google::Protobuf::MessageExts
702
+ extend ::Google::Protobuf::MessageExts::ClassMethods
703
+ end
704
+ end
705
+
706
+ # User-defined JavaScript function that can transform or filter a Pub/Sub
707
+ # message.
708
+ # @!attribute [rw] function_name
709
+ # @return [::String]
710
+ # Required. Name of the JavasScript function that should applied to Pub/Sub
711
+ # messages.
712
+ # @!attribute [rw] code
713
+ # @return [::String]
714
+ # Required. JavaScript code that contains a function `function_name` with the
715
+ # below signature:
716
+ #
717
+ # ```
718
+ # /**
719
+ # * Transforms a Pub/Sub message.
720
+ #
721
+ # * @return \\{(Object<string, (string | Object<string, string>)>|null)} - To
722
+ # * filter a message, return `null`. To transform a message return a map
723
+ # * with the following keys:
724
+ # * - (required) 'data' : \\{string}
725
+ # * - (optional) 'attributes' : \\{Object<string, string>}
726
+ # * Returning empty `attributes` will remove all attributes from the
727
+ # * message.
728
+ # *
729
+ # * @param \\{(Object<string, (string | Object<string, string>)>} Pub/Sub
730
+ # * message. Keys:
731
+ # * - (required) 'data' : \\{string}
732
+ # * - (required) 'attributes' : \\{Object<string, string>}
733
+ # *
734
+ # * @param \\{Object<string, any>} metadata - Pub/Sub message metadata.
735
+ # * Keys:
736
+ # * - (optional) 'message_id' : \\{string}
737
+ # * - (optional) 'publish_time': \\{string} YYYY-MM-DDTHH:MM:SSZ format
738
+ # * - (optional) 'ordering_key': \\{string}
739
+ # */
740
+ #
741
+ # function <function_name>(message, metadata) {
742
+ # }
743
+ # ```
744
+ class JavaScriptUDF
745
+ include ::Google::Protobuf::MessageExts
746
+ extend ::Google::Protobuf::MessageExts::ClassMethods
747
+ end
748
+
749
+ # All supported message transforms types.
750
+ # @!attribute [rw] javascript_udf
751
+ # @return [::Google::Cloud::PubSub::V1::JavaScriptUDF]
752
+ # Optional. JavaScript User Defined Function. If multiple JavaScriptUDF's
753
+ # are specified on a resource, each must have a unique `function_name`.
754
+ # @!attribute [rw] enabled
755
+ # @deprecated This field is deprecated and may be removed in the next major version update.
756
+ # @return [::Boolean]
757
+ # Optional. This field is deprecated, use the `disabled` field to disable
758
+ # transforms.
759
+ # @!attribute [rw] disabled
760
+ # @return [::Boolean]
761
+ # Optional. If true, the transform is disabled and will not be applied to
762
+ # messages. Defaults to `false`.
763
+ class MessageTransform
764
+ include ::Google::Protobuf::MessageExts
765
+ extend ::Google::Protobuf::MessageExts::ClassMethods
766
+ end
767
+
52
768
  # A topic resource.
53
769
  # @!attribute [rw] name
54
770
  # @return [::String]
@@ -60,36 +776,47 @@ module Google
60
776
  # must not start with `"goog"`.
61
777
  # @!attribute [rw] labels
62
778
  # @return [::Google::Protobuf::Map{::String => ::String}]
63
- # See [Creating and managing labels]
779
+ # Optional. See [Creating and managing labels]
64
780
  # (https://cloud.google.com/pubsub/docs/labels).
65
781
  # @!attribute [rw] message_storage_policy
66
782
  # @return [::Google::Cloud::PubSub::V1::MessageStoragePolicy]
67
- # Policy constraining the set of Google Cloud Platform regions where messages
68
- # published to the topic may be stored. If not present, then no constraints
69
- # are in effect.
783
+ # Optional. Policy constraining the set of Google Cloud Platform regions
784
+ # where messages published to the topic may be stored. If not present, then
785
+ # no constraints are in effect.
70
786
  # @!attribute [rw] kms_key_name
71
787
  # @return [::String]
72
- # The resource name of the Cloud KMS CryptoKey to be used to protect access
73
- # to messages published on this topic.
788
+ # Optional. The resource name of the Cloud KMS CryptoKey to be used to
789
+ # protect access to messages published on this topic.
74
790
  #
75
791
  # The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
76
792
  # @!attribute [rw] schema_settings
77
793
  # @return [::Google::Cloud::PubSub::V1::SchemaSettings]
78
- # Settings for validating messages published against a schema.
794
+ # Optional. Settings for validating messages published against a schema.
79
795
  # @!attribute [rw] satisfies_pzs
80
796
  # @return [::Boolean]
81
- # Reserved for future use. This field is set only in responses from the
82
- # server; it is ignored if it is set in any requests.
797
+ # Optional. Reserved for future use. This field is set only in responses from
798
+ # the server; it is ignored if it is set in any requests.
83
799
  # @!attribute [rw] message_retention_duration
84
800
  # @return [::Google::Protobuf::Duration]
85
- # Indicates the minimum duration to retain a message after it is published to
86
- # the topic. If this field is set, messages published to the topic in the
87
- # last `message_retention_duration` are always available to subscribers. For
88
- # instance, it allows any attached subscription to [seek to a
801
+ # Optional. Indicates the minimum duration to retain a message after it is
802
+ # published to the topic. If this field is set, messages published to the
803
+ # topic in the last `message_retention_duration` are always available to
804
+ # subscribers. For instance, it allows any attached subscription to [seek to
805
+ # a
89
806
  # timestamp](https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time)
90
807
  # that is up to `message_retention_duration` in the past. If this field is
91
808
  # not set, message retention is controlled by settings on individual
92
- # subscriptions. Cannot be more than 7 days or less than 10 minutes.
809
+ # subscriptions. Cannot be more than 31 days or less than 10 minutes.
810
+ # @!attribute [r] state
811
+ # @return [::Google::Cloud::PubSub::V1::Topic::State]
812
+ # Output only. An output-only field indicating the state of the topic.
813
+ # @!attribute [rw] ingestion_data_source_settings
814
+ # @return [::Google::Cloud::PubSub::V1::IngestionDataSourceSettings]
815
+ # Optional. Settings for ingestion from a data source into this topic.
816
+ # @!attribute [rw] message_transforms
817
+ # @return [::Array<::Google::Cloud::PubSub::V1::MessageTransform>]
818
+ # Optional. Transforms to be applied to messages published to the topic.
819
+ # Transforms are applied in the order specified.
93
820
  class Topic
94
821
  include ::Google::Protobuf::MessageExts
95
822
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -102,6 +829,20 @@ module Google
102
829
  include ::Google::Protobuf::MessageExts
103
830
  extend ::Google::Protobuf::MessageExts::ClassMethods
104
831
  end
832
+
833
+ # The state of the topic.
834
+ module State
835
+ # Default value. This value is unused.
836
+ STATE_UNSPECIFIED = 0
837
+
838
+ # The topic does not have any persistent errors.
839
+ ACTIVE = 1
840
+
841
+ # Ingestion from the data source has encountered a permanent error.
842
+ # See the more detailed error state in the corresponding ingestion
843
+ # source configuration.
844
+ INGESTION_RESOURCE_ERROR = 2
845
+ end
105
846
  end
106
847
 
107
848
  # A message that is published by publishers and consumed by subscribers. The
@@ -114,12 +855,12 @@ module Google
114
855
  # limits.
115
856
  # @!attribute [rw] data
116
857
  # @return [::String]
117
- # The message data field. If this field is empty, the message must contain
118
- # at least one attribute.
858
+ # Optional. The message data field. If this field is empty, the message must
859
+ # contain at least one attribute.
119
860
  # @!attribute [rw] attributes
120
861
  # @return [::Google::Protobuf::Map{::String => ::String}]
121
- # Attributes for this message. If this field is empty, the message must
122
- # contain non-empty data. This can be used to filter messages on the
862
+ # Optional. Attributes for this message. If this field is empty, the message
863
+ # must contain non-empty data. This can be used to filter messages on the
123
864
  # subscription.
124
865
  # @!attribute [rw] message_id
125
866
  # @return [::String]
@@ -134,12 +875,14 @@ module Google
134
875
  # publisher in a `Publish` call.
135
876
  # @!attribute [rw] ordering_key
136
877
  # @return [::String]
137
- # If non-empty, identifies related messages for which publish order should be
138
- # respected. If a `Subscription` has `enable_message_ordering` set to `true`,
139
- # messages published with the same non-empty `ordering_key` value will be
140
- # delivered to subscribers in the order in which they are received by the
141
- # Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest`
142
- # must specify the same `ordering_key` value.
878
+ # Optional. If non-empty, identifies related messages for which publish order
879
+ # should be respected. If a `Subscription` has `enable_message_ordering` set
880
+ # to `true`, messages published with the same non-empty `ordering_key` value
881
+ # will be delivered to subscribers in the order in which they are received by
882
+ # the Pub/Sub system. All `PubsubMessage`s published in a given
883
+ # `PublishRequest` must specify the same `ordering_key` value. For more
884
+ # information, see [ordering
885
+ # messages](https://cloud.google.com/pubsub/docs/ordering).
143
886
  class PubsubMessage
144
887
  include ::Google::Protobuf::MessageExts
145
888
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -196,9 +939,9 @@ module Google
196
939
  # Response for the `Publish` method.
197
940
  # @!attribute [rw] message_ids
198
941
  # @return [::Array<::String>]
199
- # The server-assigned ID of each published message, in the same order as
200
- # the messages in the request. IDs are guaranteed to be unique within
201
- # the topic.
942
+ # Optional. The server-assigned ID of each published message, in the same
943
+ # order as the messages in the request. IDs are guaranteed to be unique
944
+ # within the topic.
202
945
  class PublishResponse
203
946
  include ::Google::Protobuf::MessageExts
204
947
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -211,12 +954,12 @@ module Google
211
954
  # Format is `projects/{project-id}`.
212
955
  # @!attribute [rw] page_size
213
956
  # @return [::Integer]
214
- # Maximum number of topics to return.
957
+ # Optional. Maximum number of topics to return.
215
958
  # @!attribute [rw] page_token
216
959
  # @return [::String]
217
- # The value returned by the last `ListTopicsResponse`; indicates that this is
218
- # a continuation of a prior `ListTopics` call, and that the system should
219
- # return the next page of data.
960
+ # Optional. The value returned by the last `ListTopicsResponse`; indicates
961
+ # that this is a continuation of a prior `ListTopics` call, and that the
962
+ # system should return the next page of data.
220
963
  class ListTopicsRequest
221
964
  include ::Google::Protobuf::MessageExts
222
965
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -225,11 +968,11 @@ module Google
225
968
  # Response for the `ListTopics` method.
226
969
  # @!attribute [rw] topics
227
970
  # @return [::Array<::Google::Cloud::PubSub::V1::Topic>]
228
- # The resulting topics.
971
+ # Optional. The resulting topics.
229
972
  # @!attribute [rw] next_page_token
230
973
  # @return [::String]
231
- # If not empty, indicates that there may be more topics that match the
232
- # request; this value should be passed in a new `ListTopicsRequest`.
974
+ # Optional. If not empty, indicates that there may be more topics that match
975
+ # the request; this value should be passed in a new `ListTopicsRequest`.
233
976
  class ListTopicsResponse
234
977
  include ::Google::Protobuf::MessageExts
235
978
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -242,12 +985,12 @@ module Google
242
985
  # Format is `projects/{project}/topics/{topic}`.
243
986
  # @!attribute [rw] page_size
244
987
  # @return [::Integer]
245
- # Maximum number of subscription names to return.
988
+ # Optional. Maximum number of subscription names to return.
246
989
  # @!attribute [rw] page_token
247
990
  # @return [::String]
248
- # The value returned by the last `ListTopicSubscriptionsResponse`; indicates
249
- # that this is a continuation of a prior `ListTopicSubscriptions` call, and
250
- # that the system should return the next page of data.
991
+ # Optional. The value returned by the last `ListTopicSubscriptionsResponse`;
992
+ # indicates that this is a continuation of a prior `ListTopicSubscriptions`
993
+ # call, and that the system should return the next page of data.
251
994
  class ListTopicSubscriptionsRequest
252
995
  include ::Google::Protobuf::MessageExts
253
996
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -256,11 +999,12 @@ module Google
256
999
  # Response for the `ListTopicSubscriptions` method.
257
1000
  # @!attribute [rw] subscriptions
258
1001
  # @return [::Array<::String>]
259
- # The names of subscriptions attached to the topic specified in the request.
1002
+ # Optional. The names of subscriptions attached to the topic specified in the
1003
+ # request.
260
1004
  # @!attribute [rw] next_page_token
261
1005
  # @return [::String]
262
- # If not empty, indicates that there may be more subscriptions that match
263
- # the request; this value should be passed in a new
1006
+ # Optional. If not empty, indicates that there may be more subscriptions that
1007
+ # match the request; this value should be passed in a new
264
1008
  # `ListTopicSubscriptionsRequest` to get more subscriptions.
265
1009
  class ListTopicSubscriptionsResponse
266
1010
  include ::Google::Protobuf::MessageExts
@@ -274,12 +1018,12 @@ module Google
274
1018
  # Format is `projects/{project}/topics/{topic}`.
275
1019
  # @!attribute [rw] page_size
276
1020
  # @return [::Integer]
277
- # Maximum number of snapshot names to return.
1021
+ # Optional. Maximum number of snapshot names to return.
278
1022
  # @!attribute [rw] page_token
279
1023
  # @return [::String]
280
- # The value returned by the last `ListTopicSnapshotsResponse`; indicates
281
- # that this is a continuation of a prior `ListTopicSnapshots` call, and
282
- # that the system should return the next page of data.
1024
+ # Optional. The value returned by the last `ListTopicSnapshotsResponse`;
1025
+ # indicates that this is a continuation of a prior `ListTopicSnapshots` call,
1026
+ # and that the system should return the next page of data.
283
1027
  class ListTopicSnapshotsRequest
284
1028
  include ::Google::Protobuf::MessageExts
285
1029
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -288,11 +1032,11 @@ module Google
288
1032
  # Response for the `ListTopicSnapshots` method.
289
1033
  # @!attribute [rw] snapshots
290
1034
  # @return [::Array<::String>]
291
- # The names of the snapshots that match the request.
1035
+ # Optional. The names of the snapshots that match the request.
292
1036
  # @!attribute [rw] next_page_token
293
1037
  # @return [::String]
294
- # If not empty, indicates that there may be more snapshots that match
295
- # the request; this value should be passed in a new
1038
+ # Optional. If not empty, indicates that there may be more snapshots that
1039
+ # match the request; this value should be passed in a new
296
1040
  # `ListTopicSnapshotsRequest` to get more snapshots.
297
1041
  class ListTopicSnapshotsResponse
298
1042
  include ::Google::Protobuf::MessageExts
@@ -326,7 +1070,9 @@ module Google
326
1070
  extend ::Google::Protobuf::MessageExts::ClassMethods
327
1071
  end
328
1072
 
329
- # A subscription resource.
1073
+ # A subscription resource. If none of `push_config`, `bigquery_config`, or
1074
+ # `cloud_storage_config` is set, then the subscriber will pull and ack messages
1075
+ # using API methods. At most one of these fields may be set.
330
1076
  # @!attribute [rw] name
331
1077
  # @return [::String]
332
1078
  # Required. The name of the subscription. It must have the format
@@ -342,23 +1088,23 @@ module Google
342
1088
  # field will be `_deleted-topic_` if the topic has been deleted.
343
1089
  # @!attribute [rw] push_config
344
1090
  # @return [::Google::Cloud::PubSub::V1::PushConfig]
345
- # If push delivery is used with this subscription, this field is
346
- # used to configure it. Either `pushConfig` or `bigQueryConfig` can be set,
347
- # but not both. If both are empty, then the subscriber will pull and ack
348
- # messages using API methods.
1091
+ # Optional. If push delivery is used with this subscription, this field is
1092
+ # used to configure it.
349
1093
  # @!attribute [rw] bigquery_config
350
1094
  # @return [::Google::Cloud::PubSub::V1::BigQueryConfig]
351
- # If delivery to BigQuery is used with this subscription, this field is
352
- # used to configure it. Either `pushConfig` or `bigQueryConfig` can be set,
353
- # but not both. If both are empty, then the subscriber will pull and ack
354
- # messages using API methods.
1095
+ # Optional. If delivery to BigQuery is used with this subscription, this
1096
+ # field is used to configure it.
1097
+ # @!attribute [rw] cloud_storage_config
1098
+ # @return [::Google::Cloud::PubSub::V1::CloudStorageConfig]
1099
+ # Optional. If delivery to Google Cloud Storage is used with this
1100
+ # subscription, this field is used to configure it.
355
1101
  # @!attribute [rw] ack_deadline_seconds
356
1102
  # @return [::Integer]
357
- # The approximate amount of time (on a best-effort basis) Pub/Sub waits for
358
- # the subscriber to acknowledge receipt before resending the message. In the
359
- # interval after the message is delivered and before it is acknowledged, it
360
- # is considered to be <i>outstanding</i>. During that time period, the
361
- # message will not be redelivered (on a best-effort basis).
1103
+ # Optional. The approximate amount of time (on a best-effort basis) Pub/Sub
1104
+ # waits for the subscriber to acknowledge receipt before resending the
1105
+ # message. In the interval after the message is delivered and before it is
1106
+ # acknowledged, it is considered to be _outstanding_. During that time
1107
+ # period, the message will not be redelivered (on a best-effort basis).
362
1108
  #
363
1109
  # For pull subscriptions, this value is used as the initial value for the ack
364
1110
  # deadline. To override this value for a given message, call
@@ -376,7 +1122,7 @@ module Google
376
1122
  # system will eventually redeliver the message.
377
1123
  # @!attribute [rw] retain_acked_messages
378
1124
  # @return [::Boolean]
379
- # Indicates whether to retain acknowledged messages. If true, then
1125
+ # Optional. Indicates whether to retain acknowledged messages. If true, then
380
1126
  # messages are not expunged from the subscription's backlog, even if they are
381
1127
  # acknowledged, until they fall out of the `message_retention_duration`
382
1128
  # window. This must be true if you would like to [`Seek` to a timestamp]
@@ -384,70 +1130,71 @@ module Google
384
1130
  # the past to replay previously-acknowledged messages.
385
1131
  # @!attribute [rw] message_retention_duration
386
1132
  # @return [::Google::Protobuf::Duration]
387
- # How long to retain unacknowledged messages in the subscription's backlog,
388
- # from the moment a message is published.
389
- # If `retain_acked_messages` is true, then this also configures the retention
390
- # of acknowledged messages, and thus configures how far back in time a `Seek`
391
- # can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
392
- # minutes.
1133
+ # Optional. How long to retain unacknowledged messages in the subscription's
1134
+ # backlog, from the moment a message is published. If `retain_acked_messages`
1135
+ # is true, then this also configures the retention of acknowledged messages,
1136
+ # and thus configures how far back in time a `Seek` can be done. Defaults to
1137
+ # 7 days. Cannot be more than 31 days or less than 10 minutes.
393
1138
  # @!attribute [rw] labels
394
1139
  # @return [::Google::Protobuf::Map{::String => ::String}]
395
- # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
396
- # managing labels</a>.
1140
+ # Optional. See [Creating and managing
1141
+ # labels](https://cloud.google.com/pubsub/docs/labels).
397
1142
  # @!attribute [rw] enable_message_ordering
398
1143
  # @return [::Boolean]
399
- # If true, messages published with the same `ordering_key` in `PubsubMessage`
400
- # will be delivered to the subscribers in the order in which they
401
- # are received by the Pub/Sub system. Otherwise, they may be delivered in
402
- # any order.
1144
+ # Optional. If true, messages published with the same `ordering_key` in
1145
+ # `PubsubMessage` will be delivered to the subscribers in the order in which
1146
+ # they are received by the Pub/Sub system. Otherwise, they may be delivered
1147
+ # in any order.
403
1148
  # @!attribute [rw] expiration_policy
404
1149
  # @return [::Google::Cloud::PubSub::V1::ExpirationPolicy]
405
- # A policy that specifies the conditions for this subscription's expiration.
406
- # A subscription is considered active as long as any connected subscriber is
407
- # successfully consuming messages from the subscription or is issuing
408
- # operations on the subscription. If `expiration_policy` is not set, a
409
- # *default policy* with `ttl` of 31 days will be used. The minimum allowed
410
- # value for `expiration_policy.ttl` is 1 day.
1150
+ # Optional. A policy that specifies the conditions for this subscription's
1151
+ # expiration. A subscription is considered active as long as any connected
1152
+ # subscriber is successfully consuming messages from the subscription or is
1153
+ # issuing operations on the subscription. If `expiration_policy` is not set,
1154
+ # a *default policy* with `ttl` of 31 days will be used. The minimum allowed
1155
+ # value for `expiration_policy.ttl` is 1 day. If `expiration_policy` is set,
1156
+ # but `expiration_policy.ttl` is not set, the subscription never expires.
411
1157
  # @!attribute [rw] filter
412
1158
  # @return [::String]
413
- # An expression written in the Pub/Sub [filter
1159
+ # Optional. An expression written in the Pub/Sub [filter
414
1160
  # language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
415
1161
  # then only `PubsubMessage`s whose `attributes` field matches the filter are
416
1162
  # delivered on this subscription. If empty, then no messages are filtered
417
1163
  # out.
418
1164
  # @!attribute [rw] dead_letter_policy
419
1165
  # @return [::Google::Cloud::PubSub::V1::DeadLetterPolicy]
420
- # A policy that specifies the conditions for dead lettering messages in
421
- # this subscription. If dead_letter_policy is not set, dead lettering
422
- # is disabled.
1166
+ # Optional. A policy that specifies the conditions for dead lettering
1167
+ # messages in this subscription. If dead_letter_policy is not set, dead
1168
+ # lettering is disabled.
423
1169
  #
424
- # The Cloud Pub/Sub service account associated with this subscriptions's
1170
+ # The Pub/Sub service account associated with this subscriptions's
425
1171
  # parent project (i.e.,
426
1172
  # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
427
1173
  # permission to Acknowledge() messages on this subscription.
428
1174
  # @!attribute [rw] retry_policy
429
1175
  # @return [::Google::Cloud::PubSub::V1::RetryPolicy]
430
- # A policy that specifies how Pub/Sub retries message delivery for this
431
- # subscription.
1176
+ # Optional. A policy that specifies how Pub/Sub retries message delivery for
1177
+ # this subscription.
432
1178
  #
433
1179
  # If not set, the default retry policy is applied. This generally implies
434
1180
  # that messages will be retried as soon as possible for healthy subscribers.
435
- # RetryPolicy will be triggered on NACKs or acknowledgement deadline
436
- # exceeded events for a given message.
1181
+ # RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
1182
+ # events for a given message.
437
1183
  # @!attribute [rw] detached
438
1184
  # @return [::Boolean]
439
- # Indicates whether the subscription is detached from its topic. Detached
440
- # subscriptions don't receive messages from their topic and don't retain any
441
- # backlog. `Pull` and `StreamingPull` requests will return
1185
+ # Optional. Indicates whether the subscription is detached from its topic.
1186
+ # Detached subscriptions don't receive messages from their topic and don't
1187
+ # retain any backlog. `Pull` and `StreamingPull` requests will return
442
1188
  # FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
443
1189
  # the endpoint will not be made.
444
1190
  # @!attribute [rw] enable_exactly_once_delivery
445
1191
  # @return [::Boolean]
446
- # If true, Pub/Sub provides the following guarantees for the delivery of
447
- # a message with a given value of `message_id` on this subscription:
1192
+ # Optional. If true, Pub/Sub provides the following guarantees for the
1193
+ # delivery of a message with a given value of `message_id` on this
1194
+ # subscription:
448
1195
  #
449
1196
  # * The message sent to a subscriber is guaranteed not to be resent
450
- # before the message's acknowledgement deadline expires.
1197
+ # before the message's acknowledgment deadline expires.
451
1198
  # * An acknowledged message will not be resent to a subscriber.
452
1199
  #
453
1200
  # Note that subscribers may still receive multiple copies of a message
@@ -464,12 +1211,37 @@ module Google
464
1211
  # in responses from the server; it is ignored if it is set in any requests.
465
1212
  # @!attribute [r] state
466
1213
  # @return [::Google::Cloud::PubSub::V1::Subscription::State]
467
- # Output only. An output-only field indicating whether or not the subscription can receive
468
- # messages.
1214
+ # Output only. An output-only field indicating whether or not the
1215
+ # subscription can receive messages.
1216
+ # @!attribute [r] analytics_hub_subscription_info
1217
+ # @return [::Google::Cloud::PubSub::V1::Subscription::AnalyticsHubSubscriptionInfo]
1218
+ # Output only. Information about the associated Analytics Hub subscription.
1219
+ # Only set if the subscritpion is created by Analytics Hub.
1220
+ # @!attribute [rw] message_transforms
1221
+ # @return [::Array<::Google::Cloud::PubSub::V1::MessageTransform>]
1222
+ # Optional. Transforms to be applied to messages before they are delivered to
1223
+ # subscribers. Transforms are applied in the order specified.
469
1224
  class Subscription
470
1225
  include ::Google::Protobuf::MessageExts
471
1226
  extend ::Google::Protobuf::MessageExts::ClassMethods
472
1227
 
1228
+ # Information about an associated [Analytics Hub
1229
+ # subscription](https://cloud.google.com/bigquery/docs/analytics-hub-manage-subscriptions).
1230
+ # @!attribute [rw] listing
1231
+ # @return [::String]
1232
+ # Optional. The name of the associated Analytics Hub listing resource.
1233
+ # Pattern:
1234
+ # "projects/\\{project}/locations/\\{location}/dataExchanges/\\{data_exchange}/listings/\\{listing}"
1235
+ # @!attribute [rw] subscription
1236
+ # @return [::String]
1237
+ # Optional. The name of the associated Analytics Hub subscription resource.
1238
+ # Pattern:
1239
+ # "projects/\\{project}/locations/\\{location}/subscriptions/\\{subscription}"
1240
+ class AnalyticsHubSubscriptionInfo
1241
+ include ::Google::Protobuf::MessageExts
1242
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1243
+ end
1244
+
473
1245
  # @!attribute [rw] key
474
1246
  # @return [::String]
475
1247
  # @!attribute [rw] value
@@ -494,12 +1266,12 @@ module Google
494
1266
  end
495
1267
  end
496
1268
 
497
- # A policy that specifies how Cloud Pub/Sub retries message delivery.
1269
+ # A policy that specifies how Pub/Sub retries message delivery.
498
1270
  #
499
1271
  # Retry delay will be exponential based on provided minimum and maximum
500
1272
  # backoffs. https://en.wikipedia.org/wiki/Exponential_backoff.
501
1273
  #
502
- # RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded
1274
+ # RetryPolicy will be triggered on NACKs or acknowledgment deadline exceeded
503
1275
  # events for a given message.
504
1276
  #
505
1277
  # Retry Policy is implemented on a best effort basis. At times, the delay
@@ -507,12 +1279,13 @@ module Google
507
1279
  # delay can be more or less than configured backoff.
508
1280
  # @!attribute [rw] minimum_backoff
509
1281
  # @return [::Google::Protobuf::Duration]
510
- # The minimum delay between consecutive deliveries of a given message.
511
- # Value should be between 0 and 600 seconds. Defaults to 10 seconds.
1282
+ # Optional. The minimum delay between consecutive deliveries of a given
1283
+ # message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
512
1284
  # @!attribute [rw] maximum_backoff
513
1285
  # @return [::Google::Protobuf::Duration]
514
- # The maximum delay between consecutive deliveries of a given message.
515
- # Value should be between 0 and 600 seconds. Defaults to 600 seconds.
1286
+ # Optional. The maximum delay between consecutive deliveries of a given
1287
+ # message. Value should be between 0 and 600 seconds. Defaults to 600
1288
+ # seconds.
516
1289
  class RetryPolicy
517
1290
  include ::Google::Protobuf::MessageExts
518
1291
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -525,22 +1298,22 @@ module Google
525
1298
  # the create/update subscription request will fail.
526
1299
  # @!attribute [rw] dead_letter_topic
527
1300
  # @return [::String]
528
- # The name of the topic to which dead letter messages should be published.
529
- # Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
530
- # account associated with the enclosing subscription's parent project (i.e.,
531
- # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
532
- # permission to Publish() to this topic.
1301
+ # Optional. The name of the topic to which dead letter messages should be
1302
+ # published. Format is `projects/{project}/topics/{topic}`.The Pub/Sub
1303
+ # service account associated with the enclosing subscription's parent project
1304
+ # (i.e., service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must
1305
+ # have permission to Publish() to this topic.
533
1306
  #
534
1307
  # The operation will fail if the topic does not exist.
535
1308
  # Users should ensure that there is a subscription attached to this topic
536
1309
  # since messages published to a topic with no subscriptions are lost.
537
1310
  # @!attribute [rw] max_delivery_attempts
538
1311
  # @return [::Integer]
539
- # The maximum number of delivery attempts for any message. The value must be
540
- # between 5 and 100.
1312
+ # Optional. The maximum number of delivery attempts for any message. The
1313
+ # value must be between 5 and 100.
541
1314
  #
542
1315
  # The number of delivery attempts is defined as 1 + (the sum of number of
543
- # NACKs and number of times the acknowledgement deadline has been exceeded
1316
+ # NACKs and number of times the acknowledgment deadline has been exceeded
544
1317
  # for the message).
545
1318
  #
546
1319
  # A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
@@ -558,12 +1331,12 @@ module Google
558
1331
  # automatic resource deletion).
559
1332
  # @!attribute [rw] ttl
560
1333
  # @return [::Google::Protobuf::Duration]
561
- # Specifies the "time-to-live" duration for an associated resource. The
562
- # resource expires if it is not active for a period of `ttl`. The definition
563
- # of "activity" depends on the type of the associated resource. The minimum
564
- # and maximum allowed values for `ttl` depend on the type of the associated
565
- # resource, as well. If `ttl` is not set, the associated resource never
566
- # expires.
1334
+ # Optional. Specifies the "time-to-live" duration for an associated resource.
1335
+ # The resource expires if it is not active for a period of `ttl`. The
1336
+ # definition of "activity" depends on the type of the associated resource.
1337
+ # The minimum and maximum allowed values for `ttl` depend on the type of the
1338
+ # associated resource, as well. If `ttl` is not set, the associated resource
1339
+ # never expires.
567
1340
  class ExpirationPolicy
568
1341
  include ::Google::Protobuf::MessageExts
569
1342
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -572,12 +1345,12 @@ module Google
572
1345
  # Configuration for a push delivery endpoint.
573
1346
  # @!attribute [rw] push_endpoint
574
1347
  # @return [::String]
575
- # A URL locating the endpoint to which messages should be pushed.
1348
+ # Optional. A URL locating the endpoint to which messages should be pushed.
576
1349
  # For example, a Webhook endpoint might use `https://example.com/push`.
577
1350
  # @!attribute [rw] attributes
578
1351
  # @return [::Google::Protobuf::Map{::String => ::String}]
579
- # Endpoint configuration attributes that can be used to control different
580
- # aspects of the message delivery.
1352
+ # Optional. Endpoint configuration attributes that can be used to control
1353
+ # different aspects of the message delivery.
581
1354
  #
582
1355
  # The only currently supported attribute is `x-goog-version`, which you can
583
1356
  # use to change the format of the pushed message. This attribute
@@ -596,11 +1369,24 @@ module Google
596
1369
  # * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
597
1370
  #
598
1371
  # For example:
599
- # <pre><code>attributes { "x-goog-version": "v1" } </code></pre>
1372
+ # `attributes { "x-goog-version": "v1" }`
600
1373
  # @!attribute [rw] oidc_token
601
1374
  # @return [::Google::Cloud::PubSub::V1::PushConfig::OidcToken]
602
- # If specified, Pub/Sub will generate and attach an OIDC JWT token as an
603
- # `Authorization` header in the HTTP request for every pushed message.
1375
+ # Optional. If specified, Pub/Sub will generate and attach an OIDC JWT
1376
+ # token as an `Authorization` header in the HTTP request for every pushed
1377
+ # message.
1378
+ # @!attribute [rw] pubsub_wrapper
1379
+ # @return [::Google::Cloud::PubSub::V1::PushConfig::PubsubWrapper]
1380
+ # Optional. When set, the payload to the push endpoint is in the form of
1381
+ # the JSON representation of a PubsubMessage
1382
+ # (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
1383
+ #
1384
+ # Note: The following fields are mutually exclusive: `pubsub_wrapper`, `no_wrapper`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1385
+ # @!attribute [rw] no_wrapper
1386
+ # @return [::Google::Cloud::PubSub::V1::PushConfig::NoWrapper]
1387
+ # Optional. When set, the payload to the push endpoint is not wrapped.
1388
+ #
1389
+ # Note: The following fields are mutually exclusive: `no_wrapper`, `pubsub_wrapper`. If a field in that set is populated, all other fields in the set will automatically be cleared.
604
1390
  class PushConfig
605
1391
  include ::Google::Protobuf::MessageExts
606
1392
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -610,24 +1396,44 @@ module Google
610
1396
  # token](https://developers.google.com/identity/protocols/OpenIDConnect).
611
1397
  # @!attribute [rw] service_account_email
612
1398
  # @return [::String]
613
- # [Service account
1399
+ # Optional. [Service account
614
1400
  # email](https://cloud.google.com/iam/docs/service-accounts)
615
- # to be used for generating the OIDC token. The caller (for
616
- # CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must
617
- # have the iam.serviceAccounts.actAs permission for the service account.
1401
+ # used for generating the OIDC token. For more information
1402
+ # on setting up authentication, see
1403
+ # [Push subscriptions](https://cloud.google.com/pubsub/docs/push).
618
1404
  # @!attribute [rw] audience
619
1405
  # @return [::String]
620
- # Audience to be used when generating OIDC token. The audience claim
621
- # identifies the recipients that the JWT is intended for. The audience
622
- # value is a single case-sensitive string. Having multiple values (array)
623
- # for the audience field is not supported. More info about the OIDC JWT
624
- # token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
625
- # Note: if not specified, the Push endpoint URL will be used.
1406
+ # Optional. Audience to be used when generating OIDC token. The audience
1407
+ # claim identifies the recipients that the JWT is intended for. The
1408
+ # audience value is a single case-sensitive string. Having multiple values
1409
+ # (array) for the audience field is not supported. More info about the OIDC
1410
+ # JWT token audience here:
1411
+ # https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified,
1412
+ # the Push endpoint URL will be used.
626
1413
  class OidcToken
627
1414
  include ::Google::Protobuf::MessageExts
628
1415
  extend ::Google::Protobuf::MessageExts::ClassMethods
629
1416
  end
630
1417
 
1418
+ # The payload to the push endpoint is in the form of the JSON representation
1419
+ # of a PubsubMessage
1420
+ # (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#pubsubmessage).
1421
+ class PubsubWrapper
1422
+ include ::Google::Protobuf::MessageExts
1423
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1424
+ end
1425
+
1426
+ # Sets the `data` field as the HTTP body for delivery.
1427
+ # @!attribute [rw] write_metadata
1428
+ # @return [::Boolean]
1429
+ # Optional. When true, writes the Pub/Sub message metadata to
1430
+ # `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
1431
+ # Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
1432
+ class NoWrapper
1433
+ include ::Google::Protobuf::MessageExts
1434
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1435
+ end
1436
+
631
1437
  # @!attribute [rw] key
632
1438
  # @return [::String]
633
1439
  # @!attribute [rw] value
@@ -641,30 +1447,44 @@ module Google
641
1447
  # Configuration for a BigQuery subscription.
642
1448
  # @!attribute [rw] table
643
1449
  # @return [::String]
644
- # The name of the table to which to write data, of the form
645
- # \\{projectId}:\\{datasetId}.\\{tableId}
1450
+ # Optional. The name of the table to which to write data, of the form
1451
+ # \\{projectId}.\\{datasetId}.\\{tableId}
646
1452
  # @!attribute [rw] use_topic_schema
647
1453
  # @return [::Boolean]
648
- # When true, use the topic's schema as the columns to write to in BigQuery,
649
- # if it exists.
1454
+ # Optional. When true, use the topic's schema as the columns to write to in
1455
+ # BigQuery, if it exists. `use_topic_schema` and `use_table_schema` cannot be
1456
+ # enabled at the same time.
650
1457
  # @!attribute [rw] write_metadata
651
1458
  # @return [::Boolean]
652
- # When true, write the subscription name, message_id, publish_time,
1459
+ # Optional. When true, write the subscription name, message_id, publish_time,
653
1460
  # attributes, and ordering_key to additional columns in the table. The
654
1461
  # subscription name, message_id, and publish_time fields are put in their own
655
1462
  # columns while all other message properties (other than data) are written to
656
1463
  # a JSON object in the attributes column.
657
1464
  # @!attribute [rw] drop_unknown_fields
658
1465
  # @return [::Boolean]
659
- # When true and use_topic_schema is true, any fields that are a part of the
660
- # topic schema that are not part of the BigQuery table schema are dropped
661
- # when writing to BigQuery. Otherwise, the schemas must be kept in sync and
662
- # any messages with extra fields are not written and remain in the
1466
+ # Optional. When true and use_topic_schema is true, any fields that are a
1467
+ # part of the topic schema that are not part of the BigQuery table schema are
1468
+ # dropped when writing to BigQuery. Otherwise, the schemas must be kept in
1469
+ # sync and any messages with extra fields are not written and remain in the
663
1470
  # subscription's backlog.
664
1471
  # @!attribute [r] state
665
1472
  # @return [::Google::Cloud::PubSub::V1::BigQueryConfig::State]
666
- # Output only. An output-only field that indicates whether or not the subscription can
667
- # receive messages.
1473
+ # Output only. An output-only field that indicates whether or not the
1474
+ # subscription can receive messages.
1475
+ # @!attribute [rw] use_table_schema
1476
+ # @return [::Boolean]
1477
+ # Optional. When true, use the BigQuery table's schema as the columns to
1478
+ # write to in BigQuery. `use_table_schema` and `use_topic_schema` cannot be
1479
+ # enabled at the same time.
1480
+ # @!attribute [rw] service_account_email
1481
+ # @return [::String]
1482
+ # Optional. The service account to use to write to BigQuery. The subscription
1483
+ # creator or updater that specifies this field must have
1484
+ # `iam.serviceAccounts.actAs` permission on the service account. If not
1485
+ # specified, the Pub/Sub [service
1486
+ # agent](https://cloud.google.com/iam/docs/service-agents),
1487
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
668
1488
  class BigQueryConfig
669
1489
  include ::Google::Protobuf::MessageExts
670
1490
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -678,6 +1498,11 @@ module Google
678
1498
  ACTIVE = 1
679
1499
 
680
1500
  # Cannot write to the BigQuery table because of permission denied errors.
1501
+ # This can happen if
1502
+ # - Pub/Sub SA has not been granted the [appropriate BigQuery IAM
1503
+ # permissions](https://cloud.google.com/pubsub/docs/create-subscription#assign_bigquery_service_account)
1504
+ # - bigquery.googleapis.com API is not enabled for the project
1505
+ # ([instructions](https://cloud.google.com/service-usage/docs/enable-disable))
681
1506
  PERMISSION_DENIED = 2
682
1507
 
683
1508
  # Cannot write to the BigQuery table because it does not exist.
@@ -685,20 +1510,139 @@ module Google
685
1510
 
686
1511
  # Cannot write to the BigQuery table due to a schema mismatch.
687
1512
  SCHEMA_MISMATCH = 4
1513
+
1514
+ # Cannot write to the destination because enforce_in_transit is set to true
1515
+ # and the destination locations are not in the allowed regions.
1516
+ IN_TRANSIT_LOCATION_RESTRICTION = 5
1517
+ end
1518
+ end
1519
+
1520
+ # Configuration for a Cloud Storage subscription.
1521
+ # @!attribute [rw] bucket
1522
+ # @return [::String]
1523
+ # Required. User-provided name for the Cloud Storage bucket.
1524
+ # The bucket must be created by the user. The bucket name must be without
1525
+ # any prefix like "gs://". See the [bucket naming
1526
+ # requirements] (https://cloud.google.com/storage/docs/buckets#naming).
1527
+ # @!attribute [rw] filename_prefix
1528
+ # @return [::String]
1529
+ # Optional. User-provided prefix for Cloud Storage filename. See the [object
1530
+ # naming requirements](https://cloud.google.com/storage/docs/objects#naming).
1531
+ # @!attribute [rw] filename_suffix
1532
+ # @return [::String]
1533
+ # Optional. User-provided suffix for Cloud Storage filename. See the [object
1534
+ # naming requirements](https://cloud.google.com/storage/docs/objects#naming).
1535
+ # Must not end in "/".
1536
+ # @!attribute [rw] filename_datetime_format
1537
+ # @return [::String]
1538
+ # Optional. User-provided format string specifying how to represent datetimes
1539
+ # in Cloud Storage filenames. See the [datetime format
1540
+ # guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).
1541
+ # @!attribute [rw] text_config
1542
+ # @return [::Google::Cloud::PubSub::V1::CloudStorageConfig::TextConfig]
1543
+ # Optional. If set, message data will be written to Cloud Storage in text
1544
+ # format.
1545
+ #
1546
+ # Note: The following fields are mutually exclusive: `text_config`, `avro_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1547
+ # @!attribute [rw] avro_config
1548
+ # @return [::Google::Cloud::PubSub::V1::CloudStorageConfig::AvroConfig]
1549
+ # Optional. If set, message data will be written to Cloud Storage in Avro
1550
+ # format.
1551
+ #
1552
+ # Note: The following fields are mutually exclusive: `avro_config`, `text_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1553
+ # @!attribute [rw] max_duration
1554
+ # @return [::Google::Protobuf::Duration]
1555
+ # Optional. The maximum duration that can elapse before a new Cloud Storage
1556
+ # file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not
1557
+ # exceed the subscription's acknowledgment deadline.
1558
+ # @!attribute [rw] max_bytes
1559
+ # @return [::Integer]
1560
+ # Optional. The maximum bytes that can be written to a Cloud Storage file
1561
+ # before a new file is created. Min 1 KB, max 10 GiB. The max_bytes limit may
1562
+ # be exceeded in cases where messages are larger than the limit.
1563
+ # @!attribute [rw] max_messages
1564
+ # @return [::Integer]
1565
+ # Optional. The maximum number of messages that can be written to a Cloud
1566
+ # Storage file before a new file is created. Min 1000 messages.
1567
+ # @!attribute [r] state
1568
+ # @return [::Google::Cloud::PubSub::V1::CloudStorageConfig::State]
1569
+ # Output only. An output-only field that indicates whether or not the
1570
+ # subscription can receive messages.
1571
+ # @!attribute [rw] service_account_email
1572
+ # @return [::String]
1573
+ # Optional. The service account to use to write to Cloud Storage. The
1574
+ # subscription creator or updater that specifies this field must have
1575
+ # `iam.serviceAccounts.actAs` permission on the service account. If not
1576
+ # specified, the Pub/Sub
1577
+ # [service agent](https://cloud.google.com/iam/docs/service-agents),
1578
+ # service-\\{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.
1579
+ class CloudStorageConfig
1580
+ include ::Google::Protobuf::MessageExts
1581
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1582
+
1583
+ # Configuration for writing message data in text format.
1584
+ # Message payloads will be written to files as raw text, separated by a
1585
+ # newline.
1586
+ class TextConfig
1587
+ include ::Google::Protobuf::MessageExts
1588
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1589
+ end
1590
+
1591
+ # Configuration for writing message data in Avro format.
1592
+ # Message payloads and metadata will be written to files as an Avro binary.
1593
+ # @!attribute [rw] write_metadata
1594
+ # @return [::Boolean]
1595
+ # Optional. When true, write the subscription name, message_id,
1596
+ # publish_time, attributes, and ordering_key as additional fields in the
1597
+ # output. The subscription name, message_id, and publish_time fields are
1598
+ # put in their own fields while all other message properties other than
1599
+ # data (for example, an ordering_key, if present) are added as entries in
1600
+ # the attributes map.
1601
+ # @!attribute [rw] use_topic_schema
1602
+ # @return [::Boolean]
1603
+ # Optional. When true, the output Cloud Storage file will be serialized
1604
+ # using the topic schema, if it exists.
1605
+ class AvroConfig
1606
+ include ::Google::Protobuf::MessageExts
1607
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1608
+ end
1609
+
1610
+ # Possible states for a Cloud Storage subscription.
1611
+ module State
1612
+ # Default value. This value is unused.
1613
+ STATE_UNSPECIFIED = 0
1614
+
1615
+ # The subscription can actively send messages to Cloud Storage.
1616
+ ACTIVE = 1
1617
+
1618
+ # Cannot write to the Cloud Storage bucket because of permission denied
1619
+ # errors.
1620
+ PERMISSION_DENIED = 2
1621
+
1622
+ # Cannot write to the Cloud Storage bucket because it does not exist.
1623
+ NOT_FOUND = 3
1624
+
1625
+ # Cannot write to the destination because enforce_in_transit is set to true
1626
+ # and the destination locations are not in the allowed regions.
1627
+ IN_TRANSIT_LOCATION_RESTRICTION = 4
1628
+
1629
+ # Cannot write to the Cloud Storage bucket due to an incompatibility
1630
+ # between the topic schema and subscription settings.
1631
+ SCHEMA_MISMATCH = 5
688
1632
  end
689
1633
  end
690
1634
 
691
1635
  # A message and its corresponding acknowledgment ID.
692
1636
  # @!attribute [rw] ack_id
693
1637
  # @return [::String]
694
- # This ID can be used to acknowledge the received message.
1638
+ # Optional. This ID can be used to acknowledge the received message.
695
1639
  # @!attribute [rw] message
696
1640
  # @return [::Google::Cloud::PubSub::V1::PubsubMessage]
697
- # The message.
1641
+ # Optional. The message.
698
1642
  # @!attribute [rw] delivery_attempt
699
1643
  # @return [::Integer]
700
- # The approximate number of times that Cloud Pub/Sub has attempted to deliver
701
- # the associated message to a subscriber.
1644
+ # Optional. The approximate number of times that Pub/Sub has attempted to
1645
+ # deliver the associated message to a subscriber.
702
1646
  #
703
1647
  # More precisely, this is 1 + (number of NACKs) +
704
1648
  # (number of ack_deadline exceeds) for this message.
@@ -748,12 +1692,12 @@ module Google
748
1692
  # Format is `projects/{project-id}`.
749
1693
  # @!attribute [rw] page_size
750
1694
  # @return [::Integer]
751
- # Maximum number of subscriptions to return.
1695
+ # Optional. Maximum number of subscriptions to return.
752
1696
  # @!attribute [rw] page_token
753
1697
  # @return [::String]
754
- # The value returned by the last `ListSubscriptionsResponse`; indicates that
755
- # this is a continuation of a prior `ListSubscriptions` call, and that the
756
- # system should return the next page of data.
1698
+ # Optional. The value returned by the last `ListSubscriptionsResponse`;
1699
+ # indicates that this is a continuation of a prior `ListSubscriptions` call,
1700
+ # and that the system should return the next page of data.
757
1701
  class ListSubscriptionsRequest
758
1702
  include ::Google::Protobuf::MessageExts
759
1703
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -762,11 +1706,11 @@ module Google
762
1706
  # Response for the `ListSubscriptions` method.
763
1707
  # @!attribute [rw] subscriptions
764
1708
  # @return [::Array<::Google::Cloud::PubSub::V1::Subscription>]
765
- # The subscriptions that match the request.
1709
+ # Optional. The subscriptions that match the request.
766
1710
  # @!attribute [rw] next_page_token
767
1711
  # @return [::String]
768
- # If not empty, indicates that there may be more subscriptions that match
769
- # the request; this value should be passed in a new
1712
+ # Optional. If not empty, indicates that there may be more subscriptions that
1713
+ # match the request; this value should be passed in a new
770
1714
  # `ListSubscriptionsRequest` to get more subscriptions.
771
1715
  class ListSubscriptionsResponse
772
1716
  include ::Google::Protobuf::MessageExts
@@ -807,6 +1751,7 @@ module Google
807
1751
  # Required. The subscription from which messages should be pulled.
808
1752
  # Format is `projects/{project}/subscriptions/{sub}`.
809
1753
  # @!attribute [rw] return_immediately
1754
+ # @deprecated This field is deprecated and may be removed in the next major version update.
810
1755
  # @return [::Boolean]
811
1756
  # Optional. If this field set to true, the system will respond immediately
812
1757
  # even if it there are no messages available to return in the `Pull`
@@ -828,8 +1773,9 @@ module Google
828
1773
  # Response for the `Pull` method.
829
1774
  # @!attribute [rw] received_messages
830
1775
  # @return [::Array<::Google::Cloud::PubSub::V1::ReceivedMessage>]
831
- # Received Pub/Sub messages. The list will be empty if there are no more
832
- # messages available in the backlog. For JSON, the response can be entirely
1776
+ # Optional. Received Pub/Sub messages. The list will be empty if there are no
1777
+ # more messages available in the backlog, or if no messages could be returned
1778
+ # before the request timeout. For JSON, the response can be entirely
833
1779
  # empty. The Pub/Sub system may return fewer than the `maxMessages` requested
834
1780
  # even if there are more messages available in the backlog.
835
1781
  class PullResponse
@@ -854,7 +1800,8 @@ module Google
854
1800
  # delivery to another subscriber client. This typically results in an
855
1801
  # increase in the rate of message redeliveries (that is, duplicates).
856
1802
  # The minimum deadline you can specify is 0 seconds.
857
- # The maximum deadline you can specify is 600 seconds (10 minutes).
1803
+ # The maximum deadline you can specify in a single request is 600 seconds
1804
+ # (10 minutes).
858
1805
  class ModifyAckDeadlineRequest
859
1806
  include ::Google::Protobuf::MessageExts
860
1807
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -876,7 +1823,7 @@ module Google
876
1823
  end
877
1824
 
878
1825
  # Request for the `StreamingPull` streaming RPC method. This request is used to
879
- # establish the initial stream as well as to stream acknowledgements and ack
1826
+ # establish the initial stream as well as to stream acknowledgments and ack
880
1827
  # deadline modifications from the client to the server.
881
1828
  # @!attribute [rw] subscription
882
1829
  # @return [::String]
@@ -886,14 +1833,14 @@ module Google
886
1833
  # Format is `projects/{project}/subscriptions/{sub}`.
887
1834
  # @!attribute [rw] ack_ids
888
1835
  # @return [::Array<::String>]
889
- # List of acknowledgement IDs for acknowledging previously received messages
890
- # (received on this stream or a different stream). If an ack ID has expired,
891
- # the corresponding message may be redelivered later. Acknowledging a message
892
- # more than once will not result in an error. If the acknowledgement ID is
893
- # malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
1836
+ # Optional. List of acknowledgment IDs for acknowledging previously received
1837
+ # messages (received on this stream or a different stream). If an ack ID has
1838
+ # expired, the corresponding message may be redelivered later. Acknowledging
1839
+ # a message more than once will not result in an error. If the acknowledgment
1840
+ # ID is malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
894
1841
  # @!attribute [rw] modify_deadline_seconds
895
1842
  # @return [::Array<::Integer>]
896
- # The list of new ack deadlines for the IDs listed in
1843
+ # Optional. The list of new ack deadlines for the IDs listed in
897
1844
  # `modify_deadline_ack_ids`. The size of this list must be the same as the
898
1845
  # size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
899
1846
  # with `INVALID_ARGUMENT`. Each element in this list is applied to the
@@ -906,9 +1853,9 @@ module Google
906
1853
  # be aborted with status `INVALID_ARGUMENT`.
907
1854
  # @!attribute [rw] modify_deadline_ack_ids
908
1855
  # @return [::Array<::String>]
909
- # List of acknowledgement IDs whose deadline will be modified based on the
910
- # corresponding element in `modify_deadline_seconds`. This field can be used
911
- # to indicate that more time is needed to process a message by the
1856
+ # Optional. List of acknowledgment IDs whose deadline will be modified based
1857
+ # on the corresponding element in `modify_deadline_seconds`. This field can
1858
+ # be used to indicate that more time is needed to process a message by the
912
1859
  # subscriber, or to make the message available for redelivery if the
913
1860
  # processing was interrupted.
914
1861
  # @!attribute [rw] stream_ack_deadline_seconds
@@ -919,16 +1866,16 @@ module Google
919
1866
  # seconds. The maximum deadline you can specify is 600 seconds (10 minutes).
920
1867
  # @!attribute [rw] client_id
921
1868
  # @return [::String]
922
- # A unique identifier that is used to distinguish client instances from each
923
- # other. Only needs to be provided on the initial request. When a stream
924
- # disconnects and reconnects for the same stream, the client_id should be set
925
- # to the same value so that state associated with the old stream can be
926
- # transferred to the new stream. The same client_id should not be used for
1869
+ # Optional. A unique identifier that is used to distinguish client instances
1870
+ # from each other. Only needs to be provided on the initial request. When a
1871
+ # stream disconnects and reconnects for the same stream, the client_id should
1872
+ # be set to the same value so that state associated with the old stream can
1873
+ # be transferred to the new stream. The same client_id should not be used for
927
1874
  # different client instances.
928
1875
  # @!attribute [rw] max_outstanding_messages
929
1876
  # @return [::Integer]
930
- # Flow control settings for the maximum number of outstanding messages. When
931
- # there are `max_outstanding_messages` or more currently sent to the
1877
+ # Optional. Flow control settings for the maximum number of outstanding
1878
+ # messages. When there are `max_outstanding_messages` currently sent to the
932
1879
  # streaming pull client that have not yet been acked or nacked, the server
933
1880
  # stops sending more messages. The sending of messages resumes once the
934
1881
  # number of outstanding messages is less than this value. If the value is
@@ -938,14 +1885,14 @@ module Google
938
1885
  # `INVALID_ARGUMENT`.
939
1886
  # @!attribute [rw] max_outstanding_bytes
940
1887
  # @return [::Integer]
941
- # Flow control settings for the maximum number of outstanding bytes. When
942
- # there are `max_outstanding_bytes` or more worth of messages currently sent
943
- # to the streaming pull client that have not yet been acked or nacked, the
944
- # server will stop sending more messages. The sending of messages resumes
945
- # once the number of outstanding bytes is less than this value. If the value
946
- # is <= 0, there is no limit to the number of outstanding bytes. This
947
- # property can only be set on the initial StreamingPullRequest. If it is set
948
- # on a subsequent request, the stream will be aborted with status
1888
+ # Optional. Flow control settings for the maximum number of outstanding
1889
+ # bytes. When there are `max_outstanding_bytes` or more worth of messages
1890
+ # currently sent to the streaming pull client that have not yet been acked or
1891
+ # nacked, the server will stop sending more messages. The sending of messages
1892
+ # resumes once the number of outstanding bytes is less than this value. If
1893
+ # the value is <= 0, there is no limit to the number of outstanding bytes.
1894
+ # This property can only be set on the initial StreamingPullRequest. If it is
1895
+ # set on a subsequent request, the stream will be aborted with status
949
1896
  # `INVALID_ARGUMENT`.
950
1897
  class StreamingPullRequest
951
1898
  include ::Google::Protobuf::MessageExts
@@ -956,48 +1903,56 @@ module Google
956
1903
  # messages from the server to the client.
957
1904
  # @!attribute [rw] received_messages
958
1905
  # @return [::Array<::Google::Cloud::PubSub::V1::ReceivedMessage>]
959
- # Received Pub/Sub messages. This will not be empty.
1906
+ # Optional. Received Pub/Sub messages. This will not be empty.
960
1907
  # @!attribute [rw] acknowledge_confirmation
961
1908
  # @return [::Google::Cloud::PubSub::V1::StreamingPullResponse::AcknowledgeConfirmation]
962
- # This field will only be set if `enable_exactly_once_delivery` is set to
963
- # `true`.
1909
+ # Optional. This field will only be set if `enable_exactly_once_delivery` is
1910
+ # set to `true` and is not guaranteed to be populated.
964
1911
  # @!attribute [rw] modify_ack_deadline_confirmation
965
1912
  # @return [::Google::Cloud::PubSub::V1::StreamingPullResponse::ModifyAckDeadlineConfirmation]
966
- # This field will only be set if `enable_exactly_once_delivery` is set to
967
- # `true`.
1913
+ # Optional. This field will only be set if `enable_exactly_once_delivery` is
1914
+ # set to `true` and is not guaranteed to be populated.
968
1915
  # @!attribute [rw] subscription_properties
969
1916
  # @return [::Google::Cloud::PubSub::V1::StreamingPullResponse::SubscriptionProperties]
970
- # Properties associated with this subscription.
1917
+ # Optional. Properties associated with this subscription.
971
1918
  class StreamingPullResponse
972
1919
  include ::Google::Protobuf::MessageExts
973
1920
  extend ::Google::Protobuf::MessageExts::ClassMethods
974
1921
 
975
- # Acknowledgement IDs sent in one or more previous requests to acknowledge a
1922
+ # Acknowledgment IDs sent in one or more previous requests to acknowledge a
976
1923
  # previously received message.
977
1924
  # @!attribute [rw] ack_ids
978
1925
  # @return [::Array<::String>]
979
- # Successfully processed acknowledgement IDs.
1926
+ # Optional. Successfully processed acknowledgment IDs.
980
1927
  # @!attribute [rw] invalid_ack_ids
981
1928
  # @return [::Array<::String>]
982
- # List of acknowledgement IDs that were malformed or whose acknowledgement
983
- # deadline has expired.
1929
+ # Optional. List of acknowledgment IDs that were malformed or whose
1930
+ # acknowledgment deadline has expired.
984
1931
  # @!attribute [rw] unordered_ack_ids
985
1932
  # @return [::Array<::String>]
986
- # List of acknowledgement IDs that were out of order.
1933
+ # Optional. List of acknowledgment IDs that were out of order.
1934
+ # @!attribute [rw] temporary_failed_ack_ids
1935
+ # @return [::Array<::String>]
1936
+ # Optional. List of acknowledgment IDs that failed processing with
1937
+ # temporary issues.
987
1938
  class AcknowledgeConfirmation
988
1939
  include ::Google::Protobuf::MessageExts
989
1940
  extend ::Google::Protobuf::MessageExts::ClassMethods
990
1941
  end
991
1942
 
992
- # Acknowledgement IDs sent in one or more previous requests to modify the
1943
+ # Acknowledgment IDs sent in one or more previous requests to modify the
993
1944
  # deadline for a specific message.
994
1945
  # @!attribute [rw] ack_ids
995
1946
  # @return [::Array<::String>]
996
- # Successfully processed acknowledgement IDs.
1947
+ # Optional. Successfully processed acknowledgment IDs.
997
1948
  # @!attribute [rw] invalid_ack_ids
998
1949
  # @return [::Array<::String>]
999
- # List of acknowledgement IDs that were malformed or whose acknowledgement
1000
- # deadline has expired.
1950
+ # Optional. List of acknowledgment IDs that were malformed or whose
1951
+ # acknowledgment deadline has expired.
1952
+ # @!attribute [rw] temporary_failed_ack_ids
1953
+ # @return [::Array<::String>]
1954
+ # Optional. List of acknowledgment IDs that failed processing with
1955
+ # temporary issues.
1001
1956
  class ModifyAckDeadlineConfirmation
1002
1957
  include ::Google::Protobuf::MessageExts
1003
1958
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1006,10 +1961,11 @@ module Google
1006
1961
  # Subscription properties sent as part of the response.
1007
1962
  # @!attribute [rw] exactly_once_delivery_enabled
1008
1963
  # @return [::Boolean]
1009
- # True iff exactly once delivery is enabled for this subscription.
1964
+ # Optional. True iff exactly once delivery is enabled for this
1965
+ # subscription.
1010
1966
  # @!attribute [rw] message_ordering_enabled
1011
1967
  # @return [::Boolean]
1012
- # True iff message ordering is enabled for this subscription.
1968
+ # Optional. True iff message ordering is enabled for this subscription.
1013
1969
  class SubscriptionProperties
1014
1970
  include ::Google::Protobuf::MessageExts
1015
1971
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1022,9 +1978,9 @@ module Google
1022
1978
  # Required. User-provided name for this snapshot. If the name is not provided
1023
1979
  # in the request, the server will assign a random name for this snapshot on
1024
1980
  # the same project as the subscription. Note that for REST API requests, you
1025
- # must specify a name. See the <a
1026
- # href="https://cloud.google.com/pubsub/docs/admin#resource_names"> resource
1027
- # name rules</a>. Format is `projects/{project}/snapshots/{snap}`.
1981
+ # must specify a name. See the [resource name
1982
+ # rules](https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
1983
+ # Format is `projects/{project}/snapshots/{snap}`.
1028
1984
  # @!attribute [rw] subscription
1029
1985
  # @return [::String]
1030
1986
  # Required. The subscription whose backlog the snapshot retains.
@@ -1038,8 +1994,8 @@ module Google
1038
1994
  # Format is `projects/{project}/subscriptions/{sub}`.
1039
1995
  # @!attribute [rw] labels
1040
1996
  # @return [::Google::Protobuf::Map{::String => ::String}]
1041
- # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
1042
- # managing labels</a>.
1997
+ # Optional. See [Creating and managing
1998
+ # labels](https://cloud.google.com/pubsub/docs/labels).
1043
1999
  class CreateSnapshotRequest
1044
2000
  include ::Google::Protobuf::MessageExts
1045
2001
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1074,13 +2030,14 @@ module Google
1074
2030
  # subscription to the state captured by a snapshot.
1075
2031
  # @!attribute [rw] name
1076
2032
  # @return [::String]
1077
- # The name of the snapshot.
2033
+ # Optional. The name of the snapshot.
1078
2034
  # @!attribute [rw] topic
1079
2035
  # @return [::String]
1080
- # The name of the topic from which this snapshot is retaining messages.
2036
+ # Optional. The name of the topic from which this snapshot is retaining
2037
+ # messages.
1081
2038
  # @!attribute [rw] expire_time
1082
2039
  # @return [::Google::Protobuf::Timestamp]
1083
- # The snapshot is guaranteed to exist up until this time.
2040
+ # Optional. The snapshot is guaranteed to exist up until this time.
1084
2041
  # A newly-created snapshot expires no later than 7 days from the time of its
1085
2042
  # creation. Its exact lifetime is determined at creation by the existing
1086
2043
  # backlog in the source subscription. Specifically, the lifetime of the
@@ -1092,7 +2049,7 @@ module Google
1092
2049
  # snapshot that would expire in less than 1 hour after creation.
1093
2050
  # @!attribute [rw] labels
1094
2051
  # @return [::Google::Protobuf::Map{::String => ::String}]
1095
- # See [Creating and managing labels]
2052
+ # Optional. See [Creating and managing labels]
1096
2053
  # (https://cloud.google.com/pubsub/docs/labels).
1097
2054
  class Snapshot
1098
2055
  include ::Google::Protobuf::MessageExts
@@ -1125,12 +2082,12 @@ module Google
1125
2082
  # Format is `projects/{project-id}`.
1126
2083
  # @!attribute [rw] page_size
1127
2084
  # @return [::Integer]
1128
- # Maximum number of snapshots to return.
2085
+ # Optional. Maximum number of snapshots to return.
1129
2086
  # @!attribute [rw] page_token
1130
2087
  # @return [::String]
1131
- # The value returned by the last `ListSnapshotsResponse`; indicates that this
1132
- # is a continuation of a prior `ListSnapshots` call, and that the system
1133
- # should return the next page of data.
2088
+ # Optional. The value returned by the last `ListSnapshotsResponse`; indicates
2089
+ # that this is a continuation of a prior `ListSnapshots` call, and that the
2090
+ # system should return the next page of data.
1134
2091
  class ListSnapshotsRequest
1135
2092
  include ::Google::Protobuf::MessageExts
1136
2093
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1139,11 +2096,12 @@ module Google
1139
2096
  # Response for the `ListSnapshots` method.
1140
2097
  # @!attribute [rw] snapshots
1141
2098
  # @return [::Array<::Google::Cloud::PubSub::V1::Snapshot>]
1142
- # The resulting snapshots.
2099
+ # Optional. The resulting snapshots.
1143
2100
  # @!attribute [rw] next_page_token
1144
2101
  # @return [::String]
1145
- # If not empty, indicates that there may be more snapshot that match the
1146
- # request; this value should be passed in a new `ListSnapshotsRequest`.
2102
+ # Optional. If not empty, indicates that there may be more snapshot that
2103
+ # match the request; this value should be passed in a new
2104
+ # `ListSnapshotsRequest`.
1147
2105
  class ListSnapshotsResponse
1148
2106
  include ::Google::Protobuf::MessageExts
1149
2107
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1165,7 +2123,7 @@ module Google
1165
2123
  # Required. The subscription to affect.
1166
2124
  # @!attribute [rw] time
1167
2125
  # @return [::Google::Protobuf::Timestamp]
1168
- # The time to seek to.
2126
+ # Optional. The time to seek to.
1169
2127
  # Messages retained in the subscription that were published before this
1170
2128
  # time are marked as acknowledged, and messages retained in the
1171
2129
  # subscription that were published after this time are marked as
@@ -1176,11 +2134,15 @@ module Google
1176
2134
  # window (or to a point before the system's notion of the subscription
1177
2135
  # creation time), only retained messages will be marked as unacknowledged,
1178
2136
  # and already-expunged messages will not be restored.
2137
+ #
2138
+ # Note: The following fields are mutually exclusive: `time`, `snapshot`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1179
2139
  # @!attribute [rw] snapshot
1180
2140
  # @return [::String]
1181
- # The snapshot to seek to. The snapshot's topic must be the same as that of
1182
- # the provided subscription.
1183
- # Format is `projects/{project}/snapshots/{snap}`.
2141
+ # Optional. The snapshot to seek to. The snapshot's topic must be the same
2142
+ # as that of the provided subscription. Format is
2143
+ # `projects/{project}/snapshots/{snap}`.
2144
+ #
2145
+ # Note: The following fields are mutually exclusive: `snapshot`, `time`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1184
2146
  class SeekRequest
1185
2147
  include ::Google::Protobuf::MessageExts
1186
2148
  extend ::Google::Protobuf::MessageExts::ClassMethods