@google-cloud/dlp 6.5.0 → 6.6.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.
@@ -1,4 +1,4 @@
1
- // Copyright 2025 Google LLC
1
+ // Copyright 2026 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.
@@ -1001,6 +1001,30 @@ message ExcludeByHotword {
1001
1001
  CustomInfoType.DetectionRule.Proximity proximity = 2;
1002
1002
  }
1003
1003
 
1004
+ // The rule to exclude image findings based on spatial relationships with
1005
+ // other image findings. For example, exclude an image finding if it overlaps
1006
+ // with another image finding.
1007
+ // This rule is silently ignored if the content being inspected is not an image.
1008
+ message ExcludeByImageFindings {
1009
+ // A list of image-supported infoTypes—excluding [document
1010
+ // infoTypes](https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#documents)—to
1011
+ // be used as context for the exclusion rule. A finding is excluded if
1012
+ // its bounding box has the specified spatial relationship (defined by
1013
+ // `image_containment_type`) with a finding of an infoType in this list.
1014
+ //
1015
+ // For example, if `InspectionRuleSet.info_types` includes
1016
+ // `OBJECT_TYPE/PERSON` and this `exclusion_rule` specifies `info_types` as
1017
+ // `OBJECT_TYPE/PERSON/PASSPORT` with `image_containment_type` set to
1018
+ // `encloses`, then `OBJECT_TYPE/PERSON` findings will be excluded if they
1019
+ // are fully contained within the bounding box of an
1020
+ // `OBJECT_TYPE/PERSON/PASSPORT` finding.
1021
+ repeated InfoType info_types = 1;
1022
+
1023
+ // Specifies the required spatial relationship between the bounding boxes
1024
+ // of the target finding and the context infoType findings.
1025
+ ImageContainmentType image_containment_type = 2;
1026
+ }
1027
+
1004
1028
  // The rule that specifies conditions when findings of infoTypes specified in
1005
1029
  // `InspectionRuleSet` are removed from results.
1006
1030
  message ExclusionRule {
@@ -1018,12 +1042,95 @@ message ExclusionRule {
1018
1042
  // Drop if the hotword rule is contained in the proximate context. For
1019
1043
  // tabular data, the context includes the column name.
1020
1044
  ExcludeByHotword exclude_by_hotword = 5;
1045
+
1046
+ // Exclude findings based on image containment rules. For example, exclude
1047
+ // an image finding if it overlaps with another image finding.
1048
+ ExcludeByImageFindings exclude_by_image_findings = 6;
1021
1049
  }
1022
1050
 
1023
1051
  // How the rule is applied, see MatchingType documentation for details.
1024
1052
  MatchingType matching_type = 4;
1025
1053
  }
1026
1054
 
