@@ -365,6 +365,63 @@ message PlatformLogsSettings {
365
365
Severity severity = 1 [(google.api.field_behavior ) = OPTIONAL ];
366
366
}
367
367
368
+ // Payload of the Platform Log entry sent when a failure is encountered while
369
+ // ingesting.
370
+ message IngestionFailureEvent {
371
+ // Specifies the reason why some data may have been left out of
372
+ // the desired Pub/Sub message due to the API message limits
373
+ // (https://cloud.google.com/pubsub/quotas#resource_limits). For example,
374
+ // when the number of attributes is larger than 100, the number of
375
+ // attributes is truncated to 100 to respect the limit on the attribute count.
376
+ // Other attribute limits are treated similarly. When the size of the desired
377
+ // message would've been larger than 10MB, the message won't be published at
378
+ // all, and ingestion of the subsequent messages will proceed as normal.
379
+ message ApiViolationReason {}
380
+
381
+ // Set when an Avro file is unsupported or its format is not valid. When this
382
+ // occurs, one or more Avro objects won't be ingested.
383
+ message AvroFailureReason {}
384
+
385
+ // Failure when ingesting from a Cloud Storage source.
386
+ message CloudStorageFailure {
387
+ // Optional. Name of the Cloud Storage bucket used for ingestion.
388
+ string bucket = 1 [(google.api.field_behavior ) = OPTIONAL ];
389
+
390
+ // Optional. Name of the Cloud Storage object which contained the section
391
+ // that couldn't be ingested.
392
+ string object_name = 2 [(google.api.field_behavior ) = OPTIONAL ];
393
+
394
+ // Optional. Generation of the Cloud Storage object which contained the
395
+ // section that couldn't be ingested.
396
+ int64 object_generation = 3 [(google.api.field_behavior ) = OPTIONAL ];
397
+
398
+ // Reason why ingestion failed for the specified object.
399
+ oneof reason {
400
+ // Optional. Failure encountered when parsing an Avro file.
401
+ AvroFailureReason avro_failure_reason = 5
402
+ [(google.api.field_behavior ) = OPTIONAL ];
403
+
404
+ // Optional. The Pub/Sub API limits prevented the desired message from
405
+ // being published.
406
+ ApiViolationReason api_violation_reason = 6
407
+ [(google.api.field_behavior ) = OPTIONAL ];
408
+ }
409
+ }
410
+
411
+ // Required. Name of the import topic. Format is:
412
+ // projects/{project_name}/topics/{topic_name}.
413
+ string topic = 1 [(google.api.field_behavior ) = REQUIRED ];
414
+
415
+ // Required. Error details explaining why ingestion to Pub/Sub has failed.
416
+ string error_message = 2 [(google.api.field_behavior ) = REQUIRED ];
417
+
418
+ oneof failure {
419
+ // Optional. Failure when ingesting from Cloud Storage.
420
+ CloudStorageFailure cloud_storage_failure = 3
421
+ [(google.api.field_behavior ) = OPTIONAL ];
422
+ }
423
+ }
424
+
368
425
// A topic resource.
369
426
message Topic {
370
427
option (google.api.resource ) = {
0 commit comments