Skip to content

Commit 3f39c49

Browse files
feat: [dlp] add sample findings for data profiles (#6192)
* feat: add sample findings for data profiles feat: list tags on resources for data profiles docs: updated documentation for various fields and messages PiperOrigin-RevId: 738266551 Source-Link: googleapis/googleapis@f95ceda Source-Link: googleapis/googleapis-gen@199b645 Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLXByaXZhY3ktZGxwLy5Pd2xCb3QueWFtbCIsImgiOiIxOTliNjQ1YmVlOGZjOGRkMGE2OTExYmVkZDEzM2M0ZDdjZGIxZGNlIn0= * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent d11d8e9 commit 3f39c49

6 files changed

Lines changed: 2076 additions & 6 deletions

File tree

packages/google-privacy-dlp/protos/google/privacy/dlp/v2/dlp.proto

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ service DlpService {
8888
// When no InfoTypes or CustomInfoTypes are specified in this request, the
8989
// system will automatically choose what detectors to run. By default this may
9090
// be all types, but may change over time as detectors are updated.
91+
//
92+
// Only the first frame of each multiframe image is redacted. Metadata and
93+
// other frames are omitted in the response.
9194
rpc RedactImage(RedactImageRequest) returns (RedactImageResponse) {
9295
option (google.api.http) = {
9396
post: "/v2/{parent=projects/*}/image:redact"
@@ -144,6 +147,12 @@ service DlpService {
144147
option (google.api.http) = {
145148
get: "/v2/infoTypes"
146149
additional_bindings { get: "/v2/{parent=locations/*}/infoTypes" }
150+
additional_bindings {
151+
get: "/v2/{parent=projects/*/locations/*}/infoTypes"
152+
}
153+
additional_bindings {
154+
get: "/v2/{parent=organizations/*/locations/*}/infoTypes"
155+
}
147156
};
148157
option (google.api.method_signature) = "parent";
149158
}
@@ -1183,6 +1192,9 @@ message ByteContentItem {
11831192
// The type of data being sent for inspection. To learn more, see
11841193
// [Supported file
11851194
// types](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types).
1195+
//
1196+
// Only the first frame of each multiframe image is inspected. Metadata and
1197+
// other frames aren't inspected.
11861198
enum BytesType {
11871199
// Unused
11881200
BYTES_TYPE_UNSPECIFIED = 0;
@@ -2038,6 +2050,13 @@ message InfoTypeDescription {
20382050

20392051
// The default sensitivity of the infoType.
20402052
SensitivityScore sensitivity_score = 11;
2053+
2054+
// If this field is set, this infoType is a general infoType and these
2055+
// specific infoTypes are contained within it.
2056+
// General infoTypes are infoTypes that encompass multiple specific infoTypes.
2057+
// For example, the "GEOGRAPHIC_DATA" general infoType would have set for this
2058+
// field "LOCATION", "LOCATION_COORDINATES", and "STREET_ADDRESS".
2059+
repeated string specific_info_types = 12;
20412060
}
20422061

20432062
// Classification of infoTypes to organize them according to geographic
@@ -2089,6 +2108,9 @@ message InfoTypeCategory {
20892108
// The infoType is typically used in Croatia.
20902109
CROATIA = 42;
20912110

2111+
// The infoType is typically used in Czechia.
2112+
CZECHIA = 52;
2113+
20922114
// The infoType is typically used in Denmark.
20932115
DENMARK = 10;
20942116

@@ -4861,6 +4883,15 @@ message DataProfileAction {
48614883
// If you use VPC Service Controls to define security perimeters, then
48624884
// you must use a separate table for each boundary.
48634885
BigQueryTable profile_table = 1;
4886+
4887+
// Store sample [data profile
4888+
// findings][google.privacy.dlp.v2.DataProfileFinding] in an existing table
4889+
// or a new table in an existing dataset. Each regeneration will result in
4890+
// new rows in BigQuery. Data is inserted using [streaming
4891+
// insert](https://cloud.google.com/blog/products/bigquery/life-of-a-bigquery-streaming-insert)
4892+
// and so data may be in the buffer for a period of time after the profile
4893+
// has finished.
4894+
BigQueryTable sample_findings_table = 2;
48644895
}
48654896

48664897
// Send a Pub/Sub message into the given Pub/Sub topic to connect other
@@ -5003,6 +5034,65 @@ message DataProfileAction {
50035034
}
50045035
}
50055036

5037+
// Details about a piece of potentially sensitive information that was detected
5038+
// when the data resource was profiled.
5039+
message DataProfileFinding {
5040+
// The content that was found. Even if the content is not textual, it
5041+
// may be converted to a textual representation here. If the finding exceeds
5042+
// 4096 bytes in length, the quote may be omitted.
5043+
string quote = 1;
5044+
5045+
// The [type of
5046+
// content](https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference)
5047+
// that might have been found.
5048+
InfoType infotype = 2;
5049+
5050+
// Contains data parsed from quotes. Currently supported infoTypes: DATE,
5051+
// DATE_OF_BIRTH, and TIME.
5052+
QuoteInfo quote_info = 3;
5053+
5054+
// Resource name of the data profile associated with the finding.
5055+
string data_profile_resource_name = 4;
5056+
5057+
// A unique identifier for the finding.
5058+
string finding_id = 5;
5059+
5060+
// Timestamp when the finding was detected.
5061+
google.protobuf.Timestamp timestamp = 6;
5062+
5063+
// Where the content was found.
5064+
DataProfileFindingLocation location = 7;
5065+
5066+
// How broadly a resource has been shared.
5067+
ResourceVisibility resource_visibility = 8;
5068+
}
5069+
5070+
// Location of a data profile finding within a resource.
5071+
message DataProfileFindingLocation {
5072+
// Name of the container where the finding is located.
5073+
// The top-level name is the source file name or table name. Names of some
5074+
// common storage containers are formatted as follows:
5075+
//
5076+
// * BigQuery tables: `{project_id}:{dataset_id}.{table_id}`
5077+
// * Cloud Storage files: `gs://{bucket}/{path}`
5078+
string container_name = 1;
5079+
5080+
// Additional location details that may be provided for some types of
5081+
// profiles. At this time, only findings for table data profiles include such
5082+
// details.
5083+
oneof location_extra_details {
5084+
// Location of a finding within a resource that produces a table data
5085+
// profile.
5086+
DataProfileFindingRecordLocation data_profile_finding_record_location = 2;
5087+
}
5088+
}
5089+
5090+
// Location of a finding within a resource that produces a table data profile.
5091+
message DataProfileFindingRecordLocation {
5092+
// Field ID of the column containing the finding.
5093+
FieldId field = 1;
5094+
}
5095+
50065096
// Configuration for setting up a job to scan resources for profile generation.
50075097
// Only one data profile configuration may exist per organization, folder,
50085098
// or project.
@@ -7520,6 +7610,14 @@ message TableDataProfile {
75207610
// The time at which the table was created.
75217611
google.protobuf.Timestamp create_time = 23;
75227612

7613+
// The BigQuery table to which the sample findings are written.
7614+
BigQueryTable sample_findings_table = 37;
7615+
7616+
// The tags attached to the table, including any tags attached during
7617+
// profiling. Because tags are attached to Cloud SQL instances rather than
7618+
// Cloud SQL tables, this field is empty for Cloud SQL table profiles.
7619+
repeated Tag tags = 39;
7620+
75237621
// Resources related to this profile.
75247622
repeated RelatedResource related_resources = 41;
75257623
}
@@ -7888,13 +7986,37 @@ message FileStoreDataProfile {
78887986
// InfoTypes detected in this file store.
78897987
repeated FileStoreInfoTypeSummary file_store_info_type_summaries = 21;
78907988

7989+
// The BigQuery table to which the sample findings are written.
7990+
BigQueryTable sample_findings_table = 22;
7991+
78917992
// The file store does not have any files.
78927993
bool file_store_is_empty = 23;
78937994

7995+
// The tags attached to the resource, including any tags attached during
7996+
// profiling.
7997+
repeated Tag tags = 25;
7998+
78947999
// Resources related to this profile.
78958000
repeated RelatedResource related_resources = 26;
78968001
}
78978002

8003+
// A tag associated with a resource.
8004+
message Tag {
8005+
// The namespaced name for the tag value to attach to Google Cloud resources.
8006+
// Must be in the format `{parent_id}/{tag_key_short_name}/{short_name}`, for
8007+
// example, "123456/environment/prod". This is only set for Google Cloud
8008+
// resources.
8009+
string namespaced_tag_value = 1;
8010+
8011+
// The key of a tag key-value pair. For Google Cloud resources, this is the
8012+
// resource name of the key, for example, "tagKeys/123456".
8013+
string key = 2;
8014+
8015+
// The value of a tag key-value pair. For Google Cloud resources, this is the
8016+
// resource name of the value, for example, "tagValues/123456".
8017+
string value = 3;
8018+
}
8019+
78988020
// A related resource.
78998021
// Examples:
79008022
//

0 commit comments

Comments
 (0)