1055
+ // AdjustmentRule condition for matching infoTypes.
1056
+ message AdjustByMatchingInfoTypes {
1057
+ // Sensitive Data Protection adjusts the likelihood of a finding if that
1058
+ // finding also matches one of these infoTypes.
1059
+ //
1060
+ // For example, you can create a rule to adjust the likelihood of a
1061
+ // `PHONE_NUMBER` finding if the string is found within a document that is
1062
+ // classified as `DOCUMENT_TYPE/HR/RESUME`. To configure this, set
1063
+ // `PHONE_NUMBER` in `InspectionRuleSet.info_types`. Add an `adjustment_rule`
1064
+ // with an `adjust_by_matching_info_types.info_types` that contains
1065
+ // `DOCUMENT_TYPE/HR/RESUME`. In this case, the likelihood of the
1066
+ // `PHONE_NUMBER` finding is adjusted, but the likelihood of the
1067
+ // `DOCUMENT_TYPE/HR/RESUME` finding is not.
1068
+ repeated InfoType info_types = 1;
1069
+
1070
+ // Required. Minimum likelihood of the
1071
+ // `adjust_by_matching_info_types.info_types` finding. If the likelihood is
1072
+ // lower than this value, Sensitive Data Protection doesn't adjust the
1073
+ // likelihood of the `InspectionRuleSet.info_types` finding.
1074
+ Likelihood min_likelihood = 2;
1075
+
1076
+ // How the adjustment rule is applied.
1077
+ //
1078
+ // Only `MATCHING_TYPE_PARTIAL_MATCH` is supported:
1079
+ //
1080
+ // - Partial match: adjusts the findings of infoTypes specified in the
1081
+ // inspection rule when they have a nonempty intersection with a finding of an
1082
+ // infoType specified in this adjustment rule.
1083
+ MatchingType matching_type = 3;
1084
+ }
1085
+
1086
+ // AdjustmentRule condition for image findings.
1087
+ // This rule is silently ignored if the content being inspected is not an image.
1088
+ message AdjustByImageFindings {
1089
+ // A list of image-supported infoTypes—excluding [document
1090
+ // infoTypes](https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference#documents)—to
1091
+ // be used as context for the adjustment rule. Sensitive Data Protection
1092
+ // adjusts the likelihood of an image finding if its bounding box has the
1093
+ // specified spatial relationship (defined by `image_containment_type`) with a
1094
+ // finding of an infoType in this list.
1095
+ //
1096
+ // For example, you can create a rule to adjust the likelihood of a
1097
+ // `US_PASSPORT` finding if it is enclosed by a finding of
1098
+ // `OBJECT_TYPE/PERSON/PASSPORT`. To configure this, set `US_PASSPORT` in
1099
+ // `InspectionRuleSet.info_types`. Add an `adjustment_rule` with an
1100
+ // `adjust_by_image_findings.info_types` that contains
1101
+ // `OBJECT_TYPE/PERSON/PASSPORT` and `image_containment_type` set
1102
+ // to `encloses`. In this case, the likelihood of the `US_PASSPORT` finding is
1103
+ // adjusted, but the likelihood of the `OBJECT_TYPE/PERSON/PASSPORT`
1104
+ // finding is not.
1105
+ repeated InfoType info_types = 1;
1106
+
1107
+ // Required. Minimum likelihood of the
1108
+ // `adjust_by_image_findings.info_types` finding. If the likelihood is
1109
+ // lower than this value, Sensitive Data Protection doesn't adjust the
1110
+ // likelihood of the `InspectionRuleSet.info_types` finding.
1111
+ Likelihood min_likelihood = 2;
1112
+
1113
+ // Specifies the required spatial relationship between the bounding boxes
1114
+ // of the target finding and the context infoType findings.
1115
+ ImageContainmentType image_containment_type = 3;
1116
+ }
1117
+
1118
+ // Rule that specifies conditions when a certain infoType's finding details
1119
+ // should be adjusted.
1120
+ message AdjustmentRule {
1121
+ // Condition under which the adjustment rule is applied.
1122
+ oneof conditions {
1123
+ // Set of infoTypes for which findings would affect this rule.
1124
+ AdjustByMatchingInfoTypes adjust_by_matching_info_types = 1;
1125
+
1126
+ // AdjustmentRule condition for image findings.
1127
+ AdjustByImageFindings adjust_by_image_findings = 3;
1128
+ }
1129
+
1130
+ // Likelihood adjustment to apply to the infoType.
1131
+ CustomInfoType.DetectionRule.LikelihoodAdjustment likelihood_adjustment = 2;
1132
+ }
1133
+
1027
1134
  // A single inspection rule to be applied to infoTypes, specified in
1028
1135
  // `InspectionRuleSet`.
1029
1136
  message InspectionRule {
@@ -1034,6 +1141,9 @@ message InspectionRule {
1034
1141
 
1035
1142
  // Exclusion rule.
1036
1143
  ExclusionRule exclusion_rule = 2;
1144
+
1145
+ // Adjustment rule.
1146
+ AdjustmentRule adjustment_rule = 3;
1037
1147
  }
1038
1148
  }
1039
1149
 
@@ -1183,7 +1293,8 @@ message InspectConfig {
1183
1293
 
1184
1294
  // Set of rules to apply to the findings for this InspectConfig.
1185
1295
  // Exclusion rules, contained in the set are executed in the end, other
1186
- // rules are executed in the order they are specified for each info type.
1296
+ // rules are executed in the order they are specified for each info type. Not
1297
+ // supported for the `metadata_key_value_expression` CustomInfoType.
1187
1298
  repeated InspectionRuleSet rule_set = 10;
1188
1299
  }
1189
1300
 
@@ -1452,6 +1563,9 @@ message MetadataLocation {
1452
1563
  oneof label {
1453
1564
  // Storage metadata.
1454
1565
  StorageMetadataLabel storage_label = 3;
1566
+
1567
+ // Metadata key that contains the finding.
1568
+ KeyValueMetadataLabel key_value_metadata_label = 4;
1455
1569
  }
1456
1570
  }
1457
1571
 
@@ -1461,6 +1575,17 @@ message StorageMetadataLabel {
1461
1575
  string key = 1;
1462
1576
  }
1463
1577
 
1578
+ // The metadata key that contains a finding.
1579
+ message KeyValueMetadataLabel {
1580
+ // The metadata key. The format depends on the source of the metadata.
1581
+ //
1582
+ // Example:
1583
+ //
1584
+ // - `MSIP_Label_122709e3-8f6b-4860-985f-7f722a94f61e_Enabled` (a Microsoft
1585
+ // Purview Information Protection key example)
1586
+ string key = 1;
1587
+ }
1588
+
1464
1589
  // Location of a finding within a document.
1465
1590
  message DocumentLocation {
1466
1591
  // Offset of the line, from the beginning of the file, where the finding
@@ -1884,6 +2009,7 @@ message OutputStorageConfig {
1884
2009
  }
1885
2010
 
1886
2011
  // Output storage types.
2012
+ // *
1887
2013
  oneof type {
1888
2014
  // Store findings in an existing table or a new table in an existing
1889
2015
  // dataset. If table_id is not set a new one will be generated
@@ -2081,6 +2207,21 @@ message LocationSupport {
2081
2207
 
2082
2208
  // InfoType description.
2083
2209
  message InfoTypeDescription {
2210
+ // The launch status of an infoType.
2211
+ enum InfoTypeLaunchStatus {
2212
+ // Unspecified.
2213
+ INFO_TYPE_LAUNCH_STATUS_UNSPECIFIED = 0;
2214
+
2215
+ // InfoType is generally available.
2216
+ GENERAL_AVAILABILITY = 1;
2217
+
2218
+ // InfoType is in public preview.
2219
+ PUBLIC_PREVIEW = 2;
2220
+
2221
+ // InfoType is in private preview.
2222
+ PRIVATE_PREVIEW = 3;
2223
+ }
2224
+
2084
2225
  // Internal name of the infoType.
2085
2226
  string name = 1;
2086
2227
 
@@ -2115,6 +2256,9 @@ message InfoTypeDescription {
2115
2256
  // For example, the "GEOGRAPHIC_DATA" general infoType would have set for this
2116
2257
  // field "LOCATION", "LOCATION_COORDINATES", and "STREET_ADDRESS".
2117
2258
  repeated string specific_info_types = 12;
2259
+
2260
+ // The launch status of the infoType.
2261
+ InfoTypeLaunchStatus launch_status = 13;
2118
2262
  }
2119
2263
 
2120
2264
  // Classification of infoTypes to organize them according to geographic
@@ -4394,9 +4538,11 @@ message Action {
4394
4538
  // Publish summary to Cloud Security Command Center (Alpha).
4395
4539
  PublishSummaryToCscc publish_summary_to_cscc = 3;
4396
4540
 
4397
- // Publish findings to Cloud Datahub.
4398
- PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog =
4399
- 5;
4541
+ // Deprecated because Data Catalog is being turned down. Use
4542
+ // publish_findings_to_dataplex_catalog to publish findings to Dataplex
4543
+ // Universal Catalog.
4544
+ PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog = 5
4545
+ [deprecated = true];
4400
4546
 
4401
4547
  // Publish findings as an aspect to Dataplex Universal Catalog.
4402
4548
  PublishFindingsToDataplexCatalog publish_findings_to_dataplex_catalog = 10;
@@ -6460,10 +6606,14 @@ message VertexDatasetRegex {
6460
6606
  string project_id_regex = 1;
6461
6607
  }
6462
6608
 
6463
- // Identifies a single Vertex AI dataset.
6609
+ // Identifies a single Vertex AI resource. Only datasets are
6610
+ // supported.
6464
6611
  message VertexDatasetResourceReference {
6465
- // Required. The name of the dataset resource. If set within a project-level
6612
+ // Required. The name of the Vertex AI resource. If set within a project-level
6466
6613
  // configuration, the specified resource must be within the project.
6614
+ // Examples:
6615
+ //
6616
+ // * `projects/{project}/locations/{location}/datasets/{dataset}`
6467
6617
  string dataset_resource_name = 1 [(google.api.field_behavior) = REQUIRED];
6468
6618
  }
6469
6619
 
@@ -7239,33 +7389,73 @@ enum RelationalOperator {
7239
7389
 
7240
7390
  // Type of the match which can be applied to different ways of matching, like
7241
7391
  // Dictionary, regular expression and intersecting with findings of another
7242
- // info type.
7392
+ // infoType.
7243
7393
  enum MatchingType {
7244
7394
  // Invalid.
7245
7395
  MATCHING_TYPE_UNSPECIFIED = 0;
7246
7396
 
7247
7397
  // Full match.
7248
7398
  //
7249
- // - Dictionary: join of Dictionary results matched complete finding quote
7250
- // - Regex: all regex matches fill a finding quote start to end
7251
- // - Exclude info type: completely inside affecting info types findings
7399
+ // - Dictionary: join of Dictionary results matched the complete finding quote
7400
+ // - Regex: all regex matches fill a finding quote from start to end
7401
+ // - Exclude infoType: completely inside affecting infoTypes findings
7252
7402
  MATCHING_TYPE_FULL_MATCH = 1;
7253
7403
 
7254
7404
  // Partial match.
7255
7405
  //
7256
7406
  // - Dictionary: at least one of the tokens in the finding matches
7257
7407
  // - Regex: substring of the finding matches
7258
- // - Exclude info type: intersects with affecting info types findings
7408
+ // - Exclude infoType: intersects with affecting infoTypes findings
7259
7409
  MATCHING_TYPE_PARTIAL_MATCH = 2;
7260
7410
 
7261
7411
  // Inverse match.
7262
7412
  //
7263
7413
  // - Dictionary: no tokens in the finding match the dictionary
7264
7414
  // - Regex: finding doesn't match the regex
7265
- // - Exclude info type: no intersection with affecting info types findings
7415
+ // - Exclude infoType: no intersection with affecting infoTypes findings
7266
7416
  MATCHING_TYPE_INVERSE_MATCH = 3;
7417
+
7418
+ // Rule-specific match.
7419
+ //
7420
+ // The matching logic is based on the specific rule being used. This is
7421
+ // required for rules where the matching behavior is not a simple string
7422
+ // comparison (e.g., image containment). This matching type can only be
7423
+ // used with the `ExcludeByImageFindings` rule.
7424
+ //
7425
+ // - Exclude by image findings: The matching logic is defined within
7426
+ // `ExcludeByImageFindings` based on spatial relationships between bounding
7427
+ // boxes.
7428
+ MATCHING_TYPE_RULE_SPECIFIC = 4;
7267
7429
  }
7268
7430
 
7431
+ // Specifies the relationship between bounding boxes for image findings.
7432
+ message ImageContainmentType {
7433
+ // The type of relationship to check between the target finding and the
7434
+ // context finding.
7435
+ oneof type {
7436
+ // The context finding's bounding box must fully contain the target
7437
+ // finding's bounding box.
7438
+ Encloses encloses = 1;
7439
+
7440
+ // The context finding's bounding box must be fully inside the target
7441
+ // finding's bounding box.
7442
+ FullyInside fully_inside = 2;
7443
+
7444
+ // The context finding's bounding box and the target finding's bounding box
7445
+ // must have a non-zero intersection.
7446
+ Overlap overlaps = 3;
7447
+ }
7448
+ }
7449
+
7450
+ // Defines a condition for overlapping bounding boxes.
7451
+ message Overlap {}
7452
+
7453
+ // Defines a condition where one bounding box encloses another.
7454
+ message Encloses {}
7455
+
7456
+ // Defines a condition where one bounding box is fully inside another.
7457
+ message FullyInside {}
7458
+
7269
7459
  // Deprecated and unused.
7270
7460
  enum ContentOption {
7271
7461
  // Includes entire content of a file or a data stream.
@@ -7285,6 +7475,9 @@ enum MetadataType {
7285
7475
 
7286
7476
  // General file metadata provided by Cloud Storage.
7287
7477
  STORAGE_METADATA = 2;
7478
+
7479
+ // Metadata extracted from the files.
7480
+ CONTENT_METADATA = 3;
7288
7481
  }
7289
7482
 
7290
7483
  // Parts of the APIs which use certain infoTypes.
@@ -8780,14 +8973,14 @@ message DeleteTableDataProfileRequest {
8780
8973
 
8781
8974
  // Message used to identify the type of resource being profiled.
8782
8975
  message DataSourceType {
8783
- // Output only. An identifying string to the type of resource being profiled.
8976
+ // A string that identifies the type of resource being profiled.
8784
8977
  // Current values:
8785
8978
  //
8786
8979
  // * google/bigquery/table
8787
8980
  // * google/project
8788
8981
  // * google/sql/table
8789
8982
  // * google/gcs/bucket
8790
- string data_source = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
8983
+ string data_source = 1;
8791
8984
  }
8792
8985
 
8793
8986
  // Message used to identify file cluster type being profiled.
@@ -8904,7 +9097,7 @@ message Domain {
8904
9097
  }
8905
9098
 
8906
9099
  // The signal used to determine the category.
8907
- // This list may increase over time.
9100
+ // New values may be added in the future.
8908
9101
  enum Signal {
8909
9102
  // Unused.
8910
9103
  SIGNAL_UNSPECIFIED = 0;
@@ -8912,9 +9105,14 @@ message Domain {
8912
9105
  // One or more machine learning models are present.
8913
9106
  MODEL = 1;
8914
9107
 
8915
- // A table appears to be a text embedding.
9108
+ // A table appears to contain text embeddings.
8916
9109
  TEXT_EMBEDDING = 2;
8917
9110
 
9111
+ // A table appears to contain embeddings of any type (for example, text,
9112
+ // image, multimodal). The `TEXT_EMBEDDING` signal might also be present if
9113
+ // the table contains text embeddings.
9114
+ EMBEDDING = 7;
9115
+
8918
9116
  // The [Cloud SQL Vertex
8919
9117
  // AI](https://cloud.google.com/sql/docs/postgres/integrate-cloud-sql-with-vertex-ai)
8920
9118
  // plugin is installed on the database.
@@ -1,4 +1,4 @@
1
- // Copyright 2025 Google LLC
1
+ // Copyright 2026 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.
@@ -193,6 +193,17 @@ message CustomInfoType {
193
193
  // not support the use of `detection_rules`.
194
194
  message SurrogateType {}
195
195
 
196
+ // Configuration for a custom infoType that detects key-value pairs in the
197
+ // metadata matching the specified regular expressions.
198
+ message MetadataKeyValueExpression {
199
+ // The regular expression for the key. Key should be
200
+ // non-empty.
201
+ string key_regex = 1;
202
+
203
+ // The regular expression for the value. Value should be non-empty.
204
+ string value_regex = 2;
205
+ }
206
+
196
207
  // Deprecated; use `InspectionRuleSet` instead. Rule for modifying a
197
208
  // `CustomInfoType` to alter behavior under certain circumstances, depending
198
209
  // on the specific details of the rule. Not supported for the `surrogate_type`
@@ -299,18 +310,21 @@ message CustomInfoType {
299
310
  // support reversing.
300
311
  SurrogateType surrogate_type = 4;
301
312
 
302
- // Load an existing `StoredInfoType` resource for use in
303
- // `InspectDataSource`. Not currently supported in `InspectContent`.
313
+ // Loads an existing `StoredInfoType` resource.
304
314
  StoredType stored_type = 5;
315
+
316
+ // Key-value pair to detect in the metadata.
317
+ MetadataKeyValueExpression metadata_key_value_expression = 10;
305
318
  }
306
319
 
307
320
  // Set of detection rules to apply to all findings of this CustomInfoType.
308
- // Rules are applied in order that they are specified. Not supported for the
309
- // `surrogate_type` CustomInfoType.
321
+ // Rules are applied in the order that they are specified. Only supported
322
+ // for the `dictionary`, `regex`, and `stored_type` CustomInfoTypes.
310
323
  repeated DetectionRule detection_rules = 7;
311
324
 
312
325
  // If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding
313
- // to be returned. It still can be used for rules matching.
326
+ // to be returned. It still can be used for rules matching. Only supported
327
+ // for the `dictionary`, `regex`, and `stored_type` CustomInfoTypes.
314
328
  ExclusionType exclusion_type = 8;
315
329
 
316
330
  // Sensitivity for this CustomInfoType. If this CustomInfoType extends an