@google-cloud/dlp 4.1.1 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -133,7 +133,7 @@ service DlpService {
133
133
  };
134
134
  }
135
135
 
136
- // Returns a list of the sensitive information types that the DLP API
136
+ // Returns a list of the sensitive information types that DLP API
137
137
  // supports. See https://cloud.google.com/dlp/docs/infotypes-reference to
138
138
  // learn more.
139
139
  rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) {
@@ -146,7 +146,7 @@ service DlpService {
146
146
  option (google.api.method_signature) = "parent";
147
147
  }
148
148
 
149
- // Creates an InspectTemplate for re-using frequently used configuration
149
+ // Creates an InspectTemplate for reusing frequently used configuration
150
150
  // for inspecting content, images, and storage.
151
151
  // See https://cloud.google.com/dlp/docs/creating-templates to learn more.
152
152
  rpc CreateInspectTemplate(CreateInspectTemplateRequest) returns (InspectTemplate) {
@@ -245,7 +245,7 @@ service DlpService {
245
245
  option (google.api.method_signature) = "name";
246
246
  }
247
247
 
248
- // Creates a DeidentifyTemplate for re-using frequently used configuration
248
+ // Creates a DeidentifyTemplate for reusing frequently used configuration
249
249
  // for de-identifying content, images, and storage.
250
250
  // See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
251
251
  // more.
@@ -505,7 +505,7 @@ service DlpService {
505
505
  }
506
506
 
507
507
  // Deletes a long-running DlpJob. This method indicates that the client is
508
- // no longer interested in the DlpJob result. The job will be cancelled if
508
+ // no longer interested in the DlpJob result. The job will be canceled if
509
509
  // possible.
510
510
  // See https://cloud.google.com/dlp/docs/inspecting-storage and
511
511
  // https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
@@ -660,7 +660,7 @@ service DlpService {
660
660
  }
661
661
  }
662
662
 
663
- // List of exclude infoTypes.
663
+ // List of excluded infoTypes.
664
664
  message ExcludeInfoTypes {
665
665
  // InfoType list in ExclusionRule rule drops a finding when it overlaps or
666
666
  // contained within with a finding of an infoType from this list. For
@@ -673,6 +673,20 @@ message ExcludeInfoTypes {
673
673
  repeated InfoType info_types = 1;
674
674
  }
675
675
 
676
+ // The rule to exclude findings based on a hotword. For record inspection of
677
+ // tables, column names are considered hotwords. An example of this is to
678
+ // exclude a finding if a BigQuery column matches a specific pattern.
679
+ message ExcludeByHotword {
680
+ // Regular expression pattern defining what qualifies as a hotword.
681
+ CustomInfoType.Regex hotword_regex = 1;
682
+
683
+ // Range of characters within which the entire hotword must reside.
684
+ // The total length of the window cannot exceed 1000 characters.
685
+ // The windowBefore property in proximity should be set to 1 if the hotword
686
+ // needs to be included in a column header.
687
+ CustomInfoType.DetectionRule.Proximity proximity = 2;
688
+ }
689
+
676
690
  // The rule that specifies conditions when findings of infoTypes specified in
677
691
  // `InspectionRuleSet` are removed from results.
678
692
  message ExclusionRule {
@@ -686,6 +700,10 @@ message ExclusionRule {
686
700
 
687
701
  // Set of infoTypes for which findings would affect this rule.
688
702
  ExcludeInfoTypes exclude_info_types = 3;
703
+
704
+ // Drop if the hotword rule is contained in the proximate context. For
705
+ // tabular data, the context includes the column name.
706
+ ExcludeByHotword exclude_by_hotword = 5;
689
707
  }
690
708
 
691
709
  // How the rule is applied, see MatchingType documentation for details.
@@ -721,6 +739,12 @@ message InspectionRuleSet {
721
739
  message InspectConfig {
722
740
  // Configuration to control the number of findings returned for inspection.
723
741
  // This is not used for de-identification or data profiling.
742
+ //
743
+ // When redacting sensitive data from images, finding limits don't apply. They
744
+ // can cause unexpected or inconsistent results, where only some data is
745
+ // redacted. Don't include finding limits in
746
+ // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage]
747
+ // requests. Otherwise, Cloud DLP returns an error.
724
748
  message FindingLimits {
725
749
  // Max findings configuration per infoType, per content item or long
726
750
  // running DlpJob.
@@ -770,6 +794,12 @@ message InspectConfig {
770
794
 
771
795
  // Configuration to control the number of findings returned.
772
796
  // This is not used for data profiling.
797
+ //
798
+ // When redacting sensitive data from images, finding limits don't apply. They
799
+ // can cause unexpected or inconsistent results, where only some data is
800
+ // redacted. Don't include finding limits in
801
+ // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage]
802
+ // requests. Otherwise, Cloud DLP returns an error.
773
803
  FindingLimits limits = 3;
774
804
 
775
805
  // When true, a contextual quote from the data that triggered a finding is
@@ -850,7 +880,6 @@ message ByteContentItem {
850
880
  bytes data = 2;
851
881
  }
852
882
 
853
- // Container structure for the content to inspect.
854
883
  message ContentItem {
855
884
  // Data of the item either in the byte array or UTF-8 string form, or table.
856
885
  oneof data_item {
@@ -1006,7 +1035,7 @@ message ContentLocation {
1006
1035
  // * Datastore namespace: {namespace}
1007
1036
  //
1008
1037
  // Nested names could be absent if the embedded object has no string
1009
- // identifier (for an example an image contained within a document).
1038
+ // identifier (for example, an image contained within a document).
1010
1039
  string container_name = 1;
1011
1040
 
1012
1041
  // Type of the container within the file with location of the finding.
@@ -1024,14 +1053,14 @@ message ContentLocation {
1024
1053
  MetadataLocation metadata_location = 8;
1025
1054
  }
1026
1055
 
1027
- // Findings container modification timestamp, if applicable.
1028
- // For Google Cloud Storage contains last file modification timestamp.
1029
- // For BigQuery table contains last_modified_time property.
1030
- // For Datastore - not populated.
1056
+ // Finding container modification timestamp, if applicable. For Cloud Storage,
1057
+ // this field contains the last file modification timestamp. For a BigQuery
1058
+ // table, this field contains the last_modified_time property. For Datastore,
1059
+ // this field isn't populated.
1031
1060
  google.protobuf.Timestamp container_timestamp = 6;
1032
1061
 
1033
- // Findings container version, if available
1034
- // ("generation" for Google Cloud Storage).
1062
+ // Finding container version, if available
1063
+ // ("generation" for Cloud Storage).
1035
1064
  string container_version = 7;
1036
1065
  }
1037
1066
 
@@ -1086,7 +1115,7 @@ message TableLocation {
1086
1115
  // Represents a container that may contain DLP findings.
1087
1116
  // Examples of a container include a file, table, or database record.
1088
1117
  message Container {
1089
- // Container type, for example BigQuery or Google Cloud Storage.
1118
+ // Container type, for example BigQuery or Cloud Storage.
1090
1119
  string type = 1;
1091
1120
 
1092
1121
  // Project where the finding was found.
@@ -1096,33 +1125,35 @@ message Container {
1096
1125
  // A string representation of the full container name.
1097
1126
  // Examples:
1098
1127
  // - BigQuery: 'Project:DataSetId.TableId'
1099
- // - Google Cloud Storage: 'gs://Bucket/folders/filename.txt'
1128
+ // - Cloud Storage: 'gs://Bucket/folders/filename.txt'
1100
1129
  string full_path = 3;
1101
1130
 
1102
1131
  // The root of the container.
1103
1132
  // Examples:
1133
+ //
1104
1134
  // - For BigQuery table `project_id:dataset_id.table_id`, the root is
1105
1135
  // `dataset_id`
1106
- // - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root
1136
+ // - For Cloud Storage file `gs://bucket/folder/filename.txt`, the root
1107
1137
  // is `gs://bucket`
1108
1138
  string root_path = 4;
1109
1139
 
1110
1140
  // The rest of the path after the root.
1111
1141
  // Examples:
1142
+ //
1112
1143
  // - For BigQuery table `project_id:dataset_id.table_id`, the relative path is
1113
1144
  // `table_id`
1114
- // - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
1145
+ // - For Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
1115
1146
  // path is `folder/filename.txt`
1116
1147
  string relative_path = 5;
1117
1148
 
1118
- // Findings container modification timestamp, if applicable.
1119
- // For Google Cloud Storage contains last file modification timestamp.
1120
- // For BigQuery table contains last_modified_time property.
1121
- // For Datastore - not populated.
1149
+ // Findings container modification timestamp, if applicable. For Cloud
1150
+ // Storage, this field contains the last file modification timestamp. For a
1151
+ // BigQuery table, this field contains the last_modified_time property. For
1152
+ // Datastore, this field isn't populated.
1122
1153
  google.protobuf.Timestamp update_time = 6;
1123
1154
 
1124
1155
  // Findings container version, if available
1125
- // ("generation" for Google Cloud Storage).
1156
+ // ("generation" for Cloud Storage).
1126
1157
  string version = 7;
1127
1158
  }
1128
1159
 
@@ -1242,7 +1273,7 @@ message RedactImageResponse {
1242
1273
  InspectResult inspect_result = 3;
1243
1274
  }
1244
1275
 
1245
- // Request to de-identify a list of items.
1276
+ // Request to de-identify a ContentItem.
1246
1277
  message DeidentifyContentRequest {
1247
1278
  // Parent resource name.
1248
1279
  //
@@ -1275,6 +1306,13 @@ message DeidentifyContentRequest {
1275
1306
  InspectConfig inspect_config = 3;
1276
1307
 
1277
1308
  // The item to de-identify. Will be treated as text.
1309
+ //
1310
+ // This value must be of type
1311
+ // [Table][google.privacy.dlp.v2.Table] if your
1312
+ // [deidentify_config][google.privacy.dlp.v2.DeidentifyContentRequest.deidentify_config]
1313
+ // is a
1314
+ // [RecordTransformations][google.privacy.dlp.v2.RecordTransformations]
1315
+ // object.
1278
1316
  ContentItem item = 4;
1279
1317
 
1280
1318
  // Template to use. Any configuration directly specified in
@@ -1367,7 +1405,7 @@ message ReidentifyContentRequest {
1367
1405
  string location_id = 7;
1368
1406
  }
1369
1407
 
1370
- // Results of re-identifying a item.
1408
+ // Results of re-identifying an item.
1371
1409
  message ReidentifyContentResponse {
1372
1410
  // The re-identified item.
1373
1411
  ContentItem item = 1;
@@ -1434,7 +1472,7 @@ message OutputStorageConfig {
1434
1472
  // `timestamp`.
1435
1473
  BASIC_COLUMNS = 1;
1436
1474
 
1437
- // Schema tailored to findings from scanning Google Cloud Storage.
1475
+ // Schema tailored to findings from scanning Cloud Storage.
1438
1476
  GCS_COLUMNS = 2;
1439
1477
 
1440
1478
  // Schema tailored to findings from scanning Google Datastore.
@@ -1452,8 +1490,8 @@ message OutputStorageConfig {
1452
1490
  // Store findings in an existing table or a new table in an existing
1453
1491
  // dataset. If table_id is not set a new one will be generated
1454
1492
  // for you with the following format:
1455
- // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for
1456
- // generating the date details.
1493
+ // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used
1494
+ // for generating the date details.
1457
1495
  //
1458
1496
  // For Inspect, each column in an existing output table must have the same
1459
1497
  // name, type, and mode of a field in the `Finding` object.
@@ -1555,6 +1593,9 @@ message InfoTypeDescription {
1555
1593
  // request.
1556
1594
  string description = 4;
1557
1595
 
1596
+ // A list of available versions for the infotype.
1597
+ repeated VersionDescription versions = 9;
1598
+
1558
1599
  // The category of the infoType.
1559
1600
  repeated InfoTypeCategory categories = 10;
1560
1601
  }
@@ -1688,6 +1729,9 @@ message InfoTypeCategory {
1688
1729
 
1689
1730
  // The infoType is typically used in Google internally.
1690
1731
  INTERNAL = 40;
1732
+
1733
+ // The infoType is typically used in New Zealand.
1734
+ NEW_ZEALAND = 41;
1691
1735
  }
1692
1736
 
1693
1737
  // Enum of the current industries in the category.
@@ -1751,6 +1795,15 @@ message InfoTypeCategory {
1751
1795
  }
1752
1796
  }
1753
1797
 
1798
+ // Details about each available version for an infotype.
1799
+ message VersionDescription {
1800
+ // Name of the version
1801
+ string version = 1;
1802
+
1803
+ // Description of the version.
1804
+ string description = 2;
1805
+ }
1806
+
1754
1807
  // Request for the list of infoTypes.
1755
1808
  message ListInfoTypesRequest {
1756
1809
  // The parent resource name.
@@ -2202,10 +2255,10 @@ message AnalyzeDataSourceRiskDetails {
2202
2255
  repeated Value quasi_ids_values = 1;
2203
2256
 
2204
2257
  // The estimated probability that a given individual sharing these
2205
- // quasi-identifier values is in the dataset. This value, typically called
2206
- // δ, is the ratio between the number of records in the dataset with these
2207
- // quasi-identifier values, and the total number of individuals (inside
2208
- // *and* outside the dataset) with these quasi-identifier values.
2258
+ // quasi-identifier values is in the dataset. This value, typically
2259
+ // called δ, is the ratio between the number of records in the dataset
2260
+ // with these quasi-identifier values, and the total number of individuals
2261
+ // (inside *and* outside the dataset) with these quasi-identifier values.
2209
2262
  // For example, if there are 15 individuals in the dataset who share the
2210
2263
  // same quasi-identifier values, and an estimated 100 people in the entire
2211
2264
  // population with these values, then δ is 0.15.
@@ -2375,6 +2428,9 @@ message DeidentifyConfig {
2375
2428
  // specific locations within structured datasets, such as transforming
2376
2429
  // a column within a table.
2377
2430
  RecordTransformations record_transformations = 2;
2431
+
2432
+ // Treat the dataset as an image and redact.
2433
+ ImageTransformations image_transformations = 4;
2378
2434
  }
2379
2435
 
2380
2436
  // Mode for handling transformation errors. If left unspecified, the default
@@ -2382,6 +2438,49 @@ message DeidentifyConfig {
2382
2438
  TransformationErrorHandling transformation_error_handling = 3;
2383
2439
  }
2384
2440
 
2441
+ // A type of transformation that is applied over images.
2442
+ message ImageTransformations {
2443
+ // Configuration for determining how redaction of images should occur.
2444
+ message ImageTransformation {
2445
+ // Apply transformation to the selected info_types.
2446
+ message SelectedInfoTypes {
2447
+ // Required. InfoTypes to apply the transformation to. Required. Provided InfoType
2448
+ // must be unique within the ImageTransformations message.
2449
+ repeated InfoType info_types = 5 [(google.api.field_behavior) = REQUIRED];
2450
+ }
2451
+
2452
+ // Apply transformation to all findings.
2453
+ message AllInfoTypes {
2454
+
2455
+ }
2456
+
2457
+ // Apply to all text.
2458
+ message AllText {
2459
+
2460
+ }
2461
+
2462
+ oneof target {
2463
+ // Apply transformation to the selected info_types.
2464
+ SelectedInfoTypes selected_info_types = 4;
2465
+
2466
+ // Apply transformation to all findings not specified in other
2467
+ // ImageTransformation's selected_info_types. Only one instance is allowed
2468
+ // within the ImageTransformations message.
2469
+ AllInfoTypes all_info_types = 5;
2470
+
2471
+ // Apply transformation to all text that doesn't match an infoType. Only
2472
+ // one instance is allowed within the ImageTransformations message.
2473
+ AllText all_text = 6;
2474
+ }
2475
+
2476
+ // The color to use when redacting content from an image. If not
2477
+ // specified, the default is black.
2478
+ Color redaction_color = 3;
2479
+ }
2480
+
2481
+ repeated ImageTransformation transforms = 2;
2482
+ }
2483
+
2385
2484
  // How to handle transformation errors during de-identification. A
2386
2485
  // transformation error occurs when the requested transformation is incompatible
2387
2486
  // with the data. For example, trying to de-identify an IP address using a
@@ -2558,7 +2657,7 @@ message CryptoDeterministicConfig {
2558
2657
  // plaintext would be used as is for encryption.
2559
2658
  //
2560
2659
  // Note that case (1) is expected when an `InfoTypeTransformation` is
2561
- // applied to both structured and non-structured `ContentItem`s.
2660
+ // applied to both structured and unstructured `ContentItem`s.
2562
2661
  FieldId context = 3;
2563
2662
  }
2564
2663
 
@@ -2593,7 +2692,7 @@ message RedactConfig {
2593
2692
  // Characters to skip when doing deidentification of a value. These will be left
2594
2693
  // alone and skipped.
2595
2694
  message CharsToIgnore {
2596
- // Convenience enum for indication common characters to not transform.
2695
+ // Convenience enum for indicating common characters to not transform.
2597
2696
  enum CommonCharsToIgnore {
2598
2697
  // Unused.
2599
2698
  COMMON_CHARS_TO_IGNORE_UNSPECIFIED = 0;
@@ -2639,6 +2738,21 @@ message CharacterMaskConfig {
2639
2738
 
2640
2739
  // Number of characters to mask. If not set, all matching chars will be
2641
2740
  // masked. Skipped characters do not count towards this tally.
2741
+ //
2742
+ // If `number_to_mask` is negative, this denotes inverse masking. Cloud DLP
2743
+ // masks all but a number of characters.
2744
+ // For example, suppose you have the following values:
2745
+ //
2746
+ // - `masking_character` is `*`
2747
+ // - `number_to_mask` is `-4`
2748
+ // - `reverse_order` is `false`
2749
+ // - `CharsToIgnore` includes `-`
2750
+ // - Input string is `1234-5678-9012-3456`
2751
+ //
2752
+ // The resulting de-identified string is
2753
+ // `****-****-****-3456`. Cloud DLP masks all but the last four characters.
2754
+ // If `reverse_order` is `true`, all but the first four characters are masked
2755
+ // as `1234-****-****-****`.
2642
2756
  int32 number_to_mask = 2;
2643
2757
 
2644
2758
  // Mask characters in reverse order. For example, if `masking_character` is
@@ -2732,7 +2846,7 @@ message BucketingConfig {
2732
2846
  message CryptoReplaceFfxFpeConfig {
2733
2847
  // These are commonly used subsets of the alphabet that the FFX mode
2734
2848
  // natively supports. In the algorithm, the alphabet is selected using
2735
- // the "radix". Therefore each corresponds to particular radix.
2849
+ // the "radix". Therefore each corresponds to a particular radix.
2736
2850
  enum FfxCommonNativeAlphabet {
2737
2851
  // Unused.
2738
2852
  FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED = 0;
@@ -2765,7 +2879,7 @@ message CryptoReplaceFfxFpeConfig {
2765
2879
  // a default tweak will be used.
2766
2880
  //
2767
2881
  // Note that case (1) is expected when an `InfoTypeTransformation` is
2768
- // applied to both structured and non-structured `ContentItem`s.
2882
+ // applied to both structured and unstructured `ContentItem`s.
2769
2883
  // Currently, the referenced field may be of value type integer or string.
2770
2884
  //
2771
2885
  // The tweak is constructed as a sequence of bytes in big endian byte order
@@ -3021,7 +3135,7 @@ message RecordCondition {
3021
3135
  repeated Condition conditions = 1;
3022
3136
  }
3023
3137
 
3024
- // An expression, consisting or an operator and conditions.
3138
+ // An expression, consisting of an operator and conditions.
3025
3139
  message Expressions {
3026
3140
  // Logical operators for conditional checks.
3027
3141
  enum LogicalOperator {
@@ -3110,10 +3224,209 @@ message TransformationSummary {
3110
3224
  int64 transformed_bytes = 7;
3111
3225
  }
3112
3226
 
3227
+ // A flattened description of a `PrimitiveTransformation` or
3228
+ // `RecordSuppression`.
3229
+ message TransformationDescription {
3230
+ // The transformation type.
3231
+ TransformationType type = 1;
3232
+
3233
+ // A description of the transformation. This is empty for a
3234
+ // RECORD_SUPPRESSION, or is the output of calling toString() on the
3235
+ // `PrimitiveTransformation` protocol buffer message for any other type of
3236
+ // transformation.
3237
+ string description = 2;
3238
+
3239
+ // A human-readable string representation of the `RecordCondition`
3240
+ // corresponding to this transformation. Set if a `RecordCondition` was used
3241
+ // to determine whether or not to apply this transformation.
3242
+ //
3243
+ // Examples:
3244
+ // * (age_field > 85)
3245
+ // * (age_field <= 18)
3246
+ // * (zip_field exists)
3247
+ // * (zip_field == 01234) && (city_field != "Springville")
3248
+ // * (zip_field == 01234) && (age_field <= 18) && (city_field exists)
3249
+ string condition = 3;
3250
+
3251
+ // Set if the transformation was limited to a specific `InfoType`.
3252
+ InfoType info_type = 4;
3253
+ }
3254
+
3255
+ // Details about a single transformation. This object contains a description of
3256
+ // the transformation, information about whether the transformation was
3257
+ // successfully applied, and the precise location where the transformation
3258
+ // occurred. These details are stored in a user-specified BigQuery table.
3259
+ message TransformationDetails {
3260
+ // The name of the job that completed the transformation.
3261
+ string resource_name = 1;
3262
+
3263
+ // The top level name of the container where the transformation is located
3264
+ // (this will be the source file name or table name).
3265
+ string container_name = 2;
3266
+
3267
+ // Description of transformation. This would only contain more than one
3268
+ // element if there were multiple matching transformations and which one to
3269
+ // apply was ambiguous. Not set for states that contain no transformation,
3270
+ // currently only state that contains no transformation is
3271
+ // TransformationResultStateType.METADATA_UNRETRIEVABLE.
3272
+ repeated TransformationDescription transformation = 3;
3273
+
3274
+ // Status of the transformation, if transformation was not successful, this
3275
+ // will specify what caused it to fail, otherwise it will show that the
3276
+ // transformation was successful.
3277
+ TransformationResultStatus status_details = 4;
3278
+
3279
+ // The number of bytes that were transformed. If transformation was
3280
+ // unsuccessful or did not take place because there was no content to
3281
+ // transform, this will be zero.
3282
+ int64 transformed_bytes = 5;
3283
+
3284
+ // The precise location of the transformed content in the original container.
3285
+ TransformationLocation transformation_location = 6;
3286
+ }
3287
+
3288
+ // Specifies the location of a transformation.
3289
+ message TransformationLocation {
3290
+ oneof location_type {
3291
+ // For infotype transformations, link to the corresponding findings ID so
3292
+ // that location information does not need to be duplicated. Each findings
3293
+ // ID correlates to an entry in the findings output table, this table only
3294
+ // gets created when users specify to save findings (add the save findings
3295
+ // action to the request).
3296
+ string finding_id = 1;
3297
+
3298
+ // For record transformations, provide a field and container information.
3299
+ RecordTransformation record_transformation = 2;
3300
+ }
3301
+
3302
+ // Information about the functionality of the container where this finding
3303
+ // occurred, if available.
3304
+ TransformationContainerType container_type = 3;
3305
+ }
3306
+
3307
+ message RecordTransformation {
3308
+ // For record transformations, provide a field.
3309
+ FieldId field_id = 1;
3310
+
3311
+ // Findings container modification timestamp, if applicable.
3312
+ google.protobuf.Timestamp container_timestamp = 2;
3313
+
3314
+ // Container version, if available ("generation" for Cloud Storage).
3315
+ string container_version = 3;
3316
+ }
3317
+
3318
+ message TransformationResultStatus {
3319
+ // Transformation result status type, this will be either SUCCESS, or it will
3320
+ // be the reason for why the transformation was not completely successful.
3321
+ TransformationResultStatusType result_status_type = 1;
3322
+
3323
+ // Detailed error codes and messages
3324
+ google.rpc.Status details = 2;
3325
+ }
3326
+
3327
+ // Enum of possible outcomes of transformations. SUCCESS if transformation and
3328
+ // storing of transformation was successful, otherwise, reason for not
3329
+ // transforming.
3330
+ enum TransformationResultStatusType {
3331
+ STATE_TYPE_UNSPECIFIED = 0;
3332
+
3333
+ // This will be set when a finding could not be transformed (i.e. outside user
3334
+ // set bucket range).
3335
+ INVALID_TRANSFORM = 1;
3336
+
3337
+ // This will be set when a BigQuery transformation was successful but could
3338
+ // not be stored back in BigQuery because the transformed row exceeds
3339
+ // BigQuery's max row size.
3340
+ BIGQUERY_MAX_ROW_SIZE_EXCEEDED = 2;
3341
+
3342
+ // This will be set when there is a finding in the custom metadata of a file,
3343
+ // but at the write time of the transformed file, this key / value pair is
3344
+ // unretrievable.
3345
+ METADATA_UNRETRIEVABLE = 3;
3346
+
3347
+ // This will be set when the transformation and storing of it is successful.
3348
+ SUCCESS = 4;
3349
+ }
3350
+
3351
+ // Describes functionality of a given container in its original format.
3352
+ enum TransformationContainerType {
3353
+ TRANSFORM_UNKNOWN_CONTAINER = 0;
3354
+
3355
+ TRANSFORM_BODY = 1;
3356
+
3357
+ TRANSFORM_METADATA = 2;
3358
+
3359
+ TRANSFORM_TABLE = 3;
3360
+ }
3361
+
3362
+ // An enum of rules that can be used to transform a value. Can be a
3363
+ // record suppression, or one of the transformation rules specified under
3364
+ // `PrimitiveTransformation`.
3365
+ enum TransformationType {
3366
+ // Unused
3367
+ TRANSFORMATION_TYPE_UNSPECIFIED = 0;
3368
+
3369
+ // Record suppression
3370
+ RECORD_SUPPRESSION = 1;
3371
+
3372
+ // Replace value
3373
+ REPLACE_VALUE = 2;
3374
+
3375
+ // Replace value using a dictionary.
3376
+ REPLACE_DICTIONARY = 15;
3377
+
3378
+ // Redact
3379
+ REDACT = 3;
3380
+
3381
+ // Character mask
3382
+ CHARACTER_MASK = 4;
3383
+
3384
+ // FFX-FPE
3385
+ CRYPTO_REPLACE_FFX_FPE = 5;
3386
+
3387
+ // Fixed size bucketing
3388
+ FIXED_SIZE_BUCKETING = 6;
3389
+
3390
+ // Bucketing
3391
+ BUCKETING = 7;
3392
+
3393
+ // Replace with info type
3394
+ REPLACE_WITH_INFO_TYPE = 8;
3395
+
3396
+ // Time part
3397
+ TIME_PART = 9;
3398
+
3399
+ // Crypto hash
3400
+ CRYPTO_HASH = 10;
3401
+
3402
+ // Date shift
3403
+ DATE_SHIFT = 12;
3404
+
3405
+ // Deterministic crypto
3406
+ CRYPTO_DETERMINISTIC_CONFIG = 13;
3407
+
3408
+ // Redact image
3409
+ REDACT_IMAGE = 14;
3410
+ }
3411
+
3412
+ // Config for storing transformation details.
3413
+ message TransformationDetailsStorageConfig {
3414
+ // Location to store the transformation summary.
3415
+ oneof type {
3416
+ // The BigQuery table in which to store the output. This may be an existing
3417
+ // table or in a new table in an existing dataset.
3418
+ // If table_id is not set a new one will be generated for you with the
3419
+ // following format:
3420
+ // dlp_googleapis_transformation_details_yyyy_mm_dd_[dlp_job_id]. Pacific
3421
+ // time zone will be used for generating the date details.
3422
+ BigQueryTable table = 1;
3423
+ }
3424
+ }
3425
+
3113
3426
  // Schedule for inspect job triggers.
3114
3427
  message Schedule {
3115
3428
  oneof option {
3116
- // With this option a job is started a regular periodic basis. For
3429
+ // With this option a job is started on a regular periodic basis. For
3117
3430
  // example: every day (86400 seconds).
3118
3431
  //
3119
3432
  // A scheduled start time will be skipped if the previous
@@ -3302,7 +3615,7 @@ message Action {
3302
3615
  OutputStorageConfig output_config = 1;
3303
3616
  }
3304
3617
 
3305
- // Publish a message into given Pub/Sub topic when DlpJob has completed. The
3618
+ // Publish a message into a given Pub/Sub topic when DlpJob has completed. The
3306
3619
  // message contains a single field, `DlpJobName`, which is equal to the
3307
3620
  // finished job's
3308
3621
  // [`DlpJob.name`](https://cloud.google.com/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
@@ -3320,31 +3633,88 @@ message Action {
3320
3633
  // This action is only available for projects which are parts of
3321
3634
  // an organization and whitelisted for the alpha Cloud Security Command
3322
3635
  // Center.
3323
- // The action will publish count of finding instances and their info types.
3324
- // The summary of findings will be persisted in CSCC and are governed by CSCC
3325
- // service-specific policy, see https://cloud.google.com/terms/service-terms
3326
- // Only a single instance of this action can be specified.
3327
- // Compatible with: Inspect
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
3328
3641
  message PublishSummaryToCscc {
3329
3642
 
3330
3643
  }
3331
3644
 
3332
- // Publish findings of a DlpJob to Data Catalog. Labels summarizing the
3333
- // results of the DlpJob will be applied to the entry for the resource scanned
3334
- // in Data Catalog. Any labels previously written by another DlpJob will
3335
- // be deleted. InfoType naming patterns are strictly enforced when using this
3336
- // feature. Note that the findings will be persisted in Data Catalog
3337
- // storage and are governed by Data Catalog service-specific policy, see
3338
- // https://cloud.google.com/terms/service-terms
3339
- // Only a single instance of this action can be specified and only allowed if
3340
- // all resources being scanned are BigQuery tables.
3645
+ // Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag
3646
+ // templates are applied to the resource that Cloud DLP scanned. Data
3647
+ // Catalog tag templates are stored in the same project and region where the
3648
+ // BigQuery table exists. For Cloud DLP to create and apply the tag template,
3649
+ // the Cloud DLP service agent must have the
3650
+ // `roles/datacatalog.tagTemplateOwner` permission on the project. The tag
3651
+ // template contains fields summarizing the results of the DlpJob. Any field
3652
+ // values previously written by another DlpJob are deleted. [InfoType naming
3653
+ // patterns][google.privacy.dlp.v2.InfoType] are strictly enforced when using
3654
+ // this feature.
3655
+ //
3656
+ // Findings are persisted in Data Catalog storage and are governed by
3657
+ // service-specific policies for Data Catalog. For more information, see
3658
+ // [Service Specific Terms](https://cloud.google.com/terms/service-terms).
3659
+ //
3660
+ // Only a single instance of this action can be specified. This action is
3661
+ // allowed only if all resources being scanned are BigQuery tables.
3341
3662
  // Compatible with: Inspect
3342
3663
  message PublishFindingsToCloudDataCatalog {
3343
3664
 
3344
3665
  }
3345
3666
 
3346
- // Enable email notification to project owners and editors on jobs's
3347
- // completion/failure.
3667
+ // Create a de-identified copy of the requested table or files.
3668
+ //
3669
+ // A TransformationDetail will be created for each transformation.
3670
+ //
3671
+ // If any rows in BigQuery are skipped during de-identification
3672
+ // (transformation errors or row size exceeds BigQuery insert API limits) they
3673
+ // are placed in the failure output table. If the original row exceeds
3674
+ // the BigQuery insert API limit it will be truncated when written to the
3675
+ // failure output table. The failure output table can be set in the
3676
+ // action.deidentify.output.big_query_output.deidentified_failure_output_table
3677
+ // field, if no table is set, a table will be automatically created in the
3678
+ // same project and dataset as the original table.
3679
+ //
3680
+ // Compatible with: Inspect
3681
+ message Deidentify {
3682
+ // User specified deidentify templates and configs for structured,
3683
+ // unstructured, and image files.
3684
+ TransformationConfig transformation_config = 7;
3685
+
3686
+ // Config for storing transformation details. This is separate from the
3687
+ // de-identified content, and contains metadata about the successful
3688
+ // transformations and/or failures that occurred while de-identifying. This
3689
+ // needs to be set in order for users to access information about the status
3690
+ // of each transformation (see
3691
+ // [TransformationDetails][google.privacy.dlp.v2.TransformationDetails]
3692
+ // message for more information about what is noted).
3693
+ TransformationDetailsStorageConfig transformation_details_storage_config = 3;
3694
+
3695
+ 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.
3700
+ //
3701
+ // Form of: gs://bucket/folder/ or gs://bucket
3702
+ string cloud_storage_output = 9 [(google.api.field_behavior) = REQUIRED];
3703
+ }
3704
+
3705
+ // List of user-specified file type groups to transform. If specified, only
3706
+ // the files with these filetypes will be transformed. If empty, all
3707
+ // supported files will be transformed. Supported types may be automatically
3708
+ // added over time. If a file type is set in this field that isn't supported
3709
+ // by the Deidentify action then the job will fail and will not be
3710
+ // successfully created/started. Currently the only filetypes supported are:
3711
+ // IMAGES, TEXT_FILES, CSV, TSV.
3712
+ repeated FileType file_types_to_transform = 8;
3713
+ }
3714
+
3715
+ // Sends an email when the job completes. The email goes to IAM project owners
3716
+ // and technical [Essential
3717
+ // Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).
3348
3718
  message JobNotificationEmails {
3349
3719
 
3350
3720
  }
@@ -3361,7 +3731,7 @@ message Action {
3361
3731
  // Save resulting findings in a provided location.
3362
3732
  SaveFindings save_findings = 1;
3363
3733
 
3364
- // Publish a notification to a pubsub topic.
3734
+ // Publish a notification to a Pub/Sub topic.
3365
3735
  PublishToPubSub pub_sub = 2;
3366
3736
 
3367
3737
  // Publish summary to Cloud Security Command Center (Alpha).
@@ -3370,8 +3740,12 @@ message Action {
3370
3740
  // Publish findings to Cloud Datahub.
3371
3741
  PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog = 5;
3372
3742
 
3373
- // Enable email notification for project owners and editors on job's
3374
- // completion/failure.
3743
+ // Create a de-identified copy of the input data.
3744
+ Deidentify deidentify = 7;
3745
+
3746
+ // Sends an email when the job completes. The email goes to IAM project
3747
+ // owners and technical [Essential
3748
+ // Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).
3375
3749
  JobNotificationEmails job_notification_emails = 8;
3376
3750
 
3377
3751
  // Enable Stackdriver metric dlp.googleapis.com/finding_count.
@@ -3379,6 +3753,34 @@ message Action {
3379
3753
  }
3380
3754
  }
3381
3755
 
3756
+ // User specified templates and configs for how to deidentify structured,
3757
+ // unstructures, and image files. User must provide either a unstructured
3758
+ // deidentify template or at least one redact image config.
3759
+ message TransformationConfig {
3760
+ // De-identify template.
3761
+ // If this template is specified, it will serve as the default de-identify
3762
+ // template. This template cannot contain `record_transformations` since it
3763
+ // can be used for unstructured content such as free-form text files. If this
3764
+ // template is not set, a default `ReplaceWithInfoTypeConfig` will be used to
3765
+ // de-identify unstructured content.
3766
+ string deidentify_template = 1;
3767
+
3768
+ // Structured de-identify template.
3769
+ // If this template is specified, it will serve as the de-identify template
3770
+ // for structured content such as delimited files and tables. If this template
3771
+ // is not set but the `deidentify_template` is set, then `deidentify_template`
3772
+ // will also apply to the structured content. If neither template is set, a
3773
+ // default `ReplaceWithInfoTypeConfig` will be used to de-identify structured
3774
+ // content.
3775
+ string structured_deidentify_template = 2;
3776
+
3777
+ // Image redact template.
3778
+ // If this template is specified, it will serve as the de-identify template
3779
+ // for images. If this template is not set, all findings in the image will be
3780
+ // redacted with a black box.
3781
+ string image_redact_template = 4;
3782
+ }
3783
+
3382
3784
  // Request message for CreateInspectTemplate.
3383
3785
  message CreateInspectTemplateRequest {
3384
3786
  // Required. Parent resource name.
@@ -3486,7 +3888,7 @@ message ListInspectTemplatesRequest {
3486
3888
  // to `ListInspectTemplates`.
3487
3889
  string page_token = 2;
3488
3890
 
3489
- // Size of the page, can be limited by server. If zero server returns
3891
+ // Size of the page, can be limited by the server. If zero server returns
3490
3892
  // a page of max size 100.
3491
3893
  int32 page_size = 3;
3492
3894
 
@@ -3499,10 +3901,10 @@ message ListInspectTemplatesRequest {
3499
3901
  //
3500
3902
  // Supported fields are:
3501
3903
  //
3502
- // - `create_time`: corresponds to time the template was created.
3503
- // - `update_time`: corresponds to time the template was last updated.
3504
- // - `name`: corresponds to template's name.
3505
- // - `display_name`: corresponds to template's display name.
3904
+ // - `create_time`: corresponds to the time the template was created.
3905
+ // - `update_time`: corresponds to the time the template was last updated.
3906
+ // - `name`: corresponds to the template's name.
3907
+ // - `display_name`: corresponds to the template's display name.
3506
3908
  string order_by = 4;
3507
3909
 
3508
3910
  // Deprecated. This field has no effect.
@@ -3701,11 +4103,11 @@ message ListJobTriggersRequest {
3701
4103
  //
3702
4104
  // Supported fields are:
3703
4105
  //
3704
- // - `create_time`: corresponds to time the JobTrigger was created.
3705
- // - `update_time`: corresponds to time the JobTrigger was last updated.
4106
+ // - `create_time`: corresponds to the time the JobTrigger was created.
4107
+ // - `update_time`: corresponds to the time the JobTrigger was last updated.
3706
4108
  // - `last_run_time`: corresponds to the last time the JobTrigger ran.
3707
- // - `name`: corresponds to JobTrigger's name.
3708
- // - `display_name`: corresponds to JobTrigger's display name.
4109
+ // - `name`: corresponds to the JobTrigger's name.
4110
+ // - `display_name`: corresponds to the JobTrigger's display name.
3709
4111
  // - `status`: corresponds to JobTrigger's status.
3710
4112
  string order_by = 4;
3711
4113
 
@@ -3932,7 +4334,7 @@ message DlpJob {
3932
4334
  // The job is no longer running.
3933
4335
  DONE = 3;
3934
4336
 
3935
- // The job was canceled before it could complete.
4337
+ // The job was canceled before it could be completed.
3936
4338
  CANCELED = 4;
3937
4339
 
3938
4340
  // The job had an error and did not complete.
@@ -3940,7 +4342,7 @@ message DlpJob {
3940
4342
 
3941
4343
  // The job is currently accepting findings via hybridInspect.
3942
4344
  // A hybrid job in ACTIVE state may continue to have findings added to it
3943
- // through calling of hybridInspect. After the job has finished no more
4345
+ // through the calling of hybridInspect. After the job has finished no more
3944
4346
  // calls to hybridInspect may be made. ACTIVE jobs can transition to DONE.
3945
4347
  ACTIVE = 6;
3946
4348
  }
@@ -4026,13 +4428,13 @@ message ListDlpJobsRequest {
4026
4428
  // * Supported fields/values for inspect jobs:
4027
4429
  // - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED
4028
4430
  // - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY
4029
- // - `trigger_name` - The resource name of the trigger that created job.
4030
- // - 'end_time` - Corresponds to time the job finished.
4031
- // - 'start_time` - Corresponds to time the job finished.
4431
+ // - `trigger_name` - The name of the trigger that created the job.
4432
+ // - 'end_time` - Corresponds to the time the job finished.
4433
+ // - 'start_time` - Corresponds to the time the job finished.
4032
4434
  // * Supported fields for risk analysis jobs:
4033
4435
  // - `state` - RUNNING|CANCELED|FINISHED|FAILED
4034
- // - 'end_time` - Corresponds to time the job finished.
4035
- // - 'start_time` - Corresponds to time the job finished.
4436
+ // - 'end_time` - Corresponds to the time the job finished.
4437
+ // - 'start_time` - Corresponds to the time the job finished.
4036
4438
  // * The operator must be `=` or `!=`.
4037
4439
  //
4038
4440
  // Examples:
@@ -4063,9 +4465,9 @@ message ListDlpJobsRequest {
4063
4465
  //
4064
4466
  // Supported fields are:
4065
4467
  //
4066
- // - `create_time`: corresponds to time the job was created.
4067
- // - `end_time`: corresponds to time the job ended.
4068
- // - `name`: corresponds to job's name.
4468
+ // - `create_time`: corresponds to the time the job was created.
4469
+ // - `end_time`: corresponds to the time the job ended.
4470
+ // - `name`: corresponds to the job's name.
4069
4471
  // - `state`: corresponds to `state`
4070
4472
  string order_by = 6;
4071
4473
 
@@ -4222,7 +4624,7 @@ message ListDeidentifyTemplatesRequest {
4222
4624
  // to `ListDeidentifyTemplates`.
4223
4625
  string page_token = 2;
4224
4626
 
4225
- // Size of the page, can be limited by server. If zero server returns
4627
+ // Size of the page, can be limited by the server. If zero server returns
4226
4628
  // a page of max size 100.
4227
4629
  int32 page_size = 3;
4228
4630
 
@@ -4235,10 +4637,10 @@ message ListDeidentifyTemplatesRequest {
4235
4637
  //
4236
4638
  // Supported fields are:
4237
4639
  //
4238
- // - `create_time`: corresponds to time the template was created.
4239
- // - `update_time`: corresponds to time the template was last updated.
4240
- // - `name`: corresponds to template's name.
4241
- // - `display_name`: corresponds to template's display name.
4640
+ // - `create_time`: corresponds to the time the template was created.
4641
+ // - `update_time`: corresponds to the time the template was last updated.
4642
+ // - `name`: corresponds to the template's name.
4643
+ // - `display_name`: corresponds to the template's display name.
4242
4644
  string order_by = 4;
4243
4645
 
4244
4646
  // Deprecated. This field has no effect.
@@ -4272,11 +4674,11 @@ message DeleteDeidentifyTemplateRequest {
4272
4674
  // Configuration for a custom dictionary created from a data source of any size
4273
4675
  // up to the maximum size defined in the
4274
4676
  // [limits](https://cloud.google.com/dlp/limits) page. The artifacts of
4275
- // dictionary creation are stored in the specified Google Cloud Storage
4677
+ // dictionary creation are stored in the specified Cloud Storage
4276
4678
  // location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries
4277
4679
  // that satisfy the size requirements.
4278
4680
  message LargeCustomDictionaryConfig {
4279
- // Location to store dictionary artifacts in Google Cloud Storage. These files
4681
+ // Location to store dictionary artifacts in Cloud Storage. These files
4280
4682
  // will only be accessible by project owners and the DLP API. If any of these
4281
4683
  // artifacts are modified, the dictionary is considered invalid and can no
4282
4684
  // longer be used.
@@ -4349,7 +4751,7 @@ message StoredInfoTypeVersion {
4349
4751
  // appearing first.
4350
4752
  //
4351
4753
  // For example, some of the data for stored custom dictionaries is put in
4352
- // the user's Google Cloud Storage bucket, and if this data is modified or
4754
+ // the user's Cloud Storage bucket, and if this data is modified or
4353
4755
  // deleted by the user or another system, the dictionary becomes invalid.
4354
4756
  //
4355
4757
  // If any errors occur, fix the problem indicated by the error message and
@@ -4472,10 +4874,6 @@ message ListStoredInfoTypesRequest {
4472
4874
  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4473
4875
  // + Projects scope, no location specified (defaults to global):<br/>
4474
4876
  // `projects/`<var>PROJECT_ID</var>
4475
- // + Organizations scope, location specified:<br/>
4476
- // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4477
- // + Organizations scope, no location specified (defaults to global):<br/>
4478
- // `organizations/`<var>ORG_ID</var>
4479
4877
  //
4480
4878
  // The following example `parent` string specifies a parent project with the
4481
4879
  // identifier `example-project`, and specifies the `europe-west3` location
@@ -4493,7 +4891,7 @@ message ListStoredInfoTypesRequest {
4493
4891
  // to `ListStoredInfoTypes`.
4494
4892
  string page_token = 2;
4495
4893
 
4496
- // Size of the page, can be limited by server. If zero server returns
4894
+ // Size of the page, can be limited by the server. If zero server returns
4497
4895
  // a page of max size 100.
4498
4896
  int32 page_size = 3;
4499
4897
 
@@ -4506,7 +4904,7 @@ message ListStoredInfoTypesRequest {
4506
4904
  //
4507
4905
  // Supported fields are:
4508
4906
  //
4509
- // - `create_time`: corresponds to time the most recent version of the
4907
+ // - `create_time`: corresponds to the time the most recent version of the
4510
4908
  // resource was created.
4511
4909
  // - `state`: corresponds to the state of the resource.
4512
4910
  // - `name`: corresponds to resource name.
@@ -4750,33 +5148,7 @@ enum StoredInfoTypeState {
4750
5148
  }
4751
5149
 
4752
5150
  // Score is a summary of all elements in the data profile.
4753
- // A higher number means more sensitive.
4754
- message SensitivityScore {
4755
- // Various score levels for resources.
4756
- enum SensitivityScoreLevel {
4757
- // Unused.
4758
- SENSITIVITY_SCORE_UNSPECIFIED = 0;
4759
-
4760
- // No sensitive information detected. Limited access.
4761
- SENSITIVITY_LOW = 10;
4762
-
4763
- // Medium risk - PII, potentially sensitive data, or fields with free-text
4764
- // data that are at higher risk of having intermittent sensitive data.
4765
- // Consider limiting access.
4766
- SENSITIVITY_MODERATE = 20;
4767
-
4768
- // High risk – SPII may be present. Exfiltration of data may lead to user
4769
- // data loss. Re-identification of users may be possible. Consider limiting
4770
- // usage and or removing SPII.
4771
- SENSITIVITY_HIGH = 30;
4772
- }
4773
-
4774
- // The score applied to the resource.
4775
- SensitivityScoreLevel score = 1;
4776
- }
4777
-
4778
- // Score is a summary of all elements in the data profile.
4779
- // A higher number means more risky.
5151
+ // A higher number means more risk.
4780
5152
  message DataRiskLevel {
4781
5153
  // Various score levels for resources.
4782
5154
  enum DataRiskLevelScore {
@@ -4789,8 +5161,8 @@ message DataRiskLevel {
4789
5161
  RISK_LOW = 10;
4790
5162
 
4791
5163
  // Medium risk - Sensitive data may be present but additional access or fine
4792
- // grain access restrictions appears to be present. Consider limiting
4793
- // access even further or transforming data to mask.
5164
+ // grain access restrictions appear to be present. Consider limiting
5165
+ // access even further or transform data to mask.
4794
5166
  RISK_MODERATE = 20;
4795
5167
 
4796
5168
  // High risk – SPII may be present. Access controls may include public
@@ -4905,6 +5277,7 @@ message TableDataProfile {
4905
5277
  int64 table_size_bytes = 12;
4906
5278
 
4907
5279
  // Number of rows in the table when the profile was generated.
5280
+ // This will not be populated for BigLake tables.
4908
5281
  int64 row_count = 13;
4909
5282
 
4910
5283
  // How the table is encrypted.
@@ -4947,15 +5320,22 @@ enum EncryptionStatus {
4947
5320
  message InfoTypeSummary {
4948
5321
  // The infoType.
4949
5322
  InfoType info_type = 1;
5323
+
5324
+ // Not populated for predicted infotypes.
5325
+ int32 estimated_prevalence = 2 [deprecated = true];
4950
5326
  }
4951
5327
 
4952
5328
  // Infotype details for other infoTypes found within a column.
4953
5329
  message OtherInfoTypeSummary {
4954
5330
  // The other infoType.
4955
5331
  InfoType info_type = 1;
5332
+
5333
+ // Approximate percentage of non-null rows that contained data detected by
5334
+ // this infotype.
5335
+ int32 estimated_prevalence = 2;
4956
5336
  }
4957
5337
 
4958
- // A condition for determining whether a PubSub should be triggered.
5338
+ // A condition for determining whether a Pub/Sub should be triggered.
4959
5339
  message DataProfilePubSubCondition {
4960
5340
  // Various score levels for resources.
4961
5341
  enum ProfileScoreBucket {
@@ -5006,10 +5386,9 @@ message DataProfilePubSubCondition {
5006
5386
  PubSubExpressions expressions = 1;
5007
5387
  }
5008
5388
 
5009
- // The message that will be published to a Pub/Sub topic.
5389
+ // Pub/Sub topic message for a DataProfileAction.PubSubNotification event.
5010
5390
  // To receive a message of protocol buffer schema type, convert the message data
5011
5391
  // to an object of this proto class.
5012
- // https://cloud.google.com/pubsub/docs/samples/pubsub-subscribe-proto-messages
5013
5392
  message DataProfilePubSubMessage {
5014
5393
  // If `DetailLevel` is `TABLE_PROFILE` this will be fully populated.
5015
5394
  // Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and