@google-cloud/pubsub 4.8.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,30 @@
4
4
 
5
5
  [1]: https://www.npmjs.com/package/@google-cloud/pubsub?activeTab=versions
6
6
 
7
+ ## [4.10.0](https://github.com/googleapis/nodejs-pubsub/compare/v4.9.0...v4.10.0) (2025-01-13)
8
+
9
+
10
+ ### Features
11
+
12
+ * Add Kafka-based sources to IngestionDataSourceSettings proto and IngestionFailureEvent proto ([#2007](https://github.com/googleapis/nodejs-pubsub/issues/2007)) ([08d00a1](https://github.com/googleapis/nodejs-pubsub/commit/08d00a1e7d30e2ab47f7582ff61b1eb73ad9d25e))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **deps:** Update dependency @opentelemetry/semantic-conventions to ~1.28.0 ([#2001](https://github.com/googleapis/nodejs-pubsub/issues/2001)) ([c8e5811](https://github.com/googleapis/nodejs-pubsub/commit/c8e581124523edcac13d6d6c48d67342482959f3))
18
+
19
+ ## [4.9.0](https://github.com/googleapis/nodejs-pubsub/compare/v4.8.0...v4.9.0) (2024-11-12)
20
+
21
+
22
+ ### Features
23
+
24
+ * Add IngestionFailureEvent to the external proto ([#1984](https://github.com/googleapis/nodejs-pubsub/issues/1984)) ([7075430](https://github.com/googleapis/nodejs-pubsub/commit/70754309fb600c54d0a573f2d49ad4c419577550))
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * KiB, not MiB for ack size limits ([#1999](https://github.com/googleapis/nodejs-pubsub/issues/1999)) ([798270d](https://github.com/googleapis/nodejs-pubsub/commit/798270db9c5ef71f75c3e24e70d9592bbd068212))
30
+
7
31
  ## [4.8.0](https://github.com/googleapis/nodejs-pubsub/compare/v4.7.2...v4.8.0) (2024-10-15)
8
32
 
9
33
 
@@ -323,6 +323,164 @@ message IngestionDataSourceSettings {
323
323
  string match_glob = 9 [(google.api.field_behavior) = OPTIONAL];
324
324
  }
325
325
 
326
+ // Ingestion settings for Azure Event Hubs.
327
+ message AzureEventHubs {
328
+ // Possible states for managed ingestion from Event Hubs.
329
+ enum State {
330
+ // Default value. This value is unused.
331
+ STATE_UNSPECIFIED = 0;
332
+
333
+ // Ingestion is active.
334
+ ACTIVE = 1;
335
+
336
+ // Permission denied encountered while consuming data from Event Hubs.
337
+ // This can happen when `client_id`, or `tenant_id` are invalid. Or the
338
+ // right permissions haven't been granted.
339
+ EVENT_HUBS_PERMISSION_DENIED = 2;
340
+
341
+ // Permission denied encountered while publishing to the topic.
342
+ PUBLISH_PERMISSION_DENIED = 3;
343
+
344
+ // The provided Event Hubs namespace couldn't be found.
345
+ NAMESPACE_NOT_FOUND = 4;
346
+
347
+ // The provided Event Hub couldn't be found.
348
+ EVENT_HUB_NOT_FOUND = 5;
349
+
350
+ // The provided Event Hubs subscription couldn't be found.
351
+ SUBSCRIPTION_NOT_FOUND = 6;
352
+
353
+ // The provided Event Hubs resource group couldn't be found.
354
+ RESOURCE_GROUP_NOT_FOUND = 7;
355
+ }
356
+
357
+ // Output only. An output-only field that indicates the state of the Event
358
+ // Hubs ingestion source.
359
+ State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
360
+
361
+ // Optional. Name of the resource group within the azure subscription.
362
+ string resource_group = 2 [(google.api.field_behavior) = OPTIONAL];
363
+
364
+ // Optional. The name of the Event Hubs namespace.
365
+ string namespace = 3 [(google.api.field_behavior) = OPTIONAL];
366
+
367
+ // Optional. The name of the Event Hub.
368
+ string event_hub = 4 [(google.api.field_behavior) = OPTIONAL];
369
+
370
+ // Optional. The client id of the Azure application that is being used to
371
+ // authenticate Pub/Sub.
372
+ string client_id = 5 [(google.api.field_behavior) = OPTIONAL];
373
+
374
+ // Optional. The tenant id of the Azure application that is being used to
375
+ // authenticate Pub/Sub.
376
+ string tenant_id = 6 [(google.api.field_behavior) = OPTIONAL];
377
+
378
+ // Optional. The Azure subscription id.
379
+ string subscription_id = 7 [(google.api.field_behavior) = OPTIONAL];
380
+
381
+ // Optional. The GCP service account to be used for Federated Identity
382
+ // authentication.
383
+ string gcp_service_account = 8 [(google.api.field_behavior) = OPTIONAL];
384
+ }
385
+
386
+ // Ingestion settings for Amazon MSK.
387
+ message AwsMsk {
388
+ // Possible states for managed ingestion from Amazon MSK.
389
+ enum State {
390
+ // Default value. This value is unused.
391
+ STATE_UNSPECIFIED = 0;
392
+
393
+ // Ingestion is active.
394
+ ACTIVE = 1;
395
+
396
+ // Permission denied encountered while consuming data from Amazon MSK.
397
+ MSK_PERMISSION_DENIED = 2;
398
+
399
+ // Permission denied encountered while publishing to the topic.
400
+ PUBLISH_PERMISSION_DENIED = 3;
401
+
402
+ // The provided MSK cluster wasn't found.
403
+ CLUSTER_NOT_FOUND = 4;
404
+
405
+ // The provided topic wasn't found.
406
+ TOPIC_NOT_FOUND = 5;
407
+ }
408
+
409
+ // Output only. An output-only field that indicates the state of the Amazon
410
+ // MSK ingestion source.
411
+ State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
412
+
413
+ // Required. The Amazon Resource Name (ARN) that uniquely identifies the
414
+ // cluster.
415
+ string cluster_arn = 2 [(google.api.field_behavior) = REQUIRED];
416
+
417
+ // Required. The name of the topic in the Amazon MSK cluster that Pub/Sub
418
+ // will import from.
419
+ string topic = 3 [(google.api.field_behavior) = REQUIRED];
420
+
421
+ // Required. AWS role ARN to be used for Federated Identity authentication
422
+ // with Amazon MSK. Check the Pub/Sub docs for how to set up this role and
423
+ // the required permissions that need to be attached to it.
424
+ string aws_role_arn = 4 [(google.api.field_behavior) = REQUIRED];
425
+
426
+ // Required. The GCP service account to be used for Federated Identity
427
+ // authentication with Amazon MSK (via a `AssumeRoleWithWebIdentity` call
428
+ // for the provided role). The `aws_role_arn` must be set up with
429
+ // `accounts.google.com:sub` equals to this service account number.
430
+ string gcp_service_account = 5 [(google.api.field_behavior) = REQUIRED];
431
+ }
432
+
433
+ // Ingestion settings for Confluent Cloud.
434
+ message ConfluentCloud {
435
+ // Possible states for managed ingestion from Confluent Cloud.
436
+ enum State {
437
+ // Default value. This value is unused.
438
+ STATE_UNSPECIFIED = 0;
439
+
440
+ // Ingestion is active.
441
+ ACTIVE = 1;
442
+
443
+ // Permission denied encountered while consuming data from Confluent
444
+ // Cloud.
445
+ CONFLUENT_CLOUD_PERMISSION_DENIED = 2;
446
+
447
+ // Permission denied encountered while publishing to the topic.
448
+ PUBLISH_PERMISSION_DENIED = 3;
449
+
450
+ // The provided bootstrap server address is unreachable.
451
+ UNREACHABLE_BOOTSTRAP_SERVER = 4;
452
+
453
+ // The provided cluster wasn't found.
454
+ CLUSTER_NOT_FOUND = 5;
455
+
456
+ // The provided topic wasn't found.
457
+ TOPIC_NOT_FOUND = 6;
458
+ }
459
+
460
+ // Output only. An output-only field that indicates the state of the
461
+ // Confluent Cloud ingestion source.
462
+ State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
463
+
464
+ // Required. The address of the bootstrap server. The format is url:port.
465
+ string bootstrap_server = 2 [(google.api.field_behavior) = REQUIRED];
466
+
467
+ // Required. The id of the cluster.
468
+ string cluster_id = 3 [(google.api.field_behavior) = REQUIRED];
469
+
470
+ // Required. The name of the topic in the Confluent Cloud cluster that
471
+ // Pub/Sub will import from.
472
+ string topic = 4 [(google.api.field_behavior) = REQUIRED];
473
+
474
+ // Required. The id of the identity pool to be used for Federated Identity
475
+ // authentication with Confluent Cloud. See
476
+ // https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/oauth/identity-pools.html#add-oauth-identity-pools.
477
+ string identity_pool_id = 5 [(google.api.field_behavior) = REQUIRED];
478
+
479
+ // Required. The GCP service account to be used for Federated Identity
480
+ // authentication with `identity_pool_id`.
481
+ string gcp_service_account = 6 [(google.api.field_behavior) = REQUIRED];
482
+ }
483
+
326
484
  // Only one source type can have settings set.
327
485
  oneof source {
328
486
  // Optional. Amazon Kinesis Data Streams.
@@ -330,6 +488,16 @@ message IngestionDataSourceSettings {
330
488
 
331
489
  // Optional. Cloud Storage.
332
490
  CloudStorage cloud_storage = 2 [(google.api.field_behavior) = OPTIONAL];
491
+
492
+ // Optional. Azure Event Hubs.
493
+ AzureEventHubs azure_event_hubs = 3
494
+ [(google.api.field_behavior) = OPTIONAL];
495
+
496
+ // Optional. Amazon MSK.
497
+ AwsMsk aws_msk = 5 [(google.api.field_behavior) = OPTIONAL];
498
+
499
+ // Optional. Confluent Cloud.
500
+ ConfluentCloud confluent_cloud = 6 [(google.api.field_behavior) = OPTIONAL];
333
501
  }
334
502
 
335
503
  // Optional. Platform Logs settings. If unset, no Platform Logs will be
@@ -365,6 +533,147 @@ message PlatformLogsSettings {
365
533
  Severity severity = 1 [(google.api.field_behavior) = OPTIONAL];
366
534
  }
367
535
 
536
+ // Payload of the Platform Log entry sent when a failure is encountered while
537
+ // ingesting.
538
+ message IngestionFailureEvent {
539
+ // Specifies the reason why some data may have been left out of
540
+ // the desired Pub/Sub message due to the API message limits
541
+ // (https://cloud.google.com/pubsub/quotas#resource_limits). For example,
542
+ // when the number of attributes is larger than 100, the number of
543
+ // attributes is truncated to 100 to respect the limit on the attribute count.
544
+ // Other attribute limits are treated similarly. When the size of the desired
545
+ // message would've been larger than 10MB, the message won't be published at
546
+ // all, and ingestion of the subsequent messages will proceed as normal.
547
+ message ApiViolationReason {}
548
+
549
+ // Set when an Avro file is unsupported or its format is not valid. When this
550
+ // occurs, one or more Avro objects won't be ingested.
551
+ message AvroFailureReason {}
552
+
553
+ // Failure when ingesting from a Cloud Storage source.
554
+ message CloudStorageFailure {
555
+ // Optional. Name of the Cloud Storage bucket used for ingestion.
556
+ string bucket = 1 [(google.api.field_behavior) = OPTIONAL];
557
+
558
+ // Optional. Name of the Cloud Storage object which contained the section
559
+ // that couldn't be ingested.
560
+ string object_name = 2 [(google.api.field_behavior) = OPTIONAL];
561
+
562
+ // Optional. Generation of the Cloud Storage object which contained the
563
+ // section that couldn't be ingested.
564
+ int64 object_generation = 3 [(google.api.field_behavior) = OPTIONAL];
565
+
566
+ // Reason why ingestion failed for the specified object.
567
+ oneof reason {
568
+ // Optional. Failure encountered when parsing an Avro file.
569
+ AvroFailureReason avro_failure_reason = 5
570
+ [(google.api.field_behavior) = OPTIONAL];
571
+
572
+ // Optional. The Pub/Sub API limits prevented the desired message from
573
+ // being published.
574
+ ApiViolationReason api_violation_reason = 6
575
+ [(google.api.field_behavior) = OPTIONAL];
576
+ }
577
+ }
578
+
579
+ // Failure when ingesting from an Amazon MSK source.
580
+ message AwsMskFailureReason {
581
+ // Optional. The ARN of the cluster of the topic being ingested from.
582
+ string cluster_arn = 1 [(google.api.field_behavior) = OPTIONAL];
583
+
584
+ // Optional. The name of the Kafka topic being ingested from.
585
+ string kafka_topic = 2 [(google.api.field_behavior) = OPTIONAL];
586
+
587
+ // Optional. The partition ID of the message that failed to be ingested.
588
+ int64 partition_id = 3 [(google.api.field_behavior) = OPTIONAL];
589
+
590
+ // Optional. The offset within the partition of the message that failed to
591
+ // be ingested.
592
+ int64 offset = 4 [(google.api.field_behavior) = OPTIONAL];
593
+
594
+ // Reason why ingestion failed for the specified message.
595
+ oneof reason {
596
+ // Optional. The Pub/Sub API limits prevented the desired message from
597
+ // being published.
598
+ ApiViolationReason api_violation_reason = 5
599
+ [(google.api.field_behavior) = OPTIONAL];
600
+ }
601
+ }
602
+
603
+ // Failure when ingesting from an Azure Event Hubs source.
604
+ message AzureEventHubsFailureReason {
605
+ // Optional. The namespace containing the event hub being ingested from.
606
+ string namespace = 1 [(google.api.field_behavior) = OPTIONAL];
607
+
608
+ // Optional. The name of the event hub being ingested from.
609
+ string event_hub = 2 [(google.api.field_behavior) = OPTIONAL];
610
+
611
+ // Optional. The partition ID of the message that failed to be ingested.
612
+ int64 partition_id = 3 [(google.api.field_behavior) = OPTIONAL];
613
+
614
+ // Optional. The offset within the partition of the message that failed to
615
+ // be ingested.
616
+ int64 offset = 4 [(google.api.field_behavior) = OPTIONAL];
617
+
618
+ // Reason why ingestion failed for the specified message.
619
+ oneof reason {
620
+ // Optional. The Pub/Sub API limits prevented the desired message from
621
+ // being published.
622
+ ApiViolationReason api_violation_reason = 5
623
+ [(google.api.field_behavior) = OPTIONAL];
624
+ }
625
+ }
626
+
627
+ // Failure when ingesting from a Confluent Cloud source.
628
+ message ConfluentCloudFailureReason {
629
+ // Optional. The cluster ID containing the topic being ingested from.
630
+ string cluster_id = 1 [(google.api.field_behavior) = OPTIONAL];
631
+
632
+ // Optional. The name of the Kafka topic being ingested from.
633
+ string kafka_topic = 2 [(google.api.field_behavior) = OPTIONAL];
634
+
635
+ // Optional. The partition ID of the message that failed to be ingested.
636
+ int64 partition_id = 3 [(google.api.field_behavior) = OPTIONAL];
637
+
638
+ // Optional. The offset within the partition of the message that failed to
639
+ // be ingested.
640
+ int64 offset = 4 [(google.api.field_behavior) = OPTIONAL];
641
+
642
+ // Reason why ingestion failed for the specified message.
643
+ oneof reason {
644
+ // Optional. The Pub/Sub API limits prevented the desired message from
645
+ // being published.
646
+ ApiViolationReason api_violation_reason = 5
647
+ [(google.api.field_behavior) = OPTIONAL];
648
+ }
649
+ }
650
+
651
+ // Required. Name of the import topic. Format is:
652
+ // projects/{project_name}/topics/{topic_name}.
653
+ string topic = 1 [(google.api.field_behavior) = REQUIRED];
654
+
655
+ // Required. Error details explaining why ingestion to Pub/Sub has failed.
656
+ string error_message = 2 [(google.api.field_behavior) = REQUIRED];
657
+
658
+ oneof failure {
659
+ // Optional. Failure when ingesting from Cloud Storage.
660
+ CloudStorageFailure cloud_storage_failure = 3
661
+ [(google.api.field_behavior) = OPTIONAL];
662
+
663
+ // Optional. Failure when ingesting from Amazon MSK.
664
+ AwsMskFailureReason aws_msk_failure = 4
665
+ [(google.api.field_behavior) = OPTIONAL];
666
+
667
+ // Optional. Failure when ingesting from Azure Event Hubs.
668
+ AzureEventHubsFailureReason azure_event_hubs_failure = 5
669
+ [(google.api.field_behavior) = OPTIONAL];
670
+
671
+ // Optional. Failure when ingesting from Confluent Cloud.
672
+ ConfluentCloudFailureReason confluent_cloud_failure = 6
673
+ [(google.api.field_behavior) = OPTIONAL];
674
+ }
675
+ }
676
+
368
677
  // A topic resource.
369
678
  message Topic {
370
679
  option (google.api.resource) = {