@google-cloud/dlp 5.0.1 → 5.1.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.
@@ -1,4 +1,4 @@
1
- // Copyright 2022 Google LLC
1
+ // Copyright 2023 Google LLC
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -58,7 +58,8 @@ option (google.api.resource_definition) = {
58
58
  // https://cloud.google.com/dlp/docs/.
59
59
  service DlpService {
60
60
  option (google.api.default_host) = "dlp.googleapis.com";
61
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
61
+ option (google.api.oauth_scopes) =
62
+ "https://www.googleapis.com/auth/cloud-platform";
62
63
 
63
64
  // Finds potentially sensitive info in content.
64
65
  // This method has limits on input size, processing time, and output size.
@@ -107,7 +108,8 @@ service DlpService {
107
108
  // When no InfoTypes or CustomInfoTypes are specified in this request, the
108
109
  // system will automatically choose what detectors to run. By default this may
109
110
  // be all types, but may change over time as detectors are updated.
110
- rpc DeidentifyContent(DeidentifyContentRequest) returns (DeidentifyContentResponse) {
111
+ rpc DeidentifyContent(DeidentifyContentRequest)
112
+ returns (DeidentifyContentResponse) {
111
113
  option (google.api.http) = {
112
114
  post: "/v2/{parent=projects/*}/content:deidentify"
113
115
  body: "*"
@@ -122,7 +124,8 @@ service DlpService {
122
124
  // See
123
125
  // https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example
124
126
  // to learn more.
125
- rpc ReidentifyContent(ReidentifyContentRequest) returns (ReidentifyContentResponse) {
127
+ rpc ReidentifyContent(ReidentifyContentRequest)
128
+ returns (ReidentifyContentResponse) {
126
129
  option (google.api.http) = {
127
130
  post: "/v2/{parent=projects/*}/content:reidentify"
128
131
  body: "*"
@@ -139,9 +142,7 @@ service DlpService {
139
142
  rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) {
140
143
  option (google.api.http) = {
141
144
  get: "/v2/infoTypes"
142
- additional_bindings {
143
- get: "/v2/{parent=locations/*}/infoTypes"
144
- }
145
+ additional_bindings { get: "/v2/{parent=locations/*}/infoTypes" }
145
146
  };
146
147
  option (google.api.method_signature) = "parent";
147
148
  }
@@ -149,7 +150,8 @@ service DlpService {
149
150
  // Creates an InspectTemplate for reusing frequently used configuration
150
151
  // for inspecting content, images, and storage.
151
152
  // See https://cloud.google.com/dlp/docs/creating-templates to learn more.
152
- rpc CreateInspectTemplate(CreateInspectTemplateRequest) returns (InspectTemplate) {
153
+ rpc CreateInspectTemplate(CreateInspectTemplateRequest)
154
+ returns (InspectTemplate) {
153
155
  option (google.api.http) = {
154
156
  post: "/v2/{parent=organizations/*}/inspectTemplates"
155
157
  body: "*"
@@ -171,7 +173,8 @@ service DlpService {
171
173
 
172
174
  // Updates the InspectTemplate.
173
175
  // See https://cloud.google.com/dlp/docs/creating-templates to learn more.
174
- rpc UpdateInspectTemplate(UpdateInspectTemplateRequest) returns (InspectTemplate) {
176
+ rpc UpdateInspectTemplate(UpdateInspectTemplateRequest)
177
+ returns (InspectTemplate) {
175
178
  option (google.api.http) = {
176
179
  patch: "/v2/{name=organizations/*/inspectTemplates/*}"
177
180
  body: "*"
@@ -199,9 +202,7 @@ service DlpService {
199
202
  additional_bindings {
200
203
  get: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
201
204
  }
202
- additional_bindings {
203
- get: "/v2/{name=projects/*/inspectTemplates/*}"
204
- }
205
+ additional_bindings { get: "/v2/{name=projects/*/inspectTemplates/*}" }
205
206
  additional_bindings {
206
207
  get: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
207
208
  }
@@ -211,15 +212,14 @@ service DlpService {
211
212
 
212
213
  // Lists InspectTemplates.
213
214
  // See https://cloud.google.com/dlp/docs/creating-templates to learn more.
214
- rpc ListInspectTemplates(ListInspectTemplatesRequest) returns (ListInspectTemplatesResponse) {
215
+ rpc ListInspectTemplates(ListInspectTemplatesRequest)
216
+ returns (ListInspectTemplatesResponse) {
215
217
  option (google.api.http) = {
216
218
  get: "/v2/{parent=organizations/*}/inspectTemplates"
217
219
  additional_bindings {
218
220
  get: "/v2/{parent=organizations/*/locations/*}/inspectTemplates"
219
221
  }
220
- additional_bindings {
221
- get: "/v2/{parent=projects/*}/inspectTemplates"
222
- }
222
+ additional_bindings { get: "/v2/{parent=projects/*}/inspectTemplates" }
223
223
  additional_bindings {
224
224
  get: "/v2/{parent=projects/*/locations/*}/inspectTemplates"
225
225
  }
@@ -229,15 +229,14 @@ service DlpService {
229
229
 
230
230
  // Deletes an InspectTemplate.
231
231
  // See https://cloud.google.com/dlp/docs/creating-templates to learn more.
232
- rpc DeleteInspectTemplate(DeleteInspectTemplateRequest) returns (google.protobuf.Empty) {
232
+ rpc DeleteInspectTemplate(DeleteInspectTemplateRequest)
233
+ returns (google.protobuf.Empty) {
233
234
  option (google.api.http) = {
234
235
  delete: "/v2/{name=organizations/*/inspectTemplates/*}"
235
236
  additional_bindings {
236
237
  delete: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
237
238
  }
238
- additional_bindings {
239
- delete: "/v2/{name=projects/*/inspectTemplates/*}"
240
- }
239
+ additional_bindings { delete: "/v2/{name=projects/*/inspectTemplates/*}" }
241
240
  additional_bindings {
242
241
  delete: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
243
242
  }
@@ -249,7 +248,8 @@ service DlpService {
249
248
  // for de-identifying content, images, and storage.
250
249
  // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
251
250
  // more.
252
- rpc CreateDeidentifyTemplate(CreateDeidentifyTemplateRequest) returns (DeidentifyTemplate) {
251
+ rpc CreateDeidentifyTemplate(CreateDeidentifyTemplateRequest)
252
+ returns (DeidentifyTemplate) {
253
253
  option (google.api.http) = {
254
254
  post: "/v2/{parent=organizations/*}/deidentifyTemplates"
255
255
  body: "*"
@@ -272,7 +272,8 @@ service DlpService {
272
272
  // Updates the DeidentifyTemplate.
273
273
  // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
274
274
  // more.
275
- rpc UpdateDeidentifyTemplate(UpdateDeidentifyTemplateRequest) returns (DeidentifyTemplate) {
275
+ rpc UpdateDeidentifyTemplate(UpdateDeidentifyTemplateRequest)
276
+ returns (DeidentifyTemplate) {
276
277
  option (google.api.http) = {
277
278
  patch: "/v2/{name=organizations/*/deidentifyTemplates/*}"
278
279
  body: "*"
@@ -289,21 +290,21 @@ service DlpService {
289
290
  body: "*"
290
291
  }
291
292
  };
292
- option (google.api.method_signature) = "name,deidentify_template,update_mask";
293
+ option (google.api.method_signature) =
294
+ "name,deidentify_template,update_mask";
293
295
  }
294
296
 
295
297
  // Gets a DeidentifyTemplate.
296
298
  // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
297
299
  // more.
298
- rpc GetDeidentifyTemplate(GetDeidentifyTemplateRequest) returns (DeidentifyTemplate) {
300
+ rpc GetDeidentifyTemplate(GetDeidentifyTemplateRequest)
301
+ returns (DeidentifyTemplate) {
299
302
  option (google.api.http) = {
300
303
  get: "/v2/{name=organizations/*/deidentifyTemplates/*}"
301
304
  additional_bindings {
302
305
  get: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
303
306
  }
304
- additional_bindings {
305
- get: "/v2/{name=projects/*/deidentifyTemplates/*}"
306
- }
307
+ additional_bindings { get: "/v2/{name=projects/*/deidentifyTemplates/*}" }
307
308
  additional_bindings {
308
309
  get: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
309
310
  }
@@ -314,15 +315,14 @@ service DlpService {
314
315
  // Lists DeidentifyTemplates.
315
316
  // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
316
317
  // more.
317
- rpc ListDeidentifyTemplates(ListDeidentifyTemplatesRequest) returns (ListDeidentifyTemplatesResponse) {
318
+ rpc ListDeidentifyTemplates(ListDeidentifyTemplatesRequest)
319
+ returns (ListDeidentifyTemplatesResponse) {
318
320
  option (google.api.http) = {
319
321
  get: "/v2/{parent=organizations/*}/deidentifyTemplates"
320
322
  additional_bindings {
321
323
  get: "/v2/{parent=organizations/*/locations/*}/deidentifyTemplates"
322
324
  }
323
- additional_bindings {
324
- get: "/v2/{parent=projects/*}/deidentifyTemplates"
325
- }
325
+ additional_bindings { get: "/v2/{parent=projects/*}/deidentifyTemplates" }
326
326
  additional_bindings {
327
327
  get: "/v2/{parent=projects/*/locations/*}/deidentifyTemplates"
328
328
  }
@@ -333,7 +333,8 @@ service DlpService {
333
333
  // Deletes a DeidentifyTemplate.
334
334
  // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
335
335
  // more.
336
- rpc DeleteDeidentifyTemplate(DeleteDeidentifyTemplateRequest) returns (google.protobuf.Empty) {
336
+ rpc DeleteDeidentifyTemplate(DeleteDeidentifyTemplateRequest)
337
+ returns (google.protobuf.Empty) {
337
338
  option (google.api.http) = {
338
339
  delete: "/v2/{name=organizations/*/deidentifyTemplates/*}"
339
340
  additional_bindings {
@@ -389,7 +390,8 @@ service DlpService {
389
390
  // Inspect hybrid content and store findings to a trigger. The inspection
390
391
  // will be processed asynchronously. To review the findings monitor the
391
392
  // jobs within the trigger.
392
- rpc HybridInspectJobTrigger(HybridInspectJobTriggerRequest) returns (HybridInspectResponse) {
393
+ rpc HybridInspectJobTrigger(HybridInspectJobTriggerRequest)
394
+ returns (HybridInspectResponse) {
393
395
  option (google.api.http) = {
394
396
  post: "/v2/{name=projects/*/locations/*/jobTriggers/*}:hybridInspect"
395
397
  body: "*"
@@ -414,7 +416,8 @@ service DlpService {
414
416
 
415
417
  // Lists job triggers.
416
418
  // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
417
- rpc ListJobTriggers(ListJobTriggersRequest) returns (ListJobTriggersResponse) {
419
+ rpc ListJobTriggers(ListJobTriggersRequest)
420
+ returns (ListJobTriggersResponse) {
418
421
  option (google.api.http) = {
419
422
  get: "/v2/{parent=projects/*}/jobTriggers"
420
423
  additional_bindings {
@@ -429,7 +432,8 @@ service DlpService {
429
432
 
430
433
  // Deletes a job trigger.
431
434
  // See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
432
- rpc DeleteJobTrigger(DeleteJobTriggerRequest) returns (google.protobuf.Empty) {
435
+ rpc DeleteJobTrigger(DeleteJobTriggerRequest)
436
+ returns (google.protobuf.Empty) {
433
437
  option (google.api.http) = {
434
438
  delete: "/v2/{name=projects/*/jobTriggers/*}"
435
439
  additional_bindings {
@@ -455,6 +459,69 @@ service DlpService {
455
459
  };
456
460
  }
457
461
 
462
+ // Creates a config for discovery to scan and profile storage.
463
+ rpc CreateDiscoveryConfig(CreateDiscoveryConfigRequest)
464
+ returns (DiscoveryConfig) {
465
+ option (google.api.http) = {
466
+ post: "/v2/{parent=projects/*/locations/*}/discoveryConfigs"
467
+ body: "*"
468
+ additional_bindings {
469
+ post: "/v2/{parent=organizations/*/locations/*}/discoveryConfigs"
470
+ body: "*"
471
+ }
472
+ };
473
+ option (google.api.method_signature) = "parent,discovery_config";
474
+ }
475
+
476
+ // Updates a discovery configuration.
477
+ rpc UpdateDiscoveryConfig(UpdateDiscoveryConfigRequest)
478
+ returns (DiscoveryConfig) {
479
+ option (google.api.http) = {
480
+ patch: "/v2/{name=projects/*/locations/*/discoveryConfigs/*}"
481
+ body: "*"
482
+ additional_bindings {
483
+ patch: "/v2/{name=organizations/*/locations/*/discoveryConfigs/*}"
484
+ body: "*"
485
+ }
486
+ };
487
+ option (google.api.method_signature) = "name,discovery_config,update_mask";
488
+ }
489
+
490
+ // Gets a discovery configuration.
491
+ rpc GetDiscoveryConfig(GetDiscoveryConfigRequest) returns (DiscoveryConfig) {
492
+ option (google.api.http) = {
493
+ get: "/v2/{name=projects/*/locations/*/discoveryConfigs/*}"
494
+ additional_bindings {
495
+ get: "/v2/{name=organizations/*/locations/*/discoveryConfigs/*}"
496
+ }
497
+ };
498
+ option (google.api.method_signature) = "name";
499
+ }
500
+
501
+ // Lists discovery configurations.
502
+ rpc ListDiscoveryConfigs(ListDiscoveryConfigsRequest)
503
+ returns (ListDiscoveryConfigsResponse) {
504
+ option (google.api.http) = {
505
+ get: "/v2/{parent=projects/*/locations/*}/discoveryConfigs"
506
+ additional_bindings {
507
+ get: "/v2/{parent=organizations/*/locations/*}/discoveryConfigs"
508
+ }
509
+ };
510
+ option (google.api.method_signature) = "parent";
511
+ }
512
+
513
+ // Deletes a discovery configuration.
514
+ rpc DeleteDiscoveryConfig(DeleteDiscoveryConfigRequest)
515
+ returns (google.protobuf.Empty) {
516
+ option (google.api.http) = {
517
+ delete: "/v2/{name=projects/*/locations/*/discoveryConfigs/*}"
518
+ additional_bindings {
519
+ delete: "/v2/{name=organizations/*/locations/*/discoveryConfigs/*}"
520
+ }
521
+ };
522
+ option (google.api.method_signature) = "name";
523
+ }
524
+
458
525
  // Creates a new job to inspect storage or calculate risk metrics.
459
526
  // See https://cloud.google.com/dlp/docs/inspecting-storage and
460
527
  // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
@@ -481,9 +548,7 @@ service DlpService {
481
548
  rpc ListDlpJobs(ListDlpJobsRequest) returns (ListDlpJobsResponse) {
482
549
  option (google.api.http) = {
483
550
  get: "/v2/{parent=projects/*}/dlpJobs"
484
- additional_bindings {
485
- get: "/v2/{parent=projects/*/locations/*}/dlpJobs"
486
- }
551
+ additional_bindings { get: "/v2/{parent=projects/*/locations/*}/dlpJobs" }
487
552
  additional_bindings {
488
553
  get: "/v2/{parent=organizations/*/locations/*}/dlpJobs"
489
554
  }
@@ -497,9 +562,7 @@ service DlpService {
497
562
  rpc GetDlpJob(GetDlpJobRequest) returns (DlpJob) {
498
563
  option (google.api.http) = {
499
564
  get: "/v2/{name=projects/*/dlpJobs/*}"
500
- additional_bindings {
501
- get: "/v2/{name=projects/*/locations/*/dlpJobs/*}"
502
- }
565
+ additional_bindings { get: "/v2/{name=projects/*/locations/*/dlpJobs/*}" }
503
566
  };
504
567
  option (google.api.method_signature) = "name";
505
568
  }
@@ -538,7 +601,8 @@ service DlpService {
538
601
  // Creates a pre-built stored infoType to be used for inspection.
539
602
  // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
540
603
  // learn more.
541
- rpc CreateStoredInfoType(CreateStoredInfoTypeRequest) returns (StoredInfoType) {
604
+ rpc CreateStoredInfoType(CreateStoredInfoTypeRequest)
605
+ returns (StoredInfoType) {
542
606
  option (google.api.http) = {
543
607
  post: "/v2/{parent=organizations/*}/storedInfoTypes"
544
608
  body: "*"
@@ -562,7 +626,8 @@ service DlpService {
562
626
  // will continue to be used until the new version is ready.
563
627
  // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
564
628
  // learn more.
565
- rpc UpdateStoredInfoType(UpdateStoredInfoTypeRequest) returns (StoredInfoType) {
629
+ rpc UpdateStoredInfoType(UpdateStoredInfoTypeRequest)
630
+ returns (StoredInfoType) {
566
631
  option (google.api.http) = {
567
632
  patch: "/v2/{name=organizations/*/storedInfoTypes/*}"
568
633
  body: "*"
@@ -591,9 +656,7 @@ service DlpService {
591
656
  additional_bindings {
592
657
  get: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
593
658
  }
594
- additional_bindings {
595
- get: "/v2/{name=projects/*/storedInfoTypes/*}"
596
- }
659
+ additional_bindings { get: "/v2/{name=projects/*/storedInfoTypes/*}" }
597
660
  additional_bindings {
598
661
  get: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
599
662
  }
@@ -604,15 +667,14 @@ service DlpService {
604
667
  // Lists stored infoTypes.
605
668
  // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
606
669
  // learn more.
607
- rpc ListStoredInfoTypes(ListStoredInfoTypesRequest) returns (ListStoredInfoTypesResponse) {
670
+ rpc ListStoredInfoTypes(ListStoredInfoTypesRequest)
671
+ returns (ListStoredInfoTypesResponse) {
608
672
  option (google.api.http) = {
609
673
  get: "/v2/{parent=organizations/*}/storedInfoTypes"
610
674
  additional_bindings {
611
675
  get: "/v2/{parent=organizations/*/locations/*}/storedInfoTypes"
612
676
  }
613
- additional_bindings {
614
- get: "/v2/{parent=projects/*}/storedInfoTypes"
615
- }
677
+ additional_bindings { get: "/v2/{parent=projects/*}/storedInfoTypes" }
616
678
  additional_bindings {
617
679
  get: "/v2/{parent=projects/*/locations/*}/storedInfoTypes"
618
680
  }
@@ -623,15 +685,14 @@ service DlpService {
623
685
  // Deletes a stored infoType.
624
686
  // See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
625
687
  // learn more.
626
- rpc DeleteStoredInfoType(DeleteStoredInfoTypeRequest) returns (google.protobuf.Empty) {
688
+ rpc DeleteStoredInfoType(DeleteStoredInfoTypeRequest)
689
+ returns (google.protobuf.Empty) {
627
690
  option (google.api.http) = {
628
691
  delete: "/v2/{name=organizations/*/storedInfoTypes/*}"
629
692
  additional_bindings {
630
693
  delete: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
631
694
  }
632
- additional_bindings {
633
- delete: "/v2/{name=projects/*/storedInfoTypes/*}"
634
- }
695
+ additional_bindings { delete: "/v2/{name=projects/*/storedInfoTypes/*}" }
635
696
  additional_bindings {
636
697
  delete: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
637
698
  }
@@ -642,7 +703,8 @@ service DlpService {
642
703
  // Inspect hybrid content and store findings to a job.
643
704
  // To review the findings, inspect the job. Inspection will occur
644
705
  // asynchronously.
645
- rpc HybridInspectDlpJob(HybridInspectDlpJobRequest) returns (HybridInspectResponse) {
706
+ rpc HybridInspectDlpJob(HybridInspectDlpJobRequest)
707
+ returns (HybridInspectResponse) {
646
708
  option (google.api.http) = {
647
709
  post: "/v2/{name=projects/*/locations/*/dlpJobs/*}:hybridInspect"
648
710
  body: "*"
@@ -675,7 +737,8 @@ message ExcludeInfoTypes {
675
737
 
676
738
  // The rule to exclude findings based on a hotword. For record inspection of
677
739
  // tables, column names are considered hotwords. An example of this is to
678
- // exclude a finding if a BigQuery column matches a specific pattern.
740
+ // exclude a finding if it belongs to a BigQuery column that matches a specific
741
+ // pattern.
679
742
  message ExcludeByHotword {
680
743
  // Regular expression pattern defining what qualifies as a hotword.
681
744
  CustomInfoType.Regex hotword_regex = 1;
@@ -737,6 +800,22 @@ message InspectionRuleSet {
737
800
  // When used with redactContent only info_types and min_likelihood are currently
738
801
  // used.
739
802
  message InspectConfig {
803
+ // Configuration for setting a minimum likelihood per infotype. Used to
804
+ // customize the minimum likelihood level for specific infotypes in the
805
+ // request. For example, use this if you want to lower the precision for
806
+ // PERSON_NAME without lowering the precision for the other infotypes in the
807
+ // request.
808
+ message InfoTypeLikelihood {
809
+ // Type of information the likelihood threshold applies to. Only one
810
+ // likelihood per info_type should be provided. If InfoTypeLikelihood does
811
+ // not have an info_type, the configuration fails.
812
+ InfoType info_type = 1;
813
+
814
+ // Only returns findings equal to or above this threshold. This field is
815
+ // required or else the configuration fails.
816
+ Likelihood min_likelihood = 2;
817
+ }
818
+
740
819
  // Configuration to control the number of findings returned for inspection.
741
820
  // This is not used for de-identification or data profiling.
742
821
  //
@@ -759,15 +838,29 @@ message InspectConfig {
759
838
  int32 max_findings = 2;
760
839
  }
761
840
 
762
- // Max number of findings that will be returned for each item scanned.
763
- // When set within `InspectJobConfig`,
764
- // the maximum returned is 2000 regardless if this is set higher.
765
- // When set within `InspectContentRequest`, this field is ignored.
841
+ // Max number of findings that are returned for each item scanned.
842
+ //
843
+ // When set within an
844
+ // [InspectContentRequest][google.privacy.dlp.v2.InspectContentRequest],
845
+ // this field is ignored.
846
+ //
847
+ // This value isn't a hard limit. If the number of findings for an item
848
+ // reaches this limit, the inspection of that item ends gradually, not
849
+ // abruptly. Therefore, the actual number of findings that Cloud DLP returns
850
+ // for the item can be multiple times higher than this value.
766
851
  int32 max_findings_per_item = 1;
767
852
 
768
- // Max number of findings that will be returned per request/job.
769
- // When set within `InspectContentRequest`, the maximum returned is 2000
770
- // regardless if this is set higher.
853
+ // Max number of findings that are returned per request or job.
854
+ //
855
+ // If you set this field in an
856
+ // [InspectContentRequest][google.privacy.dlp.v2.InspectContentRequest], the
857
+ // resulting maximum value is the value that you set or 3,000, whichever is
858
+ // lower.
859
+ //
860
+ // This value isn't a hard limit. If an inspection reaches this limit, the
861
+ // inspection ends gradually, not abruptly. Therefore, the actual number of
862
+ // findings that Cloud DLP returns can be multiple times higher than this
863
+ // value.
771
864
  int32 max_findings_per_request = 2;
772
865
 
773
866
  // Configuration of findings limit given for specified infoTypes.
@@ -779,19 +872,28 @@ message InspectConfig {
779
872
  // https://cloud.google.com/dlp/docs/infotypes-reference.
780
873
  //
781
874
  // When no InfoTypes or CustomInfoTypes are specified in a request, the
782
- // system may automatically choose what detectors to run. By default this may
783
- // be all types, but may change over time as detectors are updated.
875
+ // system may automatically choose a default list of detectors to run, which
876
+ // may change over time.
784
877
  //
785
878
  // If you need precise control and predictability as to what detectors are
786
879
  // run you should specify specific InfoTypes listed in the reference,
787
880
  // otherwise a default list will be used, which may change over time.
788
881
  repeated InfoType info_types = 1;
789
882
 
790
- // Only returns findings equal or above this threshold. The default is
883
+ // Only returns findings equal to or above this threshold. The default is
791
884
  // POSSIBLE.
792
- // See https://cloud.google.com/dlp/docs/likelihood to learn more.
885
+ //
886
+ // In general, the highest likelihood setting yields the fewest findings in
887
+ // results and the lowest chance of a false positive. For more information,
888
+ // see [Match likelihood](https://cloud.google.com/dlp/docs/likelihood).
793
889
  Likelihood min_likelihood = 2;
794
890
 
891
+ // Minimum likelihood per infotype. For each infotype, a user can specify a
892
+ // minimum likelihood. The system only returns a finding if its likelihood is
893
+ // above this threshold. If this field is not set, the system uses the
894
+ // InspectConfig min_likelihood.
895
+ repeated InfoTypeLikelihood min_likelihood_per_info_type = 11;
896
+
795
897
  // Configuration to control the number of findings returned.
796
898
  // This is not used for data profiling.
797
899
  //
@@ -800,11 +902,19 @@ message InspectConfig {
800
902
  // redacted. Don't include finding limits in
801
903
  // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage]
802
904
  // requests. Otherwise, Cloud DLP returns an error.
905
+ //
906
+ // When set within an
907
+ // [InspectJobConfig][google.privacy.dlp.v2.InspectJobConfig], the specified
908
+ // maximum values aren't hard limits. If an inspection job reaches these
909
+ // limits, the job ends gradually, not abruptly. Therefore, the actual number
910
+ // of findings that Cloud DLP returns can be multiple times higher than these
911
+ // maximum values.
803
912
  FindingLimits limits = 3;
804
913
 
805
914
  // When true, a contextual quote from the data that triggered a finding is
806
- // included in the response; see [Finding.quote][google.privacy.dlp.v2.Finding.quote].
807
- // This is not used for data profiling.
915
+ // included in the response; see
916
+ // [Finding.quote][google.privacy.dlp.v2.Finding.quote]. This is not used for
917
+ // data profiling.
808
918
  bool include_quote = 4;
809
919
 
810
920
  // When true, excludes type information of the findings.
@@ -965,14 +1075,13 @@ message Finding {
965
1075
  QuoteInfo quote_info = 7;
966
1076
 
967
1077
  // The job that stored the finding.
968
- string resource_name = 8 [(google.api.resource_reference) = {
969
- type: "dlp.googleapis.com/DlpJob"
970
- }];
1078
+ string resource_name = 8
1079
+ [(google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }];
971
1080
 
972
1081
  // Job trigger name, if applicable, for this finding.
973
- string trigger_name = 9 [(google.api.resource_reference) = {
974
- type: "dlp.googleapis.com/JobTrigger"
975
- }];
1082
+ string trigger_name = 9 [
1083
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
1084
+ ];
976
1085
 
977
1086
  // The labels associated with this `Finding`.
978
1087
  //
@@ -993,9 +1102,8 @@ message Finding {
993
1102
  google.protobuf.Timestamp job_create_time = 11;
994
1103
 
995
1104
  // The job that stored the finding.
996
- string job_name = 13 [(google.api.resource_reference) = {
997
- type: "dlp.googleapis.com/DlpJob"
998
- }];
1105
+ string job_name = 13
1106
+ [(google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }];
999
1107
 
1000
1108
  // The unique finding id.
1001
1109
  string finding_id = 15;
@@ -1227,8 +1335,8 @@ message RedactImageRequest {
1227
1335
  //
1228
1336
  // parent=projects/example-project/locations/europe-west3
1229
1337
  string parent = 1 [(google.api.resource_reference) = {
1230
- child_type: "dlp.googleapis.com/DlpContent"
1231
- }];
1338
+ child_type: "dlp.googleapis.com/DlpContent"
1339
+ }];
1232
1340
 
1233
1341
  // Deprecated. This field has no effect.
1234
1342
  string location_id = 8;
@@ -1292,8 +1400,8 @@ message DeidentifyContentRequest {
1292
1400
  //
1293
1401
  // parent=projects/example-project/locations/europe-west3
1294
1402
  string parent = 1 [(google.api.resource_reference) = {
1295
- child_type: "dlp.googleapis.com/DlpContent"
1296
- }];
1403
+ child_type: "dlp.googleapis.com/DlpContent"
1404
+ }];
1297
1405
 
1298
1406
  // Configuration for the de-identification of the content item.
1299
1407
  // Items specified here will override the template referenced by the
@@ -1433,8 +1541,8 @@ message InspectContentRequest {
1433
1541
  //
1434
1542
  // parent=projects/example-project/locations/europe-west3
1435
1543
  string parent = 1 [(google.api.resource_reference) = {
1436
- child_type: "dlp.googleapis.com/DlpContent"
1437
- }];
1544
+ child_type: "dlp.googleapis.com/DlpContent"
1545
+ }];
1438
1546
 
1439
1547
  // Configuration for the inspector. What specified here will override
1440
1548
  // the template referenced by the inspect_template_name argument.
@@ -1561,6 +1669,18 @@ message InspectDataSourceDetails {
1561
1669
  Result result = 3;
1562
1670
  }
1563
1671
 
1672
+ // The schema of data to be saved to the BigQuery table when the
1673
+ // `DataProfileAction` is enabled.
1674
+ message DataProfileBigQueryRowSchema {
1675
+ oneof data_profile {
1676
+ // Table data profile column
1677
+ TableDataProfile table_profile = 1;
1678
+
1679
+ // Column data profile column
1680
+ ColumnDataProfile column_profile = 2;
1681
+ }
1682
+ }
1683
+
1564
1684
  // Statistics related to processing hybrid inspect requests.
1565
1685
  message HybridInspectStatistics {
1566
1686
  // The number of hybrid inspection requests processed within this job.
@@ -1578,6 +1698,53 @@ message HybridInspectStatistics {
1578
1698
  int64 pending_count = 3;
1579
1699
  }
1580
1700
 
1701
+ // The results of an [Action][google.privacy.dlp.v2.Action].
1702
+ message ActionDetails {
1703
+ // Summary of what occurred in the actions.
1704
+ oneof details {
1705
+ // Outcome of a de-identification action.
1706
+ DeidentifyDataSourceDetails deidentify_details = 1;
1707
+ }
1708
+ }
1709
+
1710
+ // Summary of what was modified during a transformation.
1711
+ message DeidentifyDataSourceStats {
1712
+ // Total size in bytes that were transformed in some way.
1713
+ int64 transformed_bytes = 1;
1714
+
1715
+ // Number of successfully applied transformations.
1716
+ int64 transformation_count = 2;
1717
+
1718
+ // Number of errors encountered while trying to apply transformations.
1719
+ int64 transformation_error_count = 3;
1720
+ }
1721
+
1722
+ // The results of a [Deidentify][google.privacy.dlp.v2.Action.Deidentify] action
1723
+ // from an inspect job.
1724
+ message DeidentifyDataSourceDetails {
1725
+ // De-identification options.
1726
+ message RequestedDeidentifyOptions {
1727
+ // Snapshot of the state of the `DeidentifyTemplate` from the
1728
+ // [Deidentify][google.privacy.dlp.v2.Action.Deidentify] action at the time
1729
+ // this job was run.
1730
+ DeidentifyTemplate snapshot_deidentify_template = 1;
1731
+
1732
+ // Snapshot of the state of the structured `DeidentifyTemplate` from the
1733
+ // `Deidentify` action at the time this job was run.
1734
+ DeidentifyTemplate snapshot_structured_deidentify_template = 2;
1735
+
1736
+ // Snapshot of the state of the image transformation `DeidentifyTemplate`
1737
+ // from the `Deidentify` action at the time this job was run.
1738
+ DeidentifyTemplate snapshot_image_redact_template = 3;
1739
+ }
1740
+
1741
+ // De-identification config used for the request.
1742
+ RequestedDeidentifyOptions requested_options = 1;
1743
+
1744
+ // Stats about the de-identification operation.
1745
+ DeidentifyDataSourceStats deidentify_stats = 2;
1746
+ }
1747
+
1581
1748
  // InfoType description.
1582
1749
  message InfoTypeDescription {
1583
1750
  // Internal name of the infoType.
@@ -1598,6 +1765,9 @@ message InfoTypeDescription {
1598
1765
 
1599
1766
  // The category of the infoType.
1600
1767
  repeated InfoTypeCategory categories = 10;
1768
+
1769
+ // The default sensitivity of the infoType.
1770
+ SensitivityScore sensitivity_score = 11;
1601
1771
  }
1602
1772
 
1603
1773
  // Classification of infoTypes to organize them according to geographic
@@ -1637,6 +1807,9 @@ message InfoTypeCategory {
1637
1807
  // The infoType is typically used in Colombia.
1638
1808
  COLOMBIA = 9;
1639
1809
 
1810
+ // The infoType is typically used in Croatia.
1811
+ CROATIA = 42;
1812
+
1640
1813
  // The infoType is typically used in Denmark.
1641
1814
  DENMARK = 10;
1642
1815
 
@@ -1679,6 +1852,9 @@ message InfoTypeCategory {
1679
1852
  // The infoType is typically used in the Netherlands.
1680
1853
  THE_NETHERLANDS = 23;
1681
1854
 
1855
+ // The infoType is typically used in New Zealand.
1856
+ NEW_ZEALAND = 41;
1857
+
1682
1858
  // The infoType is typically used in Norway.
1683
1859
  NORWAY = 24;
1684
1860
 
@@ -1706,6 +1882,9 @@ message InfoTypeCategory {
1706
1882
  // The infoType is typically used in Sweden.
1707
1883
  SWEDEN = 32;
1708
1884
 
1885
+ // The infoType is typically used in Switzerland.
1886
+ SWITZERLAND = 43;
1887
+
1709
1888
  // The infoType is typically used in Taiwan.
1710
1889
  TAIWAN = 33;
1711
1890
 
@@ -1729,9 +1908,6 @@ message InfoTypeCategory {
1729
1908
 
1730
1909
  // The infoType is typically used in Google internally.
1731
1910
  INTERNAL = 40;
1732
-
1733
- // The infoType is typically used in New Zealand.
1734
- NEW_ZEALAND = 41;
1735
1911
  }
1736
1912
 
1737
1913
  // Enum of the current industries in the category.
@@ -1897,10 +2073,11 @@ message StatisticalTable {
1897
2073
  BigQueryTable table = 3 [(google.api.field_behavior) = REQUIRED];
1898
2074
 
1899
2075
  // Required. Quasi-identifier columns.
1900
- repeated QuasiIdentifierField quasi_ids = 1 [(google.api.field_behavior) = REQUIRED];
2076
+ repeated QuasiIdentifierField quasi_ids = 1
2077
+ [(google.api.field_behavior) = REQUIRED];
1901
2078
 
1902
- // Required. The relative frequency column must contain a floating-point number
1903
- // between 0 and 1 (inclusive). Null values are assumed to be zero.
2079
+ // Required. The relative frequency column must contain a floating-point
2080
+ // number between 0 and 1 (inclusive). Null values are assumed to be zero.
1904
2081
  FieldId relative_frequency = 2 [(google.api.field_behavior) = REQUIRED];
1905
2082
  }
1906
2083
 
@@ -2013,15 +2190,16 @@ message PrivacyMetric {
2013
2190
  BigQueryTable table = 3 [(google.api.field_behavior) = REQUIRED];
2014
2191
 
2015
2192
  // Required. Quasi-identifier columns.
2016
- repeated QuasiIdField quasi_ids = 1 [(google.api.field_behavior) = REQUIRED];
2193
+ repeated QuasiIdField quasi_ids = 1
2194
+ [(google.api.field_behavior) = REQUIRED];
2017
2195
 
2018
- // Required. The relative frequency column must contain a floating-point number
2019
- // between 0 and 1 (inclusive). Null values are assumed to be zero.
2196
+ // Required. The relative frequency column must contain a floating-point
2197
+ // number between 0 and 1 (inclusive). Null values are assumed to be zero.
2020
2198
  FieldId relative_frequency = 2 [(google.api.field_behavior) = REQUIRED];
2021
2199
  }
2022
2200
 
2023
- // Required. Fields considered to be quasi-identifiers. No two columns can have the
2024
- // same tag.
2201
+ // Required. Fields considered to be quasi-identifiers. No two columns can
2202
+ // have the same tag.
2025
2203
  repeated TaggedField quasi_ids = 1 [(google.api.field_behavior) = REQUIRED];
2026
2204
 
2027
2205
  // ISO 3166-1 alpha-2 region code to use in the statistical modeling.
@@ -2040,8 +2218,8 @@ message PrivacyMetric {
2040
2218
  // Similarly to the k-map metric, we cannot compute δ-presence exactly without
2041
2219
  // knowing the attack dataset, so we use a statistical model instead.
2042
2220
  message DeltaPresenceEstimationConfig {
2043
- // Required. Fields considered to be quasi-identifiers. No two fields can have the
2044
- // same tag.
2221
+ // Required. Fields considered to be quasi-identifiers. No two fields can
2222
+ // have the same tag.
2045
2223
  repeated QuasiId quasi_ids = 1 [(google.api.field_behavior) = REQUIRED];
2046
2224
 
2047
2225
  // ISO 3166-1 alpha-2 region code to use in the statistical modeling.
@@ -2114,7 +2292,8 @@ message AnalyzeDataSourceRiskDetails {
2114
2292
  }
2115
2293
 
2116
2294
  // Histogram of value frequencies in the column.
2117
- repeated CategoricalStatsHistogramBucket value_frequency_histogram_buckets = 5;
2295
+ repeated CategoricalStatsHistogramBucket value_frequency_histogram_buckets =
2296
+ 5;
2118
2297
  }
2119
2298
 
2120
2299
  // Result of the k-anonymity computation.
@@ -2194,7 +2373,8 @@ message AnalyzeDataSourceRiskDetails {
2194
2373
  }
2195
2374
 
2196
2375
  // Histogram of l-diversity equivalence class sensitive value frequencies.
2197
- repeated LDiversityHistogramBucket sensitive_value_frequency_histogram_buckets = 5;
2376
+ repeated LDiversityHistogramBucket
2377
+ sensitive_value_frequency_histogram_buckets = 5;
2198
2378
  }
2199
2379
 
2200
2380
  // Result of the reidentifiability analysis. Note that these results are an
@@ -2300,7 +2480,8 @@ message AnalyzeDataSourceRiskDetails {
2300
2480
  // {min_probability: 0.3, max_probability: 0.4, frequency: 99}
2301
2481
  // mean that there are no record with an estimated probability in [0.1, 0.2)
2302
2482
  // nor larger or equal to 0.4.
2303
- repeated DeltaPresenceEstimationHistogramBucket delta_presence_estimation_histogram = 1;
2483
+ repeated DeltaPresenceEstimationHistogramBucket
2484
+ delta_presence_estimation_histogram = 1;
2304
2485
  }
2305
2486
 
2306
2487
  // Risk analysis options.
@@ -2444,20 +2625,16 @@ message ImageTransformations {
2444
2625
  message ImageTransformation {
2445
2626
  // Apply transformation to the selected info_types.
2446
2627
  message SelectedInfoTypes {
2447
- // Required. InfoTypes to apply the transformation to. Required. Provided InfoType
2448
- // must be unique within the ImageTransformations message.
2628
+ // Required. InfoTypes to apply the transformation to. Required. Provided
2629
+ // InfoType must be unique within the ImageTransformations message.
2449
2630
  repeated InfoType info_types = 5 [(google.api.field_behavior) = REQUIRED];
2450
2631
  }
2451
2632
 
2452
2633
  // Apply transformation to all findings.
2453
- message AllInfoTypes {
2454
-
2455
- }
2634
+ message AllInfoTypes {}
2456
2635
 
2457
2636
  // Apply to all text.
2458
- message AllText {
2459
-
2460
- }
2637
+ message AllText {}
2461
2638
 
2462
2639
  oneof target {
2463
2640
  // Apply transformation to the selected info_types.
@@ -2491,17 +2668,13 @@ message ImageTransformations {
2491
2668
  // `TransformationOverviews`.
2492
2669
  message TransformationErrorHandling {
2493
2670
  // Throw an error and fail the request when a transformation error occurs.
2494
- message ThrowError {
2495
-
2496
- }
2671
+ message ThrowError {}
2497
2672
 
2498
2673
  // Skips the data without modifying it if the requested transformation would
2499
2674
  // cause an error. For example, if a `DateShift` transformation were applied
2500
2675
  // an an IP address, this mode would leave the IP address unchanged in the
2501
2676
  // response.
2502
- message LeaveUntransformed {
2503
-
2504
- }
2677
+ message LeaveUntransformed {}
2505
2678
 
2506
2679
  // How transformation errors should be handled.
2507
2680
  oneof mode {
@@ -2678,16 +2851,12 @@ message ReplaceDictionaryConfig {
2678
2851
  }
2679
2852
 
2680
2853
  // Replace each matching finding with the name of the info_type.
2681
- message ReplaceWithInfoTypeConfig {
2682
-
2683
- }
2854
+ message ReplaceWithInfoTypeConfig {}
2684
2855
 
2685
2856
  // Redact a given value. For example, if used with an `InfoTypeTransformation`
2686
2857
  // transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the
2687
2858
  // output would be 'My phone number is '.
2688
- message RedactConfig {
2689
-
2690
- }
2859
+ message RedactConfig {}
2691
2860
 
2692
2861
  // Characters to skip when doing deidentification of a value. These will be left
2693
2862
  // alone and skipped.
@@ -2786,18 +2955,18 @@ message CharacterMaskConfig {
2786
2955
  //
2787
2956
  // See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
2788
2957
  message FixedSizeBucketingConfig {
2789
- // Required. Lower bound value of buckets. All values less than `lower_bound` are
2790
- // grouped together into a single bucket; for example if `lower_bound` = 10,
2791
- // then all values less than 10 are replaced with the value "-10".
2958
+ // Required. Lower bound value of buckets. All values less than `lower_bound`
2959
+ // are grouped together into a single bucket; for example if `lower_bound` =
2960
+ // 10, then all values less than 10 are replaced with the value "-10".
2792
2961
  Value lower_bound = 1 [(google.api.field_behavior) = REQUIRED];
2793
2962
 
2794
- // Required. Upper bound value of buckets. All values greater than upper_bound are
2795
- // grouped together into a single bucket; for example if `upper_bound` = 89,
2796
- // then all values greater than 89 are replaced with the value "89+".
2963
+ // Required. Upper bound value of buckets. All values greater than upper_bound
2964
+ // are grouped together into a single bucket; for example if `upper_bound` =
2965
+ // 89, then all values greater than 89 are replaced with the value "89+".
2797
2966
  Value upper_bound = 2 [(google.api.field_behavior) = REQUIRED];
2798
2967
 
2799
- // Required. Size of each bucket (except for minimum and maximum buckets). So if
2800
- // `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
2968
+ // Required. Size of each bucket (except for minimum and maximum buckets). So
2969
+ // if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
2801
2970
  // following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
2802
2971
  // 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
2803
2972
  double bucket_size = 3 [(google.api.field_behavior) = REQUIRED];
@@ -3000,14 +3169,15 @@ message KmsWrappedCryptoKey {
3000
3169
  // same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
3001
3170
  // to learn more.
3002
3171
  message DateShiftConfig {
3003
- // Required. Range of shift in days. Actual shift will be selected at random within this
3004
- // range (inclusive ends). Negative means shift to earlier in time. Must not
3005
- // be more than 365250 days (1000 years) each direction.
3172
+ // Required. Range of shift in days. Actual shift will be selected at random
3173
+ // within this range (inclusive ends). Negative means shift to earlier in
3174
+ // time. Must not be more than 365250 days (1000 years) each direction.
3006
3175
  //
3007
3176
  // For example, 3 means shift date to at most 3 days into the future.
3008
3177
  int32 upper_bound_days = 1 [(google.api.field_behavior) = REQUIRED];
3009
3178
 
3010
- // Required. For example, -5 means shift date to at most 5 days back in the past.
3179
+ // Required. For example, -5 means shift date to at most 5 days back in the
3180
+ // past.
3011
3181
  int32 lower_bound_days = 2 [(google.api.field_behavior) = REQUIRED];
3012
3182
 
3013
3183
  // Points to the field that contains the context, for example, an entity id.
@@ -3039,12 +3209,14 @@ message InfoTypeTransformations {
3039
3209
  repeated InfoType info_types = 1;
3040
3210
 
3041
3211
  // Required. Primitive transformation to apply to the infoType.
3042
- PrimitiveTransformation primitive_transformation = 2 [(google.api.field_behavior) = REQUIRED];
3212
+ PrimitiveTransformation primitive_transformation = 2
3213
+ [(google.api.field_behavior) = REQUIRED];
3043
3214
  }
3044
3215
 
3045
3216
  // Required. Transformation for each infoType. Cannot specify more than one
3046
3217
  // for a given infoType.
3047
- repeated InfoTypeTransformation transformations = 1 [(google.api.field_behavior) = REQUIRED];
3218
+ repeated InfoTypeTransformation transformations = 1
3219
+ [(google.api.field_behavior) = REQUIRED];
3048
3220
  }
3049
3221
 
3050
3222
  // The transformation to apply to the field.
@@ -3440,9 +3612,7 @@ message Schedule {
3440
3612
 
3441
3613
  // Job trigger option for hybrid jobs. Jobs must be manually created
3442
3614
  // and finished.
3443
- message Manual {
3444
-
3445
- }
3615
+ message Manual {}
3446
3616
 
3447
3617
  // The inspectTemplate contains a configuration (set of types of sensitive data
3448
3618
  // to be detected) to be used anywhere you otherwise would normally specify
@@ -3471,10 +3641,12 @@ message InspectTemplate {
3471
3641
  string description = 3;
3472
3642
 
3473
3643
  // Output only. The creation timestamp of an inspectTemplate.
3474
- google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
3644
+ google.protobuf.Timestamp create_time = 4
3645
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3475
3646
 
3476
3647
  // Output only. The last update timestamp of an inspectTemplate.
3477
- google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
3648
+ google.protobuf.Timestamp update_time = 5
3649
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3478
3650
 
3479
3651
  // The core content of the template. Configuration of the scanning process.
3480
3652
  InspectConfig inspect_config = 6;
@@ -3505,10 +3677,12 @@ message DeidentifyTemplate {
3505
3677
  string description = 3;
3506
3678
 
3507
3679
  // Output only. The creation timestamp of an inspectTemplate.
3508
- google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
3680
+ google.protobuf.Timestamp create_time = 4
3681
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3509
3682
 
3510
3683
  // Output only. The last update timestamp of an inspectTemplate.
3511
- google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
3684
+ google.protobuf.Timestamp update_time = 5
3685
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3512
3686
 
3513
3687
  // The core content of the template.
3514
3688
  DeidentifyConfig deidentify_config = 6;
@@ -3520,7 +3694,8 @@ message Error {
3520
3694
  // Detailed error codes and messages.
3521
3695
  google.rpc.Status details = 1;
3522
3696
 
3523
- // The times the error occurred.
3697
+ // The times the error occurred. List includes the oldest timestamp and the
3698
+ // last 9 timestamps.
3524
3699
  repeated google.protobuf.Timestamp timestamps = 2;
3525
3700
  }
3526
3701
 
@@ -3584,20 +3759,23 @@ message JobTrigger {
3584
3759
  // a single Schedule trigger and must have at least one object.
3585
3760
  repeated Trigger triggers = 5;
3586
3761
 
3587
- // Output only. A stream of errors encountered when the trigger was activated. Repeated
3588
- // errors may result in the JobTrigger automatically being paused.
3762
+ // Output only. A stream of errors encountered when the trigger was activated.
3763
+ // Repeated errors may result in the JobTrigger automatically being paused.
3589
3764
  // Will return the last 100 errors. Whenever the JobTrigger is modified
3590
3765
  // this list will be cleared.
3591
3766
  repeated Error errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
3592
3767
 
3593
3768
  // Output only. The creation timestamp of a triggeredJob.
3594
- google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
3769
+ google.protobuf.Timestamp create_time = 7
3770
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3595
3771
 
3596
3772
  // Output only. The last update timestamp of a triggeredJob.
3597
- google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
3773
+ google.protobuf.Timestamp update_time = 8
3774
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3598
3775
 
3599
3776
  // Output only. The timestamp of the last time this trigger executed.
3600
- google.protobuf.Timestamp last_run_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
3777
+ google.protobuf.Timestamp last_run_time = 9
3778
+ [(google.api.field_behavior) = OUTPUT_ONLY];
3601
3779
 
3602
3780
  // Required. A status for this trigger.
3603
3781
  Status status = 10 [(google.api.field_behavior) = REQUIRED];
@@ -3628,19 +3806,15 @@ message Action {
3628
3806
  string topic = 1;
3629
3807
  }
3630
3808
 
3631
- // Publish the result summary of a DlpJob to the Cloud Security
3632
- // Command Center (CSCC Alpha).
3633
- // This action is only available for projects which are parts of
3634
- // an organization and whitelisted for the alpha Cloud Security Command
3635
- // Center.
3636
- // The action will publish the count of finding instances and their info
3637
- // types. The summary of findings will be persisted in CSCC and are governed
3638
- // by CSCC service-specific policy, see
3639
- // https://cloud.google.com/terms/service-terms Only a single instance of this
3640
- // action can be specified. Compatible with: Inspect
3641
- message PublishSummaryToCscc {
3642
-
3643
- }
3809
+ // Publish the result summary of a DlpJob to [Security Command
3810
+ // Center](https://cloud.google.com/security-command-center). This action is
3811
+ // available for only projects that belong to an organization. This action
3812
+ // publishes the count of finding instances and their infoTypes. The summary
3813
+ // of findings are persisted in Security Command Center and are governed by
3814
+ // [service-specific policies for Security Command
3815
+ // Center](https://cloud.google.com/terms/service-terms). Only a single
3816
+ // instance of this action can be specified. Compatible with: Inspect
3817
+ message PublishSummaryToCscc {}
3644
3818
 
3645
3819
  // Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag
3646
3820
  // templates are applied to the resource that Cloud DLP scanned. Data
@@ -3660,9 +3834,7 @@ message Action {
3660
3834
  // Only a single instance of this action can be specified. This action is
3661
3835
  // allowed only if all resources being scanned are BigQuery tables.
3662
3836
  // Compatible with: Inspect
3663
- message PublishFindingsToCloudDataCatalog {
3664
-
3665
- }
3837
+ message PublishFindingsToCloudDataCatalog {}
3666
3838
 
3667
3839
  // Create a de-identified copy of the requested table or files.
3668
3840
  //
@@ -3690,13 +3862,15 @@ message Action {
3690
3862
  // of each transformation (see
3691
3863
  // [TransformationDetails][google.privacy.dlp.v2.TransformationDetails]
3692
3864
  // message for more information about what is noted).
3693
- TransformationDetailsStorageConfig transformation_details_storage_config = 3;
3865
+ TransformationDetailsStorageConfig transformation_details_storage_config =
3866
+ 3;
3694
3867
 
3695
3868
  oneof output {
3696
- // Required. User settable Cloud Storage bucket and folders to store de-identified
3697
- // files. This field must be set for cloud storage deidentification. The
3698
- // output Cloud Storage bucket must be different from the input bucket.
3699
- // De-identified files will overwrite files in the output path.
3869
+ // Required. User settable Cloud Storage bucket and folders to store
3870
+ // de-identified files. This field must be set for cloud storage
3871
+ // deidentification. The output Cloud Storage bucket must be different
3872
+ // from the input bucket. De-identified files will overwrite files in the
3873
+ // output path.
3700
3874
  //
3701
3875
  // Form of: gs://bucket/folder/ or gs://bucket
3702
3876
  string cloud_storage_output = 9 [(google.api.field_behavior) = REQUIRED];
@@ -3715,17 +3889,13 @@ message Action {
3715
3889
  // Sends an email when the job completes. The email goes to IAM project owners
3716
3890
  // and technical [Essential
3717
3891
  // Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).
3718
- message JobNotificationEmails {
3719
-
3720
- }
3892
+ message JobNotificationEmails {}
3721
3893
 
3722
3894
  // Enable Stackdriver metric dlp.googleapis.com/finding_count. This
3723
3895
  // will publish a metric to stack driver on each infotype requested and
3724
3896
  // how many findings were found for it. CustomDetectors will be bucketed
3725
3897
  // as 'Custom' under the Stackdriver label 'info_type'.
3726
- message PublishToStackdriver {
3727
-
3728
- }
3898
+ message PublishToStackdriver {}
3729
3899
 
3730
3900
  oneof action {
3731
3901
  // Save resulting findings in a provided location.
@@ -3738,7 +3908,8 @@ message Action {
3738
3908
  PublishSummaryToCscc publish_summary_to_cscc = 3;
3739
3909
 
3740
3910
  // Publish findings to Cloud Datahub.
3741
- PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog = 5;
3911
+ PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog =
3912
+ 5;
3742
3913
 
3743
3914
  // Create a de-identified copy of the input data.
3744
3915
  Deidentify deidentify = 7;
@@ -3825,8 +3996,8 @@ message CreateInspectTemplateRequest {
3825
3996
 
3826
3997
  // Request message for UpdateInspectTemplate.
3827
3998
  message UpdateInspectTemplateRequest {
3828
- // Required. Resource name of organization and inspectTemplate to be updated, for
3829
- // example `organizations/433245324/inspectTemplates/432452342` or
3999
+ // Required. Resource name of organization and inspectTemplate to be updated,
4000
+ // for example `organizations/433245324/inspectTemplates/432452342` or
3830
4001
  // projects/project-id/inspectTemplates/432452342.
3831
4002
  string name = 1 [
3832
4003
  (google.api.field_behavior) = REQUIRED,
@@ -3844,8 +4015,8 @@ message UpdateInspectTemplateRequest {
3844
4015
 
3845
4016
  // Request message for GetInspectTemplate.
3846
4017
  message GetInspectTemplateRequest {
3847
- // Required. Resource name of the organization and inspectTemplate to be read, for
3848
- // example `organizations/433245324/inspectTemplates/432452342` or
4018
+ // Required. Resource name of the organization and inspectTemplate to be read,
4019
+ // for example `organizations/433245324/inspectTemplates/432452342` or
3849
4020
  // projects/project-id/inspectTemplates/432452342.
3850
4021
  string name = 1 [
3851
4022
  (google.api.field_behavior) = REQUIRED,
@@ -3884,17 +4055,17 @@ message ListInspectTemplatesRequest {
3884
4055
  }
3885
4056
  ];
3886
4057
 
3887
- // Page token to continue retrieval. Comes from previous call
4058
+ // Page token to continue retrieval. Comes from the previous call
3888
4059
  // to `ListInspectTemplates`.
3889
4060
  string page_token = 2;
3890
4061
 
3891
- // Size of the page, can be limited by the server. If zero server returns
3892
- // a page of max size 100.
4062
+ // Size of the page. This value can be limited by the server. If zero server
4063
+ // returns a page of max size 100.
3893
4064
  int32 page_size = 3;
3894
4065
 
3895
4066
  // Comma separated list of fields to order by,
3896
- // followed by `asc` or `desc` postfix. This list is case-insensitive,
3897
- // default sorting order is ascending, redundant space characters are
4067
+ // followed by `asc` or `desc` postfix. This list is case insensitive. The
4068
+ // default sorting order is ascending. Redundant space characters are
3898
4069
  // insignificant.
3899
4070
  //
3900
4071
  // Example: `name asc,update_time, create_time desc`
@@ -3916,16 +4087,16 @@ message ListInspectTemplatesResponse {
3916
4087
  // List of inspectTemplates, up to page_size in ListInspectTemplatesRequest.
3917
4088
  repeated InspectTemplate inspect_templates = 1;
3918
4089
 
3919
- // If the next page is available then the next page token to be used
3920
- // in following ListInspectTemplates request.
4090
+ // If the next page is available then the next page token to be used in the
4091
+ // following ListInspectTemplates request.
3921
4092
  string next_page_token = 2;
3922
4093
  }
3923
4094
 
3924
4095
  // Request message for DeleteInspectTemplate.
3925
4096
  message DeleteInspectTemplateRequest {
3926
- // Required. Resource name of the organization and inspectTemplate to be deleted, for
3927
- // example `organizations/433245324/inspectTemplates/432452342` or
3928
- // projects/project-id/inspectTemplates/432452342.
4097
+ // Required. Resource name of the organization and inspectTemplate to be
4098
+ // deleted, for example `organizations/433245324/inspectTemplates/432452342`
4099
+ // or projects/project-id/inspectTemplates/432452342.
3929
4100
  string name = 1 [
3930
4101
  (google.api.field_behavior) = REQUIRED,
3931
4102
  (google.api.resource_reference) = {
@@ -3978,9 +4149,7 @@ message ActivateJobTriggerRequest {
3978
4149
  // `projects/dlp-test-project/jobTriggers/53234423`.
3979
4150
  string name = 1 [
3980
4151
  (google.api.field_behavior) = REQUIRED,
3981
- (google.api.resource_reference) = {
3982
- type: "dlp.googleapis.com/JobTrigger"
3983
- }
4152
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
3984
4153
  ];
3985
4154
  }
3986
4155
 
@@ -3990,9 +4159,7 @@ message UpdateJobTriggerRequest {
3990
4159
  // `projects/dlp-test-project/jobTriggers/53234423`.
3991
4160
  string name = 1 [
3992
4161
  (google.api.field_behavior) = REQUIRED,
3993
- (google.api.resource_reference) = {
3994
- type: "dlp.googleapis.com/JobTrigger"
3995
- }
4162
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
3996
4163
  ];
3997
4164
 
3998
4165
  // New JobTrigger value.
@@ -4006,10 +4173,131 @@ message UpdateJobTriggerRequest {
4006
4173
  message GetJobTriggerRequest {
4007
4174
  // Required. Resource name of the project and the triggeredJob, for example
4008
4175
  // `projects/dlp-test-project/jobTriggers/53234423`.
4176
+ string name = 1 [
4177
+ (google.api.field_behavior) = REQUIRED,
4178
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4179
+ ];
4180
+ }
4181
+
4182
+ // Request message for CreateDiscoveryConfig.
4183
+ message CreateDiscoveryConfigRequest {
4184
+ // Required. Parent resource name.
4185
+ //
4186
+ // The format of this value is as follows:
4187
+ // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4188
+ //
4189
+ // The following example `parent` string specifies a parent project with the
4190
+ // identifier `example-project`, and specifies the `europe-west3` location
4191
+ // for processing data:
4192
+ //
4193
+ // parent=projects/example-project/locations/europe-west3
4194
+ string parent = 1 [
4195
+ (google.api.field_behavior) = REQUIRED,
4196
+ (google.api.resource_reference) = {
4197
+ child_type: "dlp.googleapis.com/DiscoveryConfig"
4198
+ }
4199
+ ];
4200
+
4201
+ // Required. The DiscoveryConfig to create.
4202
+ DiscoveryConfig discovery_config = 2 [(google.api.field_behavior) = REQUIRED];
4203
+
4204
+ // The config ID can contain uppercase and lowercase letters,
4205
+ // numbers, and hyphens; that is, it must match the regular
4206
+ // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
4207
+ // characters. Can be empty to allow the system to generate one.
4208
+ string config_id = 3;
4209
+ }
4210
+
4211
+ // Request message for UpdateDiscoveryConfig.
4212
+ message UpdateDiscoveryConfigRequest {
4213
+ // Required. Resource name of the project and the configuration, for example
4214
+ // `projects/dlp-test-project/discoveryConfigs/53234423`.
4215
+ string name = 1 [
4216
+ (google.api.field_behavior) = REQUIRED,
4217
+ (google.api.resource_reference) = {
4218
+ type: "dlp.googleapis.com/DiscoveryConfig"
4219
+ }
4220
+ ];
4221
+
4222
+ // Required. New DiscoveryConfig value.
4223
+ DiscoveryConfig discovery_config = 2 [(google.api.field_behavior) = REQUIRED];
4224
+
4225
+ // Mask to control which fields get updated.
4226
+ google.protobuf.FieldMask update_mask = 3;
4227
+ }
4228
+
4229
+ // Request message for GetDiscoveryConfig.
4230
+ message GetDiscoveryConfigRequest {
4231
+ // Required. Resource name of the project and the configuration, for example
4232
+ // `projects/dlp-test-project/discoveryConfigs/53234423`.
4233
+ string name = 1 [
4234
+ (google.api.field_behavior) = REQUIRED,
4235
+ (google.api.resource_reference) = {
4236
+ type: "dlp.googleapis.com/DiscoveryConfig"
4237
+ }
4238
+ ];
4239
+ }
4240
+
4241
+ // Request message for ListDiscoveryConfigs.
4242
+ message ListDiscoveryConfigsRequest {
4243
+ // Required. Parent resource name.
4244
+ //
4245
+ // The format of this value is as follows:
4246
+ // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4247
+ //
4248
+ // The following example `parent` string specifies a parent project with the
4249
+ // identifier `example-project`, and specifies the `europe-west3` location
4250
+ // for processing data:
4251
+ //
4252
+ // parent=projects/example-project/locations/europe-west3
4253
+ string parent = 1 [
4254
+ (google.api.field_behavior) = REQUIRED,
4255
+ (google.api.resource_reference) = {
4256
+ child_type: "dlp.googleapis.com/DiscoveryConfig"
4257
+ }
4258
+ ];
4259
+
4260
+ // Page token to continue retrieval. Comes from the previous call
4261
+ // to ListDiscoveryConfigs. `order_by` field must not
4262
+ // change for subsequent calls.
4263
+ string page_token = 2;
4264
+
4265
+ // Size of the page. This value can be limited by a server.
4266
+ int32 page_size = 3;
4267
+
4268
+ // Comma separated list of config fields to order by,
4269
+ // followed by `asc` or `desc` postfix. This list is case insensitive. The
4270
+ // default sorting order is ascending. Redundant space characters are
4271
+ // insignificant.
4272
+ //
4273
+ // Example: `name asc,update_time, create_time desc`
4274
+ //
4275
+ // Supported fields are:
4276
+ //
4277
+ // - `last_run_time`: corresponds to the last time the DiscoveryConfig ran.
4278
+ // - `name`: corresponds to the DiscoveryConfig's name.
4279
+ // - `status`: corresponds to DiscoveryConfig's status.
4280
+ string order_by = 4;
4281
+ }
4282
+
4283
+ // Response message for ListDiscoveryConfigs.
4284
+ message ListDiscoveryConfigsResponse {
4285
+ // List of configs, up to page_size in ListDiscoveryConfigsRequest.
4286
+ repeated DiscoveryConfig discovery_configs = 1;
4287
+
4288
+ // If the next page is available then this value is the next page token to be
4289
+ // used in the following ListDiscoveryConfigs request.
4290
+ string next_page_token = 2;
4291
+ }
4292
+
4293
+ // Request message for DeleteDiscoveryConfig.
4294
+ message DeleteDiscoveryConfigRequest {
4295
+ // Required. Resource name of the project and the config, for example
4296
+ // `projects/dlp-test-project/discoveryConfigs/53234423`.
4009
4297
  string name = 1 [
4010
4298
  (google.api.field_behavior) = REQUIRED,
4011
4299
  (google.api.resource_reference) = {
4012
- type: "dlp.googleapis.com/JobTrigger"
4300
+ type: "dlp.googleapis.com/DiscoveryConfig"
4013
4301
  }
4014
4302
  ];
4015
4303
  }
@@ -4086,17 +4374,17 @@ message ListJobTriggersRequest {
4086
4374
  }
4087
4375
  ];
4088
4376
 
4089
- // Page token to continue retrieval. Comes from previous call
4377
+ // Page token to continue retrieval. Comes from the previous call
4090
4378
  // to ListJobTriggers. `order_by` field must not
4091
4379
  // change for subsequent calls.
4092
4380
  string page_token = 2;
4093
4381
 
4094
- // Size of the page, can be limited by a server.
4382
+ // Size of the page. This value can be limited by a server.
4095
4383
  int32 page_size = 3;
4096
4384
 
4097
4385
  // Comma separated list of triggeredJob fields to order by,
4098
- // followed by `asc` or `desc` postfix. This list is case-insensitive,
4099
- // default sorting order is ascending, redundant space characters are
4386
+ // followed by `asc` or `desc` postfix. This list is case insensitive. The
4387
+ // default sorting order is ascending. Redundant space characters are
4100
4388
  // insignificant.
4101
4389
  //
4102
4390
  // Example: `name asc,update_time, create_time desc`
@@ -4149,8 +4437,8 @@ message ListJobTriggersResponse {
4149
4437
  // List of triggeredJobs, up to page_size in ListJobTriggersRequest.
4150
4438
  repeated JobTrigger job_triggers = 1;
4151
4439
 
4152
- // If the next page is available then the next page token to be used
4153
- // in following ListJobTriggers request.
4440
+ // If the next page is available then this value is the next page token to be
4441
+ // used in the following ListJobTriggers request.
4154
4442
  string next_page_token = 2;
4155
4443
  }
4156
4444
 
@@ -4160,9 +4448,7 @@ message DeleteJobTriggerRequest {
4160
4448
  // `projects/dlp-test-project/jobTriggers/53234423`.
4161
4449
  string name = 1 [
4162
4450
  (google.api.field_behavior) = REQUIRED,
4163
- (google.api.resource_reference) = {
4164
- type: "dlp.googleapis.com/JobTrigger"
4165
- }
4451
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4166
4452
  ];
4167
4453
  }
4168
4454
 
@@ -4292,13 +4578,95 @@ message DataProfileJobConfig {
4292
4578
  // scanned.
4293
4579
  //
4294
4580
  // For more information, see
4295
- // https://cloud.google.com/dlp/docs/data-profiles#data_residency.
4581
+ // https://cloud.google.com/dlp/docs/data-profiles#data-residency.
4296
4582
  repeated string inspect_templates = 7;
4297
4583
 
4298
4584
  // Actions to execute at the completion of the job.
4299
4585
  repeated DataProfileAction data_profile_actions = 6;
4300
4586
  }
4301
4587
 
4588
+ // A pattern to match against one or more tables, datasets, or projects that
4589
+ // contain BigQuery tables. At least one pattern must be specified.
4590
+ // Regular expressions use RE2
4591
+ // [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
4592
+ // under the google/re2 repository on GitHub.
4593
+ message BigQueryRegex {
4594
+ // For organizations, if unset, will match all projects. Has no effect
4595
+ // for data profile configurations created within a project.
4596
+ string project_id_regex = 1;
4597
+
4598
+ // If unset, this property matches all datasets.
4599
+ string dataset_id_regex = 2;
4600
+
4601
+ // If unset, this property matches all tables.
4602
+ string table_id_regex = 3;
4603
+ }
4604
+
4605
+ // A collection of regular expressions to determine what tables to match
4606
+ // against.
4607
+ message BigQueryRegexes {
4608
+ // A single BigQuery regular expression pattern to match against one or more
4609
+ // tables, datasets, or projects that contain BigQuery tables.
4610
+ repeated BigQueryRegex patterns = 1;
4611
+ }
4612
+
4613
+ // The types of BigQuery tables supported by Cloud DLP.
4614
+ message BigQueryTableTypes {
4615
+ // A set of BigQuery table types.
4616
+ repeated BigQueryTableType types = 1;
4617
+ }
4618
+
4619
+ // Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW,
4620
+ // and SNAPSHOT are not supported.
4621
+ enum BigQueryTableTypeCollection {
4622
+ // Unused.
4623
+ BIG_QUERY_COLLECTION_UNSPECIFIED = 0;
4624
+
4625
+ // Automatically generate profiles for all tables, even if the table type is
4626
+ // not yet fully supported for analysis. Profiles for unsupported tables will
4627
+ // be generated with errors to indicate their partial support. When full
4628
+ // support is added, the tables will automatically be profiled during the next
4629
+ // scheduled run.
4630
+ BIG_QUERY_COLLECTION_ALL_TYPES = 1;
4631
+
4632
+ // Only those types fully supported will be profiled. Will expand
4633
+ // automatically as Cloud DLP adds support for new table types. Unsupported
4634
+ // table types will not have partial profiles generated.
4635
+ BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES = 2;
4636
+ }
4637
+
4638
+ // Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW,
4639
+ // SNAPSHOT, and non-BigLake external tables are not supported.
4640
+ enum BigQueryTableType {
4641
+ // Unused.
4642
+ BIG_QUERY_TABLE_TYPE_UNSPECIFIED = 0;
4643
+
4644
+ // A normal BigQuery table.
4645
+ BIG_QUERY_TABLE_TYPE_TABLE = 1;
4646
+
4647
+ // A table that references data stored in Cloud Storage.
4648
+ BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE = 2;
4649
+ }
4650
+
4651
+ // How frequently data profiles can be updated. New options can be added at a
4652
+ // later time.
4653
+ enum DataProfileUpdateFrequency {
4654
+ // Unspecified.
4655
+ UPDATE_FREQUENCY_UNSPECIFIED = 0;
4656
+
4657
+ // After the data profile is created, it will never be updated.
4658
+ UPDATE_FREQUENCY_NEVER = 1;
4659
+
4660
+ // The data profile can be updated up to once every 24 hours.
4661
+ UPDATE_FREQUENCY_DAILY = 2;
4662
+
4663
+ // The data profile can be updated up to once every 30 days. Default.
4664
+ UPDATE_FREQUENCY_MONTHLY = 4;
4665
+ }
4666
+
4667
+ // Do not profile the tables.
4668
+ message Disabled {}
4669
+
4302
4670
  // The data that will be profiled.
4303
4671
  message DataProfileLocation {
4304
4672
  // The location to be scanned.
@@ -4311,6 +4679,283 @@ message DataProfileLocation {
4311
4679
  }
4312
4680
  }
4313
4681
 
4682
+ // Configuration for discovery to scan resources for profile generation.
4683
+ // Only one discovery configuration may exist per organization, folder,
4684
+ // or project.
4685
+ //
4686
+ // The generated data profiles are retained according to the
4687
+ // [data retention policy]
4688
+ // (https://cloud.google.com/dlp/docs/data-profiles#retention).
4689
+ message DiscoveryConfig {
4690
+ option (google.api.resource) = {
4691
+ type: "dlp.googleapis.com/DiscoveryConfig"
4692
+ pattern: "projects/{project}/locations/{location}/discoveryConfigs/{discovery_config}"
4693
+ };
4694
+
4695
+ // Project and scan location information. Only set when the parent is an org.
4696
+ message OrgConfig {
4697
+ // The data to scan: folder, org, or project
4698
+ DiscoveryStartingLocation location = 1;
4699
+
4700
+ // The project that will run the scan. The DLP service
4701
+ // account that exists within this project must have access to all resources
4702
+ // that are profiled, and the Cloud DLP API must be enabled.
4703
+ string project_id = 2;
4704
+ }
4705
+
4706
+ // Whether the discovery config is currently active. New options may be added
4707
+ // at a later time.
4708
+ enum Status {
4709
+ // Unused
4710
+ STATUS_UNSPECIFIED = 0;
4711
+
4712
+ // The discovery config is currently active.
4713
+ RUNNING = 1;
4714
+
4715
+ // The discovery config is paused temporarily.
4716
+ PAUSED = 2;
4717
+ }
4718
+
4719
+ // Unique resource name for the DiscoveryConfig, assigned by the service when
4720
+ // the DiscoveryConfig is created, for example
4721
+ // `projects/dlp-test-project/locations/global/discoveryConfigs/53234423`.
4722
+ string name = 1;
4723
+
4724
+ // Display name (max 100 chars)
4725
+ string display_name = 11;
4726
+
4727
+ // Only set when the parent is an org.
4728
+ OrgConfig org_config = 2;
4729
+
4730
+ // Detection logic for profile generation.
4731
+ //
4732
+ // Not all template features are used by Discovery. FindingLimits,
4733
+ // include_quote and exclude_info_types have no impact on
4734
+ // Discovery.
4735
+ //
4736
+ // Multiple templates may be provided if there is data in multiple regions.
4737
+ // At most one template must be specified per-region (including "global").
4738
+ // Each region is scanned using the applicable template. If no region-specific
4739
+ // template is specified, but a "global" template is specified, it will be
4740
+ // copied to that region and used instead. If no global or region-specific
4741
+ // template is provided for a region with data, that region's data will not be
4742
+ // scanned.
4743
+ //
4744
+ // For more information, see
4745
+ // https://cloud.google.com/dlp/docs/data-profiles#data-residency.
4746
+ repeated string inspect_templates = 3;
4747
+
4748
+ // Actions to execute at the completion of scanning.
4749
+ repeated DataProfileAction actions = 4;
4750
+
4751
+ // Target to match against for determining what to scan and how frequently.
4752
+ repeated DiscoveryTarget targets = 5;
4753
+
4754
+ // Output only. A stream of errors encountered when the config was activated.
4755
+ // Repeated errors may result in the config automatically being paused. Output
4756
+ // only field. Will return the last 100 errors. Whenever the config is
4757
+ // modified this list will be cleared.
4758
+ repeated Error errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
4759
+
4760
+ // Output only. The creation timestamp of a DiscoveryConfig.
4761
+ google.protobuf.Timestamp create_time = 7
4762
+ [(google.api.field_behavior) = OUTPUT_ONLY];
4763
+
4764
+ // Output only. The last update timestamp of a DiscoveryConfig.
4765
+ google.protobuf.Timestamp update_time = 8
4766
+ [(google.api.field_behavior) = OUTPUT_ONLY];
4767
+
4768
+ // Output only. The timestamp of the last time this config was executed.
4769
+ google.protobuf.Timestamp last_run_time = 9
4770
+ [(google.api.field_behavior) = OUTPUT_ONLY];
4771
+
4772
+ // Required. A status for this configuration.
4773
+ Status status = 10 [(google.api.field_behavior) = REQUIRED];
4774
+ }
4775
+
4776
+ // Target used to match against for Discovery.
4777
+ message DiscoveryTarget {
4778
+ // A target to match against for Discovery.
4779
+ oneof target {
4780
+ // BigQuery target for Discovery. The first target to match a table will be
4781
+ // the one applied.
4782
+ BigQueryDiscoveryTarget big_query_target = 1;
4783
+ }
4784
+ }
4785
+
4786
+ // Target used to match against for discovery with BigQuery tables
4787
+ message BigQueryDiscoveryTarget {
4788
+ // Required. The tables the discovery cadence applies to. The first target
4789
+ // with a matching filter will be the one to apply to a table.
4790
+ DiscoveryBigQueryFilter filter = 1 [(google.api.field_behavior) = REQUIRED];
4791
+
4792
+ // In addition to matching the filter, these conditions must be true
4793
+ // before a profile is generated.
4794
+ DiscoveryBigQueryConditions conditions = 2;
4795
+
4796
+ // The generation rule includes the logic on how frequently
4797
+ // to update the data profiles. If not specified, discovery will re-run and
4798
+ // update no more than once a month if new columns appear in the table.
4799
+ oneof frequency {
4800
+ // How often and when to update profiles. New tables that match both the
4801
+ // filter and conditions are scanned as quickly as possible depending on
4802
+ // system capacity.
4803
+ DiscoveryGenerationCadence cadence = 3;
4804
+
4805
+ // Tables that match this filter will not have profiles created.
4806
+ Disabled disabled = 4;
4807
+ }
4808
+ }
4809
+
4810
+ // Determines what tables will have profiles generated within an organization
4811
+ // or project. Includes the ability to filter by regular expression patterns
4812
+ // on project ID, dataset ID, and table ID.
4813
+ message DiscoveryBigQueryFilter {
4814
+ // Catch-all for all other tables not specified by other filters. Should
4815
+ // always be last, except for single-table configurations, which will only
4816
+ // have a TableReference target.
4817
+ message AllOtherBigQueryTables {}
4818
+
4819
+ // Whether the filter applies to a specific set of tables or all other tables
4820
+ // within the location being profiled. The first filter to match will be
4821
+ // applied, regardless of the condition. If none is set, will default to
4822
+ // `other_tables`.
4823
+ oneof filter {
4824
+ // A specific set of tables for this filter to apply to. A table collection
4825
+ // must be specified in only one filter per config.
4826
+ // If a table id or dataset is empty, Cloud DLP assumes all tables in that
4827
+ // collection must be profiled. Must specify a project ID.
4828
+ BigQueryTableCollection tables = 1;
4829
+
4830
+ // Catch-all. This should always be the last filter in the list because
4831
+ // anything above it will apply first. Should only appear once in a
4832
+ // configuration. If none is specified, a default one will be added
4833
+ // automatically.
4834
+ AllOtherBigQueryTables other_tables = 2;
4835
+ }
4836
+ }
4837
+
4838
+ // Specifies a collection of BigQuery tables. Used for Discovery.
4839
+ message BigQueryTableCollection {
4840
+ // Maximum of 100 entries.
4841
+ // The first filter containing a pattern that matches a table will be used.
4842
+ oneof pattern {
4843
+ // A collection of regular expressions to match a BigQuery table against.
4844
+ BigQueryRegexes include_regexes = 1;
4845
+ }
4846
+ }
4847
+
4848
+ // Requirements that must be true before a table is scanned in discovery for the
4849
+ // first time. There is an AND relationship between the top-level attributes.
4850
+ // Additionally, minimum conditions with an OR relationship that must be met
4851
+ // before Cloud DLP scans a table can be set (like a minimum row count or a
4852
+ // minimum table age).
4853
+ message DiscoveryBigQueryConditions {
4854
+ // There is an OR relationship between these attributes. They are used to
4855
+ // determine if a table should be scanned or not in Discovery.
4856
+ message OrConditions {
4857
+ // Minimum number of rows that should be present before Cloud DLP
4858
+ // profiles a table
4859
+ int32 min_row_count = 1;
4860
+
4861
+ // Minimum age a table must have before Cloud DLP can profile it. Value must
4862
+ // be 1 hour or greater.
4863
+ google.protobuf.Duration min_age = 2;
4864
+ }
4865
+
4866
+ // BigQuery table must have been created after this date. Used to avoid
4867
+ // backfilling.
4868
+ google.protobuf.Timestamp created_after = 1;
4869
+
4870
+ // The type of BigQuery tables to scan. If nothing is set the default
4871
+ // behavior is to scan only tables of type TABLE and to give errors
4872
+ // for all unsupported tables.
4873
+ oneof included_types {
4874
+ // Restrict discovery to specific table types.
4875
+ BigQueryTableTypes types = 2;
4876
+
4877
+ // Restrict discovery to categories of table types.
4878
+ BigQueryTableTypeCollection type_collection = 3;
4879
+ }
4880
+
4881
+ // At least one of the conditions must be true for a table to be scanned.
4882
+ OrConditions or_conditions = 4;
4883
+ }
4884
+
4885
+ // What must take place for a profile to be updated and how
4886
+ // frequently it should occur.
4887
+ // New tables are scanned as quickly as possible depending on system
4888
+ // capacity.
4889
+ message DiscoveryGenerationCadence {
4890
+ // Governs when to update data profiles when a schema is modified.
4891
+ DiscoverySchemaModifiedCadence schema_modified_cadence = 1;
4892
+
4893
+ // Governs when to update data profiles when a table is modified.
4894
+ DiscoveryTableModifiedCadence table_modified_cadence = 2;
4895
+ }
4896
+
4897
+ // The cadence at which to update data profiles when a table is modified.
4898
+ message DiscoveryTableModifiedCadence {
4899
+ // The type of events to consider when deciding if the table has been
4900
+ // modified and should have the profile updated. Defaults to
4901
+ // MODIFIED_TIMESTAMP.
4902
+ repeated BigQueryTableModification types = 1;
4903
+
4904
+ // How frequently data profiles can be updated when tables are modified.
4905
+ // Defaults to never.
4906
+ DataProfileUpdateFrequency frequency = 2;
4907
+ }
4908
+
4909
+ // Attributes evaluated to determine if a table has been modified. New values
4910
+ // may be added at a later time.
4911
+ enum BigQueryTableModification {
4912
+ // Unused.
4913
+ TABLE_MODIFICATION_UNSPECIFIED = 0;
4914
+
4915
+ // A table will be considered modified when the last_modified_time from
4916
+ // BigQuery has been updated.
4917
+ TABLE_MODIFIED_TIMESTAMP = 1;
4918
+ }
4919
+
4920
+ // The cadence at which to update data profiles when a schema is modified.
4921
+ message DiscoverySchemaModifiedCadence {
4922
+ // The type of events to consider when deciding if the table's schema
4923
+ // has been modified and should have the profile updated. Defaults to
4924
+ // NEW_COLUMNS.
4925
+ repeated BigQuerySchemaModification types = 1;
4926
+
4927
+ // How frequently profiles may be updated when schemas are
4928
+ // modified. Defaults to monthly.
4929
+ DataProfileUpdateFrequency frequency = 2;
4930
+ }
4931
+
4932
+ // Attributes evaluated to determine if a schema has been modified. New values
4933
+ // may be added at a later time.
4934
+ enum BigQuerySchemaModification {
4935
+ // Unused
4936
+ SCHEMA_MODIFICATION_UNSPECIFIED = 0;
4937
+
4938
+ // Profiles should be regenerated when new columns are added to the table.
4939
+ // Default.
4940
+ SCHEMA_NEW_COLUMNS = 1;
4941
+
4942
+ // Profiles should be regenerated when columns are removed from the table.
4943
+ SCHEMA_REMOVED_COLUMNS = 2;
4944
+ }
4945
+
4946
+ // The location to begin a discovery scan. Denotes an organization ID or folder
4947
+ // ID within an organization.
4948
+ message DiscoveryStartingLocation {
4949
+ // The location to be scanned.
4950
+ oneof location {
4951
+ // The ID of an organization to scan.
4952
+ int64 organization_id = 1;
4953
+
4954
+ // The ID of the Folder within an organization to scan.
4955
+ int64 folder_id = 2;
4956
+ }
4957
+ }
4958
+
4314
4959
  // Combines all of the information about a DLP job.
4315
4960
  message DlpJob {
4316
4961
  option (google.api.resource) = {
@@ -4373,12 +5018,18 @@ message DlpJob {
4373
5018
  // Time when the job finished.
4374
5019
  google.protobuf.Timestamp end_time = 8;
4375
5020
 
5021
+ // Time when the job was last modified by the system.
5022
+ google.protobuf.Timestamp last_modified = 15;
5023
+
4376
5024
  // If created by a job trigger, the resource name of the trigger that
4377
5025
  // instantiated the job.
4378
5026
  string job_trigger_name = 10;
4379
5027
 
4380
5028
  // A stream of errors encountered running the job.
4381
5029
  repeated Error errors = 11;
5030
+
5031
+ // Events that should occur after the job has completed.
5032
+ repeated ActionDetails action_details = 12;
4382
5033
  }
4383
5034
 
4384
5035
  // The request message for [DlpJobs.GetDlpJob][].
@@ -4386,9 +5037,7 @@ message GetDlpJobRequest {
4386
5037
  // Required. The name of the DlpJob resource.
4387
5038
  string name = 1 [
4388
5039
  (google.api.field_behavior) = REQUIRED,
4389
- (google.api.resource_reference) = {
4390
- type: "dlp.googleapis.com/DlpJob"
4391
- }
5040
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
4392
5041
  ];
4393
5042
  }
4394
5043
 
@@ -4457,8 +5106,8 @@ message ListDlpJobsRequest {
4457
5106
  DlpJobType type = 5;
4458
5107
 
4459
5108
  // Comma separated list of fields to order by,
4460
- // followed by `asc` or `desc` postfix. This list is case-insensitive,
4461
- // default sorting order is ascending, redundant space characters are
5109
+ // followed by `asc` or `desc` postfix. This list is case insensitive. The
5110
+ // default sorting order is ascending. Redundant space characters are
4462
5111
  // insignificant.
4463
5112
  //
4464
5113
  // Example: `name asc, end_time asc, create_time desc`
@@ -4489,9 +5138,7 @@ message CancelDlpJobRequest {
4489
5138
  // Required. The name of the DlpJob resource to be cancelled.
4490
5139
  string name = 1 [
4491
5140
  (google.api.field_behavior) = REQUIRED,
4492
- (google.api.resource_reference) = {
4493
- type: "dlp.googleapis.com/DlpJob"
4494
- }
5141
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
4495
5142
  ];
4496
5143
  }
4497
5144
 
@@ -4500,9 +5147,7 @@ message FinishDlpJobRequest {
4500
5147
  // Required. The name of the DlpJob resource to be cancelled.
4501
5148
  string name = 1 [
4502
5149
  (google.api.field_behavior) = REQUIRED,
4503
- (google.api.resource_reference) = {
4504
- type: "dlp.googleapis.com/DlpJob"
4505
- }
5150
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
4506
5151
  ];
4507
5152
  }
4508
5153
 
@@ -4511,9 +5156,7 @@ message DeleteDlpJobRequest {
4511
5156
  // Required. The name of the DlpJob resource to be deleted.
4512
5157
  string name = 1 [
4513
5158
  (google.api.field_behavior) = REQUIRED,
4514
- (google.api.resource_reference) = {
4515
- type: "dlp.googleapis.com/DlpJob"
4516
- }
5159
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
4517
5160
  ];
4518
5161
  }
4519
5162
 
@@ -4547,7 +5190,8 @@ message CreateDeidentifyTemplateRequest {
4547
5190
  ];
4548
5191
 
4549
5192
  // Required. The DeidentifyTemplate to create.
4550
- DeidentifyTemplate deidentify_template = 2 [(google.api.field_behavior) = REQUIRED];
5193
+ DeidentifyTemplate deidentify_template = 2
5194
+ [(google.api.field_behavior) = REQUIRED];
4551
5195
 
4552
5196
  // The template id can contain uppercase and lowercase letters,
4553
5197
  // numbers, and hyphens; that is, it must match the regular
@@ -4561,8 +5205,9 @@ message CreateDeidentifyTemplateRequest {
4561
5205
 
4562
5206
  // Request message for UpdateDeidentifyTemplate.
4563
5207
  message UpdateDeidentifyTemplateRequest {
4564
- // Required. Resource name of organization and deidentify template to be updated, for
4565
- // example `organizations/433245324/deidentifyTemplates/432452342` or
5208
+ // Required. Resource name of organization and deidentify template to be
5209
+ // updated, for example
5210
+ // `organizations/433245324/deidentifyTemplates/432452342` or
4566
5211
  // projects/project-id/deidentifyTemplates/432452342.
4567
5212
  string name = 1 [
4568
5213
  (google.api.field_behavior) = REQUIRED,
@@ -4580,9 +5225,9 @@ message UpdateDeidentifyTemplateRequest {
4580
5225
 
4581
5226
  // Request message for GetDeidentifyTemplate.
4582
5227
  message GetDeidentifyTemplateRequest {
4583
- // Required. Resource name of the organization and deidentify template to be read, for
4584
- // example `organizations/433245324/deidentifyTemplates/432452342` or
4585
- // projects/project-id/deidentifyTemplates/432452342.
5228
+ // Required. Resource name of the organization and deidentify template to be
5229
+ // read, for example `organizations/433245324/deidentifyTemplates/432452342`
5230
+ // or projects/project-id/deidentifyTemplates/432452342.
4586
5231
  string name = 1 [
4587
5232
  (google.api.field_behavior) = REQUIRED,
4588
5233
  (google.api.resource_reference) = {
@@ -4620,17 +5265,17 @@ message ListDeidentifyTemplatesRequest {
4620
5265
  }
4621
5266
  ];
4622
5267
 
4623
- // Page token to continue retrieval. Comes from previous call
5268
+ // Page token to continue retrieval. Comes from the previous call
4624
5269
  // to `ListDeidentifyTemplates`.
4625
5270
  string page_token = 2;
4626
5271
 
4627
- // Size of the page, can be limited by the server. If zero server returns
4628
- // a page of max size 100.
5272
+ // Size of the page. This value can be limited by the server. If zero server
5273
+ // returns a page of max size 100.
4629
5274
  int32 page_size = 3;
4630
5275
 
4631
5276
  // Comma separated list of fields to order by,
4632
- // followed by `asc` or `desc` postfix. This list is case-insensitive,
4633
- // default sorting order is ascending, redundant space characters are
5277
+ // followed by `asc` or `desc` postfix. This list is case insensitive. The
5278
+ // default sorting order is ascending. Redundant space characters are
4634
5279
  // insignificant.
4635
5280
  //
4636
5281
  // Example: `name asc,update_time, create_time desc`
@@ -4653,15 +5298,16 @@ message ListDeidentifyTemplatesResponse {
4653
5298
  // ListDeidentifyTemplatesRequest.
4654
5299
  repeated DeidentifyTemplate deidentify_templates = 1;
4655
5300
 
4656
- // If the next page is available then the next page token to be used
4657
- // in following ListDeidentifyTemplates request.
5301
+ // If the next page is available then the next page token to be used in the
5302
+ // following ListDeidentifyTemplates request.
4658
5303
  string next_page_token = 2;
4659
5304
  }
4660
5305
 
4661
5306
  // Request message for DeleteDeidentifyTemplate.
4662
5307
  message DeleteDeidentifyTemplateRequest {
4663
- // Required. Resource name of the organization and deidentify template to be deleted,
4664
- // for example `organizations/433245324/deidentifyTemplates/432452342` or
5308
+ // Required. Resource name of the organization and deidentify template to be
5309
+ // deleted, for example
5310
+ // `organizations/433245324/deidentifyTemplates/432452342` or
4665
5311
  // projects/project-id/deidentifyTemplates/432452342.
4666
5312
  string name = 1 [
4667
5313
  (google.api.field_behavior) = REQUIRED,
@@ -4830,8 +5476,8 @@ message CreateStoredInfoTypeRequest {
4830
5476
 
4831
5477
  // Request message for UpdateStoredInfoType.
4832
5478
  message UpdateStoredInfoTypeRequest {
4833
- // Required. Resource name of organization and storedInfoType to be updated, for
4834
- // example `organizations/433245324/storedInfoTypes/432452342` or
5479
+ // Required. Resource name of organization and storedInfoType to be updated,
5480
+ // for example `organizations/433245324/storedInfoTypes/432452342` or
4835
5481
  // projects/project-id/storedInfoTypes/432452342.
4836
5482
  string name = 1 [
4837
5483
  (google.api.field_behavior) = REQUIRED,
@@ -4851,8 +5497,8 @@ message UpdateStoredInfoTypeRequest {
4851
5497
 
4852
5498
  // Request message for GetStoredInfoType.
4853
5499
  message GetStoredInfoTypeRequest {
4854
- // Required. Resource name of the organization and storedInfoType to be read, for
4855
- // example `organizations/433245324/storedInfoTypes/432452342` or
5500
+ // Required. Resource name of the organization and storedInfoType to be read,
5501
+ // for example `organizations/433245324/storedInfoTypes/432452342` or
4856
5502
  // projects/project-id/storedInfoTypes/432452342.
4857
5503
  string name = 1 [
4858
5504
  (google.api.field_behavior) = REQUIRED,
@@ -4887,17 +5533,17 @@ message ListStoredInfoTypesRequest {
4887
5533
  }
4888
5534
  ];
4889
5535
 
4890
- // Page token to continue retrieval. Comes from previous call
5536
+ // Page token to continue retrieval. Comes from the previous call
4891
5537
  // to `ListStoredInfoTypes`.
4892
5538
  string page_token = 2;
4893
5539
 
4894
- // Size of the page, can be limited by the server. If zero server returns
4895
- // a page of max size 100.
5540
+ // Size of the page. This value can be limited by the server. If zero server
5541
+ // returns a page of max size 100.
4896
5542
  int32 page_size = 3;
4897
5543
 
4898
5544
  // Comma separated list of fields to order by,
4899
- // followed by `asc` or `desc` postfix. This list is case-insensitive,
4900
- // default sorting order is ascending, redundant space characters are
5545
+ // followed by `asc` or `desc` postfix. This list is case insensitive. The
5546
+ // default sorting order is ascending. Redundant space characters are
4901
5547
  // insignificant.
4902
5548
  //
4903
5549
  // Example: `name asc, display_name, create_time desc`
@@ -4921,14 +5567,14 @@ message ListStoredInfoTypesResponse {
4921
5567
  repeated StoredInfoType stored_info_types = 1;
4922
5568
 
4923
5569
  // If the next page is available then the next page token to be used
4924
- // in following ListStoredInfoTypes request.
5570
+ // in the following ListStoredInfoTypes request.
4925
5571
  string next_page_token = 2;
4926
5572
  }
4927
5573
 
4928
5574
  // Request message for DeleteStoredInfoType.
4929
5575
  message DeleteStoredInfoTypeRequest {
4930
- // Required. Resource name of the organization and storedInfoType to be deleted, for
4931
- // example `organizations/433245324/storedInfoTypes/432452342` or
5576
+ // Required. Resource name of the organization and storedInfoType to be
5577
+ // deleted, for example `organizations/433245324/storedInfoTypes/432452342` or
4932
5578
  // projects/project-id/storedInfoTypes/432452342.
4933
5579
  string name = 1 [
4934
5580
  (google.api.field_behavior) = REQUIRED,
@@ -4940,13 +5586,11 @@ message DeleteStoredInfoTypeRequest {
4940
5586
 
4941
5587
  // Request to search for potentially sensitive info in a custom location.
4942
5588
  message HybridInspectJobTriggerRequest {
4943
- // Required. Resource name of the trigger to execute a hybrid inspect on, for example
4944
- // `projects/dlp-test-project/jobTriggers/53234423`.
5589
+ // Required. Resource name of the trigger to execute a hybrid inspect on, for
5590
+ // example `projects/dlp-test-project/jobTriggers/53234423`.
4945
5591
  string name = 1 [
4946
5592
  (google.api.field_behavior) = REQUIRED,
4947
- (google.api.resource_reference) = {
4948
- type: "dlp.googleapis.com/JobTrigger"
4949
- }
5593
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4950
5594
  ];
4951
5595
 
4952
5596
  // The item to inspect.
@@ -4955,13 +5599,11 @@ message HybridInspectJobTriggerRequest {
4955
5599
 
4956
5600
  // Request to search for potentially sensitive info in a custom location.
4957
5601
  message HybridInspectDlpJobRequest {
4958
- // Required. Resource name of the job to execute a hybrid inspect on, for example
4959
- // `projects/dlp-test-project/dlpJob/53234423`.
5602
+ // Required. Resource name of the job to execute a hybrid inspect on, for
5603
+ // example `projects/dlp-test-project/dlpJob/53234423`.
4960
5604
  string name = 1 [
4961
5605
  (google.api.field_behavior) = REQUIRED,
4962
- (google.api.resource_reference) = {
4963
- type: "dlp.googleapis.com/DlpJob"
4964
- }
5606
+ (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
4965
5607
  ];
4966
5608
 
4967
5609
  // The item to inspect.
@@ -5021,9 +5663,7 @@ message HybridFindingDetails {
5021
5663
  }
5022
5664
 
5023
5665
  // Quota exceeded errors will be thrown once quota has been met.
5024
- message HybridInspectResponse {
5025
-
5026
- }
5666
+ message HybridInspectResponse {}
5027
5667
 
5028
5668
  // Operators available for comparing the value of fields.
5029
5669
  enum RelationalOperator {
@@ -5221,7 +5861,7 @@ message TableDataProfile {
5221
5861
  // The resource name to the project data profile for this table.
5222
5862
  string project_data_profile = 2;
5223
5863
 
5224
- // The GCP project ID that owns the BigQuery dataset.
5864
+ // The Google Cloud project ID that owns the BigQuery dataset.
5225
5865
  string dataset_project_id = 24;
5226
5866
 
5227
5867
  // The BigQuery location where the dataset's data is stored.
@@ -5297,7 +5937,8 @@ message TableDataProfile {
5297
5937
  }
5298
5938
 
5299
5939
  message ProfileStatus {
5300
- // Profiling status code and optional message
5940
+ // Profiling status code and optional message. The `status.code` value is 0
5941
+ // (default value) for OK.
5301
5942
  google.rpc.Status status = 1;
5302
5943
 
5303
5944
  // Time when the profile generation status was updated
@@ -5333,6 +5974,191 @@ message OtherInfoTypeSummary {
5333
5974
  // Approximate percentage of non-null rows that contained data detected by
5334
5975
  // this infotype.
5335
5976
  int32 estimated_prevalence = 2;
5977
+
5978
+ // Whether this infoType was excluded from sensitivity and risk analysis due
5979
+ // to factors such as low prevalence (subject to change).
5980
+ bool excluded_from_analysis = 3;
5981
+ }
5982
+
5983
+ // Bucketized nullness percentage levels. A higher level means a higher
5984
+ // percentage of the column is null.
5985
+ enum NullPercentageLevel {
5986
+ // Unused.
5987
+ NULL_PERCENTAGE_LEVEL_UNSPECIFIED = 0;
5988
+
5989
+ // Very few null entries.
5990
+ NULL_PERCENTAGE_VERY_LOW = 1;
5991
+
5992
+ // Some null entries.
5993
+ NULL_PERCENTAGE_LOW = 2;
5994
+
5995
+ NULL_PERCENTAGE_MEDIUM = 3;
5996
+
5997
+ // A lot of null entries.
5998
+ NULL_PERCENTAGE_HIGH = 4;
5999
+ }
6000
+
6001
+ // Bucketized uniqueness score levels. A higher uniqueness score is a strong
6002
+ // signal that the column may contain a unique identifier like user id. A low
6003
+ // value indicates that the column contains few unique values like booleans or
6004
+ // other classifiers.
6005
+ enum UniquenessScoreLevel {
6006
+ // Some columns do not have estimated uniqueness. Possible reasons include
6007
+ // having too few values.
6008
+ UNIQUENESS_SCORE_LEVEL_UNSPECIFIED = 0;
6009
+
6010
+ // Low uniqueness, possibly a boolean, enum or similiarly typed column.
6011
+ UNIQUENESS_SCORE_LOW = 1;
6012
+
6013
+ // Medium uniqueness.
6014
+ UNIQUENESS_SCORE_MEDIUM = 2;
6015
+
6016
+ // High uniqueness, possibly a column of free text or unique identifiers.
6017
+ UNIQUENESS_SCORE_HIGH = 3;
6018
+ }
6019
+
6020
+ // The profile for a scanned column within a table.
6021
+ message ColumnDataProfile {
6022
+ // Possible states of a profile. New items may be added.
6023
+ enum State {
6024
+ // Unused.
6025
+ STATE_UNSPECIFIED = 0;
6026
+
6027
+ // The profile is currently running. Once a profile has finished it will
6028
+ // transition to DONE.
6029
+ RUNNING = 1;
6030
+
6031
+ // The profile is no longer generating.
6032
+ // If profile_status.status.code is 0, the profile succeeded, otherwise, it
6033
+ // failed.
6034
+ DONE = 2;
6035
+ }
6036
+
6037
+ // Data types of the data in a column. Types may be added over time.
6038
+ enum ColumnDataType {
6039
+ // Invalid type.
6040
+ COLUMN_DATA_TYPE_UNSPECIFIED = 0;
6041
+
6042
+ // Encoded as a string in decimal format.
6043
+ TYPE_INT64 = 1;
6044
+
6045
+ // Encoded as a boolean "false" or "true".
6046
+ TYPE_BOOL = 2;
6047
+
6048
+ // Encoded as a number, or string "NaN", "Infinity" or "-Infinity".
6049
+ TYPE_FLOAT64 = 3;
6050
+
6051
+ // Encoded as a string value.
6052
+ TYPE_STRING = 4;
6053
+
6054
+ // Encoded as a base64 string per RFC 4648, section 4.
6055
+ TYPE_BYTES = 5;
6056
+
6057
+ // Encoded as an RFC 3339 timestamp with mandatory "Z" time zone string:
6058
+ // 1985-04-12T23:20:50.52Z
6059
+ TYPE_TIMESTAMP = 6;
6060
+
6061
+ // Encoded as RFC 3339 full-date format string: 1985-04-12
6062
+ TYPE_DATE = 7;
6063
+
6064
+ // Encoded as RFC 3339 partial-time format string: 23:20:50.52
6065
+ TYPE_TIME = 8;
6066
+
6067
+ // Encoded as RFC 3339 full-date "T" partial-time: 1985-04-12T23:20:50.52
6068
+ TYPE_DATETIME = 9;
6069
+
6070
+ // Encoded as WKT
6071
+ TYPE_GEOGRAPHY = 10;
6072
+
6073
+ // Encoded as a decimal string.
6074
+ TYPE_NUMERIC = 11;
6075
+
6076
+ // Container of ordered fields, each with a type and field name.
6077
+ TYPE_RECORD = 12;
6078
+
6079
+ // Decimal type.
6080
+ TYPE_BIGNUMERIC = 13;
6081
+
6082
+ // Json type.
6083
+ TYPE_JSON = 14;
6084
+ }
6085
+
6086
+ // The possible policy states for a column.
6087
+ enum ColumnPolicyState {
6088
+ // No policy tags.
6089
+ COLUMN_POLICY_STATE_UNSPECIFIED = 0;
6090
+
6091
+ // Column has policy tag applied.
6092
+ COLUMN_POLICY_TAGGED = 1;
6093
+ }
6094
+
6095
+ // The name of the profile.
6096
+ string name = 1;
6097
+
6098
+ // Success or error status from the most recent profile generation attempt.
6099
+ // May be empty if the profile is still being generated.
6100
+ ProfileStatus profile_status = 17;
6101
+
6102
+ // State of a profile.
6103
+ State state = 18;
6104
+
6105
+ // The last time the profile was generated.
6106
+ google.protobuf.Timestamp profile_last_generated = 3;
6107
+
6108
+ // The resource name of the table data profile.
6109
+ string table_data_profile = 4;
6110
+
6111
+ // The resource name of the table this column is within.
6112
+ string table_full_resource = 5;
6113
+
6114
+ // The Google Cloud project ID that owns the BigQuery dataset.
6115
+ string dataset_project_id = 19;
6116
+
6117
+ // The BigQuery location where the dataset's data is stored.
6118
+ // See https://cloud.google.com/bigquery/docs/locations for supported
6119
+ // locations.
6120
+ string dataset_location = 20;
6121
+
6122
+ // The BigQuery dataset ID.
6123
+ string dataset_id = 21;
6124
+
6125
+ // The BigQuery table ID.
6126
+ string table_id = 22;
6127
+
6128
+ // The name of the column.
6129
+ string column = 6;
6130
+
6131
+ // The sensitivity of this column.
6132
+ SensitivityScore sensitivity_score = 7;
6133
+
6134
+ // The data risk level for this column.
6135
+ DataRiskLevel data_risk_level = 8;
6136
+
6137
+ // If it's been determined this column can be identified as a single type,
6138
+ // this will be set. Otherwise the column either has unidentifiable content
6139
+ // or mixed types.
6140
+ InfoTypeSummary column_info_type = 9;
6141
+
6142
+ // Other types found within this column. List will be unordered.
6143
+ repeated OtherInfoTypeSummary other_matches = 10;
6144
+
6145
+ // Approximate percentage of entries being null in the column.
6146
+ NullPercentageLevel estimated_null_percentage = 23;
6147
+
6148
+ // Approximate uniqueness of the column.
6149
+ UniquenessScoreLevel estimated_uniqueness_score = 24;
6150
+
6151
+ // The likelihood that this column contains free-form text.
6152
+ // A value close to 1 may indicate the column is likely to contain
6153
+ // free-form or natural language text.
6154
+ // Range in 0-1.
6155
+ double free_text_score = 13;
6156
+
6157
+ // The data type of a given column.
6158
+ ColumnDataType column_type = 14;
6159
+
6160
+ // Indicates if a policy tag has been applied to the column.
6161
+ ColumnPolicyState policy_state = 15;
5336
6162
  }
5337
6163
 
5338
6164
  // A condition for determining whether a Pub/Sub should be triggered.