xref: /aosp_15_r20/external/googleapis/google/privacy/dlp/v2/dlp.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.privacy.dlp.v2;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/privacy/dlp/v2/storage.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/type/date.proto";
30*d5c09012SAndroid Build Coastguard Workerimport "google/type/dayofweek.proto";
31*d5c09012SAndroid Build Coastguard Workerimport "google/type/timeofday.proto";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dlp.V2";
34*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dlp/apiv2/dlppb;dlppb";
35*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
36*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "DlpProto";
37*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.privacy.dlp.v2";
38*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Dlp\\V2";
39*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Dlp::V2";
40*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
41*d5c09012SAndroid Build Coastguard Worker  type: "dlp.googleapis.com/DlpContent"
42*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/dlpContent"
43*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/dlpContent"
44*d5c09012SAndroid Build Coastguard Worker};
45*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
46*d5c09012SAndroid Build Coastguard Worker  type: "dlp.googleapis.com/OrganizationLocation"
47*d5c09012SAndroid Build Coastguard Worker  pattern: "organizations/{organization}/locations/{location}"
48*d5c09012SAndroid Build Coastguard Worker};
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker// The Cloud Data Loss Prevention (DLP) API is a service that allows clients
51*d5c09012SAndroid Build Coastguard Worker// to detect the presence of Personally Identifiable Information (PII) and other
52*d5c09012SAndroid Build Coastguard Worker// privacy-sensitive data in user-supplied, unstructured data streams, like text
53*d5c09012SAndroid Build Coastguard Worker// blocks or images.
54*d5c09012SAndroid Build Coastguard Worker// The service also includes methods for sensitive data redaction and
55*d5c09012SAndroid Build Coastguard Worker// scheduling of data scans on Google Cloud Platform based data sets.
56*d5c09012SAndroid Build Coastguard Worker//
57*d5c09012SAndroid Build Coastguard Worker// To learn more about concepts and find how-to guides see
58*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/.
59*d5c09012SAndroid Build Coastguard Workerservice DlpService {
60*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dlp.googleapis.com";
61*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
62*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker  // Finds potentially sensitive info in content.
65*d5c09012SAndroid Build Coastguard Worker  // This method has limits on input size, processing time, and output size.
66*d5c09012SAndroid Build Coastguard Worker  //
67*d5c09012SAndroid Build Coastguard Worker  // When no InfoTypes or CustomInfoTypes are specified in this request, the
68*d5c09012SAndroid Build Coastguard Worker  // system will automatically choose what detectors to run. By default this may
69*d5c09012SAndroid Build Coastguard Worker  // be all types, but may change over time as detectors are updated.
70*d5c09012SAndroid Build Coastguard Worker  //
71*d5c09012SAndroid Build Coastguard Worker  // For how to guides, see
72*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-images
73*d5c09012SAndroid Build Coastguard Worker  // and
74*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-text,
75*d5c09012SAndroid Build Coastguard Worker  rpc InspectContent(InspectContentRequest) returns (InspectContentResponse) {
76*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
77*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/content:inspect"
78*d5c09012SAndroid Build Coastguard Worker      body: "*"
79*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
80*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/content:inspect"
81*d5c09012SAndroid Build Coastguard Worker        body: "*"
82*d5c09012SAndroid Build Coastguard Worker      }
83*d5c09012SAndroid Build Coastguard Worker    };
84*d5c09012SAndroid Build Coastguard Worker  }
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker  // Redacts potentially sensitive info from an image.
87*d5c09012SAndroid Build Coastguard Worker  // This method has limits on input size, processing time, and output size.
88*d5c09012SAndroid Build Coastguard Worker  // See
89*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/redacting-sensitive-data-images
90*d5c09012SAndroid Build Coastguard Worker  // to learn more.
91*d5c09012SAndroid Build Coastguard Worker  //
92*d5c09012SAndroid Build Coastguard Worker  // When no InfoTypes or CustomInfoTypes are specified in this request, the
93*d5c09012SAndroid Build Coastguard Worker  // system will automatically choose what detectors to run. By default this may
94*d5c09012SAndroid Build Coastguard Worker  // be all types, but may change over time as detectors are updated.
95*d5c09012SAndroid Build Coastguard Worker  rpc RedactImage(RedactImageRequest) returns (RedactImageResponse) {
96*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
97*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/image:redact"
98*d5c09012SAndroid Build Coastguard Worker      body: "*"
99*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
100*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/image:redact"
101*d5c09012SAndroid Build Coastguard Worker        body: "*"
102*d5c09012SAndroid Build Coastguard Worker      }
103*d5c09012SAndroid Build Coastguard Worker    };
104*d5c09012SAndroid Build Coastguard Worker  }
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // De-identifies potentially sensitive info from a ContentItem.
107*d5c09012SAndroid Build Coastguard Worker  // This method has limits on input size and output size.
108*d5c09012SAndroid Build Coastguard Worker  // See
109*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/deidentify-sensitive-data
110*d5c09012SAndroid Build Coastguard Worker  // to learn more.
111*d5c09012SAndroid Build Coastguard Worker  //
112*d5c09012SAndroid Build Coastguard Worker  // When no InfoTypes or CustomInfoTypes are specified in this request, the
113*d5c09012SAndroid Build Coastguard Worker  // system will automatically choose what detectors to run. By default this may
114*d5c09012SAndroid Build Coastguard Worker  // be all types, but may change over time as detectors are updated.
115*d5c09012SAndroid Build Coastguard Worker  rpc DeidentifyContent(DeidentifyContentRequest)
116*d5c09012SAndroid Build Coastguard Worker      returns (DeidentifyContentResponse) {
117*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
118*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/content:deidentify"
119*d5c09012SAndroid Build Coastguard Worker      body: "*"
120*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
121*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/content:deidentify"
122*d5c09012SAndroid Build Coastguard Worker        body: "*"
123*d5c09012SAndroid Build Coastguard Worker      }
124*d5c09012SAndroid Build Coastguard Worker    };
125*d5c09012SAndroid Build Coastguard Worker  }
126*d5c09012SAndroid Build Coastguard Worker
127*d5c09012SAndroid Build Coastguard Worker  // Re-identifies content that has been de-identified.
128*d5c09012SAndroid Build Coastguard Worker  // See
129*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/pseudonymization#re-identification_in_free_text_code_example
130*d5c09012SAndroid Build Coastguard Worker  // to learn more.
131*d5c09012SAndroid Build Coastguard Worker  rpc ReidentifyContent(ReidentifyContentRequest)
132*d5c09012SAndroid Build Coastguard Worker      returns (ReidentifyContentResponse) {
133*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
134*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/content:reidentify"
135*d5c09012SAndroid Build Coastguard Worker      body: "*"
136*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
137*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/content:reidentify"
138*d5c09012SAndroid Build Coastguard Worker        body: "*"
139*d5c09012SAndroid Build Coastguard Worker      }
140*d5c09012SAndroid Build Coastguard Worker    };
141*d5c09012SAndroid Build Coastguard Worker  }
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker  // Returns a list of the sensitive information types that DLP API
144*d5c09012SAndroid Build Coastguard Worker  // supports. See
145*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference
146*d5c09012SAndroid Build Coastguard Worker  // to learn more.
147*d5c09012SAndroid Build Coastguard Worker  rpc ListInfoTypes(ListInfoTypesRequest) returns (ListInfoTypesResponse) {
148*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
149*d5c09012SAndroid Build Coastguard Worker      get: "/v2/infoTypes"
150*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{parent=locations/*}/infoTypes" }
151*d5c09012SAndroid Build Coastguard Worker    };
152*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
153*d5c09012SAndroid Build Coastguard Worker  }
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker  // Creates an InspectTemplate for reusing frequently used configuration
156*d5c09012SAndroid Build Coastguard Worker  // for inspecting content, images, and storage.
157*d5c09012SAndroid Build Coastguard Worker  // See
158*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates
159*d5c09012SAndroid Build Coastguard Worker  // to learn more.
160*d5c09012SAndroid Build Coastguard Worker  rpc CreateInspectTemplate(CreateInspectTemplateRequest)
161*d5c09012SAndroid Build Coastguard Worker      returns (InspectTemplate) {
162*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
163*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=organizations/*}/inspectTemplates"
164*d5c09012SAndroid Build Coastguard Worker      body: "*"
165*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
166*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=organizations/*/locations/*}/inspectTemplates"
167*d5c09012SAndroid Build Coastguard Worker        body: "*"
168*d5c09012SAndroid Build Coastguard Worker      }
169*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
170*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*}/inspectTemplates"
171*d5c09012SAndroid Build Coastguard Worker        body: "*"
172*d5c09012SAndroid Build Coastguard Worker      }
173*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
174*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/inspectTemplates"
175*d5c09012SAndroid Build Coastguard Worker        body: "*"
176*d5c09012SAndroid Build Coastguard Worker      }
177*d5c09012SAndroid Build Coastguard Worker    };
178*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,inspect_template";
179*d5c09012SAndroid Build Coastguard Worker  }
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker  // Updates the InspectTemplate.
182*d5c09012SAndroid Build Coastguard Worker  // See
183*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates
184*d5c09012SAndroid Build Coastguard Worker  // to learn more.
185*d5c09012SAndroid Build Coastguard Worker  rpc UpdateInspectTemplate(UpdateInspectTemplateRequest)
186*d5c09012SAndroid Build Coastguard Worker      returns (InspectTemplate) {
187*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
188*d5c09012SAndroid Build Coastguard Worker      patch: "/v2/{name=organizations/*/inspectTemplates/*}"
189*d5c09012SAndroid Build Coastguard Worker      body: "*"
190*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
191*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
192*d5c09012SAndroid Build Coastguard Worker        body: "*"
193*d5c09012SAndroid Build Coastguard Worker      }
194*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
195*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/inspectTemplates/*}"
196*d5c09012SAndroid Build Coastguard Worker        body: "*"
197*d5c09012SAndroid Build Coastguard Worker      }
198*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
199*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
200*d5c09012SAndroid Build Coastguard Worker        body: "*"
201*d5c09012SAndroid Build Coastguard Worker      }
202*d5c09012SAndroid Build Coastguard Worker    };
203*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,inspect_template,update_mask";
204*d5c09012SAndroid Build Coastguard Worker  }
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // Gets an InspectTemplate.
207*d5c09012SAndroid Build Coastguard Worker  // See
208*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates
209*d5c09012SAndroid Build Coastguard Worker  // to learn more.
210*d5c09012SAndroid Build Coastguard Worker  rpc GetInspectTemplate(GetInspectTemplateRequest) returns (InspectTemplate) {
211*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
212*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=organizations/*/inspectTemplates/*}"
213*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
214*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
215*d5c09012SAndroid Build Coastguard Worker      }
216*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{name=projects/*/inspectTemplates/*}" }
217*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
218*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
219*d5c09012SAndroid Build Coastguard Worker      }
220*d5c09012SAndroid Build Coastguard Worker    };
221*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
222*d5c09012SAndroid Build Coastguard Worker  }
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // Lists InspectTemplates.
225*d5c09012SAndroid Build Coastguard Worker  // See
226*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates
227*d5c09012SAndroid Build Coastguard Worker  // to learn more.
228*d5c09012SAndroid Build Coastguard Worker  rpc ListInspectTemplates(ListInspectTemplatesRequest)
229*d5c09012SAndroid Build Coastguard Worker      returns (ListInspectTemplatesResponse) {
230*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
231*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=organizations/*}/inspectTemplates"
232*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
233*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=organizations/*/locations/*}/inspectTemplates"
234*d5c09012SAndroid Build Coastguard Worker      }
235*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{parent=projects/*}/inspectTemplates" }
236*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
237*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/inspectTemplates"
238*d5c09012SAndroid Build Coastguard Worker      }
239*d5c09012SAndroid Build Coastguard Worker    };
240*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
241*d5c09012SAndroid Build Coastguard Worker  }
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker  // Deletes an InspectTemplate.
244*d5c09012SAndroid Build Coastguard Worker  // See
245*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates
246*d5c09012SAndroid Build Coastguard Worker  // to learn more.
247*d5c09012SAndroid Build Coastguard Worker  rpc DeleteInspectTemplate(DeleteInspectTemplateRequest)
248*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
249*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
250*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{name=organizations/*/inspectTemplates/*}"
251*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
252*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}"
253*d5c09012SAndroid Build Coastguard Worker      }
254*d5c09012SAndroid Build Coastguard Worker      additional_bindings { delete: "/v2/{name=projects/*/inspectTemplates/*}" }
255*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
256*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=projects/*/locations/*/inspectTemplates/*}"
257*d5c09012SAndroid Build Coastguard Worker      }
258*d5c09012SAndroid Build Coastguard Worker    };
259*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
260*d5c09012SAndroid Build Coastguard Worker  }
261*d5c09012SAndroid Build Coastguard Worker
262*d5c09012SAndroid Build Coastguard Worker  // Creates a DeidentifyTemplate for reusing frequently used configuration
263*d5c09012SAndroid Build Coastguard Worker  // for de-identifying content, images, and storage.
264*d5c09012SAndroid Build Coastguard Worker  // See
265*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid
266*d5c09012SAndroid Build Coastguard Worker  // to learn more.
267*d5c09012SAndroid Build Coastguard Worker  rpc CreateDeidentifyTemplate(CreateDeidentifyTemplateRequest)
268*d5c09012SAndroid Build Coastguard Worker      returns (DeidentifyTemplate) {
269*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
270*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=organizations/*}/deidentifyTemplates"
271*d5c09012SAndroid Build Coastguard Worker      body: "*"
272*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
273*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=organizations/*/locations/*}/deidentifyTemplates"
274*d5c09012SAndroid Build Coastguard Worker        body: "*"
275*d5c09012SAndroid Build Coastguard Worker      }
276*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
277*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*}/deidentifyTemplates"
278*d5c09012SAndroid Build Coastguard Worker        body: "*"
279*d5c09012SAndroid Build Coastguard Worker      }
280*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
281*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/deidentifyTemplates"
282*d5c09012SAndroid Build Coastguard Worker        body: "*"
283*d5c09012SAndroid Build Coastguard Worker      }
284*d5c09012SAndroid Build Coastguard Worker    };
285*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,deidentify_template";
286*d5c09012SAndroid Build Coastguard Worker  }
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  // Updates the DeidentifyTemplate.
289*d5c09012SAndroid Build Coastguard Worker  // See
290*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid
291*d5c09012SAndroid Build Coastguard Worker  // to learn more.
292*d5c09012SAndroid Build Coastguard Worker  rpc UpdateDeidentifyTemplate(UpdateDeidentifyTemplateRequest)
293*d5c09012SAndroid Build Coastguard Worker      returns (DeidentifyTemplate) {
294*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
295*d5c09012SAndroid Build Coastguard Worker      patch: "/v2/{name=organizations/*/deidentifyTemplates/*}"
296*d5c09012SAndroid Build Coastguard Worker      body: "*"
297*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
298*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
299*d5c09012SAndroid Build Coastguard Worker        body: "*"
300*d5c09012SAndroid Build Coastguard Worker      }
301*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
302*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/deidentifyTemplates/*}"
303*d5c09012SAndroid Build Coastguard Worker        body: "*"
304*d5c09012SAndroid Build Coastguard Worker      }
305*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
306*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
307*d5c09012SAndroid Build Coastguard Worker        body: "*"
308*d5c09012SAndroid Build Coastguard Worker      }
309*d5c09012SAndroid Build Coastguard Worker    };
310*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) =
311*d5c09012SAndroid Build Coastguard Worker        "name,deidentify_template,update_mask";
312*d5c09012SAndroid Build Coastguard Worker  }
313*d5c09012SAndroid Build Coastguard Worker
314*d5c09012SAndroid Build Coastguard Worker  // Gets a DeidentifyTemplate.
315*d5c09012SAndroid Build Coastguard Worker  // See
316*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid
317*d5c09012SAndroid Build Coastguard Worker  // to learn more.
318*d5c09012SAndroid Build Coastguard Worker  rpc GetDeidentifyTemplate(GetDeidentifyTemplateRequest)
319*d5c09012SAndroid Build Coastguard Worker      returns (DeidentifyTemplate) {
320*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
321*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=organizations/*/deidentifyTemplates/*}"
322*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
323*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
324*d5c09012SAndroid Build Coastguard Worker      }
325*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{name=projects/*/deidentifyTemplates/*}" }
326*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
327*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
328*d5c09012SAndroid Build Coastguard Worker      }
329*d5c09012SAndroid Build Coastguard Worker    };
330*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
331*d5c09012SAndroid Build Coastguard Worker  }
332*d5c09012SAndroid Build Coastguard Worker
333*d5c09012SAndroid Build Coastguard Worker  // Lists DeidentifyTemplates.
334*d5c09012SAndroid Build Coastguard Worker  // See
335*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid
336*d5c09012SAndroid Build Coastguard Worker  // to learn more.
337*d5c09012SAndroid Build Coastguard Worker  rpc ListDeidentifyTemplates(ListDeidentifyTemplatesRequest)
338*d5c09012SAndroid Build Coastguard Worker      returns (ListDeidentifyTemplatesResponse) {
339*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
340*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=organizations/*}/deidentifyTemplates"
341*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
342*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=organizations/*/locations/*}/deidentifyTemplates"
343*d5c09012SAndroid Build Coastguard Worker      }
344*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{parent=projects/*}/deidentifyTemplates" }
345*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
346*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/deidentifyTemplates"
347*d5c09012SAndroid Build Coastguard Worker      }
348*d5c09012SAndroid Build Coastguard Worker    };
349*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
350*d5c09012SAndroid Build Coastguard Worker  }
351*d5c09012SAndroid Build Coastguard Worker
352*d5c09012SAndroid Build Coastguard Worker  // Deletes a DeidentifyTemplate.
353*d5c09012SAndroid Build Coastguard Worker  // See
354*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-templates-deid
355*d5c09012SAndroid Build Coastguard Worker  // to learn more.
356*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDeidentifyTemplate(DeleteDeidentifyTemplateRequest)
357*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
358*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
359*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{name=organizations/*/deidentifyTemplates/*}"
360*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
361*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=organizations/*/locations/*/deidentifyTemplates/*}"
362*d5c09012SAndroid Build Coastguard Worker      }
363*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
364*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=projects/*/deidentifyTemplates/*}"
365*d5c09012SAndroid Build Coastguard Worker      }
366*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
367*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=projects/*/locations/*/deidentifyTemplates/*}"
368*d5c09012SAndroid Build Coastguard Worker      }
369*d5c09012SAndroid Build Coastguard Worker    };
370*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
371*d5c09012SAndroid Build Coastguard Worker  }
372*d5c09012SAndroid Build Coastguard Worker
373*d5c09012SAndroid Build Coastguard Worker  // Creates a job trigger to run DLP actions such as scanning storage for
374*d5c09012SAndroid Build Coastguard Worker  // sensitive information on a set schedule.
375*d5c09012SAndroid Build Coastguard Worker  // See
376*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers
377*d5c09012SAndroid Build Coastguard Worker  // to learn more.
378*d5c09012SAndroid Build Coastguard Worker  rpc CreateJobTrigger(CreateJobTriggerRequest) returns (JobTrigger) {
379*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
380*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/jobTriggers"
381*d5c09012SAndroid Build Coastguard Worker      body: "*"
382*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
383*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/jobTriggers"
384*d5c09012SAndroid Build Coastguard Worker        body: "*"
385*d5c09012SAndroid Build Coastguard Worker      }
386*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
387*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=organizations/*/locations/*}/jobTriggers"
388*d5c09012SAndroid Build Coastguard Worker        body: "*"
389*d5c09012SAndroid Build Coastguard Worker      }
390*d5c09012SAndroid Build Coastguard Worker    };
391*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,job_trigger";
392*d5c09012SAndroid Build Coastguard Worker  }
393*d5c09012SAndroid Build Coastguard Worker
394*d5c09012SAndroid Build Coastguard Worker  // Updates a job trigger.
395*d5c09012SAndroid Build Coastguard Worker  // See
396*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers
397*d5c09012SAndroid Build Coastguard Worker  // to learn more.
398*d5c09012SAndroid Build Coastguard Worker  rpc UpdateJobTrigger(UpdateJobTriggerRequest) returns (JobTrigger) {
399*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
400*d5c09012SAndroid Build Coastguard Worker      patch: "/v2/{name=projects/*/jobTriggers/*}"
401*d5c09012SAndroid Build Coastguard Worker      body: "*"
402*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
403*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/locations/*/jobTriggers/*}"
404*d5c09012SAndroid Build Coastguard Worker        body: "*"
405*d5c09012SAndroid Build Coastguard Worker      }
406*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
407*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=organizations/*/locations/*/jobTriggers/*}"
408*d5c09012SAndroid Build Coastguard Worker        body: "*"
409*d5c09012SAndroid Build Coastguard Worker      }
410*d5c09012SAndroid Build Coastguard Worker    };
411*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,job_trigger,update_mask";
412*d5c09012SAndroid Build Coastguard Worker  }
413*d5c09012SAndroid Build Coastguard Worker
414*d5c09012SAndroid Build Coastguard Worker  // Inspect hybrid content and store findings to a trigger. The inspection
415*d5c09012SAndroid Build Coastguard Worker  // will be processed asynchronously. To review the findings monitor the
416*d5c09012SAndroid Build Coastguard Worker  // jobs within the trigger.
417*d5c09012SAndroid Build Coastguard Worker  rpc HybridInspectJobTrigger(HybridInspectJobTriggerRequest)
418*d5c09012SAndroid Build Coastguard Worker      returns (HybridInspectResponse) {
419*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
420*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{name=projects/*/locations/*/jobTriggers/*}:hybridInspect"
421*d5c09012SAndroid Build Coastguard Worker      body: "*"
422*d5c09012SAndroid Build Coastguard Worker    };
423*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
424*d5c09012SAndroid Build Coastguard Worker  }
425*d5c09012SAndroid Build Coastguard Worker
426*d5c09012SAndroid Build Coastguard Worker  // Gets a job trigger.
427*d5c09012SAndroid Build Coastguard Worker  // See
428*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers
429*d5c09012SAndroid Build Coastguard Worker  // to learn more.
430*d5c09012SAndroid Build Coastguard Worker  rpc GetJobTrigger(GetJobTriggerRequest) returns (JobTrigger) {
431*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
432*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=projects/*/jobTriggers/*}"
433*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
434*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/jobTriggers/*}"
435*d5c09012SAndroid Build Coastguard Worker      }
436*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
437*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=organizations/*/locations/*/jobTriggers/*}"
438*d5c09012SAndroid Build Coastguard Worker      }
439*d5c09012SAndroid Build Coastguard Worker    };
440*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
441*d5c09012SAndroid Build Coastguard Worker  }
442*d5c09012SAndroid Build Coastguard Worker
443*d5c09012SAndroid Build Coastguard Worker  // Lists job triggers.
444*d5c09012SAndroid Build Coastguard Worker  // See
445*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers
446*d5c09012SAndroid Build Coastguard Worker  // to learn more.
447*d5c09012SAndroid Build Coastguard Worker  rpc ListJobTriggers(ListJobTriggersRequest)
448*d5c09012SAndroid Build Coastguard Worker      returns (ListJobTriggersResponse) {
449*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
450*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=projects/*}/jobTriggers"
451*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
452*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/jobTriggers"
453*d5c09012SAndroid Build Coastguard Worker      }
454*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
455*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=organizations/*/locations/*}/jobTriggers"
456*d5c09012SAndroid Build Coastguard Worker      }
457*d5c09012SAndroid Build Coastguard Worker    };
458*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
459*d5c09012SAndroid Build Coastguard Worker  }
460*d5c09012SAndroid Build Coastguard Worker
461*d5c09012SAndroid Build Coastguard Worker  // Deletes a job trigger.
462*d5c09012SAndroid Build Coastguard Worker  // See
463*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-job-triggers
464*d5c09012SAndroid Build Coastguard Worker  // to learn more.
465*d5c09012SAndroid Build Coastguard Worker  rpc DeleteJobTrigger(DeleteJobTriggerRequest)
466*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
467*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
468*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{name=projects/*/jobTriggers/*}"
469*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
470*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=projects/*/locations/*/jobTriggers/*}"
471*d5c09012SAndroid Build Coastguard Worker      }
472*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
473*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=organizations/*/locations/*/jobTriggers/*}"
474*d5c09012SAndroid Build Coastguard Worker      }
475*d5c09012SAndroid Build Coastguard Worker    };
476*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
477*d5c09012SAndroid Build Coastguard Worker  }
478*d5c09012SAndroid Build Coastguard Worker
479*d5c09012SAndroid Build Coastguard Worker  // Activate a job trigger. Causes the immediate execute of a trigger
480*d5c09012SAndroid Build Coastguard Worker  // instead of waiting on the trigger event to occur.
481*d5c09012SAndroid Build Coastguard Worker  rpc ActivateJobTrigger(ActivateJobTriggerRequest) returns (DlpJob) {
482*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
483*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{name=projects/*/jobTriggers/*}:activate"
484*d5c09012SAndroid Build Coastguard Worker      body: "*"
485*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
486*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{name=projects/*/locations/*/jobTriggers/*}:activate"
487*d5c09012SAndroid Build Coastguard Worker        body: "*"
488*d5c09012SAndroid Build Coastguard Worker      }
489*d5c09012SAndroid Build Coastguard Worker    };
490*d5c09012SAndroid Build Coastguard Worker  }
491*d5c09012SAndroid Build Coastguard Worker
492*d5c09012SAndroid Build Coastguard Worker  // Creates a config for discovery to scan and profile storage.
493*d5c09012SAndroid Build Coastguard Worker  rpc CreateDiscoveryConfig(CreateDiscoveryConfigRequest)
494*d5c09012SAndroid Build Coastguard Worker      returns (DiscoveryConfig) {
495*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
496*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*/locations/*}/discoveryConfigs"
497*d5c09012SAndroid Build Coastguard Worker      body: "*"
498*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
499*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=organizations/*/locations/*}/discoveryConfigs"
500*d5c09012SAndroid Build Coastguard Worker        body: "*"
501*d5c09012SAndroid Build Coastguard Worker      }
502*d5c09012SAndroid Build Coastguard Worker    };
503*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,discovery_config";
504*d5c09012SAndroid Build Coastguard Worker  }
505*d5c09012SAndroid Build Coastguard Worker
506*d5c09012SAndroid Build Coastguard Worker  // Updates a discovery configuration.
507*d5c09012SAndroid Build Coastguard Worker  rpc UpdateDiscoveryConfig(UpdateDiscoveryConfigRequest)
508*d5c09012SAndroid Build Coastguard Worker      returns (DiscoveryConfig) {
509*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
510*d5c09012SAndroid Build Coastguard Worker      patch: "/v2/{name=projects/*/locations/*/discoveryConfigs/*}"
511*d5c09012SAndroid Build Coastguard Worker      body: "*"
512*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
513*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=organizations/*/locations/*/discoveryConfigs/*}"
514*d5c09012SAndroid Build Coastguard Worker        body: "*"
515*d5c09012SAndroid Build Coastguard Worker      }
516*d5c09012SAndroid Build Coastguard Worker    };
517*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,discovery_config,update_mask";
518*d5c09012SAndroid Build Coastguard Worker  }
519*d5c09012SAndroid Build Coastguard Worker
520*d5c09012SAndroid Build Coastguard Worker  // Gets a discovery configuration.
521*d5c09012SAndroid Build Coastguard Worker  rpc GetDiscoveryConfig(GetDiscoveryConfigRequest) returns (DiscoveryConfig) {
522*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
523*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=projects/*/locations/*/discoveryConfigs/*}"
524*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
525*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=organizations/*/locations/*/discoveryConfigs/*}"
526*d5c09012SAndroid Build Coastguard Worker      }
527*d5c09012SAndroid Build Coastguard Worker    };
528*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
529*d5c09012SAndroid Build Coastguard Worker  }
530*d5c09012SAndroid Build Coastguard Worker
531*d5c09012SAndroid Build Coastguard Worker  // Lists discovery configurations.
532*d5c09012SAndroid Build Coastguard Worker  rpc ListDiscoveryConfigs(ListDiscoveryConfigsRequest)
533*d5c09012SAndroid Build Coastguard Worker      returns (ListDiscoveryConfigsResponse) {
534*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
535*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=projects/*/locations/*}/discoveryConfigs"
536*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
537*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=organizations/*/locations/*}/discoveryConfigs"
538*d5c09012SAndroid Build Coastguard Worker      }
539*d5c09012SAndroid Build Coastguard Worker    };
540*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
541*d5c09012SAndroid Build Coastguard Worker  }
542*d5c09012SAndroid Build Coastguard Worker
543*d5c09012SAndroid Build Coastguard Worker  // Deletes a discovery configuration.
544*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDiscoveryConfig(DeleteDiscoveryConfigRequest)
545*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
546*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
547*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{name=projects/*/locations/*/discoveryConfigs/*}"
548*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
549*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=organizations/*/locations/*/discoveryConfigs/*}"
550*d5c09012SAndroid Build Coastguard Worker      }
551*d5c09012SAndroid Build Coastguard Worker    };
552*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
553*d5c09012SAndroid Build Coastguard Worker  }
554*d5c09012SAndroid Build Coastguard Worker
555*d5c09012SAndroid Build Coastguard Worker  // Creates a new job to inspect storage or calculate risk metrics.
556*d5c09012SAndroid Build Coastguard Worker  // See
557*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage
558*d5c09012SAndroid Build Coastguard Worker  // and
559*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis
560*d5c09012SAndroid Build Coastguard Worker  // to learn more.
561*d5c09012SAndroid Build Coastguard Worker  //
562*d5c09012SAndroid Build Coastguard Worker  // When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the
563*d5c09012SAndroid Build Coastguard Worker  // system will automatically choose what detectors to run. By default this may
564*d5c09012SAndroid Build Coastguard Worker  // be all types, but may change over time as detectors are updated.
565*d5c09012SAndroid Build Coastguard Worker  rpc CreateDlpJob(CreateDlpJobRequest) returns (DlpJob) {
566*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
567*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=projects/*}/dlpJobs"
568*d5c09012SAndroid Build Coastguard Worker      body: "*"
569*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
570*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/dlpJobs"
571*d5c09012SAndroid Build Coastguard Worker        body: "*"
572*d5c09012SAndroid Build Coastguard Worker      }
573*d5c09012SAndroid Build Coastguard Worker    };
574*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,inspect_job";
575*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,risk_job";
576*d5c09012SAndroid Build Coastguard Worker  }
577*d5c09012SAndroid Build Coastguard Worker
578*d5c09012SAndroid Build Coastguard Worker  // Lists DlpJobs that match the specified filter in the request.
579*d5c09012SAndroid Build Coastguard Worker  // See
580*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage
581*d5c09012SAndroid Build Coastguard Worker  // and
582*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis
583*d5c09012SAndroid Build Coastguard Worker  // to learn more.
584*d5c09012SAndroid Build Coastguard Worker  rpc ListDlpJobs(ListDlpJobsRequest) returns (ListDlpJobsResponse) {
585*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
586*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=projects/*}/dlpJobs"
587*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{parent=projects/*/locations/*}/dlpJobs" }
588*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
589*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=organizations/*/locations/*}/dlpJobs"
590*d5c09012SAndroid Build Coastguard Worker      }
591*d5c09012SAndroid Build Coastguard Worker    };
592*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
593*d5c09012SAndroid Build Coastguard Worker  }
594*d5c09012SAndroid Build Coastguard Worker
595*d5c09012SAndroid Build Coastguard Worker  // Gets the latest state of a long-running DlpJob.
596*d5c09012SAndroid Build Coastguard Worker  // See
597*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage
598*d5c09012SAndroid Build Coastguard Worker  // and
599*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis
600*d5c09012SAndroid Build Coastguard Worker  // to learn more.
601*d5c09012SAndroid Build Coastguard Worker  rpc GetDlpJob(GetDlpJobRequest) returns (DlpJob) {
602*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
603*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=projects/*/dlpJobs/*}"
604*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{name=projects/*/locations/*/dlpJobs/*}" }
605*d5c09012SAndroid Build Coastguard Worker    };
606*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
607*d5c09012SAndroid Build Coastguard Worker  }
608*d5c09012SAndroid Build Coastguard Worker
609*d5c09012SAndroid Build Coastguard Worker  // Deletes a long-running DlpJob. This method indicates that the client is
610*d5c09012SAndroid Build Coastguard Worker  // no longer interested in the DlpJob result. The job will be canceled if
611*d5c09012SAndroid Build Coastguard Worker  // possible.
612*d5c09012SAndroid Build Coastguard Worker  // See
613*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage
614*d5c09012SAndroid Build Coastguard Worker  // and
615*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis
616*d5c09012SAndroid Build Coastguard Worker  // to learn more.
617*d5c09012SAndroid Build Coastguard Worker  rpc DeleteDlpJob(DeleteDlpJobRequest) returns (google.protobuf.Empty) {
618*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
619*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{name=projects/*/dlpJobs/*}"
620*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
621*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=projects/*/locations/*/dlpJobs/*}"
622*d5c09012SAndroid Build Coastguard Worker      }
623*d5c09012SAndroid Build Coastguard Worker    };
624*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
625*d5c09012SAndroid Build Coastguard Worker  }
626*d5c09012SAndroid Build Coastguard Worker
627*d5c09012SAndroid Build Coastguard Worker  // Starts asynchronous cancellation on a long-running DlpJob. The server
628*d5c09012SAndroid Build Coastguard Worker  // makes a best effort to cancel the DlpJob, but success is not
629*d5c09012SAndroid Build Coastguard Worker  // guaranteed.
630*d5c09012SAndroid Build Coastguard Worker  // See
631*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/inspecting-storage
632*d5c09012SAndroid Build Coastguard Worker  // and
633*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/compute-risk-analysis
634*d5c09012SAndroid Build Coastguard Worker  // to learn more.
635*d5c09012SAndroid Build Coastguard Worker  rpc CancelDlpJob(CancelDlpJobRequest) returns (google.protobuf.Empty) {
636*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
637*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{name=projects/*/dlpJobs/*}:cancel"
638*d5c09012SAndroid Build Coastguard Worker      body: "*"
639*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
640*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{name=projects/*/locations/*/dlpJobs/*}:cancel"
641*d5c09012SAndroid Build Coastguard Worker        body: "*"
642*d5c09012SAndroid Build Coastguard Worker      }
643*d5c09012SAndroid Build Coastguard Worker    };
644*d5c09012SAndroid Build Coastguard Worker  }
645*d5c09012SAndroid Build Coastguard Worker
646*d5c09012SAndroid Build Coastguard Worker  // Creates a pre-built stored infoType to be used for inspection.
647*d5c09012SAndroid Build Coastguard Worker  // See
648*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes
649*d5c09012SAndroid Build Coastguard Worker  // to learn more.
650*d5c09012SAndroid Build Coastguard Worker  rpc CreateStoredInfoType(CreateStoredInfoTypeRequest)
651*d5c09012SAndroid Build Coastguard Worker      returns (StoredInfoType) {
652*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
653*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{parent=organizations/*}/storedInfoTypes"
654*d5c09012SAndroid Build Coastguard Worker      body: "*"
655*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
656*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=organizations/*/locations/*}/storedInfoTypes"
657*d5c09012SAndroid Build Coastguard Worker        body: "*"
658*d5c09012SAndroid Build Coastguard Worker      }
659*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
660*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*}/storedInfoTypes"
661*d5c09012SAndroid Build Coastguard Worker        body: "*"
662*d5c09012SAndroid Build Coastguard Worker      }
663*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
664*d5c09012SAndroid Build Coastguard Worker        post: "/v2/{parent=projects/*/locations/*}/storedInfoTypes"
665*d5c09012SAndroid Build Coastguard Worker        body: "*"
666*d5c09012SAndroid Build Coastguard Worker      }
667*d5c09012SAndroid Build Coastguard Worker    };
668*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,config";
669*d5c09012SAndroid Build Coastguard Worker  }
670*d5c09012SAndroid Build Coastguard Worker
671*d5c09012SAndroid Build Coastguard Worker  // Updates the stored infoType by creating a new version. The existing version
672*d5c09012SAndroid Build Coastguard Worker  // will continue to be used until the new version is ready.
673*d5c09012SAndroid Build Coastguard Worker  // See
674*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes
675*d5c09012SAndroid Build Coastguard Worker  // to learn more.
676*d5c09012SAndroid Build Coastguard Worker  rpc UpdateStoredInfoType(UpdateStoredInfoTypeRequest)
677*d5c09012SAndroid Build Coastguard Worker      returns (StoredInfoType) {
678*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
679*d5c09012SAndroid Build Coastguard Worker      patch: "/v2/{name=organizations/*/storedInfoTypes/*}"
680*d5c09012SAndroid Build Coastguard Worker      body: "*"
681*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
682*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
683*d5c09012SAndroid Build Coastguard Worker        body: "*"
684*d5c09012SAndroid Build Coastguard Worker      }
685*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
686*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/storedInfoTypes/*}"
687*d5c09012SAndroid Build Coastguard Worker        body: "*"
688*d5c09012SAndroid Build Coastguard Worker      }
689*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
690*d5c09012SAndroid Build Coastguard Worker        patch: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
691*d5c09012SAndroid Build Coastguard Worker        body: "*"
692*d5c09012SAndroid Build Coastguard Worker      }
693*d5c09012SAndroid Build Coastguard Worker    };
694*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,config,update_mask";
695*d5c09012SAndroid Build Coastguard Worker  }
696*d5c09012SAndroid Build Coastguard Worker
697*d5c09012SAndroid Build Coastguard Worker  // Gets a stored infoType.
698*d5c09012SAndroid Build Coastguard Worker  // See
699*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes
700*d5c09012SAndroid Build Coastguard Worker  // to learn more.
701*d5c09012SAndroid Build Coastguard Worker  rpc GetStoredInfoType(GetStoredInfoTypeRequest) returns (StoredInfoType) {
702*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
703*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=organizations/*/storedInfoTypes/*}"
704*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
705*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
706*d5c09012SAndroid Build Coastguard Worker      }
707*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{name=projects/*/storedInfoTypes/*}" }
708*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
709*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
710*d5c09012SAndroid Build Coastguard Worker      }
711*d5c09012SAndroid Build Coastguard Worker    };
712*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
713*d5c09012SAndroid Build Coastguard Worker  }
714*d5c09012SAndroid Build Coastguard Worker
715*d5c09012SAndroid Build Coastguard Worker  // Lists stored infoTypes.
716*d5c09012SAndroid Build Coastguard Worker  // See
717*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes
718*d5c09012SAndroid Build Coastguard Worker  // to learn more.
719*d5c09012SAndroid Build Coastguard Worker  rpc ListStoredInfoTypes(ListStoredInfoTypesRequest)
720*d5c09012SAndroid Build Coastguard Worker      returns (ListStoredInfoTypesResponse) {
721*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
722*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=organizations/*}/storedInfoTypes"
723*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
724*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=organizations/*/locations/*}/storedInfoTypes"
725*d5c09012SAndroid Build Coastguard Worker      }
726*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v2/{parent=projects/*}/storedInfoTypes" }
727*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
728*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/storedInfoTypes"
729*d5c09012SAndroid Build Coastguard Worker      }
730*d5c09012SAndroid Build Coastguard Worker    };
731*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
732*d5c09012SAndroid Build Coastguard Worker  }
733*d5c09012SAndroid Build Coastguard Worker
734*d5c09012SAndroid Build Coastguard Worker  // Deletes a stored infoType.
735*d5c09012SAndroid Build Coastguard Worker  // See
736*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-stored-infotypes
737*d5c09012SAndroid Build Coastguard Worker  // to learn more.
738*d5c09012SAndroid Build Coastguard Worker  rpc DeleteStoredInfoType(DeleteStoredInfoTypeRequest)
739*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
740*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
741*d5c09012SAndroid Build Coastguard Worker      delete: "/v2/{name=organizations/*/storedInfoTypes/*}"
742*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
743*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=organizations/*/locations/*/storedInfoTypes/*}"
744*d5c09012SAndroid Build Coastguard Worker      }
745*d5c09012SAndroid Build Coastguard Worker      additional_bindings { delete: "/v2/{name=projects/*/storedInfoTypes/*}" }
746*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
747*d5c09012SAndroid Build Coastguard Worker        delete: "/v2/{name=projects/*/locations/*/storedInfoTypes/*}"
748*d5c09012SAndroid Build Coastguard Worker      }
749*d5c09012SAndroid Build Coastguard Worker    };
750*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
751*d5c09012SAndroid Build Coastguard Worker  }
752*d5c09012SAndroid Build Coastguard Worker
753*d5c09012SAndroid Build Coastguard Worker  // Lists data profiles for an organization.
754*d5c09012SAndroid Build Coastguard Worker  rpc ListProjectDataProfiles(ListProjectDataProfilesRequest)
755*d5c09012SAndroid Build Coastguard Worker      returns (ListProjectDataProfilesResponse) {
756*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
757*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=organizations/*/locations/*}/projectDataProfiles"
758*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
759*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/projectDataProfiles"
760*d5c09012SAndroid Build Coastguard Worker      }
761*d5c09012SAndroid Build Coastguard Worker    };
762*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
763*d5c09012SAndroid Build Coastguard Worker  }
764*d5c09012SAndroid Build Coastguard Worker
765*d5c09012SAndroid Build Coastguard Worker  // Lists data profiles for an organization.
766*d5c09012SAndroid Build Coastguard Worker  rpc ListTableDataProfiles(ListTableDataProfilesRequest)
767*d5c09012SAndroid Build Coastguard Worker      returns (ListTableDataProfilesResponse) {
768*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
769*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=organizations/*/locations/*}/tableDataProfiles"
770*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
771*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/tableDataProfiles"
772*d5c09012SAndroid Build Coastguard Worker      }
773*d5c09012SAndroid Build Coastguard Worker    };
774*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
775*d5c09012SAndroid Build Coastguard Worker  }
776*d5c09012SAndroid Build Coastguard Worker
777*d5c09012SAndroid Build Coastguard Worker  // Lists data profiles for an organization.
778*d5c09012SAndroid Build Coastguard Worker  rpc ListColumnDataProfiles(ListColumnDataProfilesRequest)
779*d5c09012SAndroid Build Coastguard Worker      returns (ListColumnDataProfilesResponse) {
780*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
781*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{parent=organizations/*/locations/*}/columnDataProfiles"
782*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
783*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{parent=projects/*/locations/*}/columnDataProfiles"
784*d5c09012SAndroid Build Coastguard Worker      }
785*d5c09012SAndroid Build Coastguard Worker    };
786*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
787*d5c09012SAndroid Build Coastguard Worker  }
788*d5c09012SAndroid Build Coastguard Worker
789*d5c09012SAndroid Build Coastguard Worker  // Gets a project data profile.
790*d5c09012SAndroid Build Coastguard Worker  rpc GetProjectDataProfile(GetProjectDataProfileRequest)
791*d5c09012SAndroid Build Coastguard Worker      returns (ProjectDataProfile) {
792*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
793*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=organizations/*/locations/*/projectDataProfiles/*}"
794*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
795*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/projectDataProfiles/*}"
796*d5c09012SAndroid Build Coastguard Worker      }
797*d5c09012SAndroid Build Coastguard Worker    };
798*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
799*d5c09012SAndroid Build Coastguard Worker  }
800*d5c09012SAndroid Build Coastguard Worker
801*d5c09012SAndroid Build Coastguard Worker  // Gets a table data profile.
802*d5c09012SAndroid Build Coastguard Worker  rpc GetTableDataProfile(GetTableDataProfileRequest)
803*d5c09012SAndroid Build Coastguard Worker      returns (TableDataProfile) {
804*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
805*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=organizations/*/locations/*/tableDataProfiles/*}"
806*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
807*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/tableDataProfiles/*}"
808*d5c09012SAndroid Build Coastguard Worker      }
809*d5c09012SAndroid Build Coastguard Worker    };
810*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
811*d5c09012SAndroid Build Coastguard Worker  }
812*d5c09012SAndroid Build Coastguard Worker
813*d5c09012SAndroid Build Coastguard Worker  // Gets a column data profile.
814*d5c09012SAndroid Build Coastguard Worker  rpc GetColumnDataProfile(GetColumnDataProfileRequest)
815*d5c09012SAndroid Build Coastguard Worker      returns (ColumnDataProfile) {
816*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
817*d5c09012SAndroid Build Coastguard Worker      get: "/v2/{name=organizations/*/locations/*/columnDataProfiles/*}"
818*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
819*d5c09012SAndroid Build Coastguard Worker        get: "/v2/{name=projects/*/locations/*/columnDataProfiles/*}"
820*d5c09012SAndroid Build Coastguard Worker      }
821*d5c09012SAndroid Build Coastguard Worker    };
822*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
823*d5c09012SAndroid Build Coastguard Worker  }
824*d5c09012SAndroid Build Coastguard Worker
825*d5c09012SAndroid Build Coastguard Worker  // Inspect hybrid content and store findings to a job.
826*d5c09012SAndroid Build Coastguard Worker  // To review the findings, inspect the job. Inspection will occur
827*d5c09012SAndroid Build Coastguard Worker  // asynchronously.
828*d5c09012SAndroid Build Coastguard Worker  rpc HybridInspectDlpJob(HybridInspectDlpJobRequest)
829*d5c09012SAndroid Build Coastguard Worker      returns (HybridInspectResponse) {
830*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
831*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{name=projects/*/locations/*/dlpJobs/*}:hybridInspect"
832*d5c09012SAndroid Build Coastguard Worker      body: "*"
833*d5c09012SAndroid Build Coastguard Worker    };
834*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
835*d5c09012SAndroid Build Coastguard Worker  }
836*d5c09012SAndroid Build Coastguard Worker
837*d5c09012SAndroid Build Coastguard Worker  // Finish a running hybrid DlpJob. Triggers the finalization steps and running
838*d5c09012SAndroid Build Coastguard Worker  // of any enabled actions that have not yet run.
839*d5c09012SAndroid Build Coastguard Worker  rpc FinishDlpJob(FinishDlpJobRequest) returns (google.protobuf.Empty) {
840*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
841*d5c09012SAndroid Build Coastguard Worker      post: "/v2/{name=projects/*/locations/*/dlpJobs/*}:finish"
842*d5c09012SAndroid Build Coastguard Worker      body: "*"
843*d5c09012SAndroid Build Coastguard Worker    };
844*d5c09012SAndroid Build Coastguard Worker  }
845*d5c09012SAndroid Build Coastguard Worker}
846*d5c09012SAndroid Build Coastguard Worker
847*d5c09012SAndroid Build Coastguard Worker// List of excluded infoTypes.
848*d5c09012SAndroid Build Coastguard Workermessage ExcludeInfoTypes {
849*d5c09012SAndroid Build Coastguard Worker  // InfoType list in ExclusionRule rule drops a finding when it overlaps or
850*d5c09012SAndroid Build Coastguard Worker  // contained within with a finding of an infoType from this list. For
851*d5c09012SAndroid Build Coastguard Worker  // example, for `InspectionRuleSet.info_types` containing "PHONE_NUMBER"` and
852*d5c09012SAndroid Build Coastguard Worker  // `exclusion_rule` containing `exclude_info_types.info_types` with
853*d5c09012SAndroid Build Coastguard Worker  // "EMAIL_ADDRESS" the phone number findings are dropped if they overlap
854*d5c09012SAndroid Build Coastguard Worker  // with EMAIL_ADDRESS finding.
855*d5c09012SAndroid Build Coastguard Worker  // That leads to "[email protected]" to generate only a single
856*d5c09012SAndroid Build Coastguard Worker  // finding, namely email address.
857*d5c09012SAndroid Build Coastguard Worker  repeated InfoType info_types = 1;
858*d5c09012SAndroid Build Coastguard Worker}
859*d5c09012SAndroid Build Coastguard Worker
860*d5c09012SAndroid Build Coastguard Worker// The rule to exclude findings based on a hotword. For record inspection of
861*d5c09012SAndroid Build Coastguard Worker// tables, column names are considered hotwords. An example of this is to
862*d5c09012SAndroid Build Coastguard Worker// exclude a finding if it belongs to a BigQuery column that matches a specific
863*d5c09012SAndroid Build Coastguard Worker// pattern.
864*d5c09012SAndroid Build Coastguard Workermessage ExcludeByHotword {
865*d5c09012SAndroid Build Coastguard Worker  // Regular expression pattern defining what qualifies as a hotword.
866*d5c09012SAndroid Build Coastguard Worker  CustomInfoType.Regex hotword_regex = 1;
867*d5c09012SAndroid Build Coastguard Worker
868*d5c09012SAndroid Build Coastguard Worker  // Range of characters within which the entire hotword must reside.
869*d5c09012SAndroid Build Coastguard Worker  // The total length of the window cannot exceed 1000 characters.
870*d5c09012SAndroid Build Coastguard Worker  // The windowBefore property in proximity should be set to 1 if the hotword
871*d5c09012SAndroid Build Coastguard Worker  // needs to be included in a column header.
872*d5c09012SAndroid Build Coastguard Worker  CustomInfoType.DetectionRule.Proximity proximity = 2;
873*d5c09012SAndroid Build Coastguard Worker}
874*d5c09012SAndroid Build Coastguard Worker
875*d5c09012SAndroid Build Coastguard Worker// The rule that specifies conditions when findings of infoTypes specified in
876*d5c09012SAndroid Build Coastguard Worker// `InspectionRuleSet` are removed from results.
877*d5c09012SAndroid Build Coastguard Workermessage ExclusionRule {
878*d5c09012SAndroid Build Coastguard Worker  // Exclusion rule types.
879*d5c09012SAndroid Build Coastguard Worker  oneof type {
880*d5c09012SAndroid Build Coastguard Worker    // Dictionary which defines the rule.
881*d5c09012SAndroid Build Coastguard Worker    CustomInfoType.Dictionary dictionary = 1;
882*d5c09012SAndroid Build Coastguard Worker
883*d5c09012SAndroid Build Coastguard Worker    // Regular expression which defines the rule.
884*d5c09012SAndroid Build Coastguard Worker    CustomInfoType.Regex regex = 2;
885*d5c09012SAndroid Build Coastguard Worker
886*d5c09012SAndroid Build Coastguard Worker    // Set of infoTypes for which findings would affect this rule.
887*d5c09012SAndroid Build Coastguard Worker    ExcludeInfoTypes exclude_info_types = 3;
888*d5c09012SAndroid Build Coastguard Worker
889*d5c09012SAndroid Build Coastguard Worker    // Drop if the hotword rule is contained in the proximate context. For
890*d5c09012SAndroid Build Coastguard Worker    // tabular data, the context includes the column name.
891*d5c09012SAndroid Build Coastguard Worker    ExcludeByHotword exclude_by_hotword = 5;
892*d5c09012SAndroid Build Coastguard Worker  }
893*d5c09012SAndroid Build Coastguard Worker
894*d5c09012SAndroid Build Coastguard Worker  // How the rule is applied, see MatchingType documentation for details.
895*d5c09012SAndroid Build Coastguard Worker  MatchingType matching_type = 4;
896*d5c09012SAndroid Build Coastguard Worker}
897*d5c09012SAndroid Build Coastguard Worker
898*d5c09012SAndroid Build Coastguard Worker// A single inspection rule to be applied to infoTypes, specified in
899*d5c09012SAndroid Build Coastguard Worker// `InspectionRuleSet`.
900*d5c09012SAndroid Build Coastguard Workermessage InspectionRule {
901*d5c09012SAndroid Build Coastguard Worker  // Inspection rule types.
902*d5c09012SAndroid Build Coastguard Worker  oneof type {
903*d5c09012SAndroid Build Coastguard Worker    // Hotword-based detection rule.
904*d5c09012SAndroid Build Coastguard Worker    CustomInfoType.DetectionRule.HotwordRule hotword_rule = 1;
905*d5c09012SAndroid Build Coastguard Worker
906*d5c09012SAndroid Build Coastguard Worker    // Exclusion rule.
907*d5c09012SAndroid Build Coastguard Worker    ExclusionRule exclusion_rule = 2;
908*d5c09012SAndroid Build Coastguard Worker  }
909*d5c09012SAndroid Build Coastguard Worker}
910*d5c09012SAndroid Build Coastguard Worker
911*d5c09012SAndroid Build Coastguard Worker// Rule set for modifying a set of infoTypes to alter behavior under certain
912*d5c09012SAndroid Build Coastguard Worker// circumstances, depending on the specific details of the rules within the set.
913*d5c09012SAndroid Build Coastguard Workermessage InspectionRuleSet {
914*d5c09012SAndroid Build Coastguard Worker  // List of infoTypes this rule set is applied to.
915*d5c09012SAndroid Build Coastguard Worker  repeated InfoType info_types = 1;
916*d5c09012SAndroid Build Coastguard Worker
917*d5c09012SAndroid Build Coastguard Worker  // Set of rules to be applied to infoTypes. The rules are applied in order.
918*d5c09012SAndroid Build Coastguard Worker  repeated InspectionRule rules = 2;
919*d5c09012SAndroid Build Coastguard Worker}
920*d5c09012SAndroid Build Coastguard Worker
921*d5c09012SAndroid Build Coastguard Worker// Configuration description of the scanning process.
922*d5c09012SAndroid Build Coastguard Worker// When used with redactContent only info_types and min_likelihood are currently
923*d5c09012SAndroid Build Coastguard Worker// used.
924*d5c09012SAndroid Build Coastguard Workermessage InspectConfig {
925*d5c09012SAndroid Build Coastguard Worker  // Configuration for setting a minimum likelihood per infotype. Used to
926*d5c09012SAndroid Build Coastguard Worker  // customize the minimum likelihood level for specific infotypes in the
927*d5c09012SAndroid Build Coastguard Worker  // request. For example, use this if you want to lower the precision for
928*d5c09012SAndroid Build Coastguard Worker  // PERSON_NAME without lowering the precision for the other infotypes in the
929*d5c09012SAndroid Build Coastguard Worker  // request.
930*d5c09012SAndroid Build Coastguard Worker  message InfoTypeLikelihood {
931*d5c09012SAndroid Build Coastguard Worker    // Type of information the likelihood threshold applies to. Only one
932*d5c09012SAndroid Build Coastguard Worker    // likelihood per info_type should be provided. If InfoTypeLikelihood does
933*d5c09012SAndroid Build Coastguard Worker    // not have an info_type, the configuration fails.
934*d5c09012SAndroid Build Coastguard Worker    InfoType info_type = 1;
935*d5c09012SAndroid Build Coastguard Worker
936*d5c09012SAndroid Build Coastguard Worker    // Only returns findings equal to or above this threshold. This field is
937*d5c09012SAndroid Build Coastguard Worker    // required or else the configuration fails.
938*d5c09012SAndroid Build Coastguard Worker    Likelihood min_likelihood = 2;
939*d5c09012SAndroid Build Coastguard Worker  }
940*d5c09012SAndroid Build Coastguard Worker
941*d5c09012SAndroid Build Coastguard Worker  // Configuration to control the number of findings returned for inspection.
942*d5c09012SAndroid Build Coastguard Worker  // This is not used for de-identification or data profiling.
943*d5c09012SAndroid Build Coastguard Worker  //
944*d5c09012SAndroid Build Coastguard Worker  // When redacting sensitive data from images, finding limits don't apply. They
945*d5c09012SAndroid Build Coastguard Worker  // can cause unexpected or inconsistent results, where only some data is
946*d5c09012SAndroid Build Coastguard Worker  // redacted. Don't include finding limits in
947*d5c09012SAndroid Build Coastguard Worker  // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage]
948*d5c09012SAndroid Build Coastguard Worker  // requests. Otherwise, Cloud DLP returns an error.
949*d5c09012SAndroid Build Coastguard Worker  message FindingLimits {
950*d5c09012SAndroid Build Coastguard Worker    // Max findings configuration per infoType, per content item or long
951*d5c09012SAndroid Build Coastguard Worker    // running DlpJob.
952*d5c09012SAndroid Build Coastguard Worker    message InfoTypeLimit {
953*d5c09012SAndroid Build Coastguard Worker      // Type of information the findings limit applies to. Only one limit per
954*d5c09012SAndroid Build Coastguard Worker      // info_type should be provided. If InfoTypeLimit does not have an
955*d5c09012SAndroid Build Coastguard Worker      // info_type, the DLP API applies the limit against all info_types that
956*d5c09012SAndroid Build Coastguard Worker      // are found but not specified in another InfoTypeLimit.
957*d5c09012SAndroid Build Coastguard Worker      InfoType info_type = 1;
958*d5c09012SAndroid Build Coastguard Worker
959*d5c09012SAndroid Build Coastguard Worker      // Max findings limit for the given infoType.
960*d5c09012SAndroid Build Coastguard Worker      int32 max_findings = 2;
961*d5c09012SAndroid Build Coastguard Worker    }
962*d5c09012SAndroid Build Coastguard Worker
963*d5c09012SAndroid Build Coastguard Worker    // Max number of findings that are returned for each item scanned.
964*d5c09012SAndroid Build Coastguard Worker    //
965*d5c09012SAndroid Build Coastguard Worker    // When set within an
966*d5c09012SAndroid Build Coastguard Worker    // [InspectContentRequest][google.privacy.dlp.v2.InspectContentRequest],
967*d5c09012SAndroid Build Coastguard Worker    // this field is ignored.
968*d5c09012SAndroid Build Coastguard Worker    //
969*d5c09012SAndroid Build Coastguard Worker    // This value isn't a hard limit. If the number of findings for an item
970*d5c09012SAndroid Build Coastguard Worker    // reaches this limit, the inspection of that item ends gradually, not
971*d5c09012SAndroid Build Coastguard Worker    // abruptly. Therefore, the actual number of findings that Cloud DLP returns
972*d5c09012SAndroid Build Coastguard Worker    // for the item can be multiple times higher than this value.
973*d5c09012SAndroid Build Coastguard Worker    int32 max_findings_per_item = 1;
974*d5c09012SAndroid Build Coastguard Worker
975*d5c09012SAndroid Build Coastguard Worker    // Max number of findings that are returned per request or job.
976*d5c09012SAndroid Build Coastguard Worker    //
977*d5c09012SAndroid Build Coastguard Worker    // If you set this field in an
978*d5c09012SAndroid Build Coastguard Worker    // [InspectContentRequest][google.privacy.dlp.v2.InspectContentRequest], the
979*d5c09012SAndroid Build Coastguard Worker    // resulting maximum value is the value that you set or 3,000, whichever is
980*d5c09012SAndroid Build Coastguard Worker    // lower.
981*d5c09012SAndroid Build Coastguard Worker    //
982*d5c09012SAndroid Build Coastguard Worker    // This value isn't a hard limit. If an inspection reaches this limit, the
983*d5c09012SAndroid Build Coastguard Worker    // inspection ends gradually, not abruptly. Therefore, the actual number of
984*d5c09012SAndroid Build Coastguard Worker    // findings that Cloud DLP returns can be multiple times higher than this
985*d5c09012SAndroid Build Coastguard Worker    // value.
986*d5c09012SAndroid Build Coastguard Worker    int32 max_findings_per_request = 2;
987*d5c09012SAndroid Build Coastguard Worker
988*d5c09012SAndroid Build Coastguard Worker    // Configuration of findings limit given for specified infoTypes.
989*d5c09012SAndroid Build Coastguard Worker    repeated InfoTypeLimit max_findings_per_info_type = 3;
990*d5c09012SAndroid Build Coastguard Worker  }
991*d5c09012SAndroid Build Coastguard Worker
992*d5c09012SAndroid Build Coastguard Worker  // Restricts what info_types to look for. The values must correspond to
993*d5c09012SAndroid Build Coastguard Worker  // InfoType values returned by ListInfoTypes or listed at
994*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/infotypes-reference.
995*d5c09012SAndroid Build Coastguard Worker  //
996*d5c09012SAndroid Build Coastguard Worker  // When no InfoTypes or CustomInfoTypes are specified in a request, the
997*d5c09012SAndroid Build Coastguard Worker  // system may automatically choose a default list of detectors to run, which
998*d5c09012SAndroid Build Coastguard Worker  // may change over time.
999*d5c09012SAndroid Build Coastguard Worker  //
1000*d5c09012SAndroid Build Coastguard Worker  // If you need precise control and predictability as to what detectors are
1001*d5c09012SAndroid Build Coastguard Worker  // run you should specify specific InfoTypes listed in the reference,
1002*d5c09012SAndroid Build Coastguard Worker  // otherwise a default list will be used, which may change over time.
1003*d5c09012SAndroid Build Coastguard Worker  repeated InfoType info_types = 1;
1004*d5c09012SAndroid Build Coastguard Worker
1005*d5c09012SAndroid Build Coastguard Worker  // Only returns findings equal to or above this threshold. The default is
1006*d5c09012SAndroid Build Coastguard Worker  // POSSIBLE.
1007*d5c09012SAndroid Build Coastguard Worker  //
1008*d5c09012SAndroid Build Coastguard Worker  // In general, the highest likelihood setting yields the fewest findings in
1009*d5c09012SAndroid Build Coastguard Worker  // results and the lowest chance of a false positive. For more information,
1010*d5c09012SAndroid Build Coastguard Worker  // see [Match
1011*d5c09012SAndroid Build Coastguard Worker  // likelihood](https://cloud.google.com/sensitive-data-protection/docs/likelihood).
1012*d5c09012SAndroid Build Coastguard Worker  Likelihood min_likelihood = 2;
1013*d5c09012SAndroid Build Coastguard Worker
1014*d5c09012SAndroid Build Coastguard Worker  // Minimum likelihood per infotype. For each infotype, a user can specify a
1015*d5c09012SAndroid Build Coastguard Worker  // minimum likelihood. The system only returns a finding if its likelihood is
1016*d5c09012SAndroid Build Coastguard Worker  // above this threshold. If this field is not set, the system uses the
1017*d5c09012SAndroid Build Coastguard Worker  // InspectConfig min_likelihood.
1018*d5c09012SAndroid Build Coastguard Worker  repeated InfoTypeLikelihood min_likelihood_per_info_type = 11;
1019*d5c09012SAndroid Build Coastguard Worker
1020*d5c09012SAndroid Build Coastguard Worker  // Configuration to control the number of findings returned.
1021*d5c09012SAndroid Build Coastguard Worker  // This is not used for data profiling.
1022*d5c09012SAndroid Build Coastguard Worker  //
1023*d5c09012SAndroid Build Coastguard Worker  // When redacting sensitive data from images, finding limits don't apply. They
1024*d5c09012SAndroid Build Coastguard Worker  // can cause unexpected or inconsistent results, where only some data is
1025*d5c09012SAndroid Build Coastguard Worker  // redacted. Don't include finding limits in
1026*d5c09012SAndroid Build Coastguard Worker  // [RedactImage][google.privacy.dlp.v2.DlpService.RedactImage]
1027*d5c09012SAndroid Build Coastguard Worker  // requests. Otherwise, Cloud DLP returns an error.
1028*d5c09012SAndroid Build Coastguard Worker  //
1029*d5c09012SAndroid Build Coastguard Worker  // When set within an
1030*d5c09012SAndroid Build Coastguard Worker  // [InspectJobConfig][google.privacy.dlp.v2.InspectJobConfig], the specified
1031*d5c09012SAndroid Build Coastguard Worker  // maximum values aren't hard limits. If an inspection job reaches these
1032*d5c09012SAndroid Build Coastguard Worker  // limits, the job ends gradually, not abruptly. Therefore, the actual number
1033*d5c09012SAndroid Build Coastguard Worker  // of findings that Cloud DLP returns can be multiple times higher than these
1034*d5c09012SAndroid Build Coastguard Worker  // maximum values.
1035*d5c09012SAndroid Build Coastguard Worker  FindingLimits limits = 3;
1036*d5c09012SAndroid Build Coastguard Worker
1037*d5c09012SAndroid Build Coastguard Worker  // When true, a contextual quote from the data that triggered a finding is
1038*d5c09012SAndroid Build Coastguard Worker  // included in the response; see
1039*d5c09012SAndroid Build Coastguard Worker  // [Finding.quote][google.privacy.dlp.v2.Finding.quote]. This is not used for
1040*d5c09012SAndroid Build Coastguard Worker  // data profiling.
1041*d5c09012SAndroid Build Coastguard Worker  bool include_quote = 4;
1042*d5c09012SAndroid Build Coastguard Worker
1043*d5c09012SAndroid Build Coastguard Worker  // When true, excludes type information of the findings.
1044*d5c09012SAndroid Build Coastguard Worker  // This is not used for data profiling.
1045*d5c09012SAndroid Build Coastguard Worker  bool exclude_info_types = 5;
1046*d5c09012SAndroid Build Coastguard Worker
1047*d5c09012SAndroid Build Coastguard Worker  // CustomInfoTypes provided by the user. See
1048*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes
1049*d5c09012SAndroid Build Coastguard Worker  // to learn more.
1050*d5c09012SAndroid Build Coastguard Worker  repeated CustomInfoType custom_info_types = 6;
1051*d5c09012SAndroid Build Coastguard Worker
1052*d5c09012SAndroid Build Coastguard Worker  // Deprecated and unused.
1053*d5c09012SAndroid Build Coastguard Worker  repeated ContentOption content_options = 8;
1054*d5c09012SAndroid Build Coastguard Worker
1055*d5c09012SAndroid Build Coastguard Worker  // Set of rules to apply to the findings for this InspectConfig.
1056*d5c09012SAndroid Build Coastguard Worker  // Exclusion rules, contained in the set are executed in the end, other
1057*d5c09012SAndroid Build Coastguard Worker  // rules are executed in the order they are specified for each info type.
1058*d5c09012SAndroid Build Coastguard Worker  repeated InspectionRuleSet rule_set = 10;
1059*d5c09012SAndroid Build Coastguard Worker}
1060*d5c09012SAndroid Build Coastguard Worker
1061*d5c09012SAndroid Build Coastguard Worker// Container for bytes to inspect or redact.
1062*d5c09012SAndroid Build Coastguard Workermessage ByteContentItem {
1063*d5c09012SAndroid Build Coastguard Worker  // The type of data being sent for inspection. To learn more, see
1064*d5c09012SAndroid Build Coastguard Worker  // [Supported file
1065*d5c09012SAndroid Build Coastguard Worker  // types](https://cloud.google.com/sensitive-data-protection/docs/supported-file-types).
1066*d5c09012SAndroid Build Coastguard Worker  enum BytesType {
1067*d5c09012SAndroid Build Coastguard Worker    // Unused
1068*d5c09012SAndroid Build Coastguard Worker    BYTES_TYPE_UNSPECIFIED = 0;
1069*d5c09012SAndroid Build Coastguard Worker
1070*d5c09012SAndroid Build Coastguard Worker    // Any image type.
1071*d5c09012SAndroid Build Coastguard Worker    IMAGE = 6;
1072*d5c09012SAndroid Build Coastguard Worker
1073*d5c09012SAndroid Build Coastguard Worker    // jpeg
1074*d5c09012SAndroid Build Coastguard Worker    IMAGE_JPEG = 1;
1075*d5c09012SAndroid Build Coastguard Worker
1076*d5c09012SAndroid Build Coastguard Worker    // bmp
1077*d5c09012SAndroid Build Coastguard Worker    IMAGE_BMP = 2;
1078*d5c09012SAndroid Build Coastguard Worker
1079*d5c09012SAndroid Build Coastguard Worker    // png
1080*d5c09012SAndroid Build Coastguard Worker    IMAGE_PNG = 3;
1081*d5c09012SAndroid Build Coastguard Worker
1082*d5c09012SAndroid Build Coastguard Worker    // svg
1083*d5c09012SAndroid Build Coastguard Worker    IMAGE_SVG = 4;
1084*d5c09012SAndroid Build Coastguard Worker
1085*d5c09012SAndroid Build Coastguard Worker    // plain text
1086*d5c09012SAndroid Build Coastguard Worker    TEXT_UTF8 = 5;
1087*d5c09012SAndroid Build Coastguard Worker
1088*d5c09012SAndroid Build Coastguard Worker    // docx, docm, dotx, dotm
1089*d5c09012SAndroid Build Coastguard Worker    WORD_DOCUMENT = 7;
1090*d5c09012SAndroid Build Coastguard Worker
1091*d5c09012SAndroid Build Coastguard Worker    // pdf
1092*d5c09012SAndroid Build Coastguard Worker    PDF = 8;
1093*d5c09012SAndroid Build Coastguard Worker
1094*d5c09012SAndroid Build Coastguard Worker    // pptx, pptm, potx, potm, pot
1095*d5c09012SAndroid Build Coastguard Worker    POWERPOINT_DOCUMENT = 9;
1096*d5c09012SAndroid Build Coastguard Worker
1097*d5c09012SAndroid Build Coastguard Worker    // xlsx, xlsm, xltx, xltm
1098*d5c09012SAndroid Build Coastguard Worker    EXCEL_DOCUMENT = 10;
1099*d5c09012SAndroid Build Coastguard Worker
1100*d5c09012SAndroid Build Coastguard Worker    // avro
1101*d5c09012SAndroid Build Coastguard Worker    AVRO = 11;
1102*d5c09012SAndroid Build Coastguard Worker
1103*d5c09012SAndroid Build Coastguard Worker    // csv
1104*d5c09012SAndroid Build Coastguard Worker    CSV = 12;
1105*d5c09012SAndroid Build Coastguard Worker
1106*d5c09012SAndroid Build Coastguard Worker    // tsv
1107*d5c09012SAndroid Build Coastguard Worker    TSV = 13;
1108*d5c09012SAndroid Build Coastguard Worker  }
1109*d5c09012SAndroid Build Coastguard Worker
1110*d5c09012SAndroid Build Coastguard Worker  // The type of data stored in the bytes string. Default will be TEXT_UTF8.
1111*d5c09012SAndroid Build Coastguard Worker  BytesType type = 1;
1112*d5c09012SAndroid Build Coastguard Worker
1113*d5c09012SAndroid Build Coastguard Worker  // Content data to inspect or redact.
1114*d5c09012SAndroid Build Coastguard Worker  bytes data = 2;
1115*d5c09012SAndroid Build Coastguard Worker}
1116*d5c09012SAndroid Build Coastguard Worker
1117*d5c09012SAndroid Build Coastguard Worker// Type of content to inspect.
1118*d5c09012SAndroid Build Coastguard Workermessage ContentItem {
1119*d5c09012SAndroid Build Coastguard Worker  // Data of the item either in the byte array or UTF-8 string form, or table.
1120*d5c09012SAndroid Build Coastguard Worker  oneof data_item {
1121*d5c09012SAndroid Build Coastguard Worker    // String data to inspect or redact.
1122*d5c09012SAndroid Build Coastguard Worker    string value = 3;
1123*d5c09012SAndroid Build Coastguard Worker
1124*d5c09012SAndroid Build Coastguard Worker    // Structured content for inspection. See
1125*d5c09012SAndroid Build Coastguard Worker    // https://cloud.google.com/sensitive-data-protection/docs/inspecting-text#inspecting_a_table
1126*d5c09012SAndroid Build Coastguard Worker    // to learn more.
1127*d5c09012SAndroid Build Coastguard Worker    Table table = 4;
1128*d5c09012SAndroid Build Coastguard Worker
1129*d5c09012SAndroid Build Coastguard Worker    // Content data to inspect or redact. Replaces `type` and `data`.
1130*d5c09012SAndroid Build Coastguard Worker    ByteContentItem byte_item = 5;
1131*d5c09012SAndroid Build Coastguard Worker  }
1132*d5c09012SAndroid Build Coastguard Worker}
1133*d5c09012SAndroid Build Coastguard Worker
1134*d5c09012SAndroid Build Coastguard Worker// Structured content to inspect. Up to 50,000 `Value`s per request allowed. See
1135*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/inspecting-structured-text#inspecting_a_table
1136*d5c09012SAndroid Build Coastguard Worker// to learn more.
1137*d5c09012SAndroid Build Coastguard Workermessage Table {
1138*d5c09012SAndroid Build Coastguard Worker  // Values of the row.
1139*d5c09012SAndroid Build Coastguard Worker  message Row {
1140*d5c09012SAndroid Build Coastguard Worker    // Individual cells.
1141*d5c09012SAndroid Build Coastguard Worker    repeated Value values = 1;
1142*d5c09012SAndroid Build Coastguard Worker  }
1143*d5c09012SAndroid Build Coastguard Worker
1144*d5c09012SAndroid Build Coastguard Worker  // Headers of the table.
1145*d5c09012SAndroid Build Coastguard Worker  repeated FieldId headers = 1;
1146*d5c09012SAndroid Build Coastguard Worker
1147*d5c09012SAndroid Build Coastguard Worker  // Rows of the table.
1148*d5c09012SAndroid Build Coastguard Worker  repeated Row rows = 2;
1149*d5c09012SAndroid Build Coastguard Worker}
1150*d5c09012SAndroid Build Coastguard Worker
1151*d5c09012SAndroid Build Coastguard Worker// All the findings for a single scanned item.
1152*d5c09012SAndroid Build Coastguard Workermessage InspectResult {
1153*d5c09012SAndroid Build Coastguard Worker  // List of findings for an item.
1154*d5c09012SAndroid Build Coastguard Worker  repeated Finding findings = 1;
1155*d5c09012SAndroid Build Coastguard Worker
1156*d5c09012SAndroid Build Coastguard Worker  // If true, then this item might have more findings than were returned,
1157*d5c09012SAndroid Build Coastguard Worker  // and the findings returned are an arbitrary subset of all findings.
1158*d5c09012SAndroid Build Coastguard Worker  // The findings list might be truncated because the input items were too
1159*d5c09012SAndroid Build Coastguard Worker  // large, or because the server reached the maximum amount of resources
1160*d5c09012SAndroid Build Coastguard Worker  // allowed for a single API call. For best results, divide the input into
1161*d5c09012SAndroid Build Coastguard Worker  // smaller batches.
1162*d5c09012SAndroid Build Coastguard Worker  bool findings_truncated = 2;
1163*d5c09012SAndroid Build Coastguard Worker}
1164*d5c09012SAndroid Build Coastguard Worker
1165*d5c09012SAndroid Build Coastguard Worker// Represents a piece of potentially sensitive content.
1166*d5c09012SAndroid Build Coastguard Workermessage Finding {
1167*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1168*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/Finding"
1169*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/findings/{finding}"
1170*d5c09012SAndroid Build Coastguard Worker  };
1171*d5c09012SAndroid Build Coastguard Worker
1172*d5c09012SAndroid Build Coastguard Worker  // Resource name in format
1173*d5c09012SAndroid Build Coastguard Worker  // projects/{project}/locations/{location}/findings/{finding} Populated only
1174*d5c09012SAndroid Build Coastguard Worker  // when viewing persisted findings.
1175*d5c09012SAndroid Build Coastguard Worker  string name = 14;
1176*d5c09012SAndroid Build Coastguard Worker
1177*d5c09012SAndroid Build Coastguard Worker  // The content that was found. Even if the content is not textual, it
1178*d5c09012SAndroid Build Coastguard Worker  // may be converted to a textual representation here.
1179*d5c09012SAndroid Build Coastguard Worker  // Provided if `include_quote` is true and the finding is
1180*d5c09012SAndroid Build Coastguard Worker  // less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes
1181*d5c09012SAndroid Build Coastguard Worker  // in length, the quote may be omitted.
1182*d5c09012SAndroid Build Coastguard Worker  string quote = 1;
1183*d5c09012SAndroid Build Coastguard Worker
1184*d5c09012SAndroid Build Coastguard Worker  // The type of content that might have been found.
1185*d5c09012SAndroid Build Coastguard Worker  // Provided if `excluded_types` is false.
1186*d5c09012SAndroid Build Coastguard Worker  InfoType info_type = 2;
1187*d5c09012SAndroid Build Coastguard Worker
1188*d5c09012SAndroid Build Coastguard Worker  // Confidence of how likely it is that the `info_type` is correct.
1189*d5c09012SAndroid Build Coastguard Worker  Likelihood likelihood = 3;
1190*d5c09012SAndroid Build Coastguard Worker
1191*d5c09012SAndroid Build Coastguard Worker  // Where the content was found.
1192*d5c09012SAndroid Build Coastguard Worker  Location location = 4;
1193*d5c09012SAndroid Build Coastguard Worker
1194*d5c09012SAndroid Build Coastguard Worker  // Timestamp when finding was detected.
1195*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 6;
1196*d5c09012SAndroid Build Coastguard Worker
1197*d5c09012SAndroid Build Coastguard Worker  // Contains data parsed from quotes. Only populated if include_quote was set
1198*d5c09012SAndroid Build Coastguard Worker  // to true and a supported infoType was requested. Currently supported
1199*d5c09012SAndroid Build Coastguard Worker  // infoTypes: DATE, DATE_OF_BIRTH and TIME.
1200*d5c09012SAndroid Build Coastguard Worker  QuoteInfo quote_info = 7;
1201*d5c09012SAndroid Build Coastguard Worker
1202*d5c09012SAndroid Build Coastguard Worker  // The job that stored the finding.
1203*d5c09012SAndroid Build Coastguard Worker  string resource_name = 8
1204*d5c09012SAndroid Build Coastguard Worker      [(google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }];
1205*d5c09012SAndroid Build Coastguard Worker
1206*d5c09012SAndroid Build Coastguard Worker  // Job trigger name, if applicable, for this finding.
1207*d5c09012SAndroid Build Coastguard Worker  string trigger_name = 9 [
1208*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
1209*d5c09012SAndroid Build Coastguard Worker  ];
1210*d5c09012SAndroid Build Coastguard Worker
1211*d5c09012SAndroid Build Coastguard Worker  // The labels associated with this `Finding`.
1212*d5c09012SAndroid Build Coastguard Worker  //
1213*d5c09012SAndroid Build Coastguard Worker  // Label keys must be between 1 and 63 characters long and must conform
1214*d5c09012SAndroid Build Coastguard Worker  // to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
1215*d5c09012SAndroid Build Coastguard Worker  //
1216*d5c09012SAndroid Build Coastguard Worker  // Label values must be between 0 and 63 characters long and must conform
1217*d5c09012SAndroid Build Coastguard Worker  // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
1218*d5c09012SAndroid Build Coastguard Worker  //
1219*d5c09012SAndroid Build Coastguard Worker  // No more than 10 labels can be associated with a given finding.
1220*d5c09012SAndroid Build Coastguard Worker  //
1221*d5c09012SAndroid Build Coastguard Worker  // Examples:
1222*d5c09012SAndroid Build Coastguard Worker  // * `"environment" : "production"`
1223*d5c09012SAndroid Build Coastguard Worker  // * `"pipeline" : "etl"`
1224*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 10;
1225*d5c09012SAndroid Build Coastguard Worker
1226*d5c09012SAndroid Build Coastguard Worker  // Time the job started that produced this finding.
1227*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp job_create_time = 11;
1228*d5c09012SAndroid Build Coastguard Worker
1229*d5c09012SAndroid Build Coastguard Worker  // The job that stored the finding.
1230*d5c09012SAndroid Build Coastguard Worker  string job_name = 13
1231*d5c09012SAndroid Build Coastguard Worker      [(google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }];
1232*d5c09012SAndroid Build Coastguard Worker
1233*d5c09012SAndroid Build Coastguard Worker  // The unique finding id.
1234*d5c09012SAndroid Build Coastguard Worker  string finding_id = 15;
1235*d5c09012SAndroid Build Coastguard Worker}
1236*d5c09012SAndroid Build Coastguard Worker
1237*d5c09012SAndroid Build Coastguard Worker// Specifies the location of the finding.
1238*d5c09012SAndroid Build Coastguard Workermessage Location {
1239*d5c09012SAndroid Build Coastguard Worker  // Zero-based byte offsets delimiting the finding.
1240*d5c09012SAndroid Build Coastguard Worker  // These are relative to the finding's containing element.
1241*d5c09012SAndroid Build Coastguard Worker  // Note that when the content is not textual, this references
1242*d5c09012SAndroid Build Coastguard Worker  // the UTF-8 encoded textual representation of the content.
1243*d5c09012SAndroid Build Coastguard Worker  // Omitted if content is an image.
1244*d5c09012SAndroid Build Coastguard Worker  Range byte_range = 1;
1245*d5c09012SAndroid Build Coastguard Worker
1246*d5c09012SAndroid Build Coastguard Worker  // Unicode character offsets delimiting the finding.
1247*d5c09012SAndroid Build Coastguard Worker  // These are relative to the finding's containing element.
1248*d5c09012SAndroid Build Coastguard Worker  // Provided when the content is text.
1249*d5c09012SAndroid Build Coastguard Worker  Range codepoint_range = 2;
1250*d5c09012SAndroid Build Coastguard Worker
1251*d5c09012SAndroid Build Coastguard Worker  // List of nested objects pointing to the precise location of the finding
1252*d5c09012SAndroid Build Coastguard Worker  // within the file or record.
1253*d5c09012SAndroid Build Coastguard Worker  repeated ContentLocation content_locations = 7;
1254*d5c09012SAndroid Build Coastguard Worker
1255*d5c09012SAndroid Build Coastguard Worker  // Information about the container where this finding occurred, if available.
1256*d5c09012SAndroid Build Coastguard Worker  Container container = 8;
1257*d5c09012SAndroid Build Coastguard Worker}
1258*d5c09012SAndroid Build Coastguard Worker
1259*d5c09012SAndroid Build Coastguard Worker// Precise location of the finding within a document, record, image, or metadata
1260*d5c09012SAndroid Build Coastguard Worker// container.
1261*d5c09012SAndroid Build Coastguard Workermessage ContentLocation {
1262*d5c09012SAndroid Build Coastguard Worker  // Name of the container where the finding is located.
1263*d5c09012SAndroid Build Coastguard Worker  // The top level name is the source file name or table name. Names of some
1264*d5c09012SAndroid Build Coastguard Worker  // common storage containers are formatted as follows:
1265*d5c09012SAndroid Build Coastguard Worker  //
1266*d5c09012SAndroid Build Coastguard Worker  // * BigQuery tables:  `{project_id}:{dataset_id}.{table_id}`
1267*d5c09012SAndroid Build Coastguard Worker  // * Cloud Storage files: `gs://{bucket}/{path}`
1268*d5c09012SAndroid Build Coastguard Worker  // * Datastore namespace: {namespace}
1269*d5c09012SAndroid Build Coastguard Worker  //
1270*d5c09012SAndroid Build Coastguard Worker  // Nested names could be absent if the embedded object has no string
1271*d5c09012SAndroid Build Coastguard Worker  // identifier (for example, an image contained within a document).
1272*d5c09012SAndroid Build Coastguard Worker  string container_name = 1;
1273*d5c09012SAndroid Build Coastguard Worker
1274*d5c09012SAndroid Build Coastguard Worker  // Type of the container within the file with location of the finding.
1275*d5c09012SAndroid Build Coastguard Worker  oneof location {
1276*d5c09012SAndroid Build Coastguard Worker    // Location within a row or record of a database table.
1277*d5c09012SAndroid Build Coastguard Worker    RecordLocation record_location = 2;
1278*d5c09012SAndroid Build Coastguard Worker
1279*d5c09012SAndroid Build Coastguard Worker    // Location within an image's pixels.
1280*d5c09012SAndroid Build Coastguard Worker    ImageLocation image_location = 3;
1281*d5c09012SAndroid Build Coastguard Worker
1282*d5c09012SAndroid Build Coastguard Worker    // Location data for document files.
1283*d5c09012SAndroid Build Coastguard Worker    DocumentLocation document_location = 5;
1284*d5c09012SAndroid Build Coastguard Worker
1285*d5c09012SAndroid Build Coastguard Worker    // Location within the metadata for inspected content.
1286*d5c09012SAndroid Build Coastguard Worker    MetadataLocation metadata_location = 8;
1287*d5c09012SAndroid Build Coastguard Worker  }
1288*d5c09012SAndroid Build Coastguard Worker
1289*d5c09012SAndroid Build Coastguard Worker  // Finding container modification timestamp, if applicable. For Cloud Storage,
1290*d5c09012SAndroid Build Coastguard Worker  // this field contains the last file modification timestamp. For a BigQuery
1291*d5c09012SAndroid Build Coastguard Worker  // table, this field contains the last_modified_time property. For Datastore,
1292*d5c09012SAndroid Build Coastguard Worker  // this field isn't populated.
1293*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp container_timestamp = 6;
1294*d5c09012SAndroid Build Coastguard Worker
1295*d5c09012SAndroid Build Coastguard Worker  // Finding container version, if available
1296*d5c09012SAndroid Build Coastguard Worker  // ("generation" for Cloud Storage).
1297*d5c09012SAndroid Build Coastguard Worker  string container_version = 7;
1298*d5c09012SAndroid Build Coastguard Worker}
1299*d5c09012SAndroid Build Coastguard Worker
1300*d5c09012SAndroid Build Coastguard Worker// Metadata Location
1301*d5c09012SAndroid Build Coastguard Workermessage MetadataLocation {
1302*d5c09012SAndroid Build Coastguard Worker  // Type of metadata containing the finding.
1303*d5c09012SAndroid Build Coastguard Worker  MetadataType type = 1;
1304*d5c09012SAndroid Build Coastguard Worker
1305*d5c09012SAndroid Build Coastguard Worker  // Label of the piece of metadata containing the finding, for example -
1306*d5c09012SAndroid Build Coastguard Worker  // latitude, author, caption.
1307*d5c09012SAndroid Build Coastguard Worker  oneof label {
1308*d5c09012SAndroid Build Coastguard Worker    // Storage metadata.
1309*d5c09012SAndroid Build Coastguard Worker    StorageMetadataLabel storage_label = 3;
1310*d5c09012SAndroid Build Coastguard Worker  }
1311*d5c09012SAndroid Build Coastguard Worker}
1312*d5c09012SAndroid Build Coastguard Worker
1313*d5c09012SAndroid Build Coastguard Worker// Storage metadata label to indicate which metadata entry contains findings.
1314*d5c09012SAndroid Build Coastguard Workermessage StorageMetadataLabel {
1315*d5c09012SAndroid Build Coastguard Worker  // Label name.
1316*d5c09012SAndroid Build Coastguard Worker  string key = 1;
1317*d5c09012SAndroid Build Coastguard Worker}
1318*d5c09012SAndroid Build Coastguard Worker
1319*d5c09012SAndroid Build Coastguard Worker// Location of a finding within a document.
1320*d5c09012SAndroid Build Coastguard Workermessage DocumentLocation {
1321*d5c09012SAndroid Build Coastguard Worker  // Offset of the line, from the beginning of the file, where the finding
1322*d5c09012SAndroid Build Coastguard Worker  // is located.
1323*d5c09012SAndroid Build Coastguard Worker  int64 file_offset = 1;
1324*d5c09012SAndroid Build Coastguard Worker}
1325*d5c09012SAndroid Build Coastguard Worker
1326*d5c09012SAndroid Build Coastguard Worker// Location of a finding within a row or record.
1327*d5c09012SAndroid Build Coastguard Workermessage RecordLocation {
1328*d5c09012SAndroid Build Coastguard Worker  // Key of the finding.
1329*d5c09012SAndroid Build Coastguard Worker  RecordKey record_key = 1;
1330*d5c09012SAndroid Build Coastguard Worker
1331*d5c09012SAndroid Build Coastguard Worker  // Field id of the field containing the finding.
1332*d5c09012SAndroid Build Coastguard Worker  FieldId field_id = 2;
1333*d5c09012SAndroid Build Coastguard Worker
1334*d5c09012SAndroid Build Coastguard Worker  // Location within a `ContentItem.Table`.
1335*d5c09012SAndroid Build Coastguard Worker  TableLocation table_location = 3;
1336*d5c09012SAndroid Build Coastguard Worker}
1337*d5c09012SAndroid Build Coastguard Worker
1338*d5c09012SAndroid Build Coastguard Worker// Location of a finding within a table.
1339*d5c09012SAndroid Build Coastguard Workermessage TableLocation {
1340*d5c09012SAndroid Build Coastguard Worker  // The zero-based index of the row where the finding is located. Only
1341*d5c09012SAndroid Build Coastguard Worker  // populated for resources that have a natural ordering, not BigQuery. In
1342*d5c09012SAndroid Build Coastguard Worker  // BigQuery, to identify the row a finding came from, populate
1343*d5c09012SAndroid Build Coastguard Worker  // BigQueryOptions.identifying_fields with your primary key column names and
1344*d5c09012SAndroid Build Coastguard Worker  // when you store the findings the value of those columns will be stored
1345*d5c09012SAndroid Build Coastguard Worker  // inside of Finding.
1346*d5c09012SAndroid Build Coastguard Worker  int64 row_index = 1;
1347*d5c09012SAndroid Build Coastguard Worker}
1348*d5c09012SAndroid Build Coastguard Worker
1349*d5c09012SAndroid Build Coastguard Worker// Represents a container that may contain DLP findings.
1350*d5c09012SAndroid Build Coastguard Worker// Examples of a container include a file, table, or database record.
1351*d5c09012SAndroid Build Coastguard Workermessage Container {
1352*d5c09012SAndroid Build Coastguard Worker  // Container type, for example BigQuery or Cloud Storage.
1353*d5c09012SAndroid Build Coastguard Worker  string type = 1;
1354*d5c09012SAndroid Build Coastguard Worker
1355*d5c09012SAndroid Build Coastguard Worker  // Project where the finding was found.
1356*d5c09012SAndroid Build Coastguard Worker  // Can be different from the project that owns the finding.
1357*d5c09012SAndroid Build Coastguard Worker  string project_id = 2;
1358*d5c09012SAndroid Build Coastguard Worker
1359*d5c09012SAndroid Build Coastguard Worker  // A string representation of the full container name.
1360*d5c09012SAndroid Build Coastguard Worker  // Examples:
1361*d5c09012SAndroid Build Coastguard Worker  // - BigQuery: 'Project:DataSetId.TableId'
1362*d5c09012SAndroid Build Coastguard Worker  // - Cloud Storage: 'gs://Bucket/folders/filename.txt'
1363*d5c09012SAndroid Build Coastguard Worker  string full_path = 3;
1364*d5c09012SAndroid Build Coastguard Worker
1365*d5c09012SAndroid Build Coastguard Worker  // The root of the container.
1366*d5c09012SAndroid Build Coastguard Worker  // Examples:
1367*d5c09012SAndroid Build Coastguard Worker  //
1368*d5c09012SAndroid Build Coastguard Worker  // - For BigQuery table `project_id:dataset_id.table_id`, the root is
1369*d5c09012SAndroid Build Coastguard Worker  //  `dataset_id`
1370*d5c09012SAndroid Build Coastguard Worker  // - For Cloud Storage file `gs://bucket/folder/filename.txt`, the root
1371*d5c09012SAndroid Build Coastguard Worker  //  is `gs://bucket`
1372*d5c09012SAndroid Build Coastguard Worker  string root_path = 4;
1373*d5c09012SAndroid Build Coastguard Worker
1374*d5c09012SAndroid Build Coastguard Worker  // The rest of the path after the root.
1375*d5c09012SAndroid Build Coastguard Worker  // Examples:
1376*d5c09012SAndroid Build Coastguard Worker  //
1377*d5c09012SAndroid Build Coastguard Worker  // - For BigQuery table `project_id:dataset_id.table_id`, the relative path is
1378*d5c09012SAndroid Build Coastguard Worker  //  `table_id`
1379*d5c09012SAndroid Build Coastguard Worker  // - For Cloud Storage file `gs://bucket/folder/filename.txt`, the relative
1380*d5c09012SAndroid Build Coastguard Worker  //  path is `folder/filename.txt`
1381*d5c09012SAndroid Build Coastguard Worker  string relative_path = 5;
1382*d5c09012SAndroid Build Coastguard Worker
1383*d5c09012SAndroid Build Coastguard Worker  // Findings container modification timestamp, if applicable. For Cloud
1384*d5c09012SAndroid Build Coastguard Worker  // Storage, this field contains the last file modification timestamp. For a
1385*d5c09012SAndroid Build Coastguard Worker  // BigQuery table, this field contains the last_modified_time property. For
1386*d5c09012SAndroid Build Coastguard Worker  // Datastore, this field isn't populated.
1387*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 6;
1388*d5c09012SAndroid Build Coastguard Worker
1389*d5c09012SAndroid Build Coastguard Worker  // Findings container version, if available
1390*d5c09012SAndroid Build Coastguard Worker  // ("generation" for Cloud Storage).
1391*d5c09012SAndroid Build Coastguard Worker  string version = 7;
1392*d5c09012SAndroid Build Coastguard Worker}
1393*d5c09012SAndroid Build Coastguard Worker
1394*d5c09012SAndroid Build Coastguard Worker// Generic half-open interval [start, end)
1395*d5c09012SAndroid Build Coastguard Workermessage Range {
1396*d5c09012SAndroid Build Coastguard Worker  // Index of the first character of the range (inclusive).
1397*d5c09012SAndroid Build Coastguard Worker  int64 start = 1;
1398*d5c09012SAndroid Build Coastguard Worker
1399*d5c09012SAndroid Build Coastguard Worker  // Index of the last character of the range (exclusive).
1400*d5c09012SAndroid Build Coastguard Worker  int64 end = 2;
1401*d5c09012SAndroid Build Coastguard Worker}
1402*d5c09012SAndroid Build Coastguard Worker
1403*d5c09012SAndroid Build Coastguard Worker// Location of the finding within an image.
1404*d5c09012SAndroid Build Coastguard Workermessage ImageLocation {
1405*d5c09012SAndroid Build Coastguard Worker  // Bounding boxes locating the pixels within the image containing the finding.
1406*d5c09012SAndroid Build Coastguard Worker  repeated BoundingBox bounding_boxes = 1;
1407*d5c09012SAndroid Build Coastguard Worker}
1408*d5c09012SAndroid Build Coastguard Worker
1409*d5c09012SAndroid Build Coastguard Worker// Bounding box encompassing detected text within an image.
1410*d5c09012SAndroid Build Coastguard Workermessage BoundingBox {
1411*d5c09012SAndroid Build Coastguard Worker  // Top coordinate of the bounding box. (0,0) is upper left.
1412*d5c09012SAndroid Build Coastguard Worker  int32 top = 1;
1413*d5c09012SAndroid Build Coastguard Worker
1414*d5c09012SAndroid Build Coastguard Worker  // Left coordinate of the bounding box. (0,0) is upper left.
1415*d5c09012SAndroid Build Coastguard Worker  int32 left = 2;
1416*d5c09012SAndroid Build Coastguard Worker
1417*d5c09012SAndroid Build Coastguard Worker  // Width of the bounding box in pixels.
1418*d5c09012SAndroid Build Coastguard Worker  int32 width = 3;
1419*d5c09012SAndroid Build Coastguard Worker
1420*d5c09012SAndroid Build Coastguard Worker  // Height of the bounding box in pixels.
1421*d5c09012SAndroid Build Coastguard Worker  int32 height = 4;
1422*d5c09012SAndroid Build Coastguard Worker}
1423*d5c09012SAndroid Build Coastguard Worker
1424*d5c09012SAndroid Build Coastguard Worker// Request to search for potentially sensitive info in an image and redact it
1425*d5c09012SAndroid Build Coastguard Worker// by covering it with a colored rectangle.
1426*d5c09012SAndroid Build Coastguard Workermessage RedactImageRequest {
1427*d5c09012SAndroid Build Coastguard Worker  // Configuration for determining how redaction of images should occur.
1428*d5c09012SAndroid Build Coastguard Worker  message ImageRedactionConfig {
1429*d5c09012SAndroid Build Coastguard Worker    // Type of information to redact from images.
1430*d5c09012SAndroid Build Coastguard Worker    oneof target {
1431*d5c09012SAndroid Build Coastguard Worker      // Only one per info_type should be provided per request. If not
1432*d5c09012SAndroid Build Coastguard Worker      // specified, and redact_all_text is false, the DLP API will redact all
1433*d5c09012SAndroid Build Coastguard Worker      // text that it matches against all info_types that are found, but not
1434*d5c09012SAndroid Build Coastguard Worker      // specified in another ImageRedactionConfig.
1435*d5c09012SAndroid Build Coastguard Worker      InfoType info_type = 1;
1436*d5c09012SAndroid Build Coastguard Worker
1437*d5c09012SAndroid Build Coastguard Worker      // If true, all text found in the image, regardless whether it matches an
1438*d5c09012SAndroid Build Coastguard Worker      // info_type, is redacted. Only one should be provided.
1439*d5c09012SAndroid Build Coastguard Worker      bool redact_all_text = 2;
1440*d5c09012SAndroid Build Coastguard Worker    }
1441*d5c09012SAndroid Build Coastguard Worker
1442*d5c09012SAndroid Build Coastguard Worker    // The color to use when redacting content from an image. If not specified,
1443*d5c09012SAndroid Build Coastguard Worker    // the default is black.
1444*d5c09012SAndroid Build Coastguard Worker    Color redaction_color = 3;
1445*d5c09012SAndroid Build Coastguard Worker  }
1446*d5c09012SAndroid Build Coastguard Worker
1447*d5c09012SAndroid Build Coastguard Worker  // Parent resource name.
1448*d5c09012SAndroid Build Coastguard Worker  //
1449*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
1450*d5c09012SAndroid Build Coastguard Worker  // processing
1451*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1452*d5c09012SAndroid Build Coastguard Worker  //
1453*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
1454*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1455*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
1456*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
1457*d5c09012SAndroid Build Coastguard Worker  //
1458*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
1459*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
1460*d5c09012SAndroid Build Coastguard Worker  // for processing data:
1461*d5c09012SAndroid Build Coastguard Worker  //
1462*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
1463*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.resource_reference) = {
1464*d5c09012SAndroid Build Coastguard Worker    child_type: "dlp.googleapis.com/DlpContent"
1465*d5c09012SAndroid Build Coastguard Worker  }];
1466*d5c09012SAndroid Build Coastguard Worker
1467*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
1468*d5c09012SAndroid Build Coastguard Worker  string location_id = 8;
1469*d5c09012SAndroid Build Coastguard Worker
1470*d5c09012SAndroid Build Coastguard Worker  // Configuration for the inspector.
1471*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 2;
1472*d5c09012SAndroid Build Coastguard Worker
1473*d5c09012SAndroid Build Coastguard Worker  // The configuration for specifying what content to redact from images.
1474*d5c09012SAndroid Build Coastguard Worker  repeated ImageRedactionConfig image_redaction_configs = 5;
1475*d5c09012SAndroid Build Coastguard Worker
1476*d5c09012SAndroid Build Coastguard Worker  // Whether the response should include findings along with the redacted
1477*d5c09012SAndroid Build Coastguard Worker  // image.
1478*d5c09012SAndroid Build Coastguard Worker  bool include_findings = 6;
1479*d5c09012SAndroid Build Coastguard Worker
1480*d5c09012SAndroid Build Coastguard Worker  // The content must be PNG, JPEG, SVG or BMP.
1481*d5c09012SAndroid Build Coastguard Worker  ByteContentItem byte_item = 7;
1482*d5c09012SAndroid Build Coastguard Worker}
1483*d5c09012SAndroid Build Coastguard Worker
1484*d5c09012SAndroid Build Coastguard Worker// Represents a color in the RGB color space.
1485*d5c09012SAndroid Build Coastguard Workermessage Color {
1486*d5c09012SAndroid Build Coastguard Worker  // The amount of red in the color as a value in the interval [0, 1].
1487*d5c09012SAndroid Build Coastguard Worker  float red = 1;
1488*d5c09012SAndroid Build Coastguard Worker
1489*d5c09012SAndroid Build Coastguard Worker  // The amount of green in the color as a value in the interval [0, 1].
1490*d5c09012SAndroid Build Coastguard Worker  float green = 2;
1491*d5c09012SAndroid Build Coastguard Worker
1492*d5c09012SAndroid Build Coastguard Worker  // The amount of blue in the color as a value in the interval [0, 1].
1493*d5c09012SAndroid Build Coastguard Worker  float blue = 3;
1494*d5c09012SAndroid Build Coastguard Worker}
1495*d5c09012SAndroid Build Coastguard Worker
1496*d5c09012SAndroid Build Coastguard Worker// Results of redacting an image.
1497*d5c09012SAndroid Build Coastguard Workermessage RedactImageResponse {
1498*d5c09012SAndroid Build Coastguard Worker  // The redacted image. The type will be the same as the original image.
1499*d5c09012SAndroid Build Coastguard Worker  bytes redacted_image = 1;
1500*d5c09012SAndroid Build Coastguard Worker
1501*d5c09012SAndroid Build Coastguard Worker  // If an image was being inspected and the InspectConfig's include_quote was
1502*d5c09012SAndroid Build Coastguard Worker  // set to true, then this field will include all text, if any, that was found
1503*d5c09012SAndroid Build Coastguard Worker  // in the image.
1504*d5c09012SAndroid Build Coastguard Worker  string extracted_text = 2;
1505*d5c09012SAndroid Build Coastguard Worker
1506*d5c09012SAndroid Build Coastguard Worker  // The findings. Populated when include_findings in the request is true.
1507*d5c09012SAndroid Build Coastguard Worker  InspectResult inspect_result = 3;
1508*d5c09012SAndroid Build Coastguard Worker}
1509*d5c09012SAndroid Build Coastguard Worker
1510*d5c09012SAndroid Build Coastguard Worker// Request to de-identify a ContentItem.
1511*d5c09012SAndroid Build Coastguard Workermessage DeidentifyContentRequest {
1512*d5c09012SAndroid Build Coastguard Worker  // Parent resource name.
1513*d5c09012SAndroid Build Coastguard Worker  //
1514*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
1515*d5c09012SAndroid Build Coastguard Worker  // processing
1516*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1517*d5c09012SAndroid Build Coastguard Worker  //
1518*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
1519*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1520*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
1521*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
1522*d5c09012SAndroid Build Coastguard Worker  //
1523*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
1524*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
1525*d5c09012SAndroid Build Coastguard Worker  // for processing data:
1526*d5c09012SAndroid Build Coastguard Worker  //
1527*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
1528*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.resource_reference) = {
1529*d5c09012SAndroid Build Coastguard Worker    child_type: "dlp.googleapis.com/DlpContent"
1530*d5c09012SAndroid Build Coastguard Worker  }];
1531*d5c09012SAndroid Build Coastguard Worker
1532*d5c09012SAndroid Build Coastguard Worker  // Configuration for the de-identification of the content item.
1533*d5c09012SAndroid Build Coastguard Worker  // Items specified here will override the template referenced by the
1534*d5c09012SAndroid Build Coastguard Worker  // deidentify_template_name argument.
1535*d5c09012SAndroid Build Coastguard Worker  DeidentifyConfig deidentify_config = 2;
1536*d5c09012SAndroid Build Coastguard Worker
1537*d5c09012SAndroid Build Coastguard Worker  // Configuration for the inspector.
1538*d5c09012SAndroid Build Coastguard Worker  // Items specified here will override the template referenced by the
1539*d5c09012SAndroid Build Coastguard Worker  // inspect_template_name argument.
1540*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 3;
1541*d5c09012SAndroid Build Coastguard Worker
1542*d5c09012SAndroid Build Coastguard Worker  // The item to de-identify. Will be treated as text.
1543*d5c09012SAndroid Build Coastguard Worker  //
1544*d5c09012SAndroid Build Coastguard Worker  // This value must be of type
1545*d5c09012SAndroid Build Coastguard Worker  // [Table][google.privacy.dlp.v2.Table] if your
1546*d5c09012SAndroid Build Coastguard Worker  // [deidentify_config][google.privacy.dlp.v2.DeidentifyContentRequest.deidentify_config]
1547*d5c09012SAndroid Build Coastguard Worker  // is a
1548*d5c09012SAndroid Build Coastguard Worker  // [RecordTransformations][google.privacy.dlp.v2.RecordTransformations]
1549*d5c09012SAndroid Build Coastguard Worker  // object.
1550*d5c09012SAndroid Build Coastguard Worker  ContentItem item = 4;
1551*d5c09012SAndroid Build Coastguard Worker
1552*d5c09012SAndroid Build Coastguard Worker  // Template to use. Any configuration directly specified in
1553*d5c09012SAndroid Build Coastguard Worker  // inspect_config will override those set in the template. Singular fields
1554*d5c09012SAndroid Build Coastguard Worker  // that are set in this request will replace their corresponding fields in the
1555*d5c09012SAndroid Build Coastguard Worker  // template. Repeated fields are appended. Singular sub-messages and groups
1556*d5c09012SAndroid Build Coastguard Worker  // are recursively merged.
1557*d5c09012SAndroid Build Coastguard Worker  string inspect_template_name = 5;
1558*d5c09012SAndroid Build Coastguard Worker
1559*d5c09012SAndroid Build Coastguard Worker  // Template to use. Any configuration directly specified in
1560*d5c09012SAndroid Build Coastguard Worker  // deidentify_config will override those set in the template. Singular fields
1561*d5c09012SAndroid Build Coastguard Worker  // that are set in this request will replace their corresponding fields in the
1562*d5c09012SAndroid Build Coastguard Worker  // template. Repeated fields are appended. Singular sub-messages and groups
1563*d5c09012SAndroid Build Coastguard Worker  // are recursively merged.
1564*d5c09012SAndroid Build Coastguard Worker  string deidentify_template_name = 6;
1565*d5c09012SAndroid Build Coastguard Worker
1566*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
1567*d5c09012SAndroid Build Coastguard Worker  string location_id = 7;
1568*d5c09012SAndroid Build Coastguard Worker}
1569*d5c09012SAndroid Build Coastguard Worker
1570*d5c09012SAndroid Build Coastguard Worker// Results of de-identifying a ContentItem.
1571*d5c09012SAndroid Build Coastguard Workermessage DeidentifyContentResponse {
1572*d5c09012SAndroid Build Coastguard Worker  // The de-identified item.
1573*d5c09012SAndroid Build Coastguard Worker  ContentItem item = 1;
1574*d5c09012SAndroid Build Coastguard Worker
1575*d5c09012SAndroid Build Coastguard Worker  // An overview of the changes that were made on the `item`.
1576*d5c09012SAndroid Build Coastguard Worker  TransformationOverview overview = 2;
1577*d5c09012SAndroid Build Coastguard Worker}
1578*d5c09012SAndroid Build Coastguard Worker
1579*d5c09012SAndroid Build Coastguard Worker// Request to re-identify an item.
1580*d5c09012SAndroid Build Coastguard Workermessage ReidentifyContentRequest {
1581*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
1582*d5c09012SAndroid Build Coastguard Worker  //
1583*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
1584*d5c09012SAndroid Build Coastguard Worker  // processing
1585*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1586*d5c09012SAndroid Build Coastguard Worker  //
1587*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
1588*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1589*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
1590*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
1591*d5c09012SAndroid Build Coastguard Worker  //
1592*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
1593*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
1594*d5c09012SAndroid Build Coastguard Worker  // for processing data:
1595*d5c09012SAndroid Build Coastguard Worker  //
1596*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
1597*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1598*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1599*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1600*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DlpContent"
1601*d5c09012SAndroid Build Coastguard Worker    }
1602*d5c09012SAndroid Build Coastguard Worker  ];
1603*d5c09012SAndroid Build Coastguard Worker
1604*d5c09012SAndroid Build Coastguard Worker  // Configuration for the re-identification of the content item.
1605*d5c09012SAndroid Build Coastguard Worker  // This field shares the same proto message type that is used for
1606*d5c09012SAndroid Build Coastguard Worker  // de-identification, however its usage here is for the reversal of the
1607*d5c09012SAndroid Build Coastguard Worker  // previous de-identification. Re-identification is performed by examining
1608*d5c09012SAndroid Build Coastguard Worker  // the transformations used to de-identify the items and executing the
1609*d5c09012SAndroid Build Coastguard Worker  // reverse. This requires that only reversible transformations
1610*d5c09012SAndroid Build Coastguard Worker  // be provided here. The reversible transformations are:
1611*d5c09012SAndroid Build Coastguard Worker  //
1612*d5c09012SAndroid Build Coastguard Worker  //  - `CryptoDeterministicConfig`
1613*d5c09012SAndroid Build Coastguard Worker  //  - `CryptoReplaceFfxFpeConfig`
1614*d5c09012SAndroid Build Coastguard Worker  DeidentifyConfig reidentify_config = 2;
1615*d5c09012SAndroid Build Coastguard Worker
1616*d5c09012SAndroid Build Coastguard Worker  // Configuration for the inspector.
1617*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 3;
1618*d5c09012SAndroid Build Coastguard Worker
1619*d5c09012SAndroid Build Coastguard Worker  // The item to re-identify. Will be treated as text.
1620*d5c09012SAndroid Build Coastguard Worker  ContentItem item = 4;
1621*d5c09012SAndroid Build Coastguard Worker
1622*d5c09012SAndroid Build Coastguard Worker  // Template to use. Any configuration directly specified in
1623*d5c09012SAndroid Build Coastguard Worker  // `inspect_config` will override those set in the template. Singular fields
1624*d5c09012SAndroid Build Coastguard Worker  // that are set in this request will replace their corresponding fields in the
1625*d5c09012SAndroid Build Coastguard Worker  // template. Repeated fields are appended. Singular sub-messages and groups
1626*d5c09012SAndroid Build Coastguard Worker  // are recursively merged.
1627*d5c09012SAndroid Build Coastguard Worker  string inspect_template_name = 5;
1628*d5c09012SAndroid Build Coastguard Worker
1629*d5c09012SAndroid Build Coastguard Worker  // Template to use. References an instance of `DeidentifyTemplate`.
1630*d5c09012SAndroid Build Coastguard Worker  // Any configuration directly specified in `reidentify_config` or
1631*d5c09012SAndroid Build Coastguard Worker  // `inspect_config` will override those set in the template. The
1632*d5c09012SAndroid Build Coastguard Worker  // `DeidentifyTemplate` used must include only reversible transformations.
1633*d5c09012SAndroid Build Coastguard Worker  // Singular fields that are set in this request will replace their
1634*d5c09012SAndroid Build Coastguard Worker  // corresponding fields in the template. Repeated fields are appended.
1635*d5c09012SAndroid Build Coastguard Worker  // Singular sub-messages and groups are recursively merged.
1636*d5c09012SAndroid Build Coastguard Worker  string reidentify_template_name = 6;
1637*d5c09012SAndroid Build Coastguard Worker
1638*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
1639*d5c09012SAndroid Build Coastguard Worker  string location_id = 7;
1640*d5c09012SAndroid Build Coastguard Worker}
1641*d5c09012SAndroid Build Coastguard Worker
1642*d5c09012SAndroid Build Coastguard Worker// Results of re-identifying an item.
1643*d5c09012SAndroid Build Coastguard Workermessage ReidentifyContentResponse {
1644*d5c09012SAndroid Build Coastguard Worker  // The re-identified item.
1645*d5c09012SAndroid Build Coastguard Worker  ContentItem item = 1;
1646*d5c09012SAndroid Build Coastguard Worker
1647*d5c09012SAndroid Build Coastguard Worker  // An overview of the changes that were made to the `item`.
1648*d5c09012SAndroid Build Coastguard Worker  TransformationOverview overview = 2;
1649*d5c09012SAndroid Build Coastguard Worker}
1650*d5c09012SAndroid Build Coastguard Worker
1651*d5c09012SAndroid Build Coastguard Worker// Request to search for potentially sensitive info in a ContentItem.
1652*d5c09012SAndroid Build Coastguard Workermessage InspectContentRequest {
1653*d5c09012SAndroid Build Coastguard Worker  // Parent resource name.
1654*d5c09012SAndroid Build Coastguard Worker  //
1655*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
1656*d5c09012SAndroid Build Coastguard Worker  // processing
1657*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
1658*d5c09012SAndroid Build Coastguard Worker  //
1659*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
1660*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
1661*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
1662*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
1663*d5c09012SAndroid Build Coastguard Worker  //
1664*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
1665*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
1666*d5c09012SAndroid Build Coastguard Worker  // for processing data:
1667*d5c09012SAndroid Build Coastguard Worker  //
1668*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
1669*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [(google.api.resource_reference) = {
1670*d5c09012SAndroid Build Coastguard Worker    child_type: "dlp.googleapis.com/DlpContent"
1671*d5c09012SAndroid Build Coastguard Worker  }];
1672*d5c09012SAndroid Build Coastguard Worker
1673*d5c09012SAndroid Build Coastguard Worker  // Configuration for the inspector. What specified here will override
1674*d5c09012SAndroid Build Coastguard Worker  // the template referenced by the inspect_template_name argument.
1675*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 2;
1676*d5c09012SAndroid Build Coastguard Worker
1677*d5c09012SAndroid Build Coastguard Worker  // The item to inspect.
1678*d5c09012SAndroid Build Coastguard Worker  ContentItem item = 3;
1679*d5c09012SAndroid Build Coastguard Worker
1680*d5c09012SAndroid Build Coastguard Worker  // Template to use. Any configuration directly specified in
1681*d5c09012SAndroid Build Coastguard Worker  // inspect_config will override those set in the template. Singular fields
1682*d5c09012SAndroid Build Coastguard Worker  // that are set in this request will replace their corresponding fields in the
1683*d5c09012SAndroid Build Coastguard Worker  // template. Repeated fields are appended. Singular sub-messages and groups
1684*d5c09012SAndroid Build Coastguard Worker  // are recursively merged.
1685*d5c09012SAndroid Build Coastguard Worker  string inspect_template_name = 4;
1686*d5c09012SAndroid Build Coastguard Worker
1687*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
1688*d5c09012SAndroid Build Coastguard Worker  string location_id = 5;
1689*d5c09012SAndroid Build Coastguard Worker}
1690*d5c09012SAndroid Build Coastguard Worker
1691*d5c09012SAndroid Build Coastguard Worker// Results of inspecting an item.
1692*d5c09012SAndroid Build Coastguard Workermessage InspectContentResponse {
1693*d5c09012SAndroid Build Coastguard Worker  // The findings.
1694*d5c09012SAndroid Build Coastguard Worker  InspectResult result = 1;
1695*d5c09012SAndroid Build Coastguard Worker}
1696*d5c09012SAndroid Build Coastguard Worker
1697*d5c09012SAndroid Build Coastguard Worker// Cloud repository for storing output.
1698*d5c09012SAndroid Build Coastguard Workermessage OutputStorageConfig {
1699*d5c09012SAndroid Build Coastguard Worker  // Predefined schemas for storing findings.
1700*d5c09012SAndroid Build Coastguard Worker  // Only for use with external storage.
1701*d5c09012SAndroid Build Coastguard Worker  enum OutputSchema {
1702*d5c09012SAndroid Build Coastguard Worker    // Unused.
1703*d5c09012SAndroid Build Coastguard Worker    OUTPUT_SCHEMA_UNSPECIFIED = 0;
1704*d5c09012SAndroid Build Coastguard Worker
1705*d5c09012SAndroid Build Coastguard Worker    // Basic schema including only `info_type`, `quote`, `certainty`, and
1706*d5c09012SAndroid Build Coastguard Worker    // `timestamp`.
1707*d5c09012SAndroid Build Coastguard Worker    BASIC_COLUMNS = 1;
1708*d5c09012SAndroid Build Coastguard Worker
1709*d5c09012SAndroid Build Coastguard Worker    // Schema tailored to findings from scanning Cloud Storage.
1710*d5c09012SAndroid Build Coastguard Worker    GCS_COLUMNS = 2;
1711*d5c09012SAndroid Build Coastguard Worker
1712*d5c09012SAndroid Build Coastguard Worker    // Schema tailored to findings from scanning Google Datastore.
1713*d5c09012SAndroid Build Coastguard Worker    DATASTORE_COLUMNS = 3;
1714*d5c09012SAndroid Build Coastguard Worker
1715*d5c09012SAndroid Build Coastguard Worker    // Schema tailored to findings from scanning Google BigQuery.
1716*d5c09012SAndroid Build Coastguard Worker    BIG_QUERY_COLUMNS = 4;
1717*d5c09012SAndroid Build Coastguard Worker
1718*d5c09012SAndroid Build Coastguard Worker    // Schema containing all columns.
1719*d5c09012SAndroid Build Coastguard Worker    ALL_COLUMNS = 5;
1720*d5c09012SAndroid Build Coastguard Worker  }
1721*d5c09012SAndroid Build Coastguard Worker
1722*d5c09012SAndroid Build Coastguard Worker  // Output storage types.
1723*d5c09012SAndroid Build Coastguard Worker  oneof type {
1724*d5c09012SAndroid Build Coastguard Worker    // Store findings in an existing table or a new table in an existing
1725*d5c09012SAndroid Build Coastguard Worker    // dataset. If table_id is not set a new one will be generated
1726*d5c09012SAndroid Build Coastguard Worker    // for you with the following format:
1727*d5c09012SAndroid Build Coastguard Worker    // dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used
1728*d5c09012SAndroid Build Coastguard Worker    // for generating the date details.
1729*d5c09012SAndroid Build Coastguard Worker    //
1730*d5c09012SAndroid Build Coastguard Worker    // For Inspect, each column in an existing output table must have the same
1731*d5c09012SAndroid Build Coastguard Worker    // name, type, and mode of a field in the `Finding` object.
1732*d5c09012SAndroid Build Coastguard Worker    //
1733*d5c09012SAndroid Build Coastguard Worker    // For Risk, an existing output table should be the output of a previous
1734*d5c09012SAndroid Build Coastguard Worker    // Risk analysis job run on the same source table, with the same privacy
1735*d5c09012SAndroid Build Coastguard Worker    // metric and quasi-identifiers. Risk jobs that analyze the same table but
1736*d5c09012SAndroid Build Coastguard Worker    // compute a different privacy metric, or use different sets of
1737*d5c09012SAndroid Build Coastguard Worker    // quasi-identifiers, cannot store their results in the same table.
1738*d5c09012SAndroid Build Coastguard Worker    BigQueryTable table = 1;
1739*d5c09012SAndroid Build Coastguard Worker  }
1740*d5c09012SAndroid Build Coastguard Worker
1741*d5c09012SAndroid Build Coastguard Worker  // Schema used for writing the findings for Inspect jobs. This field is only
1742*d5c09012SAndroid Build Coastguard Worker  // used for Inspect and must be unspecified for Risk jobs. Columns are derived
1743*d5c09012SAndroid Build Coastguard Worker  // from the `Finding` object. If appending to an existing table, any columns
1744*d5c09012SAndroid Build Coastguard Worker  // from the predefined schema that are missing will be added. No columns in
1745*d5c09012SAndroid Build Coastguard Worker  // the existing table will be deleted.
1746*d5c09012SAndroid Build Coastguard Worker  //
1747*d5c09012SAndroid Build Coastguard Worker  // If unspecified, then all available columns will be used for a new table or
1748*d5c09012SAndroid Build Coastguard Worker  // an (existing) table with no schema, and no changes will be made to an
1749*d5c09012SAndroid Build Coastguard Worker  // existing table that has a schema.
1750*d5c09012SAndroid Build Coastguard Worker  // Only for use with external storage.
1751*d5c09012SAndroid Build Coastguard Worker  OutputSchema output_schema = 3;
1752*d5c09012SAndroid Build Coastguard Worker}
1753*d5c09012SAndroid Build Coastguard Worker
1754*d5c09012SAndroid Build Coastguard Worker// Statistics regarding a specific InfoType.
1755*d5c09012SAndroid Build Coastguard Workermessage InfoTypeStats {
1756*d5c09012SAndroid Build Coastguard Worker  // The type of finding this stat is for.
1757*d5c09012SAndroid Build Coastguard Worker  InfoType info_type = 1;
1758*d5c09012SAndroid Build Coastguard Worker
1759*d5c09012SAndroid Build Coastguard Worker  // Number of findings for this infoType.
1760*d5c09012SAndroid Build Coastguard Worker  int64 count = 2;
1761*d5c09012SAndroid Build Coastguard Worker}
1762*d5c09012SAndroid Build Coastguard Worker
1763*d5c09012SAndroid Build Coastguard Worker// The results of an inspect DataSource job.
1764*d5c09012SAndroid Build Coastguard Workermessage InspectDataSourceDetails {
1765*d5c09012SAndroid Build Coastguard Worker  // Snapshot of the inspection configuration.
1766*d5c09012SAndroid Build Coastguard Worker  message RequestedOptions {
1767*d5c09012SAndroid Build Coastguard Worker    // If run with an InspectTemplate, a snapshot of its state at the time of
1768*d5c09012SAndroid Build Coastguard Worker    // this run.
1769*d5c09012SAndroid Build Coastguard Worker    InspectTemplate snapshot_inspect_template = 1;
1770*d5c09012SAndroid Build Coastguard Worker
1771*d5c09012SAndroid Build Coastguard Worker    // Inspect config.
1772*d5c09012SAndroid Build Coastguard Worker    InspectJobConfig job_config = 3;
1773*d5c09012SAndroid Build Coastguard Worker  }
1774*d5c09012SAndroid Build Coastguard Worker
1775*d5c09012SAndroid Build Coastguard Worker  // All result fields mentioned below are updated while the job is processing.
1776*d5c09012SAndroid Build Coastguard Worker  message Result {
1777*d5c09012SAndroid Build Coastguard Worker    // Total size in bytes that were processed.
1778*d5c09012SAndroid Build Coastguard Worker    int64 processed_bytes = 1;
1779*d5c09012SAndroid Build Coastguard Worker
1780*d5c09012SAndroid Build Coastguard Worker    // Estimate of the number of bytes to process.
1781*d5c09012SAndroid Build Coastguard Worker    int64 total_estimated_bytes = 2;
1782*d5c09012SAndroid Build Coastguard Worker
1783*d5c09012SAndroid Build Coastguard Worker    // Statistics of how many instances of each info type were found during
1784*d5c09012SAndroid Build Coastguard Worker    // inspect job.
1785*d5c09012SAndroid Build Coastguard Worker    repeated InfoTypeStats info_type_stats = 3;
1786*d5c09012SAndroid Build Coastguard Worker
1787*d5c09012SAndroid Build Coastguard Worker    // Statistics related to the processing of hybrid inspect.
1788*d5c09012SAndroid Build Coastguard Worker    HybridInspectStatistics hybrid_stats = 7;
1789*d5c09012SAndroid Build Coastguard Worker  }
1790*d5c09012SAndroid Build Coastguard Worker
1791*d5c09012SAndroid Build Coastguard Worker  // The configuration used for this job.
1792*d5c09012SAndroid Build Coastguard Worker  RequestedOptions requested_options = 2;
1793*d5c09012SAndroid Build Coastguard Worker
1794*d5c09012SAndroid Build Coastguard Worker  // A summary of the outcome of this inspection job.
1795*d5c09012SAndroid Build Coastguard Worker  Result result = 3;
1796*d5c09012SAndroid Build Coastguard Worker}
1797*d5c09012SAndroid Build Coastguard Worker
1798*d5c09012SAndroid Build Coastguard Worker// The schema of data to be saved to the BigQuery table when the
1799*d5c09012SAndroid Build Coastguard Worker// `DataProfileAction` is enabled.
1800*d5c09012SAndroid Build Coastguard Workermessage DataProfileBigQueryRowSchema {
1801*d5c09012SAndroid Build Coastguard Worker  // Data profile type.
1802*d5c09012SAndroid Build Coastguard Worker  oneof data_profile {
1803*d5c09012SAndroid Build Coastguard Worker    // Table data profile column
1804*d5c09012SAndroid Build Coastguard Worker    TableDataProfile table_profile = 1;
1805*d5c09012SAndroid Build Coastguard Worker
1806*d5c09012SAndroid Build Coastguard Worker    // Column data profile column
1807*d5c09012SAndroid Build Coastguard Worker    ColumnDataProfile column_profile = 2;
1808*d5c09012SAndroid Build Coastguard Worker  }
1809*d5c09012SAndroid Build Coastguard Worker}
1810*d5c09012SAndroid Build Coastguard Worker
1811*d5c09012SAndroid Build Coastguard Worker// Statistics related to processing hybrid inspect requests.
1812*d5c09012SAndroid Build Coastguard Workermessage HybridInspectStatistics {
1813*d5c09012SAndroid Build Coastguard Worker  // The number of hybrid inspection requests processed within this job.
1814*d5c09012SAndroid Build Coastguard Worker  int64 processed_count = 1;
1815*d5c09012SAndroid Build Coastguard Worker
1816*d5c09012SAndroid Build Coastguard Worker  // The number of hybrid inspection requests aborted because the job ran
1817*d5c09012SAndroid Build Coastguard Worker  // out of quota or was ended before they could be processed.
1818*d5c09012SAndroid Build Coastguard Worker  int64 aborted_count = 2;
1819*d5c09012SAndroid Build Coastguard Worker
1820*d5c09012SAndroid Build Coastguard Worker  // The number of hybrid requests currently being processed. Only populated
1821*d5c09012SAndroid Build Coastguard Worker  // when called via method `getDlpJob`.
1822*d5c09012SAndroid Build Coastguard Worker  // A burst of traffic may cause hybrid inspect requests to be enqueued.
1823*d5c09012SAndroid Build Coastguard Worker  // Processing will take place as quickly as possible, but resource limitations
1824*d5c09012SAndroid Build Coastguard Worker  // may impact how long a request is enqueued for.
1825*d5c09012SAndroid Build Coastguard Worker  int64 pending_count = 3;
1826*d5c09012SAndroid Build Coastguard Worker}
1827*d5c09012SAndroid Build Coastguard Worker
1828*d5c09012SAndroid Build Coastguard Worker// The results of an [Action][google.privacy.dlp.v2.Action].
1829*d5c09012SAndroid Build Coastguard Workermessage ActionDetails {
1830*d5c09012SAndroid Build Coastguard Worker  // Summary of what occurred in the actions.
1831*d5c09012SAndroid Build Coastguard Worker  oneof details {
1832*d5c09012SAndroid Build Coastguard Worker    // Outcome of a de-identification action.
1833*d5c09012SAndroid Build Coastguard Worker    DeidentifyDataSourceDetails deidentify_details = 1;
1834*d5c09012SAndroid Build Coastguard Worker  }
1835*d5c09012SAndroid Build Coastguard Worker}
1836*d5c09012SAndroid Build Coastguard Worker
1837*d5c09012SAndroid Build Coastguard Worker// Summary of what was modified during a transformation.
1838*d5c09012SAndroid Build Coastguard Workermessage DeidentifyDataSourceStats {
1839*d5c09012SAndroid Build Coastguard Worker  // Total size in bytes that were transformed in some way.
1840*d5c09012SAndroid Build Coastguard Worker  int64 transformed_bytes = 1;
1841*d5c09012SAndroid Build Coastguard Worker
1842*d5c09012SAndroid Build Coastguard Worker  // Number of successfully applied transformations.
1843*d5c09012SAndroid Build Coastguard Worker  int64 transformation_count = 2;
1844*d5c09012SAndroid Build Coastguard Worker
1845*d5c09012SAndroid Build Coastguard Worker  // Number of errors encountered while trying to apply transformations.
1846*d5c09012SAndroid Build Coastguard Worker  int64 transformation_error_count = 3;
1847*d5c09012SAndroid Build Coastguard Worker}
1848*d5c09012SAndroid Build Coastguard Worker
1849*d5c09012SAndroid Build Coastguard Worker// The results of a [Deidentify][google.privacy.dlp.v2.Action.Deidentify] action
1850*d5c09012SAndroid Build Coastguard Worker// from an inspect job.
1851*d5c09012SAndroid Build Coastguard Workermessage DeidentifyDataSourceDetails {
1852*d5c09012SAndroid Build Coastguard Worker  // De-identification options.
1853*d5c09012SAndroid Build Coastguard Worker  message RequestedDeidentifyOptions {
1854*d5c09012SAndroid Build Coastguard Worker    // Snapshot of the state of the `DeidentifyTemplate` from the
1855*d5c09012SAndroid Build Coastguard Worker    // [Deidentify][google.privacy.dlp.v2.Action.Deidentify] action at the time
1856*d5c09012SAndroid Build Coastguard Worker    // this job was run.
1857*d5c09012SAndroid Build Coastguard Worker    DeidentifyTemplate snapshot_deidentify_template = 1;
1858*d5c09012SAndroid Build Coastguard Worker
1859*d5c09012SAndroid Build Coastguard Worker    // Snapshot of the state of the structured `DeidentifyTemplate` from the
1860*d5c09012SAndroid Build Coastguard Worker    // `Deidentify` action at the time this job was run.
1861*d5c09012SAndroid Build Coastguard Worker    DeidentifyTemplate snapshot_structured_deidentify_template = 2;
1862*d5c09012SAndroid Build Coastguard Worker
1863*d5c09012SAndroid Build Coastguard Worker    // Snapshot of the state of the image transformation `DeidentifyTemplate`
1864*d5c09012SAndroid Build Coastguard Worker    // from the `Deidentify` action at the time this job was run.
1865*d5c09012SAndroid Build Coastguard Worker    DeidentifyTemplate snapshot_image_redact_template = 3;
1866*d5c09012SAndroid Build Coastguard Worker  }
1867*d5c09012SAndroid Build Coastguard Worker
1868*d5c09012SAndroid Build Coastguard Worker  // De-identification config used for the request.
1869*d5c09012SAndroid Build Coastguard Worker  RequestedDeidentifyOptions requested_options = 1;
1870*d5c09012SAndroid Build Coastguard Worker
1871*d5c09012SAndroid Build Coastguard Worker  // Stats about the de-identification operation.
1872*d5c09012SAndroid Build Coastguard Worker  DeidentifyDataSourceStats deidentify_stats = 2;
1873*d5c09012SAndroid Build Coastguard Worker}
1874*d5c09012SAndroid Build Coastguard Worker
1875*d5c09012SAndroid Build Coastguard Worker// InfoType description.
1876*d5c09012SAndroid Build Coastguard Workermessage InfoTypeDescription {
1877*d5c09012SAndroid Build Coastguard Worker  // Internal name of the infoType.
1878*d5c09012SAndroid Build Coastguard Worker  string name = 1;
1879*d5c09012SAndroid Build Coastguard Worker
1880*d5c09012SAndroid Build Coastguard Worker  // Human readable form of the infoType name.
1881*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
1882*d5c09012SAndroid Build Coastguard Worker
1883*d5c09012SAndroid Build Coastguard Worker  // Which parts of the API supports this InfoType.
1884*d5c09012SAndroid Build Coastguard Worker  repeated InfoTypeSupportedBy supported_by = 3;
1885*d5c09012SAndroid Build Coastguard Worker
1886*d5c09012SAndroid Build Coastguard Worker  // Description of the infotype. Translated when language is provided in the
1887*d5c09012SAndroid Build Coastguard Worker  // request.
1888*d5c09012SAndroid Build Coastguard Worker  string description = 4;
1889*d5c09012SAndroid Build Coastguard Worker
1890*d5c09012SAndroid Build Coastguard Worker  // A list of available versions for the infotype.
1891*d5c09012SAndroid Build Coastguard Worker  repeated VersionDescription versions = 9;
1892*d5c09012SAndroid Build Coastguard Worker
1893*d5c09012SAndroid Build Coastguard Worker  // The category of the infoType.
1894*d5c09012SAndroid Build Coastguard Worker  repeated InfoTypeCategory categories = 10;
1895*d5c09012SAndroid Build Coastguard Worker
1896*d5c09012SAndroid Build Coastguard Worker  // The default sensitivity of the infoType.
1897*d5c09012SAndroid Build Coastguard Worker  SensitivityScore sensitivity_score = 11;
1898*d5c09012SAndroid Build Coastguard Worker}
1899*d5c09012SAndroid Build Coastguard Worker
1900*d5c09012SAndroid Build Coastguard Worker// Classification of infoTypes to organize them according to geographic
1901*d5c09012SAndroid Build Coastguard Worker// location, industry, and data type.
1902*d5c09012SAndroid Build Coastguard Workermessage InfoTypeCategory {
1903*d5c09012SAndroid Build Coastguard Worker  // Enum of the current locations.
1904*d5c09012SAndroid Build Coastguard Worker  // We might add more locations in the future.
1905*d5c09012SAndroid Build Coastguard Worker  enum LocationCategory {
1906*d5c09012SAndroid Build Coastguard Worker    // Unused location
1907*d5c09012SAndroid Build Coastguard Worker    LOCATION_UNSPECIFIED = 0;
1908*d5c09012SAndroid Build Coastguard Worker
1909*d5c09012SAndroid Build Coastguard Worker    // The infoType is not issued by or tied to a specific region, but is used
1910*d5c09012SAndroid Build Coastguard Worker    // almost everywhere.
1911*d5c09012SAndroid Build Coastguard Worker    GLOBAL = 1;
1912*d5c09012SAndroid Build Coastguard Worker
1913*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Argentina.
1914*d5c09012SAndroid Build Coastguard Worker    ARGENTINA = 2;
1915*d5c09012SAndroid Build Coastguard Worker
1916*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Australia.
1917*d5c09012SAndroid Build Coastguard Worker    AUSTRALIA = 3;
1918*d5c09012SAndroid Build Coastguard Worker
1919*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Belgium.
1920*d5c09012SAndroid Build Coastguard Worker    BELGIUM = 4;
1921*d5c09012SAndroid Build Coastguard Worker
1922*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Brazil.
1923*d5c09012SAndroid Build Coastguard Worker    BRAZIL = 5;
1924*d5c09012SAndroid Build Coastguard Worker
1925*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Canada.
1926*d5c09012SAndroid Build Coastguard Worker    CANADA = 6;
1927*d5c09012SAndroid Build Coastguard Worker
1928*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Chile.
1929*d5c09012SAndroid Build Coastguard Worker    CHILE = 7;
1930*d5c09012SAndroid Build Coastguard Worker
1931*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in China.
1932*d5c09012SAndroid Build Coastguard Worker    CHINA = 8;
1933*d5c09012SAndroid Build Coastguard Worker
1934*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Colombia.
1935*d5c09012SAndroid Build Coastguard Worker    COLOMBIA = 9;
1936*d5c09012SAndroid Build Coastguard Worker
1937*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Croatia.
1938*d5c09012SAndroid Build Coastguard Worker    CROATIA = 42;
1939*d5c09012SAndroid Build Coastguard Worker
1940*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Denmark.
1941*d5c09012SAndroid Build Coastguard Worker    DENMARK = 10;
1942*d5c09012SAndroid Build Coastguard Worker
1943*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in France.
1944*d5c09012SAndroid Build Coastguard Worker    FRANCE = 11;
1945*d5c09012SAndroid Build Coastguard Worker
1946*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Finland.
1947*d5c09012SAndroid Build Coastguard Worker    FINLAND = 12;
1948*d5c09012SAndroid Build Coastguard Worker
1949*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Germany.
1950*d5c09012SAndroid Build Coastguard Worker    GERMANY = 13;
1951*d5c09012SAndroid Build Coastguard Worker
1952*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Hong Kong.
1953*d5c09012SAndroid Build Coastguard Worker    HONG_KONG = 14;
1954*d5c09012SAndroid Build Coastguard Worker
1955*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in India.
1956*d5c09012SAndroid Build Coastguard Worker    INDIA = 15;
1957*d5c09012SAndroid Build Coastguard Worker
1958*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Indonesia.
1959*d5c09012SAndroid Build Coastguard Worker    INDONESIA = 16;
1960*d5c09012SAndroid Build Coastguard Worker
1961*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Ireland.
1962*d5c09012SAndroid Build Coastguard Worker    IRELAND = 17;
1963*d5c09012SAndroid Build Coastguard Worker
1964*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Israel.
1965*d5c09012SAndroid Build Coastguard Worker    ISRAEL = 18;
1966*d5c09012SAndroid Build Coastguard Worker
1967*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Italy.
1968*d5c09012SAndroid Build Coastguard Worker    ITALY = 19;
1969*d5c09012SAndroid Build Coastguard Worker
1970*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Japan.
1971*d5c09012SAndroid Build Coastguard Worker    JAPAN = 20;
1972*d5c09012SAndroid Build Coastguard Worker
1973*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Korea.
1974*d5c09012SAndroid Build Coastguard Worker    KOREA = 21;
1975*d5c09012SAndroid Build Coastguard Worker
1976*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Mexico.
1977*d5c09012SAndroid Build Coastguard Worker    MEXICO = 22;
1978*d5c09012SAndroid Build Coastguard Worker
1979*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in the Netherlands.
1980*d5c09012SAndroid Build Coastguard Worker    THE_NETHERLANDS = 23;
1981*d5c09012SAndroid Build Coastguard Worker
1982*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in New Zealand.
1983*d5c09012SAndroid Build Coastguard Worker    NEW_ZEALAND = 41;
1984*d5c09012SAndroid Build Coastguard Worker
1985*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Norway.
1986*d5c09012SAndroid Build Coastguard Worker    NORWAY = 24;
1987*d5c09012SAndroid Build Coastguard Worker
1988*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Paraguay.
1989*d5c09012SAndroid Build Coastguard Worker    PARAGUAY = 25;
1990*d5c09012SAndroid Build Coastguard Worker
1991*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Peru.
1992*d5c09012SAndroid Build Coastguard Worker    PERU = 26;
1993*d5c09012SAndroid Build Coastguard Worker
1994*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Poland.
1995*d5c09012SAndroid Build Coastguard Worker    POLAND = 27;
1996*d5c09012SAndroid Build Coastguard Worker
1997*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Portugal.
1998*d5c09012SAndroid Build Coastguard Worker    PORTUGAL = 28;
1999*d5c09012SAndroid Build Coastguard Worker
2000*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Singapore.
2001*d5c09012SAndroid Build Coastguard Worker    SINGAPORE = 29;
2002*d5c09012SAndroid Build Coastguard Worker
2003*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in South Africa.
2004*d5c09012SAndroid Build Coastguard Worker    SOUTH_AFRICA = 30;
2005*d5c09012SAndroid Build Coastguard Worker
2006*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Spain.
2007*d5c09012SAndroid Build Coastguard Worker    SPAIN = 31;
2008*d5c09012SAndroid Build Coastguard Worker
2009*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Sweden.
2010*d5c09012SAndroid Build Coastguard Worker    SWEDEN = 32;
2011*d5c09012SAndroid Build Coastguard Worker
2012*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Switzerland.
2013*d5c09012SAndroid Build Coastguard Worker    SWITZERLAND = 43;
2014*d5c09012SAndroid Build Coastguard Worker
2015*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Taiwan.
2016*d5c09012SAndroid Build Coastguard Worker    TAIWAN = 33;
2017*d5c09012SAndroid Build Coastguard Worker
2018*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Thailand.
2019*d5c09012SAndroid Build Coastguard Worker    THAILAND = 34;
2020*d5c09012SAndroid Build Coastguard Worker
2021*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Turkey.
2022*d5c09012SAndroid Build Coastguard Worker    TURKEY = 35;
2023*d5c09012SAndroid Build Coastguard Worker
2024*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in the United Kingdom.
2025*d5c09012SAndroid Build Coastguard Worker    UNITED_KINGDOM = 36;
2026*d5c09012SAndroid Build Coastguard Worker
2027*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in the United States.
2028*d5c09012SAndroid Build Coastguard Worker    UNITED_STATES = 37;
2029*d5c09012SAndroid Build Coastguard Worker
2030*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Uruguay.
2031*d5c09012SAndroid Build Coastguard Worker    URUGUAY = 38;
2032*d5c09012SAndroid Build Coastguard Worker
2033*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Venezuela.
2034*d5c09012SAndroid Build Coastguard Worker    VENEZUELA = 39;
2035*d5c09012SAndroid Build Coastguard Worker
2036*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in Google internally.
2037*d5c09012SAndroid Build Coastguard Worker    INTERNAL = 40;
2038*d5c09012SAndroid Build Coastguard Worker  }
2039*d5c09012SAndroid Build Coastguard Worker
2040*d5c09012SAndroid Build Coastguard Worker  // Enum of the current industries in the category.
2041*d5c09012SAndroid Build Coastguard Worker  // We might add more industries in the future.
2042*d5c09012SAndroid Build Coastguard Worker  enum IndustryCategory {
2043*d5c09012SAndroid Build Coastguard Worker    // Unused industry
2044*d5c09012SAndroid Build Coastguard Worker    INDUSTRY_UNSPECIFIED = 0;
2045*d5c09012SAndroid Build Coastguard Worker
2046*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in the finance industry.
2047*d5c09012SAndroid Build Coastguard Worker    FINANCE = 1;
2048*d5c09012SAndroid Build Coastguard Worker
2049*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in the health industry.
2050*d5c09012SAndroid Build Coastguard Worker    HEALTH = 2;
2051*d5c09012SAndroid Build Coastguard Worker
2052*d5c09012SAndroid Build Coastguard Worker    // The infoType is typically used in the telecommunications industry.
2053*d5c09012SAndroid Build Coastguard Worker    TELECOMMUNICATIONS = 3;
2054*d5c09012SAndroid Build Coastguard Worker  }
2055*d5c09012SAndroid Build Coastguard Worker
2056*d5c09012SAndroid Build Coastguard Worker  // Enum of the current types in the category.
2057*d5c09012SAndroid Build Coastguard Worker  // We might add more types in the future.
2058*d5c09012SAndroid Build Coastguard Worker  enum TypeCategory {
2059*d5c09012SAndroid Build Coastguard Worker    // Unused type
2060*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
2061*d5c09012SAndroid Build Coastguard Worker
2062*d5c09012SAndroid Build Coastguard Worker    // Personally identifiable information, for example, a
2063*d5c09012SAndroid Build Coastguard Worker    // name or phone number
2064*d5c09012SAndroid Build Coastguard Worker    PII = 1;
2065*d5c09012SAndroid Build Coastguard Worker
2066*d5c09012SAndroid Build Coastguard Worker    // Personally identifiable information that is especially sensitive, for
2067*d5c09012SAndroid Build Coastguard Worker    // example, a passport number.
2068*d5c09012SAndroid Build Coastguard Worker    SPII = 2;
2069*d5c09012SAndroid Build Coastguard Worker
2070*d5c09012SAndroid Build Coastguard Worker    // Attributes that can partially identify someone, especially in
2071*d5c09012SAndroid Build Coastguard Worker    // combination with other attributes, like age, height, and gender.
2072*d5c09012SAndroid Build Coastguard Worker    DEMOGRAPHIC = 3;
2073*d5c09012SAndroid Build Coastguard Worker
2074*d5c09012SAndroid Build Coastguard Worker    // Confidential or secret information, for example, a password.
2075*d5c09012SAndroid Build Coastguard Worker    CREDENTIAL = 4;
2076*d5c09012SAndroid Build Coastguard Worker
2077*d5c09012SAndroid Build Coastguard Worker    // An identification document issued by a government.
2078*d5c09012SAndroid Build Coastguard Worker    GOVERNMENT_ID = 5;
2079*d5c09012SAndroid Build Coastguard Worker
2080*d5c09012SAndroid Build Coastguard Worker    // A document, for example, a resume or source code.
2081*d5c09012SAndroid Build Coastguard Worker    DOCUMENT = 6;
2082*d5c09012SAndroid Build Coastguard Worker
2083*d5c09012SAndroid Build Coastguard Worker    // Information that is not sensitive on its own, but provides details about
2084*d5c09012SAndroid Build Coastguard Worker    // the circumstances surrounding an entity or an event.
2085*d5c09012SAndroid Build Coastguard Worker    CONTEXTUAL_INFORMATION = 7;
2086*d5c09012SAndroid Build Coastguard Worker  }
2087*d5c09012SAndroid Build Coastguard Worker
2088*d5c09012SAndroid Build Coastguard Worker  // Categories of infotypes.
2089*d5c09012SAndroid Build Coastguard Worker  oneof category {
2090*d5c09012SAndroid Build Coastguard Worker    // The region or country that issued the ID or document represented by the
2091*d5c09012SAndroid Build Coastguard Worker    // infoType.
2092*d5c09012SAndroid Build Coastguard Worker    LocationCategory location_category = 1;
2093*d5c09012SAndroid Build Coastguard Worker
2094*d5c09012SAndroid Build Coastguard Worker    // The group of relevant businesses where this infoType is commonly used
2095*d5c09012SAndroid Build Coastguard Worker    IndustryCategory industry_category = 2;
2096*d5c09012SAndroid Build Coastguard Worker
2097*d5c09012SAndroid Build Coastguard Worker    // The class of identifiers where this infoType belongs
2098*d5c09012SAndroid Build Coastguard Worker    TypeCategory type_category = 3;
2099*d5c09012SAndroid Build Coastguard Worker  }
2100*d5c09012SAndroid Build Coastguard Worker}
2101*d5c09012SAndroid Build Coastguard Worker
2102*d5c09012SAndroid Build Coastguard Worker// Details about each available version for an infotype.
2103*d5c09012SAndroid Build Coastguard Workermessage VersionDescription {
2104*d5c09012SAndroid Build Coastguard Worker  // Name of the version
2105*d5c09012SAndroid Build Coastguard Worker  string version = 1;
2106*d5c09012SAndroid Build Coastguard Worker
2107*d5c09012SAndroid Build Coastguard Worker  // Description of the version.
2108*d5c09012SAndroid Build Coastguard Worker  string description = 2;
2109*d5c09012SAndroid Build Coastguard Worker}
2110*d5c09012SAndroid Build Coastguard Worker
2111*d5c09012SAndroid Build Coastguard Worker// Request for the list of infoTypes.
2112*d5c09012SAndroid Build Coastguard Workermessage ListInfoTypesRequest {
2113*d5c09012SAndroid Build Coastguard Worker  // The parent resource name.
2114*d5c09012SAndroid Build Coastguard Worker  //
2115*d5c09012SAndroid Build Coastguard Worker  // The format of this value is as follows:
2116*d5c09012SAndroid Build Coastguard Worker  //
2117*d5c09012SAndroid Build Coastguard Worker  //     locations/<var>LOCATION_ID</var>
2118*d5c09012SAndroid Build Coastguard Worker  string parent = 4;
2119*d5c09012SAndroid Build Coastguard Worker
2120*d5c09012SAndroid Build Coastguard Worker  // BCP-47 language code for localized infoType friendly
2121*d5c09012SAndroid Build Coastguard Worker  // names. If omitted, or if localized strings are not available,
2122*d5c09012SAndroid Build Coastguard Worker  // en-US strings will be returned.
2123*d5c09012SAndroid Build Coastguard Worker  string language_code = 1;
2124*d5c09012SAndroid Build Coastguard Worker
2125*d5c09012SAndroid Build Coastguard Worker  // filter to only return infoTypes supported by certain parts of the
2126*d5c09012SAndroid Build Coastguard Worker  // API. Defaults to supported_by=INSPECT.
2127*d5c09012SAndroid Build Coastguard Worker  string filter = 2;
2128*d5c09012SAndroid Build Coastguard Worker
2129*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
2130*d5c09012SAndroid Build Coastguard Worker  string location_id = 3;
2131*d5c09012SAndroid Build Coastguard Worker}
2132*d5c09012SAndroid Build Coastguard Worker
2133*d5c09012SAndroid Build Coastguard Worker// Response to the ListInfoTypes request.
2134*d5c09012SAndroid Build Coastguard Workermessage ListInfoTypesResponse {
2135*d5c09012SAndroid Build Coastguard Worker  // Set of sensitive infoTypes.
2136*d5c09012SAndroid Build Coastguard Worker  repeated InfoTypeDescription info_types = 1;
2137*d5c09012SAndroid Build Coastguard Worker}
2138*d5c09012SAndroid Build Coastguard Worker
2139*d5c09012SAndroid Build Coastguard Worker// Configuration for a risk analysis job. See
2140*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-risk-analysis
2141*d5c09012SAndroid Build Coastguard Worker// to learn more.
2142*d5c09012SAndroid Build Coastguard Workermessage RiskAnalysisJobConfig {
2143*d5c09012SAndroid Build Coastguard Worker  // Privacy metric to compute.
2144*d5c09012SAndroid Build Coastguard Worker  PrivacyMetric privacy_metric = 1;
2145*d5c09012SAndroid Build Coastguard Worker
2146*d5c09012SAndroid Build Coastguard Worker  // Input dataset to compute metrics over.
2147*d5c09012SAndroid Build Coastguard Worker  BigQueryTable source_table = 2;
2148*d5c09012SAndroid Build Coastguard Worker
2149*d5c09012SAndroid Build Coastguard Worker  // Actions to execute at the completion of the job. Are executed in the order
2150*d5c09012SAndroid Build Coastguard Worker  // provided.
2151*d5c09012SAndroid Build Coastguard Worker  repeated Action actions = 3;
2152*d5c09012SAndroid Build Coastguard Worker}
2153*d5c09012SAndroid Build Coastguard Worker
2154*d5c09012SAndroid Build Coastguard Worker// A column with a semantic tag attached.
2155*d5c09012SAndroid Build Coastguard Workermessage QuasiId {
2156*d5c09012SAndroid Build Coastguard Worker  // Required. Identifies the column.
2157*d5c09012SAndroid Build Coastguard Worker  FieldId field = 1 [(google.api.field_behavior) = REQUIRED];
2158*d5c09012SAndroid Build Coastguard Worker
2159*d5c09012SAndroid Build Coastguard Worker  // Semantic tag that identifies what a column contains, to determine which
2160*d5c09012SAndroid Build Coastguard Worker  // statistical model to use to estimate the reidentifiability of each
2161*d5c09012SAndroid Build Coastguard Worker  // value. [required]
2162*d5c09012SAndroid Build Coastguard Worker  oneof tag {
2163*d5c09012SAndroid Build Coastguard Worker    // A column can be tagged with a InfoType to use the relevant public
2164*d5c09012SAndroid Build Coastguard Worker    // dataset as a statistical model of population, if available. We
2165*d5c09012SAndroid Build Coastguard Worker    // currently support US ZIP codes, region codes, ages and genders.
2166*d5c09012SAndroid Build Coastguard Worker    // To programmatically obtain the list of supported InfoTypes, use
2167*d5c09012SAndroid Build Coastguard Worker    // ListInfoTypes with the supported_by=RISK_ANALYSIS filter.
2168*d5c09012SAndroid Build Coastguard Worker    InfoType info_type = 2;
2169*d5c09012SAndroid Build Coastguard Worker
2170*d5c09012SAndroid Build Coastguard Worker    // A column can be tagged with a custom tag. In this case, the user must
2171*d5c09012SAndroid Build Coastguard Worker    // indicate an auxiliary table that contains statistical information on
2172*d5c09012SAndroid Build Coastguard Worker    // the possible values of this column (below).
2173*d5c09012SAndroid Build Coastguard Worker    string custom_tag = 3;
2174*d5c09012SAndroid Build Coastguard Worker
2175*d5c09012SAndroid Build Coastguard Worker    // If no semantic tag is indicated, we infer the statistical model from
2176*d5c09012SAndroid Build Coastguard Worker    // the distribution of values in the input data
2177*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Empty inferred = 4;
2178*d5c09012SAndroid Build Coastguard Worker  }
2179*d5c09012SAndroid Build Coastguard Worker}
2180*d5c09012SAndroid Build Coastguard Worker
2181*d5c09012SAndroid Build Coastguard Worker// An auxiliary table containing statistical information on the relative
2182*d5c09012SAndroid Build Coastguard Worker// frequency of different quasi-identifiers values. It has one or several
2183*d5c09012SAndroid Build Coastguard Worker// quasi-identifiers columns, and one column that indicates the relative
2184*d5c09012SAndroid Build Coastguard Worker// frequency of each quasi-identifier tuple.
2185*d5c09012SAndroid Build Coastguard Worker// If a tuple is present in the data but not in the auxiliary table, the
2186*d5c09012SAndroid Build Coastguard Worker// corresponding relative frequency is assumed to be zero (and thus, the
2187*d5c09012SAndroid Build Coastguard Worker// tuple is highly reidentifiable).
2188*d5c09012SAndroid Build Coastguard Workermessage StatisticalTable {
2189*d5c09012SAndroid Build Coastguard Worker  // A quasi-identifier column has a custom_tag, used to know which column
2190*d5c09012SAndroid Build Coastguard Worker  // in the data corresponds to which column in the statistical model.
2191*d5c09012SAndroid Build Coastguard Worker  message QuasiIdentifierField {
2192*d5c09012SAndroid Build Coastguard Worker    // Identifies the column.
2193*d5c09012SAndroid Build Coastguard Worker    FieldId field = 1;
2194*d5c09012SAndroid Build Coastguard Worker
2195*d5c09012SAndroid Build Coastguard Worker    // A column can be tagged with a custom tag. In this case, the user must
2196*d5c09012SAndroid Build Coastguard Worker    // indicate an auxiliary table that contains statistical information on
2197*d5c09012SAndroid Build Coastguard Worker    // the possible values of this column (below).
2198*d5c09012SAndroid Build Coastguard Worker    string custom_tag = 2;
2199*d5c09012SAndroid Build Coastguard Worker  }
2200*d5c09012SAndroid Build Coastguard Worker
2201*d5c09012SAndroid Build Coastguard Worker  // Required. Auxiliary table location.
2202*d5c09012SAndroid Build Coastguard Worker  BigQueryTable table = 3 [(google.api.field_behavior) = REQUIRED];
2203*d5c09012SAndroid Build Coastguard Worker
2204*d5c09012SAndroid Build Coastguard Worker  // Required. Quasi-identifier columns.
2205*d5c09012SAndroid Build Coastguard Worker  repeated QuasiIdentifierField quasi_ids = 1
2206*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
2207*d5c09012SAndroid Build Coastguard Worker
2208*d5c09012SAndroid Build Coastguard Worker  // Required. The relative frequency column must contain a floating-point
2209*d5c09012SAndroid Build Coastguard Worker  // number between 0 and 1 (inclusive). Null values are assumed to be zero.
2210*d5c09012SAndroid Build Coastguard Worker  FieldId relative_frequency = 2 [(google.api.field_behavior) = REQUIRED];
2211*d5c09012SAndroid Build Coastguard Worker}
2212*d5c09012SAndroid Build Coastguard Worker
2213*d5c09012SAndroid Build Coastguard Worker// Privacy metric to compute for reidentification risk analysis.
2214*d5c09012SAndroid Build Coastguard Workermessage PrivacyMetric {
2215*d5c09012SAndroid Build Coastguard Worker  // Compute numerical stats over an individual column, including
2216*d5c09012SAndroid Build Coastguard Worker  // min, max, and quantiles.
2217*d5c09012SAndroid Build Coastguard Worker  message NumericalStatsConfig {
2218*d5c09012SAndroid Build Coastguard Worker    // Field to compute numerical stats on. Supported types are
2219*d5c09012SAndroid Build Coastguard Worker    // integer, float, date, datetime, timestamp, time.
2220*d5c09012SAndroid Build Coastguard Worker    FieldId field = 1;
2221*d5c09012SAndroid Build Coastguard Worker  }
2222*d5c09012SAndroid Build Coastguard Worker
2223*d5c09012SAndroid Build Coastguard Worker  // Compute numerical stats over an individual column, including
2224*d5c09012SAndroid Build Coastguard Worker  // number of distinct values and value count distribution.
2225*d5c09012SAndroid Build Coastguard Worker  message CategoricalStatsConfig {
2226*d5c09012SAndroid Build Coastguard Worker    // Field to compute categorical stats on. All column types are
2227*d5c09012SAndroid Build Coastguard Worker    // supported except for arrays and structs. However, it may be more
2228*d5c09012SAndroid Build Coastguard Worker    // informative to use NumericalStats when the field type is supported,
2229*d5c09012SAndroid Build Coastguard Worker    // depending on the data.
2230*d5c09012SAndroid Build Coastguard Worker    FieldId field = 1;
2231*d5c09012SAndroid Build Coastguard Worker  }
2232*d5c09012SAndroid Build Coastguard Worker
2233*d5c09012SAndroid Build Coastguard Worker  // k-anonymity metric, used for analysis of reidentification risk.
2234*d5c09012SAndroid Build Coastguard Worker  message KAnonymityConfig {
2235*d5c09012SAndroid Build Coastguard Worker    // Set of fields to compute k-anonymity over. When multiple fields are
2236*d5c09012SAndroid Build Coastguard Worker    // specified, they are considered a single composite key. Structs and
2237*d5c09012SAndroid Build Coastguard Worker    // repeated data types are not supported; however, nested fields are
2238*d5c09012SAndroid Build Coastguard Worker    // supported so long as they are not structs themselves or nested within
2239*d5c09012SAndroid Build Coastguard Worker    // a repeated field.
2240*d5c09012SAndroid Build Coastguard Worker    repeated FieldId quasi_ids = 1;
2241*d5c09012SAndroid Build Coastguard Worker
2242*d5c09012SAndroid Build Coastguard Worker    // Message indicating that multiple rows might be associated to a
2243*d5c09012SAndroid Build Coastguard Worker    // single individual. If the same entity_id is associated to multiple
2244*d5c09012SAndroid Build Coastguard Worker    // quasi-identifier tuples over distinct rows, we consider the entire
2245*d5c09012SAndroid Build Coastguard Worker    // collection of tuples as the composite quasi-identifier. This collection
2246*d5c09012SAndroid Build Coastguard Worker    // is a multiset: the order in which the different tuples appear in the
2247*d5c09012SAndroid Build Coastguard Worker    // dataset is ignored, but their frequency is taken into account.
2248*d5c09012SAndroid Build Coastguard Worker    //
2249*d5c09012SAndroid Build Coastguard Worker    // Important note: a maximum of 1000 rows can be associated to a single
2250*d5c09012SAndroid Build Coastguard Worker    // entity ID. If more rows are associated with the same entity ID, some
2251*d5c09012SAndroid Build Coastguard Worker    // might be ignored.
2252*d5c09012SAndroid Build Coastguard Worker    EntityId entity_id = 2;
2253*d5c09012SAndroid Build Coastguard Worker  }
2254*d5c09012SAndroid Build Coastguard Worker
2255*d5c09012SAndroid Build Coastguard Worker  // l-diversity metric, used for analysis of reidentification risk.
2256*d5c09012SAndroid Build Coastguard Worker  message LDiversityConfig {
2257*d5c09012SAndroid Build Coastguard Worker    // Set of quasi-identifiers indicating how equivalence classes are
2258*d5c09012SAndroid Build Coastguard Worker    // defined for the l-diversity computation. When multiple fields are
2259*d5c09012SAndroid Build Coastguard Worker    // specified, they are considered a single composite key.
2260*d5c09012SAndroid Build Coastguard Worker    repeated FieldId quasi_ids = 1;
2261*d5c09012SAndroid Build Coastguard Worker
2262*d5c09012SAndroid Build Coastguard Worker    // Sensitive field for computing the l-value.
2263*d5c09012SAndroid Build Coastguard Worker    FieldId sensitive_attribute = 2;
2264*d5c09012SAndroid Build Coastguard Worker  }
2265*d5c09012SAndroid Build Coastguard Worker
2266*d5c09012SAndroid Build Coastguard Worker  // Reidentifiability metric. This corresponds to a risk model similar to what
2267*d5c09012SAndroid Build Coastguard Worker  // is called "journalist risk" in the literature, except the attack dataset is
2268*d5c09012SAndroid Build Coastguard Worker  // statistically modeled instead of being perfectly known. This can be done
2269*d5c09012SAndroid Build Coastguard Worker  // using publicly available data (like the US Census), or using a custom
2270*d5c09012SAndroid Build Coastguard Worker  // statistical model (indicated as one or several BigQuery tables), or by
2271*d5c09012SAndroid Build Coastguard Worker  // extrapolating from the distribution of values in the input dataset.
2272*d5c09012SAndroid Build Coastguard Worker  message KMapEstimationConfig {
2273*d5c09012SAndroid Build Coastguard Worker    // A column with a semantic tag attached.
2274*d5c09012SAndroid Build Coastguard Worker    message TaggedField {
2275*d5c09012SAndroid Build Coastguard Worker      // Required. Identifies the column.
2276*d5c09012SAndroid Build Coastguard Worker      FieldId field = 1 [(google.api.field_behavior) = REQUIRED];
2277*d5c09012SAndroid Build Coastguard Worker
2278*d5c09012SAndroid Build Coastguard Worker      // Semantic tag that identifies what a column contains, to determine which
2279*d5c09012SAndroid Build Coastguard Worker      // statistical model to use to estimate the reidentifiability of each
2280*d5c09012SAndroid Build Coastguard Worker      // value. [required]
2281*d5c09012SAndroid Build Coastguard Worker      oneof tag {
2282*d5c09012SAndroid Build Coastguard Worker        // A column can be tagged with a InfoType to use the relevant public
2283*d5c09012SAndroid Build Coastguard Worker        // dataset as a statistical model of population, if available. We
2284*d5c09012SAndroid Build Coastguard Worker        // currently support US ZIP codes, region codes, ages and genders.
2285*d5c09012SAndroid Build Coastguard Worker        // To programmatically obtain the list of supported InfoTypes, use
2286*d5c09012SAndroid Build Coastguard Worker        // ListInfoTypes with the supported_by=RISK_ANALYSIS filter.
2287*d5c09012SAndroid Build Coastguard Worker        InfoType info_type = 2;
2288*d5c09012SAndroid Build Coastguard Worker
2289*d5c09012SAndroid Build Coastguard Worker        // A column can be tagged with a custom tag. In this case, the user must
2290*d5c09012SAndroid Build Coastguard Worker        // indicate an auxiliary table that contains statistical information on
2291*d5c09012SAndroid Build Coastguard Worker        // the possible values of this column (below).
2292*d5c09012SAndroid Build Coastguard Worker        string custom_tag = 3;
2293*d5c09012SAndroid Build Coastguard Worker
2294*d5c09012SAndroid Build Coastguard Worker        // If no semantic tag is indicated, we infer the statistical model from
2295*d5c09012SAndroid Build Coastguard Worker        // the distribution of values in the input data
2296*d5c09012SAndroid Build Coastguard Worker        google.protobuf.Empty inferred = 4;
2297*d5c09012SAndroid Build Coastguard Worker      }
2298*d5c09012SAndroid Build Coastguard Worker    }
2299*d5c09012SAndroid Build Coastguard Worker
2300*d5c09012SAndroid Build Coastguard Worker    // An auxiliary table contains statistical information on the relative
2301*d5c09012SAndroid Build Coastguard Worker    // frequency of different quasi-identifiers values. It has one or several
2302*d5c09012SAndroid Build Coastguard Worker    // quasi-identifiers columns, and one column that indicates the relative
2303*d5c09012SAndroid Build Coastguard Worker    // frequency of each quasi-identifier tuple.
2304*d5c09012SAndroid Build Coastguard Worker    // If a tuple is present in the data but not in the auxiliary table, the
2305*d5c09012SAndroid Build Coastguard Worker    // corresponding relative frequency is assumed to be zero (and thus, the
2306*d5c09012SAndroid Build Coastguard Worker    // tuple is highly reidentifiable).
2307*d5c09012SAndroid Build Coastguard Worker    message AuxiliaryTable {
2308*d5c09012SAndroid Build Coastguard Worker      // A quasi-identifier column has a custom_tag, used to know which column
2309*d5c09012SAndroid Build Coastguard Worker      // in the data corresponds to which column in the statistical model.
2310*d5c09012SAndroid Build Coastguard Worker      message QuasiIdField {
2311*d5c09012SAndroid Build Coastguard Worker        // Identifies the column.
2312*d5c09012SAndroid Build Coastguard Worker        FieldId field = 1;
2313*d5c09012SAndroid Build Coastguard Worker
2314*d5c09012SAndroid Build Coastguard Worker        // A auxiliary field.
2315*d5c09012SAndroid Build Coastguard Worker        string custom_tag = 2;
2316*d5c09012SAndroid Build Coastguard Worker      }
2317*d5c09012SAndroid Build Coastguard Worker
2318*d5c09012SAndroid Build Coastguard Worker      // Required. Auxiliary table location.
2319*d5c09012SAndroid Build Coastguard Worker      BigQueryTable table = 3 [(google.api.field_behavior) = REQUIRED];
2320*d5c09012SAndroid Build Coastguard Worker
2321*d5c09012SAndroid Build Coastguard Worker      // Required. Quasi-identifier columns.
2322*d5c09012SAndroid Build Coastguard Worker      repeated QuasiIdField quasi_ids = 1
2323*d5c09012SAndroid Build Coastguard Worker          [(google.api.field_behavior) = REQUIRED];
2324*d5c09012SAndroid Build Coastguard Worker
2325*d5c09012SAndroid Build Coastguard Worker      // Required. The relative frequency column must contain a floating-point
2326*d5c09012SAndroid Build Coastguard Worker      // number between 0 and 1 (inclusive). Null values are assumed to be zero.
2327*d5c09012SAndroid Build Coastguard Worker      FieldId relative_frequency = 2 [(google.api.field_behavior) = REQUIRED];
2328*d5c09012SAndroid Build Coastguard Worker    }
2329*d5c09012SAndroid Build Coastguard Worker
2330*d5c09012SAndroid Build Coastguard Worker    // Required. Fields considered to be quasi-identifiers. No two columns can
2331*d5c09012SAndroid Build Coastguard Worker    // have the same tag.
2332*d5c09012SAndroid Build Coastguard Worker    repeated TaggedField quasi_ids = 1 [(google.api.field_behavior) = REQUIRED];
2333*d5c09012SAndroid Build Coastguard Worker
2334*d5c09012SAndroid Build Coastguard Worker    // ISO 3166-1 alpha-2 region code to use in the statistical modeling.
2335*d5c09012SAndroid Build Coastguard Worker    // Set if no column is tagged with a region-specific InfoType (like
2336*d5c09012SAndroid Build Coastguard Worker    // US_ZIP_5) or a region code.
2337*d5c09012SAndroid Build Coastguard Worker    string region_code = 2;
2338*d5c09012SAndroid Build Coastguard Worker
2339*d5c09012SAndroid Build Coastguard Worker    // Several auxiliary tables can be used in the analysis. Each custom_tag
2340*d5c09012SAndroid Build Coastguard Worker    // used to tag a quasi-identifiers column must appear in exactly one column
2341*d5c09012SAndroid Build Coastguard Worker    // of one auxiliary table.
2342*d5c09012SAndroid Build Coastguard Worker    repeated AuxiliaryTable auxiliary_tables = 3;
2343*d5c09012SAndroid Build Coastguard Worker  }
2344*d5c09012SAndroid Build Coastguard Worker
2345*d5c09012SAndroid Build Coastguard Worker  // δ-presence metric, used to estimate how likely it is for an attacker to
2346*d5c09012SAndroid Build Coastguard Worker  // figure out that one given individual appears in a de-identified dataset.
2347*d5c09012SAndroid Build Coastguard Worker  // Similarly to the k-map metric, we cannot compute δ-presence exactly without
2348*d5c09012SAndroid Build Coastguard Worker  // knowing the attack dataset, so we use a statistical model instead.
2349*d5c09012SAndroid Build Coastguard Worker  message DeltaPresenceEstimationConfig {
2350*d5c09012SAndroid Build Coastguard Worker    // Required. Fields considered to be quasi-identifiers. No two fields can
2351*d5c09012SAndroid Build Coastguard Worker    // have the same tag.
2352*d5c09012SAndroid Build Coastguard Worker    repeated QuasiId quasi_ids = 1 [(google.api.field_behavior) = REQUIRED];
2353*d5c09012SAndroid Build Coastguard Worker
2354*d5c09012SAndroid Build Coastguard Worker    // ISO 3166-1 alpha-2 region code to use in the statistical modeling.
2355*d5c09012SAndroid Build Coastguard Worker    // Set if no column is tagged with a region-specific InfoType (like
2356*d5c09012SAndroid Build Coastguard Worker    // US_ZIP_5) or a region code.
2357*d5c09012SAndroid Build Coastguard Worker    string region_code = 2;
2358*d5c09012SAndroid Build Coastguard Worker
2359*d5c09012SAndroid Build Coastguard Worker    // Several auxiliary tables can be used in the analysis. Each custom_tag
2360*d5c09012SAndroid Build Coastguard Worker    // used to tag a quasi-identifiers field must appear in exactly one
2361*d5c09012SAndroid Build Coastguard Worker    // field of one auxiliary table.
2362*d5c09012SAndroid Build Coastguard Worker    repeated StatisticalTable auxiliary_tables = 3;
2363*d5c09012SAndroid Build Coastguard Worker  }
2364*d5c09012SAndroid Build Coastguard Worker
2365*d5c09012SAndroid Build Coastguard Worker  // Types of analysis.
2366*d5c09012SAndroid Build Coastguard Worker  oneof type {
2367*d5c09012SAndroid Build Coastguard Worker    // Numerical stats
2368*d5c09012SAndroid Build Coastguard Worker    NumericalStatsConfig numerical_stats_config = 1;
2369*d5c09012SAndroid Build Coastguard Worker
2370*d5c09012SAndroid Build Coastguard Worker    // Categorical stats
2371*d5c09012SAndroid Build Coastguard Worker    CategoricalStatsConfig categorical_stats_config = 2;
2372*d5c09012SAndroid Build Coastguard Worker
2373*d5c09012SAndroid Build Coastguard Worker    // K-anonymity
2374*d5c09012SAndroid Build Coastguard Worker    KAnonymityConfig k_anonymity_config = 3;
2375*d5c09012SAndroid Build Coastguard Worker
2376*d5c09012SAndroid Build Coastguard Worker    // l-diversity
2377*d5c09012SAndroid Build Coastguard Worker    LDiversityConfig l_diversity_config = 4;
2378*d5c09012SAndroid Build Coastguard Worker
2379*d5c09012SAndroid Build Coastguard Worker    // k-map
2380*d5c09012SAndroid Build Coastguard Worker    KMapEstimationConfig k_map_estimation_config = 5;
2381*d5c09012SAndroid Build Coastguard Worker
2382*d5c09012SAndroid Build Coastguard Worker    // delta-presence
2383*d5c09012SAndroid Build Coastguard Worker    DeltaPresenceEstimationConfig delta_presence_estimation_config = 6;
2384*d5c09012SAndroid Build Coastguard Worker  }
2385*d5c09012SAndroid Build Coastguard Worker}
2386*d5c09012SAndroid Build Coastguard Worker
2387*d5c09012SAndroid Build Coastguard Worker// Result of a risk analysis operation request.
2388*d5c09012SAndroid Build Coastguard Workermessage AnalyzeDataSourceRiskDetails {
2389*d5c09012SAndroid Build Coastguard Worker  // Result of the numerical stats computation.
2390*d5c09012SAndroid Build Coastguard Worker  message NumericalStatsResult {
2391*d5c09012SAndroid Build Coastguard Worker    // Minimum value appearing in the column.
2392*d5c09012SAndroid Build Coastguard Worker    Value min_value = 1;
2393*d5c09012SAndroid Build Coastguard Worker
2394*d5c09012SAndroid Build Coastguard Worker    // Maximum value appearing in the column.
2395*d5c09012SAndroid Build Coastguard Worker    Value max_value = 2;
2396*d5c09012SAndroid Build Coastguard Worker
2397*d5c09012SAndroid Build Coastguard Worker    // List of 99 values that partition the set of field values into 100 equal
2398*d5c09012SAndroid Build Coastguard Worker    // sized buckets.
2399*d5c09012SAndroid Build Coastguard Worker    repeated Value quantile_values = 4;
2400*d5c09012SAndroid Build Coastguard Worker  }
2401*d5c09012SAndroid Build Coastguard Worker
2402*d5c09012SAndroid Build Coastguard Worker  // Result of the categorical stats computation.
2403*d5c09012SAndroid Build Coastguard Worker  message CategoricalStatsResult {
2404*d5c09012SAndroid Build Coastguard Worker    // Histogram of value frequencies in the column.
2405*d5c09012SAndroid Build Coastguard Worker    message CategoricalStatsHistogramBucket {
2406*d5c09012SAndroid Build Coastguard Worker      // Lower bound on the value frequency of the values in this bucket.
2407*d5c09012SAndroid Build Coastguard Worker      int64 value_frequency_lower_bound = 1;
2408*d5c09012SAndroid Build Coastguard Worker
2409*d5c09012SAndroid Build Coastguard Worker      // Upper bound on the value frequency of the values in this bucket.
2410*d5c09012SAndroid Build Coastguard Worker      int64 value_frequency_upper_bound = 2;
2411*d5c09012SAndroid Build Coastguard Worker
2412*d5c09012SAndroid Build Coastguard Worker      // Total number of values in this bucket.
2413*d5c09012SAndroid Build Coastguard Worker      int64 bucket_size = 3;
2414*d5c09012SAndroid Build Coastguard Worker
2415*d5c09012SAndroid Build Coastguard Worker      // Sample of value frequencies in this bucket. The total number of
2416*d5c09012SAndroid Build Coastguard Worker      // values returned per bucket is capped at 20.
2417*d5c09012SAndroid Build Coastguard Worker      repeated ValueFrequency bucket_values = 4;
2418*d5c09012SAndroid Build Coastguard Worker
2419*d5c09012SAndroid Build Coastguard Worker      // Total number of distinct values in this bucket.
2420*d5c09012SAndroid Build Coastguard Worker      int64 bucket_value_count = 5;
2421*d5c09012SAndroid Build Coastguard Worker    }
2422*d5c09012SAndroid Build Coastguard Worker
2423*d5c09012SAndroid Build Coastguard Worker    // Histogram of value frequencies in the column.
2424*d5c09012SAndroid Build Coastguard Worker    repeated CategoricalStatsHistogramBucket value_frequency_histogram_buckets =
2425*d5c09012SAndroid Build Coastguard Worker        5;
2426*d5c09012SAndroid Build Coastguard Worker  }
2427*d5c09012SAndroid Build Coastguard Worker
2428*d5c09012SAndroid Build Coastguard Worker  // Result of the k-anonymity computation.
2429*d5c09012SAndroid Build Coastguard Worker  message KAnonymityResult {
2430*d5c09012SAndroid Build Coastguard Worker    // The set of columns' values that share the same ldiversity value
2431*d5c09012SAndroid Build Coastguard Worker    message KAnonymityEquivalenceClass {
2432*d5c09012SAndroid Build Coastguard Worker      // Set of values defining the equivalence class. One value per
2433*d5c09012SAndroid Build Coastguard Worker      // quasi-identifier column in the original KAnonymity metric message.
2434*d5c09012SAndroid Build Coastguard Worker      // The order is always the same as the original request.
2435*d5c09012SAndroid Build Coastguard Worker      repeated Value quasi_ids_values = 1;
2436*d5c09012SAndroid Build Coastguard Worker
2437*d5c09012SAndroid Build Coastguard Worker      // Size of the equivalence class, for example number of rows with the
2438*d5c09012SAndroid Build Coastguard Worker      // above set of values.
2439*d5c09012SAndroid Build Coastguard Worker      int64 equivalence_class_size = 2;
2440*d5c09012SAndroid Build Coastguard Worker    }
2441*d5c09012SAndroid Build Coastguard Worker
2442*d5c09012SAndroid Build Coastguard Worker    // Histogram of k-anonymity equivalence classes.
2443*d5c09012SAndroid Build Coastguard Worker    message KAnonymityHistogramBucket {
2444*d5c09012SAndroid Build Coastguard Worker      // Lower bound on the size of the equivalence classes in this bucket.
2445*d5c09012SAndroid Build Coastguard Worker      int64 equivalence_class_size_lower_bound = 1;
2446*d5c09012SAndroid Build Coastguard Worker
2447*d5c09012SAndroid Build Coastguard Worker      // Upper bound on the size of the equivalence classes in this bucket.
2448*d5c09012SAndroid Build Coastguard Worker      int64 equivalence_class_size_upper_bound = 2;
2449*d5c09012SAndroid Build Coastguard Worker
2450*d5c09012SAndroid Build Coastguard Worker      // Total number of equivalence classes in this bucket.
2451*d5c09012SAndroid Build Coastguard Worker      int64 bucket_size = 3;
2452*d5c09012SAndroid Build Coastguard Worker
2453*d5c09012SAndroid Build Coastguard Worker      // Sample of equivalence classes in this bucket. The total number of
2454*d5c09012SAndroid Build Coastguard Worker      // classes returned per bucket is capped at 20.
2455*d5c09012SAndroid Build Coastguard Worker      repeated KAnonymityEquivalenceClass bucket_values = 4;
2456*d5c09012SAndroid Build Coastguard Worker
2457*d5c09012SAndroid Build Coastguard Worker      // Total number of distinct equivalence classes in this bucket.
2458*d5c09012SAndroid Build Coastguard Worker      int64 bucket_value_count = 5;
2459*d5c09012SAndroid Build Coastguard Worker    }
2460*d5c09012SAndroid Build Coastguard Worker
2461*d5c09012SAndroid Build Coastguard Worker    // Histogram of k-anonymity equivalence classes.
2462*d5c09012SAndroid Build Coastguard Worker    repeated KAnonymityHistogramBucket equivalence_class_histogram_buckets = 5;
2463*d5c09012SAndroid Build Coastguard Worker  }
2464*d5c09012SAndroid Build Coastguard Worker
2465*d5c09012SAndroid Build Coastguard Worker  // Result of the l-diversity computation.
2466*d5c09012SAndroid Build Coastguard Worker  message LDiversityResult {
2467*d5c09012SAndroid Build Coastguard Worker    // The set of columns' values that share the same ldiversity value.
2468*d5c09012SAndroid Build Coastguard Worker    message LDiversityEquivalenceClass {
2469*d5c09012SAndroid Build Coastguard Worker      // Quasi-identifier values defining the k-anonymity equivalence
2470*d5c09012SAndroid Build Coastguard Worker      // class. The order is always the same as the original request.
2471*d5c09012SAndroid Build Coastguard Worker      repeated Value quasi_ids_values = 1;
2472*d5c09012SAndroid Build Coastguard Worker
2473*d5c09012SAndroid Build Coastguard Worker      // Size of the k-anonymity equivalence class.
2474*d5c09012SAndroid Build Coastguard Worker      int64 equivalence_class_size = 2;
2475*d5c09012SAndroid Build Coastguard Worker
2476*d5c09012SAndroid Build Coastguard Worker      // Number of distinct sensitive values in this equivalence class.
2477*d5c09012SAndroid Build Coastguard Worker      int64 num_distinct_sensitive_values = 3;
2478*d5c09012SAndroid Build Coastguard Worker
2479*d5c09012SAndroid Build Coastguard Worker      // Estimated frequencies of top sensitive values.
2480*d5c09012SAndroid Build Coastguard Worker      repeated ValueFrequency top_sensitive_values = 4;
2481*d5c09012SAndroid Build Coastguard Worker    }
2482*d5c09012SAndroid Build Coastguard Worker
2483*d5c09012SAndroid Build Coastguard Worker    // Histogram of l-diversity equivalence class sensitive value frequencies.
2484*d5c09012SAndroid Build Coastguard Worker    message LDiversityHistogramBucket {
2485*d5c09012SAndroid Build Coastguard Worker      // Lower bound on the sensitive value frequencies of the equivalence
2486*d5c09012SAndroid Build Coastguard Worker      // classes in this bucket.
2487*d5c09012SAndroid Build Coastguard Worker      int64 sensitive_value_frequency_lower_bound = 1;
2488*d5c09012SAndroid Build Coastguard Worker
2489*d5c09012SAndroid Build Coastguard Worker      // Upper bound on the sensitive value frequencies of the equivalence
2490*d5c09012SAndroid Build Coastguard Worker      // classes in this bucket.
2491*d5c09012SAndroid Build Coastguard Worker      int64 sensitive_value_frequency_upper_bound = 2;
2492*d5c09012SAndroid Build Coastguard Worker
2493*d5c09012SAndroid Build Coastguard Worker      // Total number of equivalence classes in this bucket.
2494*d5c09012SAndroid Build Coastguard Worker      int64 bucket_size = 3;
2495*d5c09012SAndroid Build Coastguard Worker
2496*d5c09012SAndroid Build Coastguard Worker      // Sample of equivalence classes in this bucket. The total number of
2497*d5c09012SAndroid Build Coastguard Worker      // classes returned per bucket is capped at 20.
2498*d5c09012SAndroid Build Coastguard Worker      repeated LDiversityEquivalenceClass bucket_values = 4;
2499*d5c09012SAndroid Build Coastguard Worker
2500*d5c09012SAndroid Build Coastguard Worker      // Total number of distinct equivalence classes in this bucket.
2501*d5c09012SAndroid Build Coastguard Worker      int64 bucket_value_count = 5;
2502*d5c09012SAndroid Build Coastguard Worker    }
2503*d5c09012SAndroid Build Coastguard Worker
2504*d5c09012SAndroid Build Coastguard Worker    // Histogram of l-diversity equivalence class sensitive value frequencies.
2505*d5c09012SAndroid Build Coastguard Worker    repeated LDiversityHistogramBucket
2506*d5c09012SAndroid Build Coastguard Worker        sensitive_value_frequency_histogram_buckets = 5;
2507*d5c09012SAndroid Build Coastguard Worker  }
2508*d5c09012SAndroid Build Coastguard Worker
2509*d5c09012SAndroid Build Coastguard Worker  // Result of the reidentifiability analysis. Note that these results are an
2510*d5c09012SAndroid Build Coastguard Worker  // estimation, not exact values.
2511*d5c09012SAndroid Build Coastguard Worker  message KMapEstimationResult {
2512*d5c09012SAndroid Build Coastguard Worker    // A tuple of values for the quasi-identifier columns.
2513*d5c09012SAndroid Build Coastguard Worker    message KMapEstimationQuasiIdValues {
2514*d5c09012SAndroid Build Coastguard Worker      // The quasi-identifier values.
2515*d5c09012SAndroid Build Coastguard Worker      repeated Value quasi_ids_values = 1;
2516*d5c09012SAndroid Build Coastguard Worker
2517*d5c09012SAndroid Build Coastguard Worker      // The estimated anonymity for these quasi-identifier values.
2518*d5c09012SAndroid Build Coastguard Worker      int64 estimated_anonymity = 2;
2519*d5c09012SAndroid Build Coastguard Worker    }
2520*d5c09012SAndroid Build Coastguard Worker
2521*d5c09012SAndroid Build Coastguard Worker    // A KMapEstimationHistogramBucket message with the following values:
2522*d5c09012SAndroid Build Coastguard Worker    //   min_anonymity: 3
2523*d5c09012SAndroid Build Coastguard Worker    //   max_anonymity: 5
2524*d5c09012SAndroid Build Coastguard Worker    //   frequency: 42
2525*d5c09012SAndroid Build Coastguard Worker    // means that there are 42 records whose quasi-identifier values correspond
2526*d5c09012SAndroid Build Coastguard Worker    // to 3, 4 or 5 people in the overlying population. An important particular
2527*d5c09012SAndroid Build Coastguard Worker    // case is when min_anonymity = max_anonymity = 1: the frequency field then
2528*d5c09012SAndroid Build Coastguard Worker    // corresponds to the number of uniquely identifiable records.
2529*d5c09012SAndroid Build Coastguard Worker    message KMapEstimationHistogramBucket {
2530*d5c09012SAndroid Build Coastguard Worker      // Always positive.
2531*d5c09012SAndroid Build Coastguard Worker      int64 min_anonymity = 1;
2532*d5c09012SAndroid Build Coastguard Worker
2533*d5c09012SAndroid Build Coastguard Worker      // Always greater than or equal to min_anonymity.
2534*d5c09012SAndroid Build Coastguard Worker      int64 max_anonymity = 2;
2535*d5c09012SAndroid Build Coastguard Worker
2536*d5c09012SAndroid Build Coastguard Worker      // Number of records within these anonymity bounds.
2537*d5c09012SAndroid Build Coastguard Worker      int64 bucket_size = 5;
2538*d5c09012SAndroid Build Coastguard Worker
2539*d5c09012SAndroid Build Coastguard Worker      // Sample of quasi-identifier tuple values in this bucket. The total
2540*d5c09012SAndroid Build Coastguard Worker      // number of classes returned per bucket is capped at 20.
2541*d5c09012SAndroid Build Coastguard Worker      repeated KMapEstimationQuasiIdValues bucket_values = 6;
2542*d5c09012SAndroid Build Coastguard Worker
2543*d5c09012SAndroid Build Coastguard Worker      // Total number of distinct quasi-identifier tuple values in this bucket.
2544*d5c09012SAndroid Build Coastguard Worker      int64 bucket_value_count = 7;
2545*d5c09012SAndroid Build Coastguard Worker    }
2546*d5c09012SAndroid Build Coastguard Worker
2547*d5c09012SAndroid Build Coastguard Worker    // The intervals [min_anonymity, max_anonymity] do not overlap. If a value
2548*d5c09012SAndroid Build Coastguard Worker    // doesn't correspond to any such interval, the associated frequency is
2549*d5c09012SAndroid Build Coastguard Worker    // zero. For example, the following records:
2550*d5c09012SAndroid Build Coastguard Worker    //   {min_anonymity: 1, max_anonymity: 1, frequency: 17}
2551*d5c09012SAndroid Build Coastguard Worker    //   {min_anonymity: 2, max_anonymity: 3, frequency: 42}
2552*d5c09012SAndroid Build Coastguard Worker    //   {min_anonymity: 5, max_anonymity: 10, frequency: 99}
2553*d5c09012SAndroid Build Coastguard Worker    // mean that there are no record with an estimated anonymity of 4, 5, or
2554*d5c09012SAndroid Build Coastguard Worker    // larger than 10.
2555*d5c09012SAndroid Build Coastguard Worker    repeated KMapEstimationHistogramBucket k_map_estimation_histogram = 1;
2556*d5c09012SAndroid Build Coastguard Worker  }
2557*d5c09012SAndroid Build Coastguard Worker
2558*d5c09012SAndroid Build Coastguard Worker  // Result of the δ-presence computation. Note that these results are an
2559*d5c09012SAndroid Build Coastguard Worker  // estimation, not exact values.
2560*d5c09012SAndroid Build Coastguard Worker  message DeltaPresenceEstimationResult {
2561*d5c09012SAndroid Build Coastguard Worker    // A tuple of values for the quasi-identifier columns.
2562*d5c09012SAndroid Build Coastguard Worker    message DeltaPresenceEstimationQuasiIdValues {
2563*d5c09012SAndroid Build Coastguard Worker      // The quasi-identifier values.
2564*d5c09012SAndroid Build Coastguard Worker      repeated Value quasi_ids_values = 1;
2565*d5c09012SAndroid Build Coastguard Worker
2566*d5c09012SAndroid Build Coastguard Worker      // The estimated probability that a given individual sharing these
2567*d5c09012SAndroid Build Coastguard Worker      // quasi-identifier values is in the dataset. This value, typically
2568*d5c09012SAndroid Build Coastguard Worker      // called δ, is the ratio between the number of records in the dataset
2569*d5c09012SAndroid Build Coastguard Worker      // with these quasi-identifier values, and the total number of individuals
2570*d5c09012SAndroid Build Coastguard Worker      // (inside *and* outside the dataset) with these quasi-identifier values.
2571*d5c09012SAndroid Build Coastguard Worker      // For example, if there are 15 individuals in the dataset who share the
2572*d5c09012SAndroid Build Coastguard Worker      // same quasi-identifier values, and an estimated 100 people in the entire
2573*d5c09012SAndroid Build Coastguard Worker      // population with these values, then δ is 0.15.
2574*d5c09012SAndroid Build Coastguard Worker      double estimated_probability = 2;
2575*d5c09012SAndroid Build Coastguard Worker    }
2576*d5c09012SAndroid Build Coastguard Worker
2577*d5c09012SAndroid Build Coastguard Worker    // A DeltaPresenceEstimationHistogramBucket message with the following
2578*d5c09012SAndroid Build Coastguard Worker    // values:
2579*d5c09012SAndroid Build Coastguard Worker    //   min_probability: 0.1
2580*d5c09012SAndroid Build Coastguard Worker    //   max_probability: 0.2
2581*d5c09012SAndroid Build Coastguard Worker    //   frequency: 42
2582*d5c09012SAndroid Build Coastguard Worker    // means that there are 42 records for which δ is in [0.1, 0.2). An
2583*d5c09012SAndroid Build Coastguard Worker    // important particular case is when min_probability = max_probability = 1:
2584*d5c09012SAndroid Build Coastguard Worker    // then, every individual who shares this quasi-identifier combination is in
2585*d5c09012SAndroid Build Coastguard Worker    // the dataset.
2586*d5c09012SAndroid Build Coastguard Worker    message DeltaPresenceEstimationHistogramBucket {
2587*d5c09012SAndroid Build Coastguard Worker      // Between 0 and 1.
2588*d5c09012SAndroid Build Coastguard Worker      double min_probability = 1;
2589*d5c09012SAndroid Build Coastguard Worker
2590*d5c09012SAndroid Build Coastguard Worker      // Always greater than or equal to min_probability.
2591*d5c09012SAndroid Build Coastguard Worker      double max_probability = 2;
2592*d5c09012SAndroid Build Coastguard Worker
2593*d5c09012SAndroid Build Coastguard Worker      // Number of records within these probability bounds.
2594*d5c09012SAndroid Build Coastguard Worker      int64 bucket_size = 5;
2595*d5c09012SAndroid Build Coastguard Worker
2596*d5c09012SAndroid Build Coastguard Worker      // Sample of quasi-identifier tuple values in this bucket. The total
2597*d5c09012SAndroid Build Coastguard Worker      // number of classes returned per bucket is capped at 20.
2598*d5c09012SAndroid Build Coastguard Worker      repeated DeltaPresenceEstimationQuasiIdValues bucket_values = 6;
2599*d5c09012SAndroid Build Coastguard Worker
2600*d5c09012SAndroid Build Coastguard Worker      // Total number of distinct quasi-identifier tuple values in this bucket.
2601*d5c09012SAndroid Build Coastguard Worker      int64 bucket_value_count = 7;
2602*d5c09012SAndroid Build Coastguard Worker    }
2603*d5c09012SAndroid Build Coastguard Worker
2604*d5c09012SAndroid Build Coastguard Worker    // The intervals [min_probability, max_probability) do not overlap. If a
2605*d5c09012SAndroid Build Coastguard Worker    // value doesn't correspond to any such interval, the associated frequency
2606*d5c09012SAndroid Build Coastguard Worker    // is zero. For example, the following records:
2607*d5c09012SAndroid Build Coastguard Worker    //   {min_probability: 0, max_probability: 0.1, frequency: 17}
2608*d5c09012SAndroid Build Coastguard Worker    //   {min_probability: 0.2, max_probability: 0.3, frequency: 42}
2609*d5c09012SAndroid Build Coastguard Worker    //   {min_probability: 0.3, max_probability: 0.4, frequency: 99}
2610*d5c09012SAndroid Build Coastguard Worker    // mean that there are no record with an estimated probability in [0.1, 0.2)
2611*d5c09012SAndroid Build Coastguard Worker    // nor larger or equal to 0.4.
2612*d5c09012SAndroid Build Coastguard Worker    repeated DeltaPresenceEstimationHistogramBucket
2613*d5c09012SAndroid Build Coastguard Worker        delta_presence_estimation_histogram = 1;
2614*d5c09012SAndroid Build Coastguard Worker  }
2615*d5c09012SAndroid Build Coastguard Worker
2616*d5c09012SAndroid Build Coastguard Worker  // Risk analysis options.
2617*d5c09012SAndroid Build Coastguard Worker  message RequestedRiskAnalysisOptions {
2618*d5c09012SAndroid Build Coastguard Worker    // The job config for the risk job.
2619*d5c09012SAndroid Build Coastguard Worker    RiskAnalysisJobConfig job_config = 1;
2620*d5c09012SAndroid Build Coastguard Worker  }
2621*d5c09012SAndroid Build Coastguard Worker
2622*d5c09012SAndroid Build Coastguard Worker  // Privacy metric to compute.
2623*d5c09012SAndroid Build Coastguard Worker  PrivacyMetric requested_privacy_metric = 1;
2624*d5c09012SAndroid Build Coastguard Worker
2625*d5c09012SAndroid Build Coastguard Worker  // Input dataset to compute metrics over.
2626*d5c09012SAndroid Build Coastguard Worker  BigQueryTable requested_source_table = 2;
2627*d5c09012SAndroid Build Coastguard Worker
2628*d5c09012SAndroid Build Coastguard Worker  // Values associated with this metric.
2629*d5c09012SAndroid Build Coastguard Worker  oneof result {
2630*d5c09012SAndroid Build Coastguard Worker    // Numerical stats result
2631*d5c09012SAndroid Build Coastguard Worker    NumericalStatsResult numerical_stats_result = 3;
2632*d5c09012SAndroid Build Coastguard Worker
2633*d5c09012SAndroid Build Coastguard Worker    // Categorical stats result
2634*d5c09012SAndroid Build Coastguard Worker    CategoricalStatsResult categorical_stats_result = 4;
2635*d5c09012SAndroid Build Coastguard Worker
2636*d5c09012SAndroid Build Coastguard Worker    // K-anonymity result
2637*d5c09012SAndroid Build Coastguard Worker    KAnonymityResult k_anonymity_result = 5;
2638*d5c09012SAndroid Build Coastguard Worker
2639*d5c09012SAndroid Build Coastguard Worker    // L-divesity result
2640*d5c09012SAndroid Build Coastguard Worker    LDiversityResult l_diversity_result = 6;
2641*d5c09012SAndroid Build Coastguard Worker
2642*d5c09012SAndroid Build Coastguard Worker    // K-map result
2643*d5c09012SAndroid Build Coastguard Worker    KMapEstimationResult k_map_estimation_result = 7;
2644*d5c09012SAndroid Build Coastguard Worker
2645*d5c09012SAndroid Build Coastguard Worker    // Delta-presence result
2646*d5c09012SAndroid Build Coastguard Worker    DeltaPresenceEstimationResult delta_presence_estimation_result = 9;
2647*d5c09012SAndroid Build Coastguard Worker  }
2648*d5c09012SAndroid Build Coastguard Worker
2649*d5c09012SAndroid Build Coastguard Worker  // The configuration used for this job.
2650*d5c09012SAndroid Build Coastguard Worker  RequestedRiskAnalysisOptions requested_options = 10;
2651*d5c09012SAndroid Build Coastguard Worker}
2652*d5c09012SAndroid Build Coastguard Worker
2653*d5c09012SAndroid Build Coastguard Worker// A value of a field, including its frequency.
2654*d5c09012SAndroid Build Coastguard Workermessage ValueFrequency {
2655*d5c09012SAndroid Build Coastguard Worker  // A value contained in the field in question.
2656*d5c09012SAndroid Build Coastguard Worker  Value value = 1;
2657*d5c09012SAndroid Build Coastguard Worker
2658*d5c09012SAndroid Build Coastguard Worker  // How many times the value is contained in the field.
2659*d5c09012SAndroid Build Coastguard Worker  int64 count = 2;
2660*d5c09012SAndroid Build Coastguard Worker}
2661*d5c09012SAndroid Build Coastguard Worker
2662*d5c09012SAndroid Build Coastguard Worker// Set of primitive values supported by the system.
2663*d5c09012SAndroid Build Coastguard Worker// Note that for the purposes of inspection or transformation, the number
2664*d5c09012SAndroid Build Coastguard Worker// of bytes considered to comprise a 'Value' is based on its representation
2665*d5c09012SAndroid Build Coastguard Worker// as a UTF-8 encoded string. For example, if 'integer_value' is set to
2666*d5c09012SAndroid Build Coastguard Worker// 123456789, the number of bytes would be counted as 9, even though an
2667*d5c09012SAndroid Build Coastguard Worker// int64 only holds up to 8 bytes of data.
2668*d5c09012SAndroid Build Coastguard Workermessage Value {
2669*d5c09012SAndroid Build Coastguard Worker  // Value types
2670*d5c09012SAndroid Build Coastguard Worker  oneof type {
2671*d5c09012SAndroid Build Coastguard Worker    // integer
2672*d5c09012SAndroid Build Coastguard Worker    int64 integer_value = 1;
2673*d5c09012SAndroid Build Coastguard Worker
2674*d5c09012SAndroid Build Coastguard Worker    // float
2675*d5c09012SAndroid Build Coastguard Worker    double float_value = 2;
2676*d5c09012SAndroid Build Coastguard Worker
2677*d5c09012SAndroid Build Coastguard Worker    // string
2678*d5c09012SAndroid Build Coastguard Worker    string string_value = 3;
2679*d5c09012SAndroid Build Coastguard Worker
2680*d5c09012SAndroid Build Coastguard Worker    // boolean
2681*d5c09012SAndroid Build Coastguard Worker    bool boolean_value = 4;
2682*d5c09012SAndroid Build Coastguard Worker
2683*d5c09012SAndroid Build Coastguard Worker    // timestamp
2684*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp timestamp_value = 5;
2685*d5c09012SAndroid Build Coastguard Worker
2686*d5c09012SAndroid Build Coastguard Worker    // time of day
2687*d5c09012SAndroid Build Coastguard Worker    google.type.TimeOfDay time_value = 6;
2688*d5c09012SAndroid Build Coastguard Worker
2689*d5c09012SAndroid Build Coastguard Worker    // date
2690*d5c09012SAndroid Build Coastguard Worker    google.type.Date date_value = 7;
2691*d5c09012SAndroid Build Coastguard Worker
2692*d5c09012SAndroid Build Coastguard Worker    // day of week
2693*d5c09012SAndroid Build Coastguard Worker    google.type.DayOfWeek day_of_week_value = 8;
2694*d5c09012SAndroid Build Coastguard Worker  }
2695*d5c09012SAndroid Build Coastguard Worker}
2696*d5c09012SAndroid Build Coastguard Worker
2697*d5c09012SAndroid Build Coastguard Worker// Message for infoType-dependent details parsed from quote.
2698*d5c09012SAndroid Build Coastguard Workermessage QuoteInfo {
2699*d5c09012SAndroid Build Coastguard Worker  // Object representation of the quote.
2700*d5c09012SAndroid Build Coastguard Worker  oneof parsed_quote {
2701*d5c09012SAndroid Build Coastguard Worker    // The date time indicated by the quote.
2702*d5c09012SAndroid Build Coastguard Worker    DateTime date_time = 2;
2703*d5c09012SAndroid Build Coastguard Worker  }
2704*d5c09012SAndroid Build Coastguard Worker}
2705*d5c09012SAndroid Build Coastguard Worker
2706*d5c09012SAndroid Build Coastguard Worker// Message for a date time object.
2707*d5c09012SAndroid Build Coastguard Worker// e.g. 2018-01-01, 5th August.
2708*d5c09012SAndroid Build Coastguard Workermessage DateTime {
2709*d5c09012SAndroid Build Coastguard Worker  // Time zone of the date time object.
2710*d5c09012SAndroid Build Coastguard Worker  message TimeZone {
2711*d5c09012SAndroid Build Coastguard Worker    // Set only if the offset can be determined. Positive for time ahead of UTC.
2712*d5c09012SAndroid Build Coastguard Worker    // E.g. For "UTC-9", this value is -540.
2713*d5c09012SAndroid Build Coastguard Worker    int32 offset_minutes = 1;
2714*d5c09012SAndroid Build Coastguard Worker  }
2715*d5c09012SAndroid Build Coastguard Worker
2716*d5c09012SAndroid Build Coastguard Worker  // One or more of the following must be set.
2717*d5c09012SAndroid Build Coastguard Worker  // Must be a valid date or time value.
2718*d5c09012SAndroid Build Coastguard Worker  google.type.Date date = 1;
2719*d5c09012SAndroid Build Coastguard Worker
2720*d5c09012SAndroid Build Coastguard Worker  // Day of week
2721*d5c09012SAndroid Build Coastguard Worker  google.type.DayOfWeek day_of_week = 2;
2722*d5c09012SAndroid Build Coastguard Worker
2723*d5c09012SAndroid Build Coastguard Worker  // Time of day
2724*d5c09012SAndroid Build Coastguard Worker  google.type.TimeOfDay time = 3;
2725*d5c09012SAndroid Build Coastguard Worker
2726*d5c09012SAndroid Build Coastguard Worker  // Time zone
2727*d5c09012SAndroid Build Coastguard Worker  TimeZone time_zone = 4;
2728*d5c09012SAndroid Build Coastguard Worker}
2729*d5c09012SAndroid Build Coastguard Worker
2730*d5c09012SAndroid Build Coastguard Worker// The configuration that controls how the data will change.
2731*d5c09012SAndroid Build Coastguard Workermessage DeidentifyConfig {
2732*d5c09012SAndroid Build Coastguard Worker  // Type of transformation
2733*d5c09012SAndroid Build Coastguard Worker  oneof transformation {
2734*d5c09012SAndroid Build Coastguard Worker    // Treat the dataset as free-form text and apply the same free text
2735*d5c09012SAndroid Build Coastguard Worker    // transformation everywhere.
2736*d5c09012SAndroid Build Coastguard Worker    InfoTypeTransformations info_type_transformations = 1;
2737*d5c09012SAndroid Build Coastguard Worker
2738*d5c09012SAndroid Build Coastguard Worker    // Treat the dataset as structured. Transformations can be applied to
2739*d5c09012SAndroid Build Coastguard Worker    // specific locations within structured datasets, such as transforming
2740*d5c09012SAndroid Build Coastguard Worker    // a column within a table.
2741*d5c09012SAndroid Build Coastguard Worker    RecordTransformations record_transformations = 2;
2742*d5c09012SAndroid Build Coastguard Worker
2743*d5c09012SAndroid Build Coastguard Worker    // Treat the dataset as an image and redact.
2744*d5c09012SAndroid Build Coastguard Worker    ImageTransformations image_transformations = 4;
2745*d5c09012SAndroid Build Coastguard Worker  }
2746*d5c09012SAndroid Build Coastguard Worker
2747*d5c09012SAndroid Build Coastguard Worker  // Mode for handling transformation errors. If left unspecified, the default
2748*d5c09012SAndroid Build Coastguard Worker  // mode is `TransformationErrorHandling.ThrowError`.
2749*d5c09012SAndroid Build Coastguard Worker  TransformationErrorHandling transformation_error_handling = 3;
2750*d5c09012SAndroid Build Coastguard Worker}
2751*d5c09012SAndroid Build Coastguard Worker
2752*d5c09012SAndroid Build Coastguard Worker// A type of transformation that is applied over images.
2753*d5c09012SAndroid Build Coastguard Workermessage ImageTransformations {
2754*d5c09012SAndroid Build Coastguard Worker  // Configuration for determining how redaction of images should occur.
2755*d5c09012SAndroid Build Coastguard Worker  message ImageTransformation {
2756*d5c09012SAndroid Build Coastguard Worker    // Apply transformation to the selected info_types.
2757*d5c09012SAndroid Build Coastguard Worker    message SelectedInfoTypes {
2758*d5c09012SAndroid Build Coastguard Worker      // Required. InfoTypes to apply the transformation to. Required. Provided
2759*d5c09012SAndroid Build Coastguard Worker      // InfoType must be unique within the ImageTransformations message.
2760*d5c09012SAndroid Build Coastguard Worker      repeated InfoType info_types = 5 [(google.api.field_behavior) = REQUIRED];
2761*d5c09012SAndroid Build Coastguard Worker    }
2762*d5c09012SAndroid Build Coastguard Worker
2763*d5c09012SAndroid Build Coastguard Worker    // Apply transformation to all findings.
2764*d5c09012SAndroid Build Coastguard Worker    message AllInfoTypes {}
2765*d5c09012SAndroid Build Coastguard Worker
2766*d5c09012SAndroid Build Coastguard Worker    // Apply to all text.
2767*d5c09012SAndroid Build Coastguard Worker    message AllText {}
2768*d5c09012SAndroid Build Coastguard Worker
2769*d5c09012SAndroid Build Coastguard Worker    // Part of the image to transform.
2770*d5c09012SAndroid Build Coastguard Worker    oneof target {
2771*d5c09012SAndroid Build Coastguard Worker      // Apply transformation to the selected info_types.
2772*d5c09012SAndroid Build Coastguard Worker      SelectedInfoTypes selected_info_types = 4;
2773*d5c09012SAndroid Build Coastguard Worker
2774*d5c09012SAndroid Build Coastguard Worker      // Apply transformation to all findings not specified in other
2775*d5c09012SAndroid Build Coastguard Worker      // ImageTransformation's selected_info_types. Only one instance is allowed
2776*d5c09012SAndroid Build Coastguard Worker      // within the ImageTransformations message.
2777*d5c09012SAndroid Build Coastguard Worker      AllInfoTypes all_info_types = 5;
2778*d5c09012SAndroid Build Coastguard Worker
2779*d5c09012SAndroid Build Coastguard Worker      // Apply transformation to all text that doesn't match an infoType. Only
2780*d5c09012SAndroid Build Coastguard Worker      // one instance is allowed within the ImageTransformations message.
2781*d5c09012SAndroid Build Coastguard Worker      AllText all_text = 6;
2782*d5c09012SAndroid Build Coastguard Worker    }
2783*d5c09012SAndroid Build Coastguard Worker
2784*d5c09012SAndroid Build Coastguard Worker    // The color to use when redacting content from an image. If not
2785*d5c09012SAndroid Build Coastguard Worker    // specified, the default is black.
2786*d5c09012SAndroid Build Coastguard Worker    Color redaction_color = 3;
2787*d5c09012SAndroid Build Coastguard Worker  }
2788*d5c09012SAndroid Build Coastguard Worker
2789*d5c09012SAndroid Build Coastguard Worker  // List of transforms to make.
2790*d5c09012SAndroid Build Coastguard Worker  repeated ImageTransformation transforms = 2;
2791*d5c09012SAndroid Build Coastguard Worker}
2792*d5c09012SAndroid Build Coastguard Worker
2793*d5c09012SAndroid Build Coastguard Worker// How to handle transformation errors during de-identification. A
2794*d5c09012SAndroid Build Coastguard Worker// transformation error occurs when the requested transformation is incompatible
2795*d5c09012SAndroid Build Coastguard Worker// with the data. For example, trying to de-identify an IP address using a
2796*d5c09012SAndroid Build Coastguard Worker// `DateShift` transformation would result in a transformation error, since date
2797*d5c09012SAndroid Build Coastguard Worker// info cannot be extracted from an IP address.
2798*d5c09012SAndroid Build Coastguard Worker// Information about any incompatible transformations, and how they were
2799*d5c09012SAndroid Build Coastguard Worker// handled, is returned in the response as part of the
2800*d5c09012SAndroid Build Coastguard Worker// `TransformationOverviews`.
2801*d5c09012SAndroid Build Coastguard Workermessage TransformationErrorHandling {
2802*d5c09012SAndroid Build Coastguard Worker  // Throw an error and fail the request when a transformation error occurs.
2803*d5c09012SAndroid Build Coastguard Worker  message ThrowError {}
2804*d5c09012SAndroid Build Coastguard Worker
2805*d5c09012SAndroid Build Coastguard Worker  // Skips the data without modifying it if the requested transformation would
2806*d5c09012SAndroid Build Coastguard Worker  // cause an error. For example, if a `DateShift` transformation were applied
2807*d5c09012SAndroid Build Coastguard Worker  // an an IP address, this mode would leave the IP address unchanged in the
2808*d5c09012SAndroid Build Coastguard Worker  // response.
2809*d5c09012SAndroid Build Coastguard Worker  message LeaveUntransformed {}
2810*d5c09012SAndroid Build Coastguard Worker
2811*d5c09012SAndroid Build Coastguard Worker  // How transformation errors should be handled.
2812*d5c09012SAndroid Build Coastguard Worker  oneof mode {
2813*d5c09012SAndroid Build Coastguard Worker    // Throw an error
2814*d5c09012SAndroid Build Coastguard Worker    ThrowError throw_error = 1;
2815*d5c09012SAndroid Build Coastguard Worker
2816*d5c09012SAndroid Build Coastguard Worker    // Ignore errors
2817*d5c09012SAndroid Build Coastguard Worker    LeaveUntransformed leave_untransformed = 2;
2818*d5c09012SAndroid Build Coastguard Worker  }
2819*d5c09012SAndroid Build Coastguard Worker}
2820*d5c09012SAndroid Build Coastguard Worker
2821*d5c09012SAndroid Build Coastguard Worker// A rule for transforming a value.
2822*d5c09012SAndroid Build Coastguard Workermessage PrimitiveTransformation {
2823*d5c09012SAndroid Build Coastguard Worker  // Type of transformation.
2824*d5c09012SAndroid Build Coastguard Worker  oneof transformation {
2825*d5c09012SAndroid Build Coastguard Worker    // Replace with a specified value.
2826*d5c09012SAndroid Build Coastguard Worker    ReplaceValueConfig replace_config = 1;
2827*d5c09012SAndroid Build Coastguard Worker
2828*d5c09012SAndroid Build Coastguard Worker    // Redact
2829*d5c09012SAndroid Build Coastguard Worker    RedactConfig redact_config = 2;
2830*d5c09012SAndroid Build Coastguard Worker
2831*d5c09012SAndroid Build Coastguard Worker    // Mask
2832*d5c09012SAndroid Build Coastguard Worker    CharacterMaskConfig character_mask_config = 3;
2833*d5c09012SAndroid Build Coastguard Worker
2834*d5c09012SAndroid Build Coastguard Worker    // Ffx-Fpe
2835*d5c09012SAndroid Build Coastguard Worker    CryptoReplaceFfxFpeConfig crypto_replace_ffx_fpe_config = 4;
2836*d5c09012SAndroid Build Coastguard Worker
2837*d5c09012SAndroid Build Coastguard Worker    // Fixed size bucketing
2838*d5c09012SAndroid Build Coastguard Worker    FixedSizeBucketingConfig fixed_size_bucketing_config = 5;
2839*d5c09012SAndroid Build Coastguard Worker
2840*d5c09012SAndroid Build Coastguard Worker    // Bucketing
2841*d5c09012SAndroid Build Coastguard Worker    BucketingConfig bucketing_config = 6;
2842*d5c09012SAndroid Build Coastguard Worker
2843*d5c09012SAndroid Build Coastguard Worker    // Replace with infotype
2844*d5c09012SAndroid Build Coastguard Worker    ReplaceWithInfoTypeConfig replace_with_info_type_config = 7;
2845*d5c09012SAndroid Build Coastguard Worker
2846*d5c09012SAndroid Build Coastguard Worker    // Time extraction
2847*d5c09012SAndroid Build Coastguard Worker    TimePartConfig time_part_config = 8;
2848*d5c09012SAndroid Build Coastguard Worker
2849*d5c09012SAndroid Build Coastguard Worker    // Crypto
2850*d5c09012SAndroid Build Coastguard Worker    CryptoHashConfig crypto_hash_config = 9;
2851*d5c09012SAndroid Build Coastguard Worker
2852*d5c09012SAndroid Build Coastguard Worker    // Date Shift
2853*d5c09012SAndroid Build Coastguard Worker    DateShiftConfig date_shift_config = 11;
2854*d5c09012SAndroid Build Coastguard Worker
2855*d5c09012SAndroid Build Coastguard Worker    // Deterministic Crypto
2856*d5c09012SAndroid Build Coastguard Worker    CryptoDeterministicConfig crypto_deterministic_config = 12;
2857*d5c09012SAndroid Build Coastguard Worker
2858*d5c09012SAndroid Build Coastguard Worker    // Replace with a value randomly drawn (with replacement) from a dictionary.
2859*d5c09012SAndroid Build Coastguard Worker    ReplaceDictionaryConfig replace_dictionary_config = 13;
2860*d5c09012SAndroid Build Coastguard Worker  }
2861*d5c09012SAndroid Build Coastguard Worker}
2862*d5c09012SAndroid Build Coastguard Worker
2863*d5c09012SAndroid Build Coastguard Worker// For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a
2864*d5c09012SAndroid Build Coastguard Worker// portion of the value.
2865*d5c09012SAndroid Build Coastguard Workermessage TimePartConfig {
2866*d5c09012SAndroid Build Coastguard Worker  // Components that make up time.
2867*d5c09012SAndroid Build Coastguard Worker  enum TimePart {
2868*d5c09012SAndroid Build Coastguard Worker    // Unused
2869*d5c09012SAndroid Build Coastguard Worker    TIME_PART_UNSPECIFIED = 0;
2870*d5c09012SAndroid Build Coastguard Worker
2871*d5c09012SAndroid Build Coastguard Worker    // [0-9999]
2872*d5c09012SAndroid Build Coastguard Worker    YEAR = 1;
2873*d5c09012SAndroid Build Coastguard Worker
2874*d5c09012SAndroid Build Coastguard Worker    // [1-12]
2875*d5c09012SAndroid Build Coastguard Worker    MONTH = 2;
2876*d5c09012SAndroid Build Coastguard Worker
2877*d5c09012SAndroid Build Coastguard Worker    // [1-31]
2878*d5c09012SAndroid Build Coastguard Worker    DAY_OF_MONTH = 3;
2879*d5c09012SAndroid Build Coastguard Worker
2880*d5c09012SAndroid Build Coastguard Worker    // [1-7]
2881*d5c09012SAndroid Build Coastguard Worker    DAY_OF_WEEK = 4;
2882*d5c09012SAndroid Build Coastguard Worker
2883*d5c09012SAndroid Build Coastguard Worker    // [1-53]
2884*d5c09012SAndroid Build Coastguard Worker    WEEK_OF_YEAR = 5;
2885*d5c09012SAndroid Build Coastguard Worker
2886*d5c09012SAndroid Build Coastguard Worker    // [0-23]
2887*d5c09012SAndroid Build Coastguard Worker    HOUR_OF_DAY = 6;
2888*d5c09012SAndroid Build Coastguard Worker  }
2889*d5c09012SAndroid Build Coastguard Worker
2890*d5c09012SAndroid Build Coastguard Worker  // The part of the time to keep.
2891*d5c09012SAndroid Build Coastguard Worker  TimePart part_to_extract = 1;
2892*d5c09012SAndroid Build Coastguard Worker}
2893*d5c09012SAndroid Build Coastguard Worker
2894*d5c09012SAndroid Build Coastguard Worker// Pseudonymization method that generates surrogates via cryptographic hashing.
2895*d5c09012SAndroid Build Coastguard Worker// Uses SHA-256.
2896*d5c09012SAndroid Build Coastguard Worker// The key size must be either 32 or 64 bytes.
2897*d5c09012SAndroid Build Coastguard Worker// Outputs a base64 encoded representation of the hashed output
2898*d5c09012SAndroid Build Coastguard Worker// (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
2899*d5c09012SAndroid Build Coastguard Worker// Currently, only string and integer values can be hashed.
2900*d5c09012SAndroid Build Coastguard Worker// See https://cloud.google.com/sensitive-data-protection/docs/pseudonymization
2901*d5c09012SAndroid Build Coastguard Worker// to learn more.
2902*d5c09012SAndroid Build Coastguard Workermessage CryptoHashConfig {
2903*d5c09012SAndroid Build Coastguard Worker  // The key used by the hash function.
2904*d5c09012SAndroid Build Coastguard Worker  CryptoKey crypto_key = 1;
2905*d5c09012SAndroid Build Coastguard Worker}
2906*d5c09012SAndroid Build Coastguard Worker
2907*d5c09012SAndroid Build Coastguard Worker// Pseudonymization method that generates deterministic encryption for the given
2908*d5c09012SAndroid Build Coastguard Worker// input. Outputs a base64 encoded representation of the encrypted output.
2909*d5c09012SAndroid Build Coastguard Worker// Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
2910*d5c09012SAndroid Build Coastguard Workermessage CryptoDeterministicConfig {
2911*d5c09012SAndroid Build Coastguard Worker  // The key used by the encryption function. For deterministic encryption
2912*d5c09012SAndroid Build Coastguard Worker  // using AES-SIV, the provided key is internally expanded to 64 bytes prior to
2913*d5c09012SAndroid Build Coastguard Worker  // use.
2914*d5c09012SAndroid Build Coastguard Worker  CryptoKey crypto_key = 1;
2915*d5c09012SAndroid Build Coastguard Worker
2916*d5c09012SAndroid Build Coastguard Worker  // The custom info type to annotate the surrogate with.
2917*d5c09012SAndroid Build Coastguard Worker  // This annotation will be applied to the surrogate by prefixing it with
2918*d5c09012SAndroid Build Coastguard Worker  // the name of the custom info type followed by the number of
2919*d5c09012SAndroid Build Coastguard Worker  // characters comprising the surrogate. The following scheme defines the
2920*d5c09012SAndroid Build Coastguard Worker  // format: {info type name}({surrogate character count}):{surrogate}
2921*d5c09012SAndroid Build Coastguard Worker  //
2922*d5c09012SAndroid Build Coastguard Worker  // For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and
2923*d5c09012SAndroid Build Coastguard Worker  // the surrogate is 'abc', the full replacement value
2924*d5c09012SAndroid Build Coastguard Worker  // will be: 'MY_TOKEN_INFO_TYPE(3):abc'
2925*d5c09012SAndroid Build Coastguard Worker  //
2926*d5c09012SAndroid Build Coastguard Worker  // This annotation identifies the surrogate when inspecting content using the
2927*d5c09012SAndroid Build Coastguard Worker  // custom info type 'Surrogate'. This facilitates reversal of the
2928*d5c09012SAndroid Build Coastguard Worker  // surrogate when it occurs in free text.
2929*d5c09012SAndroid Build Coastguard Worker  //
2930*d5c09012SAndroid Build Coastguard Worker  // Note: For record transformations where the entire cell in a table is being
2931*d5c09012SAndroid Build Coastguard Worker  // transformed, surrogates are not mandatory. Surrogates are used to denote
2932*d5c09012SAndroid Build Coastguard Worker  // the location of the token and are necessary for re-identification in free
2933*d5c09012SAndroid Build Coastguard Worker  // form text.
2934*d5c09012SAndroid Build Coastguard Worker  //
2935*d5c09012SAndroid Build Coastguard Worker  // In order for inspection to work properly, the name of this info type must
2936*d5c09012SAndroid Build Coastguard Worker  // not occur naturally anywhere in your data; otherwise, inspection may either
2937*d5c09012SAndroid Build Coastguard Worker  //
2938*d5c09012SAndroid Build Coastguard Worker  // - reverse a surrogate that does not correspond to an actual identifier
2939*d5c09012SAndroid Build Coastguard Worker  // - be unable to parse the surrogate and result in an error
2940*d5c09012SAndroid Build Coastguard Worker  //
2941*d5c09012SAndroid Build Coastguard Worker  // Therefore, choose your custom info type name carefully after considering
2942*d5c09012SAndroid Build Coastguard Worker  // what your data looks like. One way to select a name that has a high chance
2943*d5c09012SAndroid Build Coastguard Worker  // of yielding reliable detection is to include one or more unicode characters
2944*d5c09012SAndroid Build Coastguard Worker  // that are highly improbable to exist in your data.
2945*d5c09012SAndroid Build Coastguard Worker  // For example, assuming your data is entered from a regular ASCII keyboard,
2946*d5c09012SAndroid Build Coastguard Worker  // the symbol with the hex code point 29DD might be used like so:
2947*d5c09012SAndroid Build Coastguard Worker  // ⧝MY_TOKEN_TYPE.
2948*d5c09012SAndroid Build Coastguard Worker  InfoType surrogate_info_type = 2;
2949*d5c09012SAndroid Build Coastguard Worker
2950*d5c09012SAndroid Build Coastguard Worker  // A context may be used for higher security and maintaining
2951*d5c09012SAndroid Build Coastguard Worker  // referential integrity such that the same identifier in two different
2952*d5c09012SAndroid Build Coastguard Worker  // contexts will be given a distinct surrogate. The context is appended to
2953*d5c09012SAndroid Build Coastguard Worker  // plaintext value being encrypted. On decryption the provided context is
2954*d5c09012SAndroid Build Coastguard Worker  // validated against the value used during encryption. If a context was
2955*d5c09012SAndroid Build Coastguard Worker  // provided during encryption, same context must be provided during decryption
2956*d5c09012SAndroid Build Coastguard Worker  // as well.
2957*d5c09012SAndroid Build Coastguard Worker  //
2958*d5c09012SAndroid Build Coastguard Worker  // If the context is not set, plaintext would be used as is for encryption.
2959*d5c09012SAndroid Build Coastguard Worker  // If the context is set but:
2960*d5c09012SAndroid Build Coastguard Worker  //
2961*d5c09012SAndroid Build Coastguard Worker  // 1. there is no record present when transforming a given value or
2962*d5c09012SAndroid Build Coastguard Worker  // 2. the field is not present when transforming a given value,
2963*d5c09012SAndroid Build Coastguard Worker  //
2964*d5c09012SAndroid Build Coastguard Worker  // plaintext would be used as is for encryption.
2965*d5c09012SAndroid Build Coastguard Worker  //
2966*d5c09012SAndroid Build Coastguard Worker  // Note that case (1) is expected when an `InfoTypeTransformation` is
2967*d5c09012SAndroid Build Coastguard Worker  // applied to both structured and unstructured `ContentItem`s.
2968*d5c09012SAndroid Build Coastguard Worker  FieldId context = 3;
2969*d5c09012SAndroid Build Coastguard Worker}
2970*d5c09012SAndroid Build Coastguard Worker
2971*d5c09012SAndroid Build Coastguard Worker// Replace each input value with a given `Value`.
2972*d5c09012SAndroid Build Coastguard Workermessage ReplaceValueConfig {
2973*d5c09012SAndroid Build Coastguard Worker  // Value to replace it with.
2974*d5c09012SAndroid Build Coastguard Worker  Value new_value = 1;
2975*d5c09012SAndroid Build Coastguard Worker}
2976*d5c09012SAndroid Build Coastguard Worker
2977*d5c09012SAndroid Build Coastguard Worker// Replace each input value with a value randomly selected from the dictionary.
2978*d5c09012SAndroid Build Coastguard Workermessage ReplaceDictionaryConfig {
2979*d5c09012SAndroid Build Coastguard Worker  // Type of dictionary.
2980*d5c09012SAndroid Build Coastguard Worker  oneof type {
2981*d5c09012SAndroid Build Coastguard Worker    // A list of words to select from for random replacement. The
2982*d5c09012SAndroid Build Coastguard Worker    // [limits](https://cloud.google.com/sensitive-data-protection/limits) page
2983*d5c09012SAndroid Build Coastguard Worker    // contains details about the size limits of dictionaries.
2984*d5c09012SAndroid Build Coastguard Worker    CustomInfoType.Dictionary.WordList word_list = 1;
2985*d5c09012SAndroid Build Coastguard Worker  }
2986*d5c09012SAndroid Build Coastguard Worker}
2987*d5c09012SAndroid Build Coastguard Worker
2988*d5c09012SAndroid Build Coastguard Worker// Replace each matching finding with the name of the info_type.
2989*d5c09012SAndroid Build Coastguard Workermessage ReplaceWithInfoTypeConfig {}
2990*d5c09012SAndroid Build Coastguard Worker
2991*d5c09012SAndroid Build Coastguard Worker// Redact a given value. For example, if used with an `InfoTypeTransformation`
2992*d5c09012SAndroid Build Coastguard Worker// transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the
2993*d5c09012SAndroid Build Coastguard Worker// output would be 'My phone number is '.
2994*d5c09012SAndroid Build Coastguard Workermessage RedactConfig {}
2995*d5c09012SAndroid Build Coastguard Worker
2996*d5c09012SAndroid Build Coastguard Worker// Characters to skip when doing deidentification of a value. These will be left
2997*d5c09012SAndroid Build Coastguard Worker// alone and skipped.
2998*d5c09012SAndroid Build Coastguard Workermessage CharsToIgnore {
2999*d5c09012SAndroid Build Coastguard Worker  // Convenience enum for indicating common characters to not transform.
3000*d5c09012SAndroid Build Coastguard Worker  enum CommonCharsToIgnore {
3001*d5c09012SAndroid Build Coastguard Worker    // Unused.
3002*d5c09012SAndroid Build Coastguard Worker    COMMON_CHARS_TO_IGNORE_UNSPECIFIED = 0;
3003*d5c09012SAndroid Build Coastguard Worker
3004*d5c09012SAndroid Build Coastguard Worker    // 0-9
3005*d5c09012SAndroid Build Coastguard Worker    NUMERIC = 1;
3006*d5c09012SAndroid Build Coastguard Worker
3007*d5c09012SAndroid Build Coastguard Worker    // A-Z
3008*d5c09012SAndroid Build Coastguard Worker    ALPHA_UPPER_CASE = 2;
3009*d5c09012SAndroid Build Coastguard Worker
3010*d5c09012SAndroid Build Coastguard Worker    // a-z
3011*d5c09012SAndroid Build Coastguard Worker    ALPHA_LOWER_CASE = 3;
3012*d5c09012SAndroid Build Coastguard Worker
3013*d5c09012SAndroid Build Coastguard Worker    // US Punctuation, one of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
3014*d5c09012SAndroid Build Coastguard Worker    PUNCTUATION = 4;
3015*d5c09012SAndroid Build Coastguard Worker
3016*d5c09012SAndroid Build Coastguard Worker    // Whitespace character, one of [ \t\n\x0B\f\r]
3017*d5c09012SAndroid Build Coastguard Worker    WHITESPACE = 5;
3018*d5c09012SAndroid Build Coastguard Worker  }
3019*d5c09012SAndroid Build Coastguard Worker
3020*d5c09012SAndroid Build Coastguard Worker  // Type of characters to skip.
3021*d5c09012SAndroid Build Coastguard Worker  oneof characters {
3022*d5c09012SAndroid Build Coastguard Worker    // Characters to not transform when masking.
3023*d5c09012SAndroid Build Coastguard Worker    string characters_to_skip = 1;
3024*d5c09012SAndroid Build Coastguard Worker
3025*d5c09012SAndroid Build Coastguard Worker    // Common characters to not transform when masking. Useful to avoid removing
3026*d5c09012SAndroid Build Coastguard Worker    // punctuation.
3027*d5c09012SAndroid Build Coastguard Worker    CommonCharsToIgnore common_characters_to_ignore = 2;
3028*d5c09012SAndroid Build Coastguard Worker  }
3029*d5c09012SAndroid Build Coastguard Worker}
3030*d5c09012SAndroid Build Coastguard Worker
3031*d5c09012SAndroid Build Coastguard Worker// Partially mask a string by replacing a given number of characters with a
3032*d5c09012SAndroid Build Coastguard Worker// fixed character. Masking can start from the beginning or end of the string.
3033*d5c09012SAndroid Build Coastguard Worker// This can be used on data of any type (numbers, longs, and so on) and when
3034*d5c09012SAndroid Build Coastguard Worker// de-identifying structured data we'll attempt to preserve the original data's
3035*d5c09012SAndroid Build Coastguard Worker// type. (This allows you to take a long like 123 and modify it to a string like
3036*d5c09012SAndroid Build Coastguard Worker// **3.
3037*d5c09012SAndroid Build Coastguard Workermessage CharacterMaskConfig {
3038*d5c09012SAndroid Build Coastguard Worker  // Character to use to mask the sensitive values&mdash;for example, `*` for an
3039*d5c09012SAndroid Build Coastguard Worker  // alphabetic string such as a name, or `0` for a numeric string such as ZIP
3040*d5c09012SAndroid Build Coastguard Worker  // code or credit card number. This string must have a length of 1. If not
3041*d5c09012SAndroid Build Coastguard Worker  // supplied, this value defaults to `*` for strings, and `0` for digits.
3042*d5c09012SAndroid Build Coastguard Worker  string masking_character = 1;
3043*d5c09012SAndroid Build Coastguard Worker
3044*d5c09012SAndroid Build Coastguard Worker  // Number of characters to mask. If not set, all matching chars will be
3045*d5c09012SAndroid Build Coastguard Worker  // masked. Skipped characters do not count towards this tally.
3046*d5c09012SAndroid Build Coastguard Worker  //
3047*d5c09012SAndroid Build Coastguard Worker  // If `number_to_mask` is negative, this denotes inverse masking. Cloud DLP
3048*d5c09012SAndroid Build Coastguard Worker  // masks all but a number of characters.
3049*d5c09012SAndroid Build Coastguard Worker  // For example, suppose you have the following values:
3050*d5c09012SAndroid Build Coastguard Worker  //
3051*d5c09012SAndroid Build Coastguard Worker  // - `masking_character` is `*`
3052*d5c09012SAndroid Build Coastguard Worker  // - `number_to_mask` is `-4`
3053*d5c09012SAndroid Build Coastguard Worker  // - `reverse_order` is `false`
3054*d5c09012SAndroid Build Coastguard Worker  // - `CharsToIgnore` includes `-`
3055*d5c09012SAndroid Build Coastguard Worker  // - Input string is `1234-5678-9012-3456`
3056*d5c09012SAndroid Build Coastguard Worker  //
3057*d5c09012SAndroid Build Coastguard Worker  // The resulting de-identified string is
3058*d5c09012SAndroid Build Coastguard Worker  // `****-****-****-3456`. Cloud DLP masks all but the last four characters.
3059*d5c09012SAndroid Build Coastguard Worker  // If `reverse_order` is `true`, all but the first four characters are masked
3060*d5c09012SAndroid Build Coastguard Worker  // as `1234-****-****-****`.
3061*d5c09012SAndroid Build Coastguard Worker  int32 number_to_mask = 2;
3062*d5c09012SAndroid Build Coastguard Worker
3063*d5c09012SAndroid Build Coastguard Worker  // Mask characters in reverse order. For example, if `masking_character` is
3064*d5c09012SAndroid Build Coastguard Worker  // `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the
3065*d5c09012SAndroid Build Coastguard Worker  // input string `1234-5678-9012-3456` is masked as `00000000000000-3456`.
3066*d5c09012SAndroid Build Coastguard Worker  // If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order`
3067*d5c09012SAndroid Build Coastguard Worker  // is `true`, then the string `12345` is masked as `12***`.
3068*d5c09012SAndroid Build Coastguard Worker  bool reverse_order = 3;
3069*d5c09012SAndroid Build Coastguard Worker
3070*d5c09012SAndroid Build Coastguard Worker  // When masking a string, items in this list will be skipped when replacing
3071*d5c09012SAndroid Build Coastguard Worker  // characters. For example, if the input string is `555-555-5555` and you
3072*d5c09012SAndroid Build Coastguard Worker  // instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP
3073*d5c09012SAndroid Build Coastguard Worker  // returns `***-**5-5555`.
3074*d5c09012SAndroid Build Coastguard Worker  repeated CharsToIgnore characters_to_ignore = 4;
3075*d5c09012SAndroid Build Coastguard Worker}
3076*d5c09012SAndroid Build Coastguard Worker
3077*d5c09012SAndroid Build Coastguard Worker// Buckets values based on fixed size ranges. The
3078*d5c09012SAndroid Build Coastguard Worker// Bucketing transformation can provide all of this functionality,
3079*d5c09012SAndroid Build Coastguard Worker// but requires more configuration. This message is provided as a convenience to
3080*d5c09012SAndroid Build Coastguard Worker// the user for simple bucketing strategies.
3081*d5c09012SAndroid Build Coastguard Worker//
3082*d5c09012SAndroid Build Coastguard Worker// The transformed value will be a hyphenated string of
3083*d5c09012SAndroid Build Coastguard Worker// {lower_bound}-{upper_bound}. For example, if lower_bound = 10 and upper_bound
3084*d5c09012SAndroid Build Coastguard Worker// = 20, all values that are within this bucket will be replaced with "10-20".
3085*d5c09012SAndroid Build Coastguard Worker//
3086*d5c09012SAndroid Build Coastguard Worker// This can be used on data of type: double, long.
3087*d5c09012SAndroid Build Coastguard Worker//
3088*d5c09012SAndroid Build Coastguard Worker// If the bound Value type differs from the type of data
3089*d5c09012SAndroid Build Coastguard Worker// being transformed, we will first attempt converting the type of the data to
3090*d5c09012SAndroid Build Coastguard Worker// be transformed to match the type of the bound before comparing.
3091*d5c09012SAndroid Build Coastguard Worker//
3092*d5c09012SAndroid Build Coastguard Worker// See
3093*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to
3094*d5c09012SAndroid Build Coastguard Worker// learn more.
3095*d5c09012SAndroid Build Coastguard Workermessage FixedSizeBucketingConfig {
3096*d5c09012SAndroid Build Coastguard Worker  // Required. Lower bound value of buckets. All values less than `lower_bound`
3097*d5c09012SAndroid Build Coastguard Worker  // are grouped together into a single bucket; for example if `lower_bound` =
3098*d5c09012SAndroid Build Coastguard Worker  // 10, then all values less than 10 are replaced with the value "-10".
3099*d5c09012SAndroid Build Coastguard Worker  Value lower_bound = 1 [(google.api.field_behavior) = REQUIRED];
3100*d5c09012SAndroid Build Coastguard Worker
3101*d5c09012SAndroid Build Coastguard Worker  // Required. Upper bound value of buckets. All values greater than upper_bound
3102*d5c09012SAndroid Build Coastguard Worker  // are grouped together into a single bucket; for example if `upper_bound` =
3103*d5c09012SAndroid Build Coastguard Worker  // 89, then all values greater than 89 are replaced with the value "89+".
3104*d5c09012SAndroid Build Coastguard Worker  Value upper_bound = 2 [(google.api.field_behavior) = REQUIRED];
3105*d5c09012SAndroid Build Coastguard Worker
3106*d5c09012SAndroid Build Coastguard Worker  // Required. Size of each bucket (except for minimum and maximum buckets). So
3107*d5c09012SAndroid Build Coastguard Worker  // if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
3108*d5c09012SAndroid Build Coastguard Worker  // following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
3109*d5c09012SAndroid Build Coastguard Worker  // 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.
3110*d5c09012SAndroid Build Coastguard Worker  double bucket_size = 3 [(google.api.field_behavior) = REQUIRED];
3111*d5c09012SAndroid Build Coastguard Worker}
3112*d5c09012SAndroid Build Coastguard Worker
3113*d5c09012SAndroid Build Coastguard Worker// Generalization function that buckets values based on ranges. The ranges and
3114*d5c09012SAndroid Build Coastguard Worker// replacement values are dynamically provided by the user for custom behavior,
3115*d5c09012SAndroid Build Coastguard Worker// such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH
3116*d5c09012SAndroid Build Coastguard Worker// This can be used on
3117*d5c09012SAndroid Build Coastguard Worker// data of type: number, long, string, timestamp.
3118*d5c09012SAndroid Build Coastguard Worker// If the bound `Value` type differs from the type of data being transformed, we
3119*d5c09012SAndroid Build Coastguard Worker// will first attempt converting the type of the data to be transformed to match
3120*d5c09012SAndroid Build Coastguard Worker// the type of the bound before comparing.
3121*d5c09012SAndroid Build Coastguard Worker// See
3122*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-bucketing to
3123*d5c09012SAndroid Build Coastguard Worker// learn more.
3124*d5c09012SAndroid Build Coastguard Workermessage BucketingConfig {
3125*d5c09012SAndroid Build Coastguard Worker  // Bucket is represented as a range, along with replacement values.
3126*d5c09012SAndroid Build Coastguard Worker  message Bucket {
3127*d5c09012SAndroid Build Coastguard Worker    // Lower bound of the range, inclusive. Type should be the same as max if
3128*d5c09012SAndroid Build Coastguard Worker    // used.
3129*d5c09012SAndroid Build Coastguard Worker    Value min = 1;
3130*d5c09012SAndroid Build Coastguard Worker
3131*d5c09012SAndroid Build Coastguard Worker    // Upper bound of the range, exclusive; type must match min.
3132*d5c09012SAndroid Build Coastguard Worker    Value max = 2;
3133*d5c09012SAndroid Build Coastguard Worker
3134*d5c09012SAndroid Build Coastguard Worker    // Required. Replacement value for this bucket.
3135*d5c09012SAndroid Build Coastguard Worker    Value replacement_value = 3 [(google.api.field_behavior) = REQUIRED];
3136*d5c09012SAndroid Build Coastguard Worker  }
3137*d5c09012SAndroid Build Coastguard Worker
3138*d5c09012SAndroid Build Coastguard Worker  // Set of buckets. Ranges must be non-overlapping.
3139*d5c09012SAndroid Build Coastguard Worker  repeated Bucket buckets = 1;
3140*d5c09012SAndroid Build Coastguard Worker}
3141*d5c09012SAndroid Build Coastguard Worker
3142*d5c09012SAndroid Build Coastguard Worker// Replaces an identifier with a surrogate using Format Preserving Encryption
3143*d5c09012SAndroid Build Coastguard Worker// (FPE) with the FFX mode of operation; however when used in the
3144*d5c09012SAndroid Build Coastguard Worker// `ReidentifyContent` API method, it serves the opposite function by reversing
3145*d5c09012SAndroid Build Coastguard Worker// the surrogate back into the original identifier. The identifier must be
3146*d5c09012SAndroid Build Coastguard Worker// encoded as ASCII. For a given crypto key and context, the same identifier
3147*d5c09012SAndroid Build Coastguard Worker// will be replaced with the same surrogate. Identifiers must be at least two
3148*d5c09012SAndroid Build Coastguard Worker// characters long. In the case that the identifier is the empty string, it will
3149*d5c09012SAndroid Build Coastguard Worker// be skipped. See
3150*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/pseudonymization to
3151*d5c09012SAndroid Build Coastguard Worker// learn more.
3152*d5c09012SAndroid Build Coastguard Worker//
3153*d5c09012SAndroid Build Coastguard Worker// Note: We recommend using  CryptoDeterministicConfig for all use cases which
3154*d5c09012SAndroid Build Coastguard Worker// do not require preserving the input alphabet space and size, plus warrant
3155*d5c09012SAndroid Build Coastguard Worker// referential integrity.
3156*d5c09012SAndroid Build Coastguard Workermessage CryptoReplaceFfxFpeConfig {
3157*d5c09012SAndroid Build Coastguard Worker  // These are commonly used subsets of the alphabet that the FFX mode
3158*d5c09012SAndroid Build Coastguard Worker  // natively supports. In the algorithm, the alphabet is selected using
3159*d5c09012SAndroid Build Coastguard Worker  // the "radix". Therefore each corresponds to a particular radix.
3160*d5c09012SAndroid Build Coastguard Worker  enum FfxCommonNativeAlphabet {
3161*d5c09012SAndroid Build Coastguard Worker    // Unused.
3162*d5c09012SAndroid Build Coastguard Worker    FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED = 0;
3163*d5c09012SAndroid Build Coastguard Worker
3164*d5c09012SAndroid Build Coastguard Worker    // `[0-9]` (radix of 10)
3165*d5c09012SAndroid Build Coastguard Worker    NUMERIC = 1;
3166*d5c09012SAndroid Build Coastguard Worker
3167*d5c09012SAndroid Build Coastguard Worker    // `[0-9A-F]` (radix of 16)
3168*d5c09012SAndroid Build Coastguard Worker    HEXADECIMAL = 2;
3169*d5c09012SAndroid Build Coastguard Worker
3170*d5c09012SAndroid Build Coastguard Worker    // `[0-9A-Z]` (radix of 36)
3171*d5c09012SAndroid Build Coastguard Worker    UPPER_CASE_ALPHA_NUMERIC = 3;
3172*d5c09012SAndroid Build Coastguard Worker
3173*d5c09012SAndroid Build Coastguard Worker    // `[0-9A-Za-z]` (radix of 62)
3174*d5c09012SAndroid Build Coastguard Worker    ALPHA_NUMERIC = 4;
3175*d5c09012SAndroid Build Coastguard Worker  }
3176*d5c09012SAndroid Build Coastguard Worker
3177*d5c09012SAndroid Build Coastguard Worker  // Required. The key used by the encryption algorithm.
3178*d5c09012SAndroid Build Coastguard Worker  CryptoKey crypto_key = 1 [(google.api.field_behavior) = REQUIRED];
3179*d5c09012SAndroid Build Coastguard Worker
3180*d5c09012SAndroid Build Coastguard Worker  // The 'tweak', a context may be used for higher security since the same
3181*d5c09012SAndroid Build Coastguard Worker  // identifier in two different contexts won't be given the same surrogate. If
3182*d5c09012SAndroid Build Coastguard Worker  // the context is not set, a default tweak will be used.
3183*d5c09012SAndroid Build Coastguard Worker  //
3184*d5c09012SAndroid Build Coastguard Worker  // If the context is set but:
3185*d5c09012SAndroid Build Coastguard Worker  //
3186*d5c09012SAndroid Build Coastguard Worker  // 1. there is no record present when transforming a given value or
3187*d5c09012SAndroid Build Coastguard Worker  // 1. the field is not present when transforming a given value,
3188*d5c09012SAndroid Build Coastguard Worker  //
3189*d5c09012SAndroid Build Coastguard Worker  // a default tweak will be used.
3190*d5c09012SAndroid Build Coastguard Worker  //
3191*d5c09012SAndroid Build Coastguard Worker  // Note that case (1) is expected when an `InfoTypeTransformation` is
3192*d5c09012SAndroid Build Coastguard Worker  // applied to both structured and unstructured `ContentItem`s.
3193*d5c09012SAndroid Build Coastguard Worker  // Currently, the referenced field may be of value type integer or string.
3194*d5c09012SAndroid Build Coastguard Worker  //
3195*d5c09012SAndroid Build Coastguard Worker  // The tweak is constructed as a sequence of bytes in big endian byte order
3196*d5c09012SAndroid Build Coastguard Worker  // such that:
3197*d5c09012SAndroid Build Coastguard Worker  //
3198*d5c09012SAndroid Build Coastguard Worker  // - a 64 bit integer is encoded followed by a single byte of value 1
3199*d5c09012SAndroid Build Coastguard Worker  // - a string is encoded in UTF-8 format followed by a single byte of value 2
3200*d5c09012SAndroid Build Coastguard Worker  FieldId context = 2;
3201*d5c09012SAndroid Build Coastguard Worker
3202*d5c09012SAndroid Build Coastguard Worker  // Choose an alphabet which the data being transformed will be made up of.
3203*d5c09012SAndroid Build Coastguard Worker  oneof alphabet {
3204*d5c09012SAndroid Build Coastguard Worker    // Common alphabets.
3205*d5c09012SAndroid Build Coastguard Worker    FfxCommonNativeAlphabet common_alphabet = 4;
3206*d5c09012SAndroid Build Coastguard Worker
3207*d5c09012SAndroid Build Coastguard Worker    // This is supported by mapping these to the alphanumeric characters
3208*d5c09012SAndroid Build Coastguard Worker    // that the FFX mode natively supports. This happens before/after
3209*d5c09012SAndroid Build Coastguard Worker    // encryption/decryption.
3210*d5c09012SAndroid Build Coastguard Worker    // Each character listed must appear only once.
3211*d5c09012SAndroid Build Coastguard Worker    // Number of characters must be in the range [2, 95].
3212*d5c09012SAndroid Build Coastguard Worker    // This must be encoded as ASCII.
3213*d5c09012SAndroid Build Coastguard Worker    // The order of characters does not matter.
3214*d5c09012SAndroid Build Coastguard Worker    // The full list of allowed characters is:
3215*d5c09012SAndroid Build Coastguard Worker    // <code>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
3216*d5c09012SAndroid Build Coastguard Worker    // ~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/</code>
3217*d5c09012SAndroid Build Coastguard Worker    string custom_alphabet = 5;
3218*d5c09012SAndroid Build Coastguard Worker
3219*d5c09012SAndroid Build Coastguard Worker    // The native way to select the alphabet. Must be in the range [2, 95].
3220*d5c09012SAndroid Build Coastguard Worker    int32 radix = 6;
3221*d5c09012SAndroid Build Coastguard Worker  }
3222*d5c09012SAndroid Build Coastguard Worker
3223*d5c09012SAndroid Build Coastguard Worker  // The custom infoType to annotate the surrogate with.
3224*d5c09012SAndroid Build Coastguard Worker  // This annotation will be applied to the surrogate by prefixing it with
3225*d5c09012SAndroid Build Coastguard Worker  // the name of the custom infoType followed by the number of
3226*d5c09012SAndroid Build Coastguard Worker  // characters comprising the surrogate. The following scheme defines the
3227*d5c09012SAndroid Build Coastguard Worker  // format: info_type_name(surrogate_character_count):surrogate
3228*d5c09012SAndroid Build Coastguard Worker  //
3229*d5c09012SAndroid Build Coastguard Worker  // For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and
3230*d5c09012SAndroid Build Coastguard Worker  // the surrogate is 'abc', the full replacement value
3231*d5c09012SAndroid Build Coastguard Worker  // will be: 'MY_TOKEN_INFO_TYPE(3):abc'
3232*d5c09012SAndroid Build Coastguard Worker  //
3233*d5c09012SAndroid Build Coastguard Worker  // This annotation identifies the surrogate when inspecting content using the
3234*d5c09012SAndroid Build Coastguard Worker  // custom infoType
3235*d5c09012SAndroid Build Coastguard Worker  // [`SurrogateType`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/InspectConfig#surrogatetype).
3236*d5c09012SAndroid Build Coastguard Worker  // This facilitates reversal of the surrogate when it occurs in free text.
3237*d5c09012SAndroid Build Coastguard Worker  //
3238*d5c09012SAndroid Build Coastguard Worker  // In order for inspection to work properly, the name of this infoType must
3239*d5c09012SAndroid Build Coastguard Worker  // not occur naturally anywhere in your data; otherwise, inspection may
3240*d5c09012SAndroid Build Coastguard Worker  // find a surrogate that does not correspond to an actual identifier.
3241*d5c09012SAndroid Build Coastguard Worker  // Therefore, choose your custom infoType name carefully after considering
3242*d5c09012SAndroid Build Coastguard Worker  // what your data looks like. One way to select a name that has a high chance
3243*d5c09012SAndroid Build Coastguard Worker  // of yielding reliable detection is to include one or more unicode characters
3244*d5c09012SAndroid Build Coastguard Worker  // that are highly improbable to exist in your data.
3245*d5c09012SAndroid Build Coastguard Worker  // For example, assuming your data is entered from a regular ASCII keyboard,
3246*d5c09012SAndroid Build Coastguard Worker  // the symbol with the hex code point 29DD might be used like so:
3247*d5c09012SAndroid Build Coastguard Worker  // ⧝MY_TOKEN_TYPE
3248*d5c09012SAndroid Build Coastguard Worker  InfoType surrogate_info_type = 8;
3249*d5c09012SAndroid Build Coastguard Worker}
3250*d5c09012SAndroid Build Coastguard Worker
3251*d5c09012SAndroid Build Coastguard Worker// This is a data encryption key (DEK) (as opposed to
3252*d5c09012SAndroid Build Coastguard Worker// a key encryption key (KEK) stored by Cloud Key Management Service
3253*d5c09012SAndroid Build Coastguard Worker// (Cloud KMS).
3254*d5c09012SAndroid Build Coastguard Worker// When using Cloud KMS to wrap or unwrap a DEK, be sure to set an appropriate
3255*d5c09012SAndroid Build Coastguard Worker// IAM policy on the KEK to ensure an attacker cannot
3256*d5c09012SAndroid Build Coastguard Worker// unwrap the DEK.
3257*d5c09012SAndroid Build Coastguard Workermessage CryptoKey {
3258*d5c09012SAndroid Build Coastguard Worker  // Sources of crypto keys.
3259*d5c09012SAndroid Build Coastguard Worker  oneof source {
3260*d5c09012SAndroid Build Coastguard Worker    // Transient crypto key
3261*d5c09012SAndroid Build Coastguard Worker    TransientCryptoKey transient = 1;
3262*d5c09012SAndroid Build Coastguard Worker
3263*d5c09012SAndroid Build Coastguard Worker    // Unwrapped crypto key
3264*d5c09012SAndroid Build Coastguard Worker    UnwrappedCryptoKey unwrapped = 2;
3265*d5c09012SAndroid Build Coastguard Worker
3266*d5c09012SAndroid Build Coastguard Worker    // Key wrapped using Cloud KMS
3267*d5c09012SAndroid Build Coastguard Worker    KmsWrappedCryptoKey kms_wrapped = 3;
3268*d5c09012SAndroid Build Coastguard Worker  }
3269*d5c09012SAndroid Build Coastguard Worker}
3270*d5c09012SAndroid Build Coastguard Worker
3271*d5c09012SAndroid Build Coastguard Worker// Use this to have a random data crypto key generated.
3272*d5c09012SAndroid Build Coastguard Worker// It will be discarded after the request finishes.
3273*d5c09012SAndroid Build Coastguard Workermessage TransientCryptoKey {
3274*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the key.
3275*d5c09012SAndroid Build Coastguard Worker  // This is an arbitrary string used to differentiate different keys.
3276*d5c09012SAndroid Build Coastguard Worker  // A unique key is generated per name: two separate `TransientCryptoKey`
3277*d5c09012SAndroid Build Coastguard Worker  // protos share the same generated key if their names are the same.
3278*d5c09012SAndroid Build Coastguard Worker  // When the data crypto key is generated, this name is not used in any way
3279*d5c09012SAndroid Build Coastguard Worker  // (repeating the api call will result in a different key being generated).
3280*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
3281*d5c09012SAndroid Build Coastguard Worker}
3282*d5c09012SAndroid Build Coastguard Worker
3283*d5c09012SAndroid Build Coastguard Worker// Using raw keys is prone to security risks due to accidentally
3284*d5c09012SAndroid Build Coastguard Worker// leaking the key. Choose another type of key if possible.
3285*d5c09012SAndroid Build Coastguard Workermessage UnwrappedCryptoKey {
3286*d5c09012SAndroid Build Coastguard Worker  // Required. A 128/192/256 bit key.
3287*d5c09012SAndroid Build Coastguard Worker  bytes key = 1 [(google.api.field_behavior) = REQUIRED];
3288*d5c09012SAndroid Build Coastguard Worker}
3289*d5c09012SAndroid Build Coastguard Worker
3290*d5c09012SAndroid Build Coastguard Worker// Include to use an existing data crypto key wrapped by KMS.
3291*d5c09012SAndroid Build Coastguard Worker// The wrapped key must be a 128-, 192-, or 256-bit key.
3292*d5c09012SAndroid Build Coastguard Worker// Authorization requires the following IAM permissions when sending a request
3293*d5c09012SAndroid Build Coastguard Worker// to perform a crypto transformation using a KMS-wrapped crypto key:
3294*d5c09012SAndroid Build Coastguard Worker// dlp.kms.encrypt
3295*d5c09012SAndroid Build Coastguard Worker//
3296*d5c09012SAndroid Build Coastguard Worker// For more information, see [Creating a wrapped key]
3297*d5c09012SAndroid Build Coastguard Worker// (https://cloud.google.com/sensitive-data-protection/docs/create-wrapped-key).
3298*d5c09012SAndroid Build Coastguard Worker//
3299*d5c09012SAndroid Build Coastguard Worker// Note: When you use Cloud KMS for cryptographic operations,
3300*d5c09012SAndroid Build Coastguard Worker// [charges apply](https://cloud.google.com/kms/pricing).
3301*d5c09012SAndroid Build Coastguard Workermessage KmsWrappedCryptoKey {
3302*d5c09012SAndroid Build Coastguard Worker  // Required. The wrapped data crypto key.
3303*d5c09012SAndroid Build Coastguard Worker  bytes wrapped_key = 1 [(google.api.field_behavior) = REQUIRED];
3304*d5c09012SAndroid Build Coastguard Worker
3305*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the KMS CryptoKey to use for unwrapping.
3306*d5c09012SAndroid Build Coastguard Worker  string crypto_key_name = 2 [(google.api.field_behavior) = REQUIRED];
3307*d5c09012SAndroid Build Coastguard Worker}
3308*d5c09012SAndroid Build Coastguard Worker
3309*d5c09012SAndroid Build Coastguard Worker// Shifts dates by random number of days, with option to be consistent for the
3310*d5c09012SAndroid Build Coastguard Worker// same context. See
3311*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-date-shifting
3312*d5c09012SAndroid Build Coastguard Worker// to learn more.
3313*d5c09012SAndroid Build Coastguard Workermessage DateShiftConfig {
3314*d5c09012SAndroid Build Coastguard Worker  // Required. Range of shift in days. Actual shift will be selected at random
3315*d5c09012SAndroid Build Coastguard Worker  // within this range (inclusive ends). Negative means shift to earlier in
3316*d5c09012SAndroid Build Coastguard Worker  // time. Must not be more than 365250 days (1000 years) each direction.
3317*d5c09012SAndroid Build Coastguard Worker  //
3318*d5c09012SAndroid Build Coastguard Worker  // For example, 3 means shift date to at most 3 days into the future.
3319*d5c09012SAndroid Build Coastguard Worker  int32 upper_bound_days = 1 [(google.api.field_behavior) = REQUIRED];
3320*d5c09012SAndroid Build Coastguard Worker
3321*d5c09012SAndroid Build Coastguard Worker  // Required. For example, -5 means shift date to at most 5 days back in the
3322*d5c09012SAndroid Build Coastguard Worker  // past.
3323*d5c09012SAndroid Build Coastguard Worker  int32 lower_bound_days = 2 [(google.api.field_behavior) = REQUIRED];
3324*d5c09012SAndroid Build Coastguard Worker
3325*d5c09012SAndroid Build Coastguard Worker  // Points to the field that contains the context, for example, an entity id.
3326*d5c09012SAndroid Build Coastguard Worker  // If set, must also set cryptoKey. If set, shift will be consistent for the
3327*d5c09012SAndroid Build Coastguard Worker  // given context.
3328*d5c09012SAndroid Build Coastguard Worker  FieldId context = 3;
3329*d5c09012SAndroid Build Coastguard Worker
3330*d5c09012SAndroid Build Coastguard Worker  // Method for calculating shift that takes context into consideration. If
3331*d5c09012SAndroid Build Coastguard Worker  // set, must also set context. Can only be applied to table items.
3332*d5c09012SAndroid Build Coastguard Worker  oneof method {
3333*d5c09012SAndroid Build Coastguard Worker    // Causes the shift to be computed based on this key and the context. This
3334*d5c09012SAndroid Build Coastguard Worker    // results in the same shift for the same context and crypto_key. If
3335*d5c09012SAndroid Build Coastguard Worker    // set, must also set context. Can only be applied to table items.
3336*d5c09012SAndroid Build Coastguard Worker    CryptoKey crypto_key = 4;
3337*d5c09012SAndroid Build Coastguard Worker  }
3338*d5c09012SAndroid Build Coastguard Worker}
3339*d5c09012SAndroid Build Coastguard Worker
3340*d5c09012SAndroid Build Coastguard Worker// A type of transformation that will scan unstructured text and
3341*d5c09012SAndroid Build Coastguard Worker// apply various `PrimitiveTransformation`s to each finding, where the
3342*d5c09012SAndroid Build Coastguard Worker// transformation is applied to only values that were identified as a specific
3343*d5c09012SAndroid Build Coastguard Worker// info_type.
3344*d5c09012SAndroid Build Coastguard Workermessage InfoTypeTransformations {
3345*d5c09012SAndroid Build Coastguard Worker  // A transformation to apply to text that is identified as a specific
3346*d5c09012SAndroid Build Coastguard Worker  // info_type.
3347*d5c09012SAndroid Build Coastguard Worker  message InfoTypeTransformation {
3348*d5c09012SAndroid Build Coastguard Worker    // InfoTypes to apply the transformation to. An empty list will cause
3349*d5c09012SAndroid Build Coastguard Worker    // this transformation to apply to all findings that correspond to
3350*d5c09012SAndroid Build Coastguard Worker    // infoTypes that were requested in `InspectConfig`.
3351*d5c09012SAndroid Build Coastguard Worker    repeated InfoType info_types = 1;
3352*d5c09012SAndroid Build Coastguard Worker
3353*d5c09012SAndroid Build Coastguard Worker    // Required. Primitive transformation to apply to the infoType.
3354*d5c09012SAndroid Build Coastguard Worker    PrimitiveTransformation primitive_transformation = 2
3355*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = REQUIRED];
3356*d5c09012SAndroid Build Coastguard Worker  }
3357*d5c09012SAndroid Build Coastguard Worker
3358*d5c09012SAndroid Build Coastguard Worker  // Required. Transformation for each infoType. Cannot specify more than one
3359*d5c09012SAndroid Build Coastguard Worker  // for a given infoType.
3360*d5c09012SAndroid Build Coastguard Worker  repeated InfoTypeTransformation transformations = 1
3361*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
3362*d5c09012SAndroid Build Coastguard Worker}
3363*d5c09012SAndroid Build Coastguard Worker
3364*d5c09012SAndroid Build Coastguard Worker// The transformation to apply to the field.
3365*d5c09012SAndroid Build Coastguard Workermessage FieldTransformation {
3366*d5c09012SAndroid Build Coastguard Worker  // Required. Input field(s) to apply the transformation to.
3367*d5c09012SAndroid Build Coastguard Worker  // When you have columns that reference their position within a list,
3368*d5c09012SAndroid Build Coastguard Worker  // omit the index from the FieldId. FieldId name matching ignores the index.
3369*d5c09012SAndroid Build Coastguard Worker  // For example, instead of "contact.nums[0].type", use "contact.nums.type".
3370*d5c09012SAndroid Build Coastguard Worker  repeated FieldId fields = 1 [(google.api.field_behavior) = REQUIRED];
3371*d5c09012SAndroid Build Coastguard Worker
3372*d5c09012SAndroid Build Coastguard Worker  // Only apply the transformation if the condition evaluates to true for the
3373*d5c09012SAndroid Build Coastguard Worker  // given `RecordCondition`. The conditions are allowed to reference fields
3374*d5c09012SAndroid Build Coastguard Worker  // that are not used in the actual transformation.
3375*d5c09012SAndroid Build Coastguard Worker  //
3376*d5c09012SAndroid Build Coastguard Worker  // Example Use Cases:
3377*d5c09012SAndroid Build Coastguard Worker  //
3378*d5c09012SAndroid Build Coastguard Worker  // - Apply a different bucket transformation to an age column if the zip code
3379*d5c09012SAndroid Build Coastguard Worker  // column for the same record is within a specific range.
3380*d5c09012SAndroid Build Coastguard Worker  // - Redact a field if the date of birth field is greater than 85.
3381*d5c09012SAndroid Build Coastguard Worker  RecordCondition condition = 3;
3382*d5c09012SAndroid Build Coastguard Worker
3383*d5c09012SAndroid Build Coastguard Worker  // Transformation to apply. [required]
3384*d5c09012SAndroid Build Coastguard Worker  oneof transformation {
3385*d5c09012SAndroid Build Coastguard Worker    // Apply the transformation to the entire field.
3386*d5c09012SAndroid Build Coastguard Worker    PrimitiveTransformation primitive_transformation = 4;
3387*d5c09012SAndroid Build Coastguard Worker
3388*d5c09012SAndroid Build Coastguard Worker    // Treat the contents of the field as free text, and selectively
3389*d5c09012SAndroid Build Coastguard Worker    // transform content that matches an `InfoType`.
3390*d5c09012SAndroid Build Coastguard Worker    InfoTypeTransformations info_type_transformations = 5;
3391*d5c09012SAndroid Build Coastguard Worker  }
3392*d5c09012SAndroid Build Coastguard Worker}
3393*d5c09012SAndroid Build Coastguard Worker
3394*d5c09012SAndroid Build Coastguard Worker// A type of transformation that is applied over structured data such as a
3395*d5c09012SAndroid Build Coastguard Worker// table.
3396*d5c09012SAndroid Build Coastguard Workermessage RecordTransformations {
3397*d5c09012SAndroid Build Coastguard Worker  // Transform the record by applying various field transformations.
3398*d5c09012SAndroid Build Coastguard Worker  repeated FieldTransformation field_transformations = 1;
3399*d5c09012SAndroid Build Coastguard Worker
3400*d5c09012SAndroid Build Coastguard Worker  // Configuration defining which records get suppressed entirely. Records that
3401*d5c09012SAndroid Build Coastguard Worker  // match any suppression rule are omitted from the output.
3402*d5c09012SAndroid Build Coastguard Worker  repeated RecordSuppression record_suppressions = 2;
3403*d5c09012SAndroid Build Coastguard Worker}
3404*d5c09012SAndroid Build Coastguard Worker
3405*d5c09012SAndroid Build Coastguard Worker// Configuration to suppress records whose suppression conditions evaluate to
3406*d5c09012SAndroid Build Coastguard Worker// true.
3407*d5c09012SAndroid Build Coastguard Workermessage RecordSuppression {
3408*d5c09012SAndroid Build Coastguard Worker  // A condition that when it evaluates to true will result in the record being
3409*d5c09012SAndroid Build Coastguard Worker  // evaluated to be suppressed from the transformed content.
3410*d5c09012SAndroid Build Coastguard Worker  RecordCondition condition = 1;
3411*d5c09012SAndroid Build Coastguard Worker}
3412*d5c09012SAndroid Build Coastguard Worker
3413*d5c09012SAndroid Build Coastguard Worker// A condition for determining whether a transformation should be applied to
3414*d5c09012SAndroid Build Coastguard Worker// a field.
3415*d5c09012SAndroid Build Coastguard Workermessage RecordCondition {
3416*d5c09012SAndroid Build Coastguard Worker  // The field type of `value` and `field` do not need to match to be
3417*d5c09012SAndroid Build Coastguard Worker  // considered equal, but not all comparisons are possible.
3418*d5c09012SAndroid Build Coastguard Worker  // EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
3419*d5c09012SAndroid Build Coastguard Worker  // but all other comparisons are invalid with incompatible types.
3420*d5c09012SAndroid Build Coastguard Worker  // A `value` of type:
3421*d5c09012SAndroid Build Coastguard Worker  //
3422*d5c09012SAndroid Build Coastguard Worker  // - `string` can be compared against all other types
3423*d5c09012SAndroid Build Coastguard Worker  // - `boolean` can only be compared against other booleans
3424*d5c09012SAndroid Build Coastguard Worker  // - `integer` can be compared against doubles or a string if the string value
3425*d5c09012SAndroid Build Coastguard Worker  // can be parsed as an integer.
3426*d5c09012SAndroid Build Coastguard Worker  // - `double` can be compared against integers or a string if the string can
3427*d5c09012SAndroid Build Coastguard Worker  // be parsed as a double.
3428*d5c09012SAndroid Build Coastguard Worker  // - `Timestamp` can be compared against strings in RFC 3339 date string
3429*d5c09012SAndroid Build Coastguard Worker  // format.
3430*d5c09012SAndroid Build Coastguard Worker  // - `TimeOfDay` can be compared against timestamps and strings in the format
3431*d5c09012SAndroid Build Coastguard Worker  // of 'HH:mm:ss'.
3432*d5c09012SAndroid Build Coastguard Worker  //
3433*d5c09012SAndroid Build Coastguard Worker  // If we fail to compare do to type mismatch, a warning will be given and
3434*d5c09012SAndroid Build Coastguard Worker  // the condition will evaluate to false.
3435*d5c09012SAndroid Build Coastguard Worker  message Condition {
3436*d5c09012SAndroid Build Coastguard Worker    // Required. Field within the record this condition is evaluated against.
3437*d5c09012SAndroid Build Coastguard Worker    FieldId field = 1 [(google.api.field_behavior) = REQUIRED];
3438*d5c09012SAndroid Build Coastguard Worker
3439*d5c09012SAndroid Build Coastguard Worker    // Required. Operator used to compare the field or infoType to the value.
3440*d5c09012SAndroid Build Coastguard Worker    RelationalOperator operator = 3 [(google.api.field_behavior) = REQUIRED];
3441*d5c09012SAndroid Build Coastguard Worker
3442*d5c09012SAndroid Build Coastguard Worker    // Value to compare against. [Mandatory, except for `EXISTS` tests.]
3443*d5c09012SAndroid Build Coastguard Worker    Value value = 4;
3444*d5c09012SAndroid Build Coastguard Worker  }
3445*d5c09012SAndroid Build Coastguard Worker
3446*d5c09012SAndroid Build Coastguard Worker  // A collection of conditions.
3447*d5c09012SAndroid Build Coastguard Worker  message Conditions {
3448*d5c09012SAndroid Build Coastguard Worker    // A collection of conditions.
3449*d5c09012SAndroid Build Coastguard Worker    repeated Condition conditions = 1;
3450*d5c09012SAndroid Build Coastguard Worker  }
3451*d5c09012SAndroid Build Coastguard Worker
3452*d5c09012SAndroid Build Coastguard Worker  // An expression, consisting of an operator and conditions.
3453*d5c09012SAndroid Build Coastguard Worker  message Expressions {
3454*d5c09012SAndroid Build Coastguard Worker    // Logical operators for conditional checks.
3455*d5c09012SAndroid Build Coastguard Worker    enum LogicalOperator {
3456*d5c09012SAndroid Build Coastguard Worker      // Unused
3457*d5c09012SAndroid Build Coastguard Worker      LOGICAL_OPERATOR_UNSPECIFIED = 0;
3458*d5c09012SAndroid Build Coastguard Worker
3459*d5c09012SAndroid Build Coastguard Worker      // Conditional AND
3460*d5c09012SAndroid Build Coastguard Worker      AND = 1;
3461*d5c09012SAndroid Build Coastguard Worker    }
3462*d5c09012SAndroid Build Coastguard Worker
3463*d5c09012SAndroid Build Coastguard Worker    // The operator to apply to the result of conditions. Default and currently
3464*d5c09012SAndroid Build Coastguard Worker    // only supported value is `AND`.
3465*d5c09012SAndroid Build Coastguard Worker    LogicalOperator logical_operator = 1;
3466*d5c09012SAndroid Build Coastguard Worker
3467*d5c09012SAndroid Build Coastguard Worker    // Expression types.
3468*d5c09012SAndroid Build Coastguard Worker    oneof type {
3469*d5c09012SAndroid Build Coastguard Worker      // Conditions to apply to the expression.
3470*d5c09012SAndroid Build Coastguard Worker      Conditions conditions = 3;
3471*d5c09012SAndroid Build Coastguard Worker    }
3472*d5c09012SAndroid Build Coastguard Worker  }
3473*d5c09012SAndroid Build Coastguard Worker
3474*d5c09012SAndroid Build Coastguard Worker  // An expression.
3475*d5c09012SAndroid Build Coastguard Worker  Expressions expressions = 3;
3476*d5c09012SAndroid Build Coastguard Worker}
3477*d5c09012SAndroid Build Coastguard Worker
3478*d5c09012SAndroid Build Coastguard Worker// Overview of the modifications that occurred.
3479*d5c09012SAndroid Build Coastguard Workermessage TransformationOverview {
3480*d5c09012SAndroid Build Coastguard Worker  // Total size in bytes that were transformed in some way.
3481*d5c09012SAndroid Build Coastguard Worker  int64 transformed_bytes = 2;
3482*d5c09012SAndroid Build Coastguard Worker
3483*d5c09012SAndroid Build Coastguard Worker  // Transformations applied to the dataset.
3484*d5c09012SAndroid Build Coastguard Worker  repeated TransformationSummary transformation_summaries = 3;
3485*d5c09012SAndroid Build Coastguard Worker}
3486*d5c09012SAndroid Build Coastguard Worker
3487*d5c09012SAndroid Build Coastguard Worker// Summary of a single transformation.
3488*d5c09012SAndroid Build Coastguard Worker// Only one of 'transformation', 'field_transformation', or 'record_suppress'
3489*d5c09012SAndroid Build Coastguard Worker// will be set.
3490*d5c09012SAndroid Build Coastguard Workermessage TransformationSummary {
3491*d5c09012SAndroid Build Coastguard Worker  // Possible outcomes of transformations.
3492*d5c09012SAndroid Build Coastguard Worker  enum TransformationResultCode {
3493*d5c09012SAndroid Build Coastguard Worker    // Unused
3494*d5c09012SAndroid Build Coastguard Worker    TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0;
3495*d5c09012SAndroid Build Coastguard Worker
3496*d5c09012SAndroid Build Coastguard Worker    // Transformation completed without an error.
3497*d5c09012SAndroid Build Coastguard Worker    SUCCESS = 1;
3498*d5c09012SAndroid Build Coastguard Worker
3499*d5c09012SAndroid Build Coastguard Worker    // Transformation had an error.
3500*d5c09012SAndroid Build Coastguard Worker    ERROR = 2;
3501*d5c09012SAndroid Build Coastguard Worker  }
3502*d5c09012SAndroid Build Coastguard Worker
3503*d5c09012SAndroid Build Coastguard Worker  // A collection that informs the user the number of times a particular
3504*d5c09012SAndroid Build Coastguard Worker  // `TransformationResultCode` and error details occurred.
3505*d5c09012SAndroid Build Coastguard Worker  message SummaryResult {
3506*d5c09012SAndroid Build Coastguard Worker    // Number of transformations counted by this result.
3507*d5c09012SAndroid Build Coastguard Worker    int64 count = 1;
3508*d5c09012SAndroid Build Coastguard Worker
3509*d5c09012SAndroid Build Coastguard Worker    // Outcome of the transformation.
3510*d5c09012SAndroid Build Coastguard Worker    TransformationResultCode code = 2;
3511*d5c09012SAndroid Build Coastguard Worker
3512*d5c09012SAndroid Build Coastguard Worker    // A place for warnings or errors to show up if a transformation didn't
3513*d5c09012SAndroid Build Coastguard Worker    // work as expected.
3514*d5c09012SAndroid Build Coastguard Worker    string details = 3;
3515*d5c09012SAndroid Build Coastguard Worker  }
3516*d5c09012SAndroid Build Coastguard Worker
3517*d5c09012SAndroid Build Coastguard Worker  // Set if the transformation was limited to a specific InfoType.
3518*d5c09012SAndroid Build Coastguard Worker  InfoType info_type = 1;
3519*d5c09012SAndroid Build Coastguard Worker
3520*d5c09012SAndroid Build Coastguard Worker  // Set if the transformation was limited to a specific FieldId.
3521*d5c09012SAndroid Build Coastguard Worker  FieldId field = 2;
3522*d5c09012SAndroid Build Coastguard Worker
3523*d5c09012SAndroid Build Coastguard Worker  // The specific transformation these stats apply to.
3524*d5c09012SAndroid Build Coastguard Worker  PrimitiveTransformation transformation = 3;
3525*d5c09012SAndroid Build Coastguard Worker
3526*d5c09012SAndroid Build Coastguard Worker  // The field transformation that was applied.
3527*d5c09012SAndroid Build Coastguard Worker  // If multiple field transformations are requested for a single field,
3528*d5c09012SAndroid Build Coastguard Worker  // this list will contain all of them; otherwise, only one is supplied.
3529*d5c09012SAndroid Build Coastguard Worker  repeated FieldTransformation field_transformations = 5;
3530*d5c09012SAndroid Build Coastguard Worker
3531*d5c09012SAndroid Build Coastguard Worker  // The specific suppression option these stats apply to.
3532*d5c09012SAndroid Build Coastguard Worker  RecordSuppression record_suppress = 6;
3533*d5c09012SAndroid Build Coastguard Worker
3534*d5c09012SAndroid Build Coastguard Worker  // Collection of all transformations that took place or had an error.
3535*d5c09012SAndroid Build Coastguard Worker  repeated SummaryResult results = 4;
3536*d5c09012SAndroid Build Coastguard Worker
3537*d5c09012SAndroid Build Coastguard Worker  // Total size in bytes that were transformed in some way.
3538*d5c09012SAndroid Build Coastguard Worker  int64 transformed_bytes = 7;
3539*d5c09012SAndroid Build Coastguard Worker}
3540*d5c09012SAndroid Build Coastguard Worker
3541*d5c09012SAndroid Build Coastguard Worker// A flattened description of a `PrimitiveTransformation` or
3542*d5c09012SAndroid Build Coastguard Worker// `RecordSuppression`.
3543*d5c09012SAndroid Build Coastguard Workermessage TransformationDescription {
3544*d5c09012SAndroid Build Coastguard Worker  // The transformation type.
3545*d5c09012SAndroid Build Coastguard Worker  TransformationType type = 1;
3546*d5c09012SAndroid Build Coastguard Worker
3547*d5c09012SAndroid Build Coastguard Worker  // A description of the transformation. This is empty for a
3548*d5c09012SAndroid Build Coastguard Worker  // RECORD_SUPPRESSION, or is the output of calling toString() on the
3549*d5c09012SAndroid Build Coastguard Worker  // `PrimitiveTransformation` protocol buffer message for any other type of
3550*d5c09012SAndroid Build Coastguard Worker  // transformation.
3551*d5c09012SAndroid Build Coastguard Worker  string description = 2;
3552*d5c09012SAndroid Build Coastguard Worker
3553*d5c09012SAndroid Build Coastguard Worker  // A human-readable string representation of the `RecordCondition`
3554*d5c09012SAndroid Build Coastguard Worker  // corresponding to this transformation. Set if a `RecordCondition` was used
3555*d5c09012SAndroid Build Coastguard Worker  // to determine whether or not to apply this transformation.
3556*d5c09012SAndroid Build Coastguard Worker  //
3557*d5c09012SAndroid Build Coastguard Worker  // Examples:
3558*d5c09012SAndroid Build Coastguard Worker  //     * (age_field > 85)
3559*d5c09012SAndroid Build Coastguard Worker  //     * (age_field <= 18)
3560*d5c09012SAndroid Build Coastguard Worker  //     * (zip_field exists)
3561*d5c09012SAndroid Build Coastguard Worker  //     * (zip_field == 01234) && (city_field != "Springville")
3562*d5c09012SAndroid Build Coastguard Worker  //     * (zip_field == 01234) && (age_field <= 18) && (city_field exists)
3563*d5c09012SAndroid Build Coastguard Worker  string condition = 3;
3564*d5c09012SAndroid Build Coastguard Worker
3565*d5c09012SAndroid Build Coastguard Worker  // Set if the transformation was limited to a specific `InfoType`.
3566*d5c09012SAndroid Build Coastguard Worker  InfoType info_type = 4;
3567*d5c09012SAndroid Build Coastguard Worker}
3568*d5c09012SAndroid Build Coastguard Worker
3569*d5c09012SAndroid Build Coastguard Worker// Details about a single transformation. This object contains a description of
3570*d5c09012SAndroid Build Coastguard Worker// the transformation, information about whether the transformation was
3571*d5c09012SAndroid Build Coastguard Worker// successfully applied, and the precise location where the transformation
3572*d5c09012SAndroid Build Coastguard Worker// occurred. These details are stored in a user-specified BigQuery table.
3573*d5c09012SAndroid Build Coastguard Workermessage TransformationDetails {
3574*d5c09012SAndroid Build Coastguard Worker  // The name of the job that completed the transformation.
3575*d5c09012SAndroid Build Coastguard Worker  string resource_name = 1;
3576*d5c09012SAndroid Build Coastguard Worker
3577*d5c09012SAndroid Build Coastguard Worker  // The top level name of the container where the transformation is located
3578*d5c09012SAndroid Build Coastguard Worker  // (this will be the source file name or table name).
3579*d5c09012SAndroid Build Coastguard Worker  string container_name = 2;
3580*d5c09012SAndroid Build Coastguard Worker
3581*d5c09012SAndroid Build Coastguard Worker  // Description of transformation. This would only contain more than one
3582*d5c09012SAndroid Build Coastguard Worker  // element if there were multiple matching transformations and which one to
3583*d5c09012SAndroid Build Coastguard Worker  // apply was ambiguous. Not set for states that contain no transformation,
3584*d5c09012SAndroid Build Coastguard Worker  // currently only state that contains no transformation is
3585*d5c09012SAndroid Build Coastguard Worker  // TransformationResultStateType.METADATA_UNRETRIEVABLE.
3586*d5c09012SAndroid Build Coastguard Worker  repeated TransformationDescription transformation = 3;
3587*d5c09012SAndroid Build Coastguard Worker
3588*d5c09012SAndroid Build Coastguard Worker  // Status of the transformation, if transformation was not successful, this
3589*d5c09012SAndroid Build Coastguard Worker  // will specify what caused it to fail, otherwise it will show that the
3590*d5c09012SAndroid Build Coastguard Worker  // transformation was successful.
3591*d5c09012SAndroid Build Coastguard Worker  TransformationResultStatus status_details = 4;
3592*d5c09012SAndroid Build Coastguard Worker
3593*d5c09012SAndroid Build Coastguard Worker  // The number of bytes that were transformed. If transformation was
3594*d5c09012SAndroid Build Coastguard Worker  // unsuccessful or did not take place because there was no content to
3595*d5c09012SAndroid Build Coastguard Worker  // transform, this will be zero.
3596*d5c09012SAndroid Build Coastguard Worker  int64 transformed_bytes = 5;
3597*d5c09012SAndroid Build Coastguard Worker
3598*d5c09012SAndroid Build Coastguard Worker  // The precise location of the transformed content in the original container.
3599*d5c09012SAndroid Build Coastguard Worker  TransformationLocation transformation_location = 6;
3600*d5c09012SAndroid Build Coastguard Worker}
3601*d5c09012SAndroid Build Coastguard Worker
3602*d5c09012SAndroid Build Coastguard Worker// Specifies the location of a transformation.
3603*d5c09012SAndroid Build Coastguard Workermessage TransformationLocation {
3604*d5c09012SAndroid Build Coastguard Worker  // Location type.
3605*d5c09012SAndroid Build Coastguard Worker  oneof location_type {
3606*d5c09012SAndroid Build Coastguard Worker    // For infotype transformations, link to the corresponding findings ID so
3607*d5c09012SAndroid Build Coastguard Worker    // that location information does not need to be duplicated. Each findings
3608*d5c09012SAndroid Build Coastguard Worker    // ID correlates to an entry in the findings output table, this table only
3609*d5c09012SAndroid Build Coastguard Worker    // gets created when users specify to save findings (add the save findings
3610*d5c09012SAndroid Build Coastguard Worker    // action to the request).
3611*d5c09012SAndroid Build Coastguard Worker    string finding_id = 1;
3612*d5c09012SAndroid Build Coastguard Worker
3613*d5c09012SAndroid Build Coastguard Worker    // For record transformations, provide a field and container information.
3614*d5c09012SAndroid Build Coastguard Worker    RecordTransformation record_transformation = 2;
3615*d5c09012SAndroid Build Coastguard Worker  }
3616*d5c09012SAndroid Build Coastguard Worker
3617*d5c09012SAndroid Build Coastguard Worker  // Information about the functionality of the container where this finding
3618*d5c09012SAndroid Build Coastguard Worker  // occurred, if available.
3619*d5c09012SAndroid Build Coastguard Worker  TransformationContainerType container_type = 3;
3620*d5c09012SAndroid Build Coastguard Worker}
3621*d5c09012SAndroid Build Coastguard Worker
3622*d5c09012SAndroid Build Coastguard Worker// The field in a record to transform.
3623*d5c09012SAndroid Build Coastguard Workermessage RecordTransformation {
3624*d5c09012SAndroid Build Coastguard Worker  // For record transformations, provide a field.
3625*d5c09012SAndroid Build Coastguard Worker  FieldId field_id = 1;
3626*d5c09012SAndroid Build Coastguard Worker
3627*d5c09012SAndroid Build Coastguard Worker  // Findings container modification timestamp, if applicable.
3628*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp container_timestamp = 2;
3629*d5c09012SAndroid Build Coastguard Worker
3630*d5c09012SAndroid Build Coastguard Worker  // Container version, if available ("generation" for Cloud Storage).
3631*d5c09012SAndroid Build Coastguard Worker  string container_version = 3;
3632*d5c09012SAndroid Build Coastguard Worker}
3633*d5c09012SAndroid Build Coastguard Worker
3634*d5c09012SAndroid Build Coastguard Worker// The outcome of a transformation.
3635*d5c09012SAndroid Build Coastguard Workermessage TransformationResultStatus {
3636*d5c09012SAndroid Build Coastguard Worker  // Transformation result status type, this will be either SUCCESS, or it will
3637*d5c09012SAndroid Build Coastguard Worker  // be the reason for why the transformation was not completely successful.
3638*d5c09012SAndroid Build Coastguard Worker  TransformationResultStatusType result_status_type = 1;
3639*d5c09012SAndroid Build Coastguard Worker
3640*d5c09012SAndroid Build Coastguard Worker  // Detailed error codes and messages
3641*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status details = 2;
3642*d5c09012SAndroid Build Coastguard Worker}
3643*d5c09012SAndroid Build Coastguard Worker
3644*d5c09012SAndroid Build Coastguard Worker// Enum of possible outcomes of transformations. SUCCESS if transformation and
3645*d5c09012SAndroid Build Coastguard Worker// storing of transformation was successful, otherwise, reason for not
3646*d5c09012SAndroid Build Coastguard Worker// transforming.
3647*d5c09012SAndroid Build Coastguard Workerenum TransformationResultStatusType {
3648*d5c09012SAndroid Build Coastguard Worker  // Unused.
3649*d5c09012SAndroid Build Coastguard Worker  STATE_TYPE_UNSPECIFIED = 0;
3650*d5c09012SAndroid Build Coastguard Worker
3651*d5c09012SAndroid Build Coastguard Worker  // This will be set when a finding could not be transformed (i.e. outside user
3652*d5c09012SAndroid Build Coastguard Worker  // set bucket range).
3653*d5c09012SAndroid Build Coastguard Worker  INVALID_TRANSFORM = 1;
3654*d5c09012SAndroid Build Coastguard Worker
3655*d5c09012SAndroid Build Coastguard Worker  // This will be set when a BigQuery transformation was successful but could
3656*d5c09012SAndroid Build Coastguard Worker  // not be stored back in BigQuery because the transformed row exceeds
3657*d5c09012SAndroid Build Coastguard Worker  // BigQuery's max row size.
3658*d5c09012SAndroid Build Coastguard Worker  BIGQUERY_MAX_ROW_SIZE_EXCEEDED = 2;
3659*d5c09012SAndroid Build Coastguard Worker
3660*d5c09012SAndroid Build Coastguard Worker  // This will be set when there is a finding in the custom metadata of a file,
3661*d5c09012SAndroid Build Coastguard Worker  // but at the write time of the transformed file, this key / value pair is
3662*d5c09012SAndroid Build Coastguard Worker  // unretrievable.
3663*d5c09012SAndroid Build Coastguard Worker  METADATA_UNRETRIEVABLE = 3;
3664*d5c09012SAndroid Build Coastguard Worker
3665*d5c09012SAndroid Build Coastguard Worker  // This will be set when the transformation and storing of it is successful.
3666*d5c09012SAndroid Build Coastguard Worker  SUCCESS = 4;
3667*d5c09012SAndroid Build Coastguard Worker}
3668*d5c09012SAndroid Build Coastguard Worker
3669*d5c09012SAndroid Build Coastguard Worker// Describes functionality of a given container in its original format.
3670*d5c09012SAndroid Build Coastguard Workerenum TransformationContainerType {
3671*d5c09012SAndroid Build Coastguard Worker  // Unused.
3672*d5c09012SAndroid Build Coastguard Worker  TRANSFORM_UNKNOWN_CONTAINER = 0;
3673*d5c09012SAndroid Build Coastguard Worker
3674*d5c09012SAndroid Build Coastguard Worker  // Body of a file.
3675*d5c09012SAndroid Build Coastguard Worker  TRANSFORM_BODY = 1;
3676*d5c09012SAndroid Build Coastguard Worker
3677*d5c09012SAndroid Build Coastguard Worker  // Metadata for a file.
3678*d5c09012SAndroid Build Coastguard Worker  TRANSFORM_METADATA = 2;
3679*d5c09012SAndroid Build Coastguard Worker
3680*d5c09012SAndroid Build Coastguard Worker  // A table.
3681*d5c09012SAndroid Build Coastguard Worker  TRANSFORM_TABLE = 3;
3682*d5c09012SAndroid Build Coastguard Worker}
3683*d5c09012SAndroid Build Coastguard Worker
3684*d5c09012SAndroid Build Coastguard Worker// An enum of rules that can be used to transform a value. Can be a
3685*d5c09012SAndroid Build Coastguard Worker// record suppression, or one of the transformation rules specified under
3686*d5c09012SAndroid Build Coastguard Worker// `PrimitiveTransformation`.
3687*d5c09012SAndroid Build Coastguard Workerenum TransformationType {
3688*d5c09012SAndroid Build Coastguard Worker  // Unused
3689*d5c09012SAndroid Build Coastguard Worker  TRANSFORMATION_TYPE_UNSPECIFIED = 0;
3690*d5c09012SAndroid Build Coastguard Worker
3691*d5c09012SAndroid Build Coastguard Worker  // Record suppression
3692*d5c09012SAndroid Build Coastguard Worker  RECORD_SUPPRESSION = 1;
3693*d5c09012SAndroid Build Coastguard Worker
3694*d5c09012SAndroid Build Coastguard Worker  // Replace value
3695*d5c09012SAndroid Build Coastguard Worker  REPLACE_VALUE = 2;
3696*d5c09012SAndroid Build Coastguard Worker
3697*d5c09012SAndroid Build Coastguard Worker  // Replace value using a dictionary.
3698*d5c09012SAndroid Build Coastguard Worker  REPLACE_DICTIONARY = 15;
3699*d5c09012SAndroid Build Coastguard Worker
3700*d5c09012SAndroid Build Coastguard Worker  // Redact
3701*d5c09012SAndroid Build Coastguard Worker  REDACT = 3;
3702*d5c09012SAndroid Build Coastguard Worker
3703*d5c09012SAndroid Build Coastguard Worker  // Character mask
3704*d5c09012SAndroid Build Coastguard Worker  CHARACTER_MASK = 4;
3705*d5c09012SAndroid Build Coastguard Worker
3706*d5c09012SAndroid Build Coastguard Worker  // FFX-FPE
3707*d5c09012SAndroid Build Coastguard Worker  CRYPTO_REPLACE_FFX_FPE = 5;
3708*d5c09012SAndroid Build Coastguard Worker
3709*d5c09012SAndroid Build Coastguard Worker  // Fixed size bucketing
3710*d5c09012SAndroid Build Coastguard Worker  FIXED_SIZE_BUCKETING = 6;
3711*d5c09012SAndroid Build Coastguard Worker
3712*d5c09012SAndroid Build Coastguard Worker  // Bucketing
3713*d5c09012SAndroid Build Coastguard Worker  BUCKETING = 7;
3714*d5c09012SAndroid Build Coastguard Worker
3715*d5c09012SAndroid Build Coastguard Worker  // Replace with info type
3716*d5c09012SAndroid Build Coastguard Worker  REPLACE_WITH_INFO_TYPE = 8;
3717*d5c09012SAndroid Build Coastguard Worker
3718*d5c09012SAndroid Build Coastguard Worker  // Time part
3719*d5c09012SAndroid Build Coastguard Worker  TIME_PART = 9;
3720*d5c09012SAndroid Build Coastguard Worker
3721*d5c09012SAndroid Build Coastguard Worker  // Crypto hash
3722*d5c09012SAndroid Build Coastguard Worker  CRYPTO_HASH = 10;
3723*d5c09012SAndroid Build Coastguard Worker
3724*d5c09012SAndroid Build Coastguard Worker  // Date shift
3725*d5c09012SAndroid Build Coastguard Worker  DATE_SHIFT = 12;
3726*d5c09012SAndroid Build Coastguard Worker
3727*d5c09012SAndroid Build Coastguard Worker  // Deterministic crypto
3728*d5c09012SAndroid Build Coastguard Worker  CRYPTO_DETERMINISTIC_CONFIG = 13;
3729*d5c09012SAndroid Build Coastguard Worker
3730*d5c09012SAndroid Build Coastguard Worker  // Redact image
3731*d5c09012SAndroid Build Coastguard Worker  REDACT_IMAGE = 14;
3732*d5c09012SAndroid Build Coastguard Worker}
3733*d5c09012SAndroid Build Coastguard Worker
3734*d5c09012SAndroid Build Coastguard Worker// Config for storing transformation details.
3735*d5c09012SAndroid Build Coastguard Workermessage TransformationDetailsStorageConfig {
3736*d5c09012SAndroid Build Coastguard Worker  // Location to store the transformation summary.
3737*d5c09012SAndroid Build Coastguard Worker  oneof type {
3738*d5c09012SAndroid Build Coastguard Worker    // The BigQuery table in which to store the output. This may be an existing
3739*d5c09012SAndroid Build Coastguard Worker    // table or in a new table in an existing dataset.
3740*d5c09012SAndroid Build Coastguard Worker    // If table_id is not set a new one will be generated for you with the
3741*d5c09012SAndroid Build Coastguard Worker    // following format:
3742*d5c09012SAndroid Build Coastguard Worker    // dlp_googleapis_transformation_details_yyyy_mm_dd_[dlp_job_id]. Pacific
3743*d5c09012SAndroid Build Coastguard Worker    // time zone will be used for generating the date details.
3744*d5c09012SAndroid Build Coastguard Worker    BigQueryTable table = 1;
3745*d5c09012SAndroid Build Coastguard Worker  }
3746*d5c09012SAndroid Build Coastguard Worker}
3747*d5c09012SAndroid Build Coastguard Worker
3748*d5c09012SAndroid Build Coastguard Worker// Schedule for inspect job triggers.
3749*d5c09012SAndroid Build Coastguard Workermessage Schedule {
3750*d5c09012SAndroid Build Coastguard Worker  // Type of schedule.
3751*d5c09012SAndroid Build Coastguard Worker  oneof option {
3752*d5c09012SAndroid Build Coastguard Worker    // With this option a job is started on a regular periodic basis. For
3753*d5c09012SAndroid Build Coastguard Worker    // example: every day (86400 seconds).
3754*d5c09012SAndroid Build Coastguard Worker    //
3755*d5c09012SAndroid Build Coastguard Worker    // A scheduled start time will be skipped if the previous
3756*d5c09012SAndroid Build Coastguard Worker    // execution has not ended when its scheduled time occurs.
3757*d5c09012SAndroid Build Coastguard Worker    //
3758*d5c09012SAndroid Build Coastguard Worker    // This value must be set to a time duration greater than or equal
3759*d5c09012SAndroid Build Coastguard Worker    // to 1 day and can be no longer than 60 days.
3760*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration recurrence_period_duration = 1;
3761*d5c09012SAndroid Build Coastguard Worker  }
3762*d5c09012SAndroid Build Coastguard Worker}
3763*d5c09012SAndroid Build Coastguard Worker
3764*d5c09012SAndroid Build Coastguard Worker// Job trigger option for hybrid jobs. Jobs must be manually created
3765*d5c09012SAndroid Build Coastguard Worker// and finished.
3766*d5c09012SAndroid Build Coastguard Workermessage Manual {}
3767*d5c09012SAndroid Build Coastguard Worker
3768*d5c09012SAndroid Build Coastguard Worker// The inspectTemplate contains a configuration (set of types of sensitive data
3769*d5c09012SAndroid Build Coastguard Worker// to be detected) to be used anywhere you otherwise would normally specify
3770*d5c09012SAndroid Build Coastguard Worker// InspectConfig. See
3771*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to
3772*d5c09012SAndroid Build Coastguard Worker// learn more.
3773*d5c09012SAndroid Build Coastguard Workermessage InspectTemplate {
3774*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
3775*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/InspectTemplate"
3776*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/inspectTemplates/{inspect_template}"
3777*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/inspectTemplates/{inspect_template}"
3778*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/inspectTemplates/{inspect_template}"
3779*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/inspectTemplates/{inspect_template}"
3780*d5c09012SAndroid Build Coastguard Worker  };
3781*d5c09012SAndroid Build Coastguard Worker
3782*d5c09012SAndroid Build Coastguard Worker  // Output only. The template name.
3783*d5c09012SAndroid Build Coastguard Worker  //
3784*d5c09012SAndroid Build Coastguard Worker  // The template will have one of the following formats:
3785*d5c09012SAndroid Build Coastguard Worker  // `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR
3786*d5c09012SAndroid Build Coastguard Worker  // `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`;
3787*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
3788*d5c09012SAndroid Build Coastguard Worker
3789*d5c09012SAndroid Build Coastguard Worker  // Display name (max 256 chars).
3790*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
3791*d5c09012SAndroid Build Coastguard Worker
3792*d5c09012SAndroid Build Coastguard Worker  // Short description (max 256 chars).
3793*d5c09012SAndroid Build Coastguard Worker  string description = 3;
3794*d5c09012SAndroid Build Coastguard Worker
3795*d5c09012SAndroid Build Coastguard Worker  // Output only. The creation timestamp of an inspectTemplate.
3796*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
3797*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3798*d5c09012SAndroid Build Coastguard Worker
3799*d5c09012SAndroid Build Coastguard Worker  // Output only. The last update timestamp of an inspectTemplate.
3800*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
3801*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3802*d5c09012SAndroid Build Coastguard Worker
3803*d5c09012SAndroid Build Coastguard Worker  // The core content of the template. Configuration of the scanning process.
3804*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 6;
3805*d5c09012SAndroid Build Coastguard Worker}
3806*d5c09012SAndroid Build Coastguard Worker
3807*d5c09012SAndroid Build Coastguard Worker// DeidentifyTemplates contains instructions on how to de-identify content.
3808*d5c09012SAndroid Build Coastguard Worker// See
3809*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-templates to
3810*d5c09012SAndroid Build Coastguard Worker// learn more.
3811*d5c09012SAndroid Build Coastguard Workermessage DeidentifyTemplate {
3812*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
3813*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/DeidentifyTemplate"
3814*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/deidentifyTemplates/{deidentify_template}"
3815*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/deidentifyTemplates/{deidentify_template}"
3816*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/deidentifyTemplates/{deidentify_template}"
3817*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}"
3818*d5c09012SAndroid Build Coastguard Worker  };
3819*d5c09012SAndroid Build Coastguard Worker
3820*d5c09012SAndroid Build Coastguard Worker  // Output only. The template name.
3821*d5c09012SAndroid Build Coastguard Worker  //
3822*d5c09012SAndroid Build Coastguard Worker  // The template will have one of the following formats:
3823*d5c09012SAndroid Build Coastguard Worker  // `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR
3824*d5c09012SAndroid Build Coastguard Worker  // `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
3825*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
3826*d5c09012SAndroid Build Coastguard Worker
3827*d5c09012SAndroid Build Coastguard Worker  // Display name (max 256 chars).
3828*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
3829*d5c09012SAndroid Build Coastguard Worker
3830*d5c09012SAndroid Build Coastguard Worker  // Short description (max 256 chars).
3831*d5c09012SAndroid Build Coastguard Worker  string description = 3;
3832*d5c09012SAndroid Build Coastguard Worker
3833*d5c09012SAndroid Build Coastguard Worker  // Output only. The creation timestamp of an inspectTemplate.
3834*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 4
3835*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3836*d5c09012SAndroid Build Coastguard Worker
3837*d5c09012SAndroid Build Coastguard Worker  // Output only. The last update timestamp of an inspectTemplate.
3838*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 5
3839*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3840*d5c09012SAndroid Build Coastguard Worker
3841*d5c09012SAndroid Build Coastguard Worker  // The core content of the template.
3842*d5c09012SAndroid Build Coastguard Worker  DeidentifyConfig deidentify_config = 6;
3843*d5c09012SAndroid Build Coastguard Worker}
3844*d5c09012SAndroid Build Coastguard Worker
3845*d5c09012SAndroid Build Coastguard Worker// Details information about an error encountered during job execution or
3846*d5c09012SAndroid Build Coastguard Worker// the results of an unsuccessful activation of the JobTrigger.
3847*d5c09012SAndroid Build Coastguard Workermessage Error {
3848*d5c09012SAndroid Build Coastguard Worker  // Detailed error codes and messages.
3849*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status details = 1;
3850*d5c09012SAndroid Build Coastguard Worker
3851*d5c09012SAndroid Build Coastguard Worker  // The times the error occurred. List includes the oldest timestamp and the
3852*d5c09012SAndroid Build Coastguard Worker  // last 9 timestamps.
3853*d5c09012SAndroid Build Coastguard Worker  repeated google.protobuf.Timestamp timestamps = 2;
3854*d5c09012SAndroid Build Coastguard Worker}
3855*d5c09012SAndroid Build Coastguard Worker
3856*d5c09012SAndroid Build Coastguard Worker// Contains a configuration to make dlp api calls on a repeating basis.
3857*d5c09012SAndroid Build Coastguard Worker// See
3858*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers
3859*d5c09012SAndroid Build Coastguard Worker// to learn more.
3860*d5c09012SAndroid Build Coastguard Workermessage JobTrigger {
3861*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
3862*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/JobTrigger"
3863*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/jobTriggers/{job_trigger}"
3864*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/jobTriggers/{job_trigger}"
3865*d5c09012SAndroid Build Coastguard Worker  };
3866*d5c09012SAndroid Build Coastguard Worker
3867*d5c09012SAndroid Build Coastguard Worker  // What event needs to occur for a new job to be started.
3868*d5c09012SAndroid Build Coastguard Worker  message Trigger {
3869*d5c09012SAndroid Build Coastguard Worker    // What event needs to occur for a new job to be started.
3870*d5c09012SAndroid Build Coastguard Worker    oneof trigger {
3871*d5c09012SAndroid Build Coastguard Worker      // Create a job on a repeating basis based on the elapse of time.
3872*d5c09012SAndroid Build Coastguard Worker      Schedule schedule = 1;
3873*d5c09012SAndroid Build Coastguard Worker
3874*d5c09012SAndroid Build Coastguard Worker      // For use with hybrid jobs. Jobs must be manually created and finished.
3875*d5c09012SAndroid Build Coastguard Worker      Manual manual = 2;
3876*d5c09012SAndroid Build Coastguard Worker    }
3877*d5c09012SAndroid Build Coastguard Worker  }
3878*d5c09012SAndroid Build Coastguard Worker
3879*d5c09012SAndroid Build Coastguard Worker  // Whether the trigger is currently active. If PAUSED or CANCELLED, no jobs
3880*d5c09012SAndroid Build Coastguard Worker  // will be created with this configuration. The service may automatically
3881*d5c09012SAndroid Build Coastguard Worker  // pause triggers experiencing frequent errors. To restart a job, set the
3882*d5c09012SAndroid Build Coastguard Worker  // status to HEALTHY after correcting user errors.
3883*d5c09012SAndroid Build Coastguard Worker  enum Status {
3884*d5c09012SAndroid Build Coastguard Worker    // Unused.
3885*d5c09012SAndroid Build Coastguard Worker    STATUS_UNSPECIFIED = 0;
3886*d5c09012SAndroid Build Coastguard Worker
3887*d5c09012SAndroid Build Coastguard Worker    // Trigger is healthy.
3888*d5c09012SAndroid Build Coastguard Worker    HEALTHY = 1;
3889*d5c09012SAndroid Build Coastguard Worker
3890*d5c09012SAndroid Build Coastguard Worker    // Trigger is temporarily paused.
3891*d5c09012SAndroid Build Coastguard Worker    PAUSED = 2;
3892*d5c09012SAndroid Build Coastguard Worker
3893*d5c09012SAndroid Build Coastguard Worker    // Trigger is cancelled and can not be resumed.
3894*d5c09012SAndroid Build Coastguard Worker    CANCELLED = 3;
3895*d5c09012SAndroid Build Coastguard Worker  }
3896*d5c09012SAndroid Build Coastguard Worker
3897*d5c09012SAndroid Build Coastguard Worker  // Unique resource name for the triggeredJob, assigned by the service when the
3898*d5c09012SAndroid Build Coastguard Worker  // triggeredJob is created, for example
3899*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/jobTriggers/53234423`.
3900*d5c09012SAndroid Build Coastguard Worker  string name = 1;
3901*d5c09012SAndroid Build Coastguard Worker
3902*d5c09012SAndroid Build Coastguard Worker  // Display name (max 100 chars)
3903*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
3904*d5c09012SAndroid Build Coastguard Worker
3905*d5c09012SAndroid Build Coastguard Worker  // User provided description (max 256 chars)
3906*d5c09012SAndroid Build Coastguard Worker  string description = 3;
3907*d5c09012SAndroid Build Coastguard Worker
3908*d5c09012SAndroid Build Coastguard Worker  // The configuration details for the specific type of job to run.
3909*d5c09012SAndroid Build Coastguard Worker  oneof job {
3910*d5c09012SAndroid Build Coastguard Worker    // For inspect jobs, a snapshot of the configuration.
3911*d5c09012SAndroid Build Coastguard Worker    InspectJobConfig inspect_job = 4;
3912*d5c09012SAndroid Build Coastguard Worker  }
3913*d5c09012SAndroid Build Coastguard Worker
3914*d5c09012SAndroid Build Coastguard Worker  // A list of triggers which will be OR'ed together. Only one in the list
3915*d5c09012SAndroid Build Coastguard Worker  // needs to trigger for a job to be started. The list may contain only
3916*d5c09012SAndroid Build Coastguard Worker  // a single Schedule trigger and must have at least one object.
3917*d5c09012SAndroid Build Coastguard Worker  repeated Trigger triggers = 5;
3918*d5c09012SAndroid Build Coastguard Worker
3919*d5c09012SAndroid Build Coastguard Worker  // Output only. A stream of errors encountered when the trigger was activated.
3920*d5c09012SAndroid Build Coastguard Worker  // Repeated errors may result in the JobTrigger automatically being paused.
3921*d5c09012SAndroid Build Coastguard Worker  // Will return the last 100 errors. Whenever the JobTrigger is modified
3922*d5c09012SAndroid Build Coastguard Worker  // this list will be cleared.
3923*d5c09012SAndroid Build Coastguard Worker  repeated Error errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
3924*d5c09012SAndroid Build Coastguard Worker
3925*d5c09012SAndroid Build Coastguard Worker  // Output only. The creation timestamp of a triggeredJob.
3926*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 7
3927*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3928*d5c09012SAndroid Build Coastguard Worker
3929*d5c09012SAndroid Build Coastguard Worker  // Output only. The last update timestamp of a triggeredJob.
3930*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 8
3931*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3932*d5c09012SAndroid Build Coastguard Worker
3933*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp of the last time this trigger executed.
3934*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp last_run_time = 9
3935*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
3936*d5c09012SAndroid Build Coastguard Worker
3937*d5c09012SAndroid Build Coastguard Worker  // Required. A status for this trigger.
3938*d5c09012SAndroid Build Coastguard Worker  Status status = 10 [(google.api.field_behavior) = REQUIRED];
3939*d5c09012SAndroid Build Coastguard Worker}
3940*d5c09012SAndroid Build Coastguard Worker
3941*d5c09012SAndroid Build Coastguard Worker// A task to execute on the completion of a job.
3942*d5c09012SAndroid Build Coastguard Worker// See https://cloud.google.com/sensitive-data-protection/docs/concepts-actions
3943*d5c09012SAndroid Build Coastguard Worker// to learn more.
3944*d5c09012SAndroid Build Coastguard Workermessage Action {
3945*d5c09012SAndroid Build Coastguard Worker  // If set, the detailed findings will be persisted to the specified
3946*d5c09012SAndroid Build Coastguard Worker  // OutputStorageConfig. Only a single instance of this action can be
3947*d5c09012SAndroid Build Coastguard Worker  // specified.
3948*d5c09012SAndroid Build Coastguard Worker  // Compatible with: Inspect, Risk
3949*d5c09012SAndroid Build Coastguard Worker  message SaveFindings {
3950*d5c09012SAndroid Build Coastguard Worker    // Location to store findings outside of DLP.
3951*d5c09012SAndroid Build Coastguard Worker    OutputStorageConfig output_config = 1;
3952*d5c09012SAndroid Build Coastguard Worker  }
3953*d5c09012SAndroid Build Coastguard Worker
3954*d5c09012SAndroid Build Coastguard Worker  // Publish a message into a given Pub/Sub topic when DlpJob has completed. The
3955*d5c09012SAndroid Build Coastguard Worker  // message contains a single field, `DlpJobName`, which is equal to the
3956*d5c09012SAndroid Build Coastguard Worker  // finished job's
3957*d5c09012SAndroid Build Coastguard Worker  // [`DlpJob.name`](https://cloud.google.com/sensitive-data-protection/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
3958*d5c09012SAndroid Build Coastguard Worker  // Compatible with: Inspect, Risk
3959*d5c09012SAndroid Build Coastguard Worker  message PublishToPubSub {
3960*d5c09012SAndroid Build Coastguard Worker    // Cloud Pub/Sub topic to send notifications to. The topic must have given
3961*d5c09012SAndroid Build Coastguard Worker    // publishing access rights to the DLP API service account executing
3962*d5c09012SAndroid Build Coastguard Worker    // the long running DlpJob sending the notifications.
3963*d5c09012SAndroid Build Coastguard Worker    // Format is projects/{project}/topics/{topic}.
3964*d5c09012SAndroid Build Coastguard Worker    string topic = 1;
3965*d5c09012SAndroid Build Coastguard Worker  }
3966*d5c09012SAndroid Build Coastguard Worker
3967*d5c09012SAndroid Build Coastguard Worker  // Publish the result summary of a DlpJob to [Security Command
3968*d5c09012SAndroid Build Coastguard Worker  // Center](https://cloud.google.com/security-command-center). This action is
3969*d5c09012SAndroid Build Coastguard Worker  // available for only projects that belong to an organization. This action
3970*d5c09012SAndroid Build Coastguard Worker  // publishes the count of finding instances and their infoTypes. The summary
3971*d5c09012SAndroid Build Coastguard Worker  // of findings are persisted in Security Command Center and are governed by
3972*d5c09012SAndroid Build Coastguard Worker  // [service-specific policies for Security Command
3973*d5c09012SAndroid Build Coastguard Worker  // Center](https://cloud.google.com/terms/service-terms). Only a single
3974*d5c09012SAndroid Build Coastguard Worker  // instance of this action can be specified. Compatible with: Inspect
3975*d5c09012SAndroid Build Coastguard Worker  message PublishSummaryToCscc {}
3976*d5c09012SAndroid Build Coastguard Worker
3977*d5c09012SAndroid Build Coastguard Worker  // Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag
3978*d5c09012SAndroid Build Coastguard Worker  // templates are applied to the resource that Cloud DLP scanned. Data
3979*d5c09012SAndroid Build Coastguard Worker  // Catalog tag templates are stored in the same project and region where the
3980*d5c09012SAndroid Build Coastguard Worker  // BigQuery table exists. For Cloud DLP to create and apply the tag template,
3981*d5c09012SAndroid Build Coastguard Worker  // the Cloud DLP service agent must have the
3982*d5c09012SAndroid Build Coastguard Worker  // `roles/datacatalog.tagTemplateOwner` permission on the project. The tag
3983*d5c09012SAndroid Build Coastguard Worker  // template contains fields summarizing the results of the DlpJob. Any field
3984*d5c09012SAndroid Build Coastguard Worker  // values previously written by another DlpJob are deleted. [InfoType naming
3985*d5c09012SAndroid Build Coastguard Worker  // patterns][google.privacy.dlp.v2.InfoType] are strictly enforced when using
3986*d5c09012SAndroid Build Coastguard Worker  // this feature.
3987*d5c09012SAndroid Build Coastguard Worker  //
3988*d5c09012SAndroid Build Coastguard Worker  // Findings are persisted in Data Catalog storage and are governed by
3989*d5c09012SAndroid Build Coastguard Worker  // service-specific policies for Data Catalog. For more information, see
3990*d5c09012SAndroid Build Coastguard Worker  // [Service Specific Terms](https://cloud.google.com/terms/service-terms).
3991*d5c09012SAndroid Build Coastguard Worker  //
3992*d5c09012SAndroid Build Coastguard Worker  // Only a single instance of this action can be specified. This action is
3993*d5c09012SAndroid Build Coastguard Worker  // allowed only if all resources being scanned are BigQuery tables.
3994*d5c09012SAndroid Build Coastguard Worker  // Compatible with: Inspect
3995*d5c09012SAndroid Build Coastguard Worker  message PublishFindingsToCloudDataCatalog {}
3996*d5c09012SAndroid Build Coastguard Worker
3997*d5c09012SAndroid Build Coastguard Worker  // Create a de-identified copy of the requested table or files.
3998*d5c09012SAndroid Build Coastguard Worker  //
3999*d5c09012SAndroid Build Coastguard Worker  // A TransformationDetail will be created for each transformation.
4000*d5c09012SAndroid Build Coastguard Worker  //
4001*d5c09012SAndroid Build Coastguard Worker  // If any rows in BigQuery are skipped during de-identification
4002*d5c09012SAndroid Build Coastguard Worker  // (transformation errors or row size exceeds BigQuery insert API limits) they
4003*d5c09012SAndroid Build Coastguard Worker  // are placed in the failure output table. If the original row exceeds
4004*d5c09012SAndroid Build Coastguard Worker  // the BigQuery insert API limit it will be truncated when written to the
4005*d5c09012SAndroid Build Coastguard Worker  // failure output table. The failure output table can be set in the
4006*d5c09012SAndroid Build Coastguard Worker  // action.deidentify.output.big_query_output.deidentified_failure_output_table
4007*d5c09012SAndroid Build Coastguard Worker  // field, if no table is set, a table will be automatically created in the
4008*d5c09012SAndroid Build Coastguard Worker  // same project and dataset as the original table.
4009*d5c09012SAndroid Build Coastguard Worker  //
4010*d5c09012SAndroid Build Coastguard Worker  // Compatible with: Inspect
4011*d5c09012SAndroid Build Coastguard Worker  message Deidentify {
4012*d5c09012SAndroid Build Coastguard Worker    // User specified deidentify templates and configs for structured,
4013*d5c09012SAndroid Build Coastguard Worker    // unstructured, and image files.
4014*d5c09012SAndroid Build Coastguard Worker    TransformationConfig transformation_config = 7;
4015*d5c09012SAndroid Build Coastguard Worker
4016*d5c09012SAndroid Build Coastguard Worker    // Config for storing transformation details. This is separate from the
4017*d5c09012SAndroid Build Coastguard Worker    // de-identified content, and contains metadata about the successful
4018*d5c09012SAndroid Build Coastguard Worker    // transformations and/or failures that occurred while de-identifying. This
4019*d5c09012SAndroid Build Coastguard Worker    // needs to be set in order for users to access information about the status
4020*d5c09012SAndroid Build Coastguard Worker    // of each transformation (see
4021*d5c09012SAndroid Build Coastguard Worker    // [TransformationDetails][google.privacy.dlp.v2.TransformationDetails]
4022*d5c09012SAndroid Build Coastguard Worker    // message for more information about what is noted).
4023*d5c09012SAndroid Build Coastguard Worker    TransformationDetailsStorageConfig transformation_details_storage_config =
4024*d5c09012SAndroid Build Coastguard Worker        3;
4025*d5c09012SAndroid Build Coastguard Worker
4026*d5c09012SAndroid Build Coastguard Worker    // Where to store the output.
4027*d5c09012SAndroid Build Coastguard Worker    oneof output {
4028*d5c09012SAndroid Build Coastguard Worker      // Required. User settable Cloud Storage bucket and folders to store
4029*d5c09012SAndroid Build Coastguard Worker      // de-identified files. This field must be set for cloud storage
4030*d5c09012SAndroid Build Coastguard Worker      // deidentification. The output Cloud Storage bucket must be different
4031*d5c09012SAndroid Build Coastguard Worker      // from the input bucket. De-identified files will overwrite files in the
4032*d5c09012SAndroid Build Coastguard Worker      // output path.
4033*d5c09012SAndroid Build Coastguard Worker      //
4034*d5c09012SAndroid Build Coastguard Worker      // Form of: gs://bucket/folder/ or gs://bucket
4035*d5c09012SAndroid Build Coastguard Worker      string cloud_storage_output = 9 [(google.api.field_behavior) = REQUIRED];
4036*d5c09012SAndroid Build Coastguard Worker    }
4037*d5c09012SAndroid Build Coastguard Worker
4038*d5c09012SAndroid Build Coastguard Worker    // List of user-specified file type groups to transform. If specified, only
4039*d5c09012SAndroid Build Coastguard Worker    // the files with these filetypes will be transformed. If empty, all
4040*d5c09012SAndroid Build Coastguard Worker    // supported files will be transformed. Supported types may be automatically
4041*d5c09012SAndroid Build Coastguard Worker    // added over time. If a file type is set in this field that isn't supported
4042*d5c09012SAndroid Build Coastguard Worker    // by the Deidentify action then the job will fail and will not be
4043*d5c09012SAndroid Build Coastguard Worker    // successfully created/started. Currently the only filetypes supported are:
4044*d5c09012SAndroid Build Coastguard Worker    // IMAGES, TEXT_FILES, CSV, TSV.
4045*d5c09012SAndroid Build Coastguard Worker    repeated FileType file_types_to_transform = 8;
4046*d5c09012SAndroid Build Coastguard Worker  }
4047*d5c09012SAndroid Build Coastguard Worker
4048*d5c09012SAndroid Build Coastguard Worker  // Sends an email when the job completes. The email goes to IAM project owners
4049*d5c09012SAndroid Build Coastguard Worker  // and technical [Essential
4050*d5c09012SAndroid Build Coastguard Worker  // Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).
4051*d5c09012SAndroid Build Coastguard Worker  message JobNotificationEmails {}
4052*d5c09012SAndroid Build Coastguard Worker
4053*d5c09012SAndroid Build Coastguard Worker  // Enable Stackdriver metric dlp.googleapis.com/finding_count. This
4054*d5c09012SAndroid Build Coastguard Worker  // will publish a metric to stack driver on each infotype requested and
4055*d5c09012SAndroid Build Coastguard Worker  // how many findings were found for it. CustomDetectors will be bucketed
4056*d5c09012SAndroid Build Coastguard Worker  // as 'Custom' under the Stackdriver label 'info_type'.
4057*d5c09012SAndroid Build Coastguard Worker  message PublishToStackdriver {}
4058*d5c09012SAndroid Build Coastguard Worker
4059*d5c09012SAndroid Build Coastguard Worker  // Extra events to execute after the job has finished.
4060*d5c09012SAndroid Build Coastguard Worker  oneof action {
4061*d5c09012SAndroid Build Coastguard Worker    // Save resulting findings in a provided location.
4062*d5c09012SAndroid Build Coastguard Worker    SaveFindings save_findings = 1;
4063*d5c09012SAndroid Build Coastguard Worker
4064*d5c09012SAndroid Build Coastguard Worker    // Publish a notification to a Pub/Sub topic.
4065*d5c09012SAndroid Build Coastguard Worker    PublishToPubSub pub_sub = 2;
4066*d5c09012SAndroid Build Coastguard Worker
4067*d5c09012SAndroid Build Coastguard Worker    // Publish summary to Cloud Security Command Center (Alpha).
4068*d5c09012SAndroid Build Coastguard Worker    PublishSummaryToCscc publish_summary_to_cscc = 3;
4069*d5c09012SAndroid Build Coastguard Worker
4070*d5c09012SAndroid Build Coastguard Worker    // Publish findings to Cloud Datahub.
4071*d5c09012SAndroid Build Coastguard Worker    PublishFindingsToCloudDataCatalog publish_findings_to_cloud_data_catalog =
4072*d5c09012SAndroid Build Coastguard Worker        5;
4073*d5c09012SAndroid Build Coastguard Worker
4074*d5c09012SAndroid Build Coastguard Worker    // Create a de-identified copy of the input data.
4075*d5c09012SAndroid Build Coastguard Worker    Deidentify deidentify = 7;
4076*d5c09012SAndroid Build Coastguard Worker
4077*d5c09012SAndroid Build Coastguard Worker    // Sends an email when the job completes. The email goes to IAM project
4078*d5c09012SAndroid Build Coastguard Worker    // owners and technical [Essential
4079*d5c09012SAndroid Build Coastguard Worker    // Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).
4080*d5c09012SAndroid Build Coastguard Worker    JobNotificationEmails job_notification_emails = 8;
4081*d5c09012SAndroid Build Coastguard Worker
4082*d5c09012SAndroid Build Coastguard Worker    // Enable Stackdriver metric dlp.googleapis.com/finding_count.
4083*d5c09012SAndroid Build Coastguard Worker    PublishToStackdriver publish_to_stackdriver = 9;
4084*d5c09012SAndroid Build Coastguard Worker  }
4085*d5c09012SAndroid Build Coastguard Worker}
4086*d5c09012SAndroid Build Coastguard Worker
4087*d5c09012SAndroid Build Coastguard Worker// User specified templates and configs for how to deidentify structured,
4088*d5c09012SAndroid Build Coastguard Worker// unstructures, and image files. User must provide either a unstructured
4089*d5c09012SAndroid Build Coastguard Worker// deidentify template or at least one redact image config.
4090*d5c09012SAndroid Build Coastguard Workermessage TransformationConfig {
4091*d5c09012SAndroid Build Coastguard Worker  // De-identify template.
4092*d5c09012SAndroid Build Coastguard Worker  // If this template is specified, it will serve as the default de-identify
4093*d5c09012SAndroid Build Coastguard Worker  // template. This template cannot contain `record_transformations` since it
4094*d5c09012SAndroid Build Coastguard Worker  // can be used for unstructured content such as free-form text files. If this
4095*d5c09012SAndroid Build Coastguard Worker  // template is not set, a default `ReplaceWithInfoTypeConfig` will be used to
4096*d5c09012SAndroid Build Coastguard Worker  // de-identify unstructured content.
4097*d5c09012SAndroid Build Coastguard Worker  string deidentify_template = 1;
4098*d5c09012SAndroid Build Coastguard Worker
4099*d5c09012SAndroid Build Coastguard Worker  // Structured de-identify template.
4100*d5c09012SAndroid Build Coastguard Worker  // If this template is specified, it will serve as the de-identify template
4101*d5c09012SAndroid Build Coastguard Worker  // for structured content such as delimited files and tables. If this template
4102*d5c09012SAndroid Build Coastguard Worker  // is not set but the `deidentify_template` is set, then `deidentify_template`
4103*d5c09012SAndroid Build Coastguard Worker  // will also apply to the structured content. If neither template is set, a
4104*d5c09012SAndroid Build Coastguard Worker  // default `ReplaceWithInfoTypeConfig` will be used to de-identify structured
4105*d5c09012SAndroid Build Coastguard Worker  // content.
4106*d5c09012SAndroid Build Coastguard Worker  string structured_deidentify_template = 2;
4107*d5c09012SAndroid Build Coastguard Worker
4108*d5c09012SAndroid Build Coastguard Worker  // Image redact template.
4109*d5c09012SAndroid Build Coastguard Worker  // If this template is specified, it will serve as the de-identify template
4110*d5c09012SAndroid Build Coastguard Worker  // for images. If this template is not set, all findings in the image will be
4111*d5c09012SAndroid Build Coastguard Worker  // redacted with a black box.
4112*d5c09012SAndroid Build Coastguard Worker  string image_redact_template = 4;
4113*d5c09012SAndroid Build Coastguard Worker}
4114*d5c09012SAndroid Build Coastguard Worker
4115*d5c09012SAndroid Build Coastguard Worker// Request message for CreateInspectTemplate.
4116*d5c09012SAndroid Build Coastguard Workermessage CreateInspectTemplateRequest {
4117*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4118*d5c09012SAndroid Build Coastguard Worker  //
4119*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on the scope of the request
4120*d5c09012SAndroid Build Coastguard Worker  // (project or organization) and whether you have [specified a processing
4121*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4122*d5c09012SAndroid Build Coastguard Worker  //
4123*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
4124*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4125*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
4126*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
4127*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, location specified:<br/>
4128*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4129*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, no location specified (defaults to global):<br/>
4130*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>
4131*d5c09012SAndroid Build Coastguard Worker  //
4132*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4133*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4134*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4135*d5c09012SAndroid Build Coastguard Worker  //
4136*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4137*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4138*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4139*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4140*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/InspectTemplate"
4141*d5c09012SAndroid Build Coastguard Worker    }
4142*d5c09012SAndroid Build Coastguard Worker  ];
4143*d5c09012SAndroid Build Coastguard Worker
4144*d5c09012SAndroid Build Coastguard Worker  // Required. The InspectTemplate to create.
4145*d5c09012SAndroid Build Coastguard Worker  InspectTemplate inspect_template = 2 [(google.api.field_behavior) = REQUIRED];
4146*d5c09012SAndroid Build Coastguard Worker
4147*d5c09012SAndroid Build Coastguard Worker  // The template id can contain uppercase and lowercase letters,
4148*d5c09012SAndroid Build Coastguard Worker  // numbers, and hyphens; that is, it must match the regular
4149*d5c09012SAndroid Build Coastguard Worker  // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
4150*d5c09012SAndroid Build Coastguard Worker  // characters. Can be empty to allow the system to generate one.
4151*d5c09012SAndroid Build Coastguard Worker  string template_id = 3;
4152*d5c09012SAndroid Build Coastguard Worker
4153*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
4154*d5c09012SAndroid Build Coastguard Worker  string location_id = 4;
4155*d5c09012SAndroid Build Coastguard Worker}
4156*d5c09012SAndroid Build Coastguard Worker
4157*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateInspectTemplate.
4158*d5c09012SAndroid Build Coastguard Workermessage UpdateInspectTemplateRequest {
4159*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of organization and inspectTemplate to be updated,
4160*d5c09012SAndroid Build Coastguard Worker  // for example `organizations/433245324/inspectTemplates/432452342` or
4161*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/inspectTemplates/432452342.
4162*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4163*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4164*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4165*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/InspectTemplate"
4166*d5c09012SAndroid Build Coastguard Worker    }
4167*d5c09012SAndroid Build Coastguard Worker  ];
4168*d5c09012SAndroid Build Coastguard Worker
4169*d5c09012SAndroid Build Coastguard Worker  // New InspectTemplate value.
4170*d5c09012SAndroid Build Coastguard Worker  InspectTemplate inspect_template = 2;
4171*d5c09012SAndroid Build Coastguard Worker
4172*d5c09012SAndroid Build Coastguard Worker  // Mask to control which fields get updated.
4173*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
4174*d5c09012SAndroid Build Coastguard Worker}
4175*d5c09012SAndroid Build Coastguard Worker
4176*d5c09012SAndroid Build Coastguard Worker// Request message for GetInspectTemplate.
4177*d5c09012SAndroid Build Coastguard Workermessage GetInspectTemplateRequest {
4178*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization and inspectTemplate to be read,
4179*d5c09012SAndroid Build Coastguard Worker  // for example `organizations/433245324/inspectTemplates/432452342` or
4180*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/inspectTemplates/432452342.
4181*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4182*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4183*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4184*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/InspectTemplate"
4185*d5c09012SAndroid Build Coastguard Worker    }
4186*d5c09012SAndroid Build Coastguard Worker  ];
4187*d5c09012SAndroid Build Coastguard Worker}
4188*d5c09012SAndroid Build Coastguard Worker
4189*d5c09012SAndroid Build Coastguard Worker// Request message for ListInspectTemplates.
4190*d5c09012SAndroid Build Coastguard Workermessage ListInspectTemplatesRequest {
4191*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4192*d5c09012SAndroid Build Coastguard Worker  //
4193*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on the scope of the request
4194*d5c09012SAndroid Build Coastguard Worker  // (project or organization) and whether you have [specified a processing
4195*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4196*d5c09012SAndroid Build Coastguard Worker  //
4197*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
4198*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4199*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
4200*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
4201*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, location specified:<br/>
4202*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
4203*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, no location specified (defaults to global):<br/>
4204*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>
4205*d5c09012SAndroid Build Coastguard Worker  //
4206*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4207*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4208*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4209*d5c09012SAndroid Build Coastguard Worker  //
4210*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4211*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4212*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4213*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4214*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/InspectTemplate"
4215*d5c09012SAndroid Build Coastguard Worker    }
4216*d5c09012SAndroid Build Coastguard Worker  ];
4217*d5c09012SAndroid Build Coastguard Worker
4218*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval. Comes from the previous call
4219*d5c09012SAndroid Build Coastguard Worker  // to `ListInspectTemplates`.
4220*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
4221*d5c09012SAndroid Build Coastguard Worker
4222*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by the server. If zero server
4223*d5c09012SAndroid Build Coastguard Worker  // returns a page of max size 100.
4224*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
4225*d5c09012SAndroid Build Coastguard Worker
4226*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by,
4227*d5c09012SAndroid Build Coastguard Worker  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4228*d5c09012SAndroid Build Coastguard Worker  // default sorting order is ascending. Redundant space characters are
4229*d5c09012SAndroid Build Coastguard Worker  // insignificant.
4230*d5c09012SAndroid Build Coastguard Worker  //
4231*d5c09012SAndroid Build Coastguard Worker  // Example: `name asc,update_time, create_time desc`
4232*d5c09012SAndroid Build Coastguard Worker  //
4233*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
4234*d5c09012SAndroid Build Coastguard Worker  //
4235*d5c09012SAndroid Build Coastguard Worker  // - `create_time`: corresponds to the time the template was created.
4236*d5c09012SAndroid Build Coastguard Worker  // - `update_time`: corresponds to the time the template was last updated.
4237*d5c09012SAndroid Build Coastguard Worker  // - `name`: corresponds to the template's name.
4238*d5c09012SAndroid Build Coastguard Worker  // - `display_name`: corresponds to the template's display name.
4239*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
4240*d5c09012SAndroid Build Coastguard Worker
4241*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
4242*d5c09012SAndroid Build Coastguard Worker  string location_id = 5;
4243*d5c09012SAndroid Build Coastguard Worker}
4244*d5c09012SAndroid Build Coastguard Worker
4245*d5c09012SAndroid Build Coastguard Worker// Response message for ListInspectTemplates.
4246*d5c09012SAndroid Build Coastguard Workermessage ListInspectTemplatesResponse {
4247*d5c09012SAndroid Build Coastguard Worker  // List of inspectTemplates, up to page_size in ListInspectTemplatesRequest.
4248*d5c09012SAndroid Build Coastguard Worker  repeated InspectTemplate inspect_templates = 1;
4249*d5c09012SAndroid Build Coastguard Worker
4250*d5c09012SAndroid Build Coastguard Worker  // If the next page is available then the next page token to be used in the
4251*d5c09012SAndroid Build Coastguard Worker  // following ListInspectTemplates request.
4252*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
4253*d5c09012SAndroid Build Coastguard Worker}
4254*d5c09012SAndroid Build Coastguard Worker
4255*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteInspectTemplate.
4256*d5c09012SAndroid Build Coastguard Workermessage DeleteInspectTemplateRequest {
4257*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization and inspectTemplate to be
4258*d5c09012SAndroid Build Coastguard Worker  // deleted, for example `organizations/433245324/inspectTemplates/432452342`
4259*d5c09012SAndroid Build Coastguard Worker  // or projects/project-id/inspectTemplates/432452342.
4260*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4261*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4262*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4263*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/InspectTemplate"
4264*d5c09012SAndroid Build Coastguard Worker    }
4265*d5c09012SAndroid Build Coastguard Worker  ];
4266*d5c09012SAndroid Build Coastguard Worker}
4267*d5c09012SAndroid Build Coastguard Worker
4268*d5c09012SAndroid Build Coastguard Worker// Request message for CreateJobTrigger.
4269*d5c09012SAndroid Build Coastguard Workermessage CreateJobTriggerRequest {
4270*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4271*d5c09012SAndroid Build Coastguard Worker  //
4272*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
4273*d5c09012SAndroid Build Coastguard Worker  // processing
4274*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4275*d5c09012SAndroid Build Coastguard Worker  //
4276*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
4277*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4278*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
4279*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
4280*d5c09012SAndroid Build Coastguard Worker  //
4281*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4282*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4283*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4284*d5c09012SAndroid Build Coastguard Worker  //
4285*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4286*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4287*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4288*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4289*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/JobTrigger"
4290*d5c09012SAndroid Build Coastguard Worker    }
4291*d5c09012SAndroid Build Coastguard Worker  ];
4292*d5c09012SAndroid Build Coastguard Worker
4293*d5c09012SAndroid Build Coastguard Worker  // Required. The JobTrigger to create.
4294*d5c09012SAndroid Build Coastguard Worker  JobTrigger job_trigger = 2 [(google.api.field_behavior) = REQUIRED];
4295*d5c09012SAndroid Build Coastguard Worker
4296*d5c09012SAndroid Build Coastguard Worker  // The trigger id can contain uppercase and lowercase letters,
4297*d5c09012SAndroid Build Coastguard Worker  // numbers, and hyphens; that is, it must match the regular
4298*d5c09012SAndroid Build Coastguard Worker  // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
4299*d5c09012SAndroid Build Coastguard Worker  // characters. Can be empty to allow the system to generate one.
4300*d5c09012SAndroid Build Coastguard Worker  string trigger_id = 3;
4301*d5c09012SAndroid Build Coastguard Worker
4302*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
4303*d5c09012SAndroid Build Coastguard Worker  string location_id = 4;
4304*d5c09012SAndroid Build Coastguard Worker}
4305*d5c09012SAndroid Build Coastguard Worker
4306*d5c09012SAndroid Build Coastguard Worker// Request message for ActivateJobTrigger.
4307*d5c09012SAndroid Build Coastguard Workermessage ActivateJobTriggerRequest {
4308*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the trigger to activate, for example
4309*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/jobTriggers/53234423`.
4310*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4311*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4312*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4313*d5c09012SAndroid Build Coastguard Worker  ];
4314*d5c09012SAndroid Build Coastguard Worker}
4315*d5c09012SAndroid Build Coastguard Worker
4316*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateJobTrigger.
4317*d5c09012SAndroid Build Coastguard Workermessage UpdateJobTriggerRequest {
4318*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the project and the triggeredJob, for example
4319*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/jobTriggers/53234423`.
4320*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4321*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4322*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4323*d5c09012SAndroid Build Coastguard Worker  ];
4324*d5c09012SAndroid Build Coastguard Worker
4325*d5c09012SAndroid Build Coastguard Worker  // New JobTrigger value.
4326*d5c09012SAndroid Build Coastguard Worker  JobTrigger job_trigger = 2;
4327*d5c09012SAndroid Build Coastguard Worker
4328*d5c09012SAndroid Build Coastguard Worker  // Mask to control which fields get updated.
4329*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
4330*d5c09012SAndroid Build Coastguard Worker}
4331*d5c09012SAndroid Build Coastguard Worker
4332*d5c09012SAndroid Build Coastguard Worker// Request message for GetJobTrigger.
4333*d5c09012SAndroid Build Coastguard Workermessage GetJobTriggerRequest {
4334*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the project and the triggeredJob, for example
4335*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/jobTriggers/53234423`.
4336*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4337*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4338*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4339*d5c09012SAndroid Build Coastguard Worker  ];
4340*d5c09012SAndroid Build Coastguard Worker}
4341*d5c09012SAndroid Build Coastguard Worker
4342*d5c09012SAndroid Build Coastguard Worker// Request message for CreateDiscoveryConfig.
4343*d5c09012SAndroid Build Coastguard Workermessage CreateDiscoveryConfigRequest {
4344*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4345*d5c09012SAndroid Build Coastguard Worker  //
4346*d5c09012SAndroid Build Coastguard Worker  // The format of this value is as follows:
4347*d5c09012SAndroid Build Coastguard Worker  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4348*d5c09012SAndroid Build Coastguard Worker  //
4349*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4350*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4351*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4352*d5c09012SAndroid Build Coastguard Worker  //
4353*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4354*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4355*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4356*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4357*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DiscoveryConfig"
4358*d5c09012SAndroid Build Coastguard Worker    }
4359*d5c09012SAndroid Build Coastguard Worker  ];
4360*d5c09012SAndroid Build Coastguard Worker
4361*d5c09012SAndroid Build Coastguard Worker  // Required. The DiscoveryConfig to create.
4362*d5c09012SAndroid Build Coastguard Worker  DiscoveryConfig discovery_config = 2 [(google.api.field_behavior) = REQUIRED];
4363*d5c09012SAndroid Build Coastguard Worker
4364*d5c09012SAndroid Build Coastguard Worker  // The config ID can contain uppercase and lowercase letters,
4365*d5c09012SAndroid Build Coastguard Worker  // numbers, and hyphens; that is, it must match the regular
4366*d5c09012SAndroid Build Coastguard Worker  // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
4367*d5c09012SAndroid Build Coastguard Worker  // characters. Can be empty to allow the system to generate one.
4368*d5c09012SAndroid Build Coastguard Worker  string config_id = 3;
4369*d5c09012SAndroid Build Coastguard Worker}
4370*d5c09012SAndroid Build Coastguard Worker
4371*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateDiscoveryConfig.
4372*d5c09012SAndroid Build Coastguard Workermessage UpdateDiscoveryConfigRequest {
4373*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the project and the configuration, for example
4374*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/discoveryConfigs/53234423`.
4375*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4376*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4377*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4378*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/DiscoveryConfig"
4379*d5c09012SAndroid Build Coastguard Worker    }
4380*d5c09012SAndroid Build Coastguard Worker  ];
4381*d5c09012SAndroid Build Coastguard Worker
4382*d5c09012SAndroid Build Coastguard Worker  // Required. New DiscoveryConfig value.
4383*d5c09012SAndroid Build Coastguard Worker  DiscoveryConfig discovery_config = 2 [(google.api.field_behavior) = REQUIRED];
4384*d5c09012SAndroid Build Coastguard Worker
4385*d5c09012SAndroid Build Coastguard Worker  // Mask to control which fields get updated.
4386*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
4387*d5c09012SAndroid Build Coastguard Worker}
4388*d5c09012SAndroid Build Coastguard Worker
4389*d5c09012SAndroid Build Coastguard Worker// Request message for GetDiscoveryConfig.
4390*d5c09012SAndroid Build Coastguard Workermessage GetDiscoveryConfigRequest {
4391*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the project and the configuration, for example
4392*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/discoveryConfigs/53234423`.
4393*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4394*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4395*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4396*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/DiscoveryConfig"
4397*d5c09012SAndroid Build Coastguard Worker    }
4398*d5c09012SAndroid Build Coastguard Worker  ];
4399*d5c09012SAndroid Build Coastguard Worker}
4400*d5c09012SAndroid Build Coastguard Worker
4401*d5c09012SAndroid Build Coastguard Worker// Request message for ListDiscoveryConfigs.
4402*d5c09012SAndroid Build Coastguard Workermessage ListDiscoveryConfigsRequest {
4403*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4404*d5c09012SAndroid Build Coastguard Worker  //
4405*d5c09012SAndroid Build Coastguard Worker  // The format of this value is as follows:
4406*d5c09012SAndroid Build Coastguard Worker  // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4407*d5c09012SAndroid Build Coastguard Worker  //
4408*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4409*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4410*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4411*d5c09012SAndroid Build Coastguard Worker  //
4412*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4413*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4414*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4415*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4416*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DiscoveryConfig"
4417*d5c09012SAndroid Build Coastguard Worker    }
4418*d5c09012SAndroid Build Coastguard Worker  ];
4419*d5c09012SAndroid Build Coastguard Worker
4420*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval. Comes from the previous call
4421*d5c09012SAndroid Build Coastguard Worker  // to ListDiscoveryConfigs. `order_by` field must not
4422*d5c09012SAndroid Build Coastguard Worker  // change for subsequent calls.
4423*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
4424*d5c09012SAndroid Build Coastguard Worker
4425*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by a server.
4426*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
4427*d5c09012SAndroid Build Coastguard Worker
4428*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of config fields to order by,
4429*d5c09012SAndroid Build Coastguard Worker  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4430*d5c09012SAndroid Build Coastguard Worker  // default sorting order is ascending. Redundant space characters are
4431*d5c09012SAndroid Build Coastguard Worker  // insignificant.
4432*d5c09012SAndroid Build Coastguard Worker  //
4433*d5c09012SAndroid Build Coastguard Worker  // Example: `name asc,update_time, create_time desc`
4434*d5c09012SAndroid Build Coastguard Worker  //
4435*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
4436*d5c09012SAndroid Build Coastguard Worker  //
4437*d5c09012SAndroid Build Coastguard Worker  // - `last_run_time`: corresponds to the last time the DiscoveryConfig ran.
4438*d5c09012SAndroid Build Coastguard Worker  // - `name`: corresponds to the DiscoveryConfig's name.
4439*d5c09012SAndroid Build Coastguard Worker  // - `status`: corresponds to DiscoveryConfig's status.
4440*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
4441*d5c09012SAndroid Build Coastguard Worker}
4442*d5c09012SAndroid Build Coastguard Worker
4443*d5c09012SAndroid Build Coastguard Worker// Response message for ListDiscoveryConfigs.
4444*d5c09012SAndroid Build Coastguard Workermessage ListDiscoveryConfigsResponse {
4445*d5c09012SAndroid Build Coastguard Worker  // List of configs, up to page_size in ListDiscoveryConfigsRequest.
4446*d5c09012SAndroid Build Coastguard Worker  repeated DiscoveryConfig discovery_configs = 1;
4447*d5c09012SAndroid Build Coastguard Worker
4448*d5c09012SAndroid Build Coastguard Worker  // If the next page is available then this value is the next page token to be
4449*d5c09012SAndroid Build Coastguard Worker  // used in the following ListDiscoveryConfigs request.
4450*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
4451*d5c09012SAndroid Build Coastguard Worker}
4452*d5c09012SAndroid Build Coastguard Worker
4453*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteDiscoveryConfig.
4454*d5c09012SAndroid Build Coastguard Workermessage DeleteDiscoveryConfigRequest {
4455*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the project and the config, for example
4456*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/discoveryConfigs/53234423`.
4457*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4458*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4459*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4460*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/DiscoveryConfig"
4461*d5c09012SAndroid Build Coastguard Worker    }
4462*d5c09012SAndroid Build Coastguard Worker  ];
4463*d5c09012SAndroid Build Coastguard Worker}
4464*d5c09012SAndroid Build Coastguard Worker
4465*d5c09012SAndroid Build Coastguard Worker// Request message for CreateDlpJobRequest. Used to initiate long running
4466*d5c09012SAndroid Build Coastguard Worker// jobs such as calculating risk metrics or inspecting Google Cloud
4467*d5c09012SAndroid Build Coastguard Worker// Storage.
4468*d5c09012SAndroid Build Coastguard Workermessage CreateDlpJobRequest {
4469*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4470*d5c09012SAndroid Build Coastguard Worker  //
4471*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
4472*d5c09012SAndroid Build Coastguard Worker  // processing
4473*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4474*d5c09012SAndroid Build Coastguard Worker  //
4475*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
4476*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4477*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
4478*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
4479*d5c09012SAndroid Build Coastguard Worker  //
4480*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4481*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4482*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4483*d5c09012SAndroid Build Coastguard Worker  //
4484*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4485*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4486*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4487*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4488*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DlpJob"
4489*d5c09012SAndroid Build Coastguard Worker    }
4490*d5c09012SAndroid Build Coastguard Worker  ];
4491*d5c09012SAndroid Build Coastguard Worker
4492*d5c09012SAndroid Build Coastguard Worker  // The configuration details for the specific type of job to run.
4493*d5c09012SAndroid Build Coastguard Worker  oneof job {
4494*d5c09012SAndroid Build Coastguard Worker    // An inspection job scans a storage repository for InfoTypes.
4495*d5c09012SAndroid Build Coastguard Worker    InspectJobConfig inspect_job = 2;
4496*d5c09012SAndroid Build Coastguard Worker
4497*d5c09012SAndroid Build Coastguard Worker    // A risk analysis job calculates re-identification risk metrics for a
4498*d5c09012SAndroid Build Coastguard Worker    // BigQuery table.
4499*d5c09012SAndroid Build Coastguard Worker    RiskAnalysisJobConfig risk_job = 3;
4500*d5c09012SAndroid Build Coastguard Worker  }
4501*d5c09012SAndroid Build Coastguard Worker
4502*d5c09012SAndroid Build Coastguard Worker  // The job id can contain uppercase and lowercase letters,
4503*d5c09012SAndroid Build Coastguard Worker  // numbers, and hyphens; that is, it must match the regular
4504*d5c09012SAndroid Build Coastguard Worker  // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
4505*d5c09012SAndroid Build Coastguard Worker  // characters. Can be empty to allow the system to generate one.
4506*d5c09012SAndroid Build Coastguard Worker  string job_id = 4;
4507*d5c09012SAndroid Build Coastguard Worker
4508*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
4509*d5c09012SAndroid Build Coastguard Worker  string location_id = 5;
4510*d5c09012SAndroid Build Coastguard Worker}
4511*d5c09012SAndroid Build Coastguard Worker
4512*d5c09012SAndroid Build Coastguard Worker// Request message for ListJobTriggers.
4513*d5c09012SAndroid Build Coastguard Workermessage ListJobTriggersRequest {
4514*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
4515*d5c09012SAndroid Build Coastguard Worker  //
4516*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
4517*d5c09012SAndroid Build Coastguard Worker  // processing
4518*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
4519*d5c09012SAndroid Build Coastguard Worker  //
4520*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
4521*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
4522*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
4523*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
4524*d5c09012SAndroid Build Coastguard Worker  //
4525*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
4526*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
4527*d5c09012SAndroid Build Coastguard Worker  // for processing data:
4528*d5c09012SAndroid Build Coastguard Worker  //
4529*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
4530*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
4531*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4532*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
4533*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/JobTrigger"
4534*d5c09012SAndroid Build Coastguard Worker    }
4535*d5c09012SAndroid Build Coastguard Worker  ];
4536*d5c09012SAndroid Build Coastguard Worker
4537*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval. Comes from the previous call
4538*d5c09012SAndroid Build Coastguard Worker  // to ListJobTriggers. `order_by` field must not
4539*d5c09012SAndroid Build Coastguard Worker  // change for subsequent calls.
4540*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
4541*d5c09012SAndroid Build Coastguard Worker
4542*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by a server.
4543*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
4544*d5c09012SAndroid Build Coastguard Worker
4545*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of triggeredJob fields to order by,
4546*d5c09012SAndroid Build Coastguard Worker  // followed by `asc` or `desc` postfix. This list is case insensitive. The
4547*d5c09012SAndroid Build Coastguard Worker  // default sorting order is ascending. Redundant space characters are
4548*d5c09012SAndroid Build Coastguard Worker  // insignificant.
4549*d5c09012SAndroid Build Coastguard Worker  //
4550*d5c09012SAndroid Build Coastguard Worker  // Example: `name asc,update_time, create_time desc`
4551*d5c09012SAndroid Build Coastguard Worker  //
4552*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
4553*d5c09012SAndroid Build Coastguard Worker  //
4554*d5c09012SAndroid Build Coastguard Worker  // - `create_time`: corresponds to the time the JobTrigger was created.
4555*d5c09012SAndroid Build Coastguard Worker  // - `update_time`: corresponds to the time the JobTrigger was last updated.
4556*d5c09012SAndroid Build Coastguard Worker  // - `last_run_time`: corresponds to the last time the JobTrigger ran.
4557*d5c09012SAndroid Build Coastguard Worker  // - `name`: corresponds to the JobTrigger's name.
4558*d5c09012SAndroid Build Coastguard Worker  // - `display_name`: corresponds to the JobTrigger's display name.
4559*d5c09012SAndroid Build Coastguard Worker  // - `status`: corresponds to JobTrigger's status.
4560*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
4561*d5c09012SAndroid Build Coastguard Worker
4562*d5c09012SAndroid Build Coastguard Worker  // Allows filtering.
4563*d5c09012SAndroid Build Coastguard Worker  //
4564*d5c09012SAndroid Build Coastguard Worker  // Supported syntax:
4565*d5c09012SAndroid Build Coastguard Worker  //
4566*d5c09012SAndroid Build Coastguard Worker  // * Filter expressions are made up of one or more restrictions.
4567*d5c09012SAndroid Build Coastguard Worker  // * Restrictions can be combined by `AND` or `OR` logical operators. A
4568*d5c09012SAndroid Build Coastguard Worker  // sequence of restrictions implicitly uses `AND`.
4569*d5c09012SAndroid Build Coastguard Worker  // * A restriction has the form of `{field} {operator} {value}`.
4570*d5c09012SAndroid Build Coastguard Worker  // * Supported fields/values for inspect triggers:
4571*d5c09012SAndroid Build Coastguard Worker  //     - `status` - HEALTHY|PAUSED|CANCELLED
4572*d5c09012SAndroid Build Coastguard Worker  //     - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY
4573*d5c09012SAndroid Build Coastguard Worker  //     - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by
4574*d5c09012SAndroid Build Coastguard Worker  //     quotation marks. Nanoseconds are ignored.
4575*d5c09012SAndroid Build Coastguard Worker  //     - 'error_count' - Number of errors that have occurred while running.
4576*d5c09012SAndroid Build Coastguard Worker  // * The operator must be `=` or `!=` for status and inspected_storage.
4577*d5c09012SAndroid Build Coastguard Worker  //
4578*d5c09012SAndroid Build Coastguard Worker  // Examples:
4579*d5c09012SAndroid Build Coastguard Worker  //
4580*d5c09012SAndroid Build Coastguard Worker  // * inspected_storage = cloud_storage AND status = HEALTHY
4581*d5c09012SAndroid Build Coastguard Worker  // * inspected_storage = cloud_storage OR inspected_storage = bigquery
4582*d5c09012SAndroid Build Coastguard Worker  // * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY)
4583*d5c09012SAndroid Build Coastguard Worker  // * last_run_time > \"2017-12-12T00:00:00+00:00\"
4584*d5c09012SAndroid Build Coastguard Worker  //
4585*d5c09012SAndroid Build Coastguard Worker  // The length of this field should be no more than 500 characters.
4586*d5c09012SAndroid Build Coastguard Worker  string filter = 5;
4587*d5c09012SAndroid Build Coastguard Worker
4588*d5c09012SAndroid Build Coastguard Worker  // The type of jobs. Will use `DlpJobType.INSPECT` if not set.
4589*d5c09012SAndroid Build Coastguard Worker  DlpJobType type = 6;
4590*d5c09012SAndroid Build Coastguard Worker
4591*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
4592*d5c09012SAndroid Build Coastguard Worker  string location_id = 7;
4593*d5c09012SAndroid Build Coastguard Worker}
4594*d5c09012SAndroid Build Coastguard Worker
4595*d5c09012SAndroid Build Coastguard Worker// Response message for ListJobTriggers.
4596*d5c09012SAndroid Build Coastguard Workermessage ListJobTriggersResponse {
4597*d5c09012SAndroid Build Coastguard Worker  // List of triggeredJobs, up to page_size in ListJobTriggersRequest.
4598*d5c09012SAndroid Build Coastguard Worker  repeated JobTrigger job_triggers = 1;
4599*d5c09012SAndroid Build Coastguard Worker
4600*d5c09012SAndroid Build Coastguard Worker  // If the next page is available then this value is the next page token to be
4601*d5c09012SAndroid Build Coastguard Worker  // used in the following ListJobTriggers request.
4602*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
4603*d5c09012SAndroid Build Coastguard Worker}
4604*d5c09012SAndroid Build Coastguard Worker
4605*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteJobTrigger.
4606*d5c09012SAndroid Build Coastguard Workermessage DeleteJobTriggerRequest {
4607*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the project and the triggeredJob, for example
4608*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/jobTriggers/53234423`.
4609*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
4610*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
4611*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
4612*d5c09012SAndroid Build Coastguard Worker  ];
4613*d5c09012SAndroid Build Coastguard Worker}
4614*d5c09012SAndroid Build Coastguard Worker
4615*d5c09012SAndroid Build Coastguard Worker// Controls what and how to inspect for findings.
4616*d5c09012SAndroid Build Coastguard Workermessage InspectJobConfig {
4617*d5c09012SAndroid Build Coastguard Worker  // The data to scan.
4618*d5c09012SAndroid Build Coastguard Worker  StorageConfig storage_config = 1;
4619*d5c09012SAndroid Build Coastguard Worker
4620*d5c09012SAndroid Build Coastguard Worker  // How and what to scan for.
4621*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 2;
4622*d5c09012SAndroid Build Coastguard Worker
4623*d5c09012SAndroid Build Coastguard Worker  // If provided, will be used as the default for all values in InspectConfig.
4624*d5c09012SAndroid Build Coastguard Worker  // `inspect_config` will be merged into the values persisted as part of the
4625*d5c09012SAndroid Build Coastguard Worker  // template.
4626*d5c09012SAndroid Build Coastguard Worker  string inspect_template_name = 3;
4627*d5c09012SAndroid Build Coastguard Worker
4628*d5c09012SAndroid Build Coastguard Worker  // Actions to execute at the completion of the job.
4629*d5c09012SAndroid Build Coastguard Worker  repeated Action actions = 4;
4630*d5c09012SAndroid Build Coastguard Worker}
4631*d5c09012SAndroid Build Coastguard Worker
4632*d5c09012SAndroid Build Coastguard Worker// A task to execute when a data profile has been generated.
4633*d5c09012SAndroid Build Coastguard Workermessage DataProfileAction {
4634*d5c09012SAndroid Build Coastguard Worker  // If set, the detailed data profiles will be persisted to the location
4635*d5c09012SAndroid Build Coastguard Worker  // of your choice whenever updated.
4636*d5c09012SAndroid Build Coastguard Worker  message Export {
4637*d5c09012SAndroid Build Coastguard Worker    // Store all table and column profiles in an existing table or a new table
4638*d5c09012SAndroid Build Coastguard Worker    // in an existing dataset. Each re-generation will result in a new row in
4639*d5c09012SAndroid Build Coastguard Worker    // BigQuery.
4640*d5c09012SAndroid Build Coastguard Worker    BigQueryTable profile_table = 1;
4641*d5c09012SAndroid Build Coastguard Worker  }
4642*d5c09012SAndroid Build Coastguard Worker
4643*d5c09012SAndroid Build Coastguard Worker  // Send a Pub/Sub message into the given Pub/Sub topic to connect other
4644*d5c09012SAndroid Build Coastguard Worker  // systems to data profile generation. The message payload data will
4645*d5c09012SAndroid Build Coastguard Worker  // be the byte serialization of `DataProfilePubSubMessage`.
4646*d5c09012SAndroid Build Coastguard Worker  message PubSubNotification {
4647*d5c09012SAndroid Build Coastguard Worker    // The levels of detail that can be included in the Pub/Sub message.
4648*d5c09012SAndroid Build Coastguard Worker    enum DetailLevel {
4649*d5c09012SAndroid Build Coastguard Worker      // Unused.
4650*d5c09012SAndroid Build Coastguard Worker      DETAIL_LEVEL_UNSPECIFIED = 0;
4651*d5c09012SAndroid Build Coastguard Worker
4652*d5c09012SAndroid Build Coastguard Worker      // The full table data profile.
4653*d5c09012SAndroid Build Coastguard Worker      TABLE_PROFILE = 1;
4654*d5c09012SAndroid Build Coastguard Worker
4655*d5c09012SAndroid Build Coastguard Worker      // The resource name of the table.
4656*d5c09012SAndroid Build Coastguard Worker      RESOURCE_NAME = 2;
4657*d5c09012SAndroid Build Coastguard Worker    }
4658*d5c09012SAndroid Build Coastguard Worker
4659*d5c09012SAndroid Build Coastguard Worker    // Cloud Pub/Sub topic to send notifications to.
4660*d5c09012SAndroid Build Coastguard Worker    // Format is projects/{project}/topics/{topic}.
4661*d5c09012SAndroid Build Coastguard Worker    string topic = 1;
4662*d5c09012SAndroid Build Coastguard Worker
4663*d5c09012SAndroid Build Coastguard Worker    // The type of event that triggers a Pub/Sub. At most one
4664*d5c09012SAndroid Build Coastguard Worker    // `PubSubNotification` per EventType is permitted.
4665*d5c09012SAndroid Build Coastguard Worker    EventType event = 2;
4666*d5c09012SAndroid Build Coastguard Worker
4667*d5c09012SAndroid Build Coastguard Worker    // Conditions (e.g., data risk or sensitivity level) for triggering a
4668*d5c09012SAndroid Build Coastguard Worker    // Pub/Sub.
4669*d5c09012SAndroid Build Coastguard Worker    DataProfilePubSubCondition pubsub_condition = 3;
4670*d5c09012SAndroid Build Coastguard Worker
4671*d5c09012SAndroid Build Coastguard Worker    // How much data to include in the Pub/Sub message. If the user wishes to
4672*d5c09012SAndroid Build Coastguard Worker    // limit the size of the message, they can use resource_name and fetch the
4673*d5c09012SAndroid Build Coastguard Worker    // profile fields they wish to. Per table profile (not per column).
4674*d5c09012SAndroid Build Coastguard Worker    DetailLevel detail_of_message = 4;
4675*d5c09012SAndroid Build Coastguard Worker  }
4676*d5c09012SAndroid Build Coastguard Worker
4677*d5c09012SAndroid Build Coastguard Worker  // Types of event that can trigger an action.
4678*d5c09012SAndroid Build Coastguard Worker  enum EventType {
4679*d5c09012SAndroid Build Coastguard Worker    // Unused.
4680*d5c09012SAndroid Build Coastguard Worker    EVENT_TYPE_UNSPECIFIED = 0;
4681*d5c09012SAndroid Build Coastguard Worker
4682*d5c09012SAndroid Build Coastguard Worker    // New profile (not a re-profile).
4683*d5c09012SAndroid Build Coastguard Worker    NEW_PROFILE = 1;
4684*d5c09012SAndroid Build Coastguard Worker
4685*d5c09012SAndroid Build Coastguard Worker    // Changed one of the following profile metrics:
4686*d5c09012SAndroid Build Coastguard Worker    // * Table data risk score
4687*d5c09012SAndroid Build Coastguard Worker    // * Table sensitivity score
4688*d5c09012SAndroid Build Coastguard Worker    // * Table resource visibility
4689*d5c09012SAndroid Build Coastguard Worker    // * Table encryption type
4690*d5c09012SAndroid Build Coastguard Worker    // * Table predicted infoTypes
4691*d5c09012SAndroid Build Coastguard Worker    // * Table other infoTypes
4692*d5c09012SAndroid Build Coastguard Worker    CHANGED_PROFILE = 2;
4693*d5c09012SAndroid Build Coastguard Worker
4694*d5c09012SAndroid Build Coastguard Worker    // Table data risk score or sensitivity score increased.
4695*d5c09012SAndroid Build Coastguard Worker    SCORE_INCREASED = 3;
4696*d5c09012SAndroid Build Coastguard Worker
4697*d5c09012SAndroid Build Coastguard Worker    // A user (non-internal) error occurred.
4698*d5c09012SAndroid Build Coastguard Worker    ERROR_CHANGED = 4;
4699*d5c09012SAndroid Build Coastguard Worker  }
4700*d5c09012SAndroid Build Coastguard Worker
4701*d5c09012SAndroid Build Coastguard Worker  // Type of action to execute when a profile is generated.
4702*d5c09012SAndroid Build Coastguard Worker  oneof action {
4703*d5c09012SAndroid Build Coastguard Worker    // Export data profiles into a provided location.
4704*d5c09012SAndroid Build Coastguard Worker    Export export_data = 1;
4705*d5c09012SAndroid Build Coastguard Worker
4706*d5c09012SAndroid Build Coastguard Worker    // Publish a message into the Pub/Sub topic.
4707*d5c09012SAndroid Build Coastguard Worker    PubSubNotification pub_sub_notification = 2;
4708*d5c09012SAndroid Build Coastguard Worker  }
4709*d5c09012SAndroid Build Coastguard Worker}
4710*d5c09012SAndroid Build Coastguard Worker
4711*d5c09012SAndroid Build Coastguard Worker// Configuration for setting up a job to scan resources for profile generation.
4712*d5c09012SAndroid Build Coastguard Worker// Only one data profile configuration may exist per organization, folder,
4713*d5c09012SAndroid Build Coastguard Worker// or project.
4714*d5c09012SAndroid Build Coastguard Worker//
4715*d5c09012SAndroid Build Coastguard Worker// The generated data profiles are retained according to the
4716*d5c09012SAndroid Build Coastguard Worker// [data retention policy]
4717*d5c09012SAndroid Build Coastguard Worker// (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).
4718*d5c09012SAndroid Build Coastguard Workermessage DataProfileJobConfig {
4719*d5c09012SAndroid Build Coastguard Worker  // The data to scan.
4720*d5c09012SAndroid Build Coastguard Worker  DataProfileLocation location = 1;
4721*d5c09012SAndroid Build Coastguard Worker
4722*d5c09012SAndroid Build Coastguard Worker  // The project that will run the scan. The DLP service
4723*d5c09012SAndroid Build Coastguard Worker  // account that exists within this project must have access to all resources
4724*d5c09012SAndroid Build Coastguard Worker  // that are profiled, and the Cloud DLP API must be enabled.
4725*d5c09012SAndroid Build Coastguard Worker  string project_id = 5;
4726*d5c09012SAndroid Build Coastguard Worker
4727*d5c09012SAndroid Build Coastguard Worker  // Detection logic for profile generation.
4728*d5c09012SAndroid Build Coastguard Worker  //
4729*d5c09012SAndroid Build Coastguard Worker  // Not all template features are used by profiles. FindingLimits,
4730*d5c09012SAndroid Build Coastguard Worker  // include_quote and exclude_info_types have no impact on
4731*d5c09012SAndroid Build Coastguard Worker  // data profiling.
4732*d5c09012SAndroid Build Coastguard Worker  //
4733*d5c09012SAndroid Build Coastguard Worker  // Multiple templates may be provided if there is data in multiple regions.
4734*d5c09012SAndroid Build Coastguard Worker  // At most one template must be specified per-region (including "global").
4735*d5c09012SAndroid Build Coastguard Worker  // Each region is scanned using the applicable template. If no region-specific
4736*d5c09012SAndroid Build Coastguard Worker  // template is specified, but a "global" template is specified, it will be
4737*d5c09012SAndroid Build Coastguard Worker  // copied to that region and used instead. If no global or region-specific
4738*d5c09012SAndroid Build Coastguard Worker  // template is provided for a region with data, that region's data will not be
4739*d5c09012SAndroid Build Coastguard Worker  // scanned.
4740*d5c09012SAndroid Build Coastguard Worker  //
4741*d5c09012SAndroid Build Coastguard Worker  // For more information, see
4742*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency.
4743*d5c09012SAndroid Build Coastguard Worker  repeated string inspect_templates = 7;
4744*d5c09012SAndroid Build Coastguard Worker
4745*d5c09012SAndroid Build Coastguard Worker  // Actions to execute at the completion of the job.
4746*d5c09012SAndroid Build Coastguard Worker  repeated DataProfileAction data_profile_actions = 6;
4747*d5c09012SAndroid Build Coastguard Worker}
4748*d5c09012SAndroid Build Coastguard Worker
4749*d5c09012SAndroid Build Coastguard Worker// A pattern to match against one or more tables, datasets, or projects that
4750*d5c09012SAndroid Build Coastguard Worker// contain BigQuery tables. At least one pattern must be specified.
4751*d5c09012SAndroid Build Coastguard Worker// Regular expressions use RE2
4752*d5c09012SAndroid Build Coastguard Worker// [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found
4753*d5c09012SAndroid Build Coastguard Worker// under the google/re2 repository on GitHub.
4754*d5c09012SAndroid Build Coastguard Workermessage BigQueryRegex {
4755*d5c09012SAndroid Build Coastguard Worker  // For organizations, if unset, will match all projects. Has no effect
4756*d5c09012SAndroid Build Coastguard Worker  // for data profile configurations created within a project.
4757*d5c09012SAndroid Build Coastguard Worker  string project_id_regex = 1;
4758*d5c09012SAndroid Build Coastguard Worker
4759*d5c09012SAndroid Build Coastguard Worker  // If unset, this property matches all datasets.
4760*d5c09012SAndroid Build Coastguard Worker  string dataset_id_regex = 2;
4761*d5c09012SAndroid Build Coastguard Worker
4762*d5c09012SAndroid Build Coastguard Worker  // If unset, this property matches all tables.
4763*d5c09012SAndroid Build Coastguard Worker  string table_id_regex = 3;
4764*d5c09012SAndroid Build Coastguard Worker}
4765*d5c09012SAndroid Build Coastguard Worker
4766*d5c09012SAndroid Build Coastguard Worker// A collection of regular expressions to determine what tables to match
4767*d5c09012SAndroid Build Coastguard Worker// against.
4768*d5c09012SAndroid Build Coastguard Workermessage BigQueryRegexes {
4769*d5c09012SAndroid Build Coastguard Worker  // A single BigQuery regular expression pattern to match against one or more
4770*d5c09012SAndroid Build Coastguard Worker  // tables, datasets, or projects that contain BigQuery tables.
4771*d5c09012SAndroid Build Coastguard Worker  repeated BigQueryRegex patterns = 1;
4772*d5c09012SAndroid Build Coastguard Worker}
4773*d5c09012SAndroid Build Coastguard Worker
4774*d5c09012SAndroid Build Coastguard Worker// The types of BigQuery tables supported by Cloud DLP.
4775*d5c09012SAndroid Build Coastguard Workermessage BigQueryTableTypes {
4776*d5c09012SAndroid Build Coastguard Worker  // A set of BigQuery table types.
4777*d5c09012SAndroid Build Coastguard Worker  repeated BigQueryTableType types = 1;
4778*d5c09012SAndroid Build Coastguard Worker}
4779*d5c09012SAndroid Build Coastguard Worker
4780*d5c09012SAndroid Build Coastguard Worker// Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW,
4781*d5c09012SAndroid Build Coastguard Worker// and SNAPSHOT are not supported.
4782*d5c09012SAndroid Build Coastguard Workerenum BigQueryTableTypeCollection {
4783*d5c09012SAndroid Build Coastguard Worker  // Unused.
4784*d5c09012SAndroid Build Coastguard Worker  BIG_QUERY_COLLECTION_UNSPECIFIED = 0;
4785*d5c09012SAndroid Build Coastguard Worker
4786*d5c09012SAndroid Build Coastguard Worker  // Automatically generate profiles for all tables, even if the table type is
4787*d5c09012SAndroid Build Coastguard Worker  // not yet fully supported for analysis. Profiles for unsupported tables will
4788*d5c09012SAndroid Build Coastguard Worker  // be generated with errors to indicate their partial support. When full
4789*d5c09012SAndroid Build Coastguard Worker  // support is added, the tables will automatically be profiled during the next
4790*d5c09012SAndroid Build Coastguard Worker  // scheduled run.
4791*d5c09012SAndroid Build Coastguard Worker  BIG_QUERY_COLLECTION_ALL_TYPES = 1;
4792*d5c09012SAndroid Build Coastguard Worker
4793*d5c09012SAndroid Build Coastguard Worker  // Only those types fully supported will be profiled. Will expand
4794*d5c09012SAndroid Build Coastguard Worker  // automatically as Cloud DLP adds support for new table types. Unsupported
4795*d5c09012SAndroid Build Coastguard Worker  // table types will not have partial profiles generated.
4796*d5c09012SAndroid Build Coastguard Worker  BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES = 2;
4797*d5c09012SAndroid Build Coastguard Worker}
4798*d5c09012SAndroid Build Coastguard Worker
4799*d5c09012SAndroid Build Coastguard Worker// Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW,
4800*d5c09012SAndroid Build Coastguard Worker// SNAPSHOT, and non-BigLake external tables are not supported.
4801*d5c09012SAndroid Build Coastguard Workerenum BigQueryTableType {
4802*d5c09012SAndroid Build Coastguard Worker  // Unused.
4803*d5c09012SAndroid Build Coastguard Worker  BIG_QUERY_TABLE_TYPE_UNSPECIFIED = 0;
4804*d5c09012SAndroid Build Coastguard Worker
4805*d5c09012SAndroid Build Coastguard Worker  // A normal BigQuery table.
4806*d5c09012SAndroid Build Coastguard Worker  BIG_QUERY_TABLE_TYPE_TABLE = 1;
4807*d5c09012SAndroid Build Coastguard Worker
4808*d5c09012SAndroid Build Coastguard Worker  // A table that references data stored in Cloud Storage.
4809*d5c09012SAndroid Build Coastguard Worker  BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE = 2;
4810*d5c09012SAndroid Build Coastguard Worker}
4811*d5c09012SAndroid Build Coastguard Worker
4812*d5c09012SAndroid Build Coastguard Worker// How frequently data profiles can be updated. New options can be added at a
4813*d5c09012SAndroid Build Coastguard Worker// later time.
4814*d5c09012SAndroid Build Coastguard Workerenum DataProfileUpdateFrequency {
4815*d5c09012SAndroid Build Coastguard Worker  // Unspecified.
4816*d5c09012SAndroid Build Coastguard Worker  UPDATE_FREQUENCY_UNSPECIFIED = 0;
4817*d5c09012SAndroid Build Coastguard Worker
4818*d5c09012SAndroid Build Coastguard Worker  // After the data profile is created, it will never be updated.
4819*d5c09012SAndroid Build Coastguard Worker  UPDATE_FREQUENCY_NEVER = 1;
4820*d5c09012SAndroid Build Coastguard Worker
4821*d5c09012SAndroid Build Coastguard Worker  // The data profile can be updated up to once every 24 hours.
4822*d5c09012SAndroid Build Coastguard Worker  UPDATE_FREQUENCY_DAILY = 2;
4823*d5c09012SAndroid Build Coastguard Worker
4824*d5c09012SAndroid Build Coastguard Worker  // The data profile can be updated up to once every 30 days. Default.
4825*d5c09012SAndroid Build Coastguard Worker  UPDATE_FREQUENCY_MONTHLY = 4;
4826*d5c09012SAndroid Build Coastguard Worker}
4827*d5c09012SAndroid Build Coastguard Worker
4828*d5c09012SAndroid Build Coastguard Worker// Do not profile the tables.
4829*d5c09012SAndroid Build Coastguard Workermessage Disabled {}
4830*d5c09012SAndroid Build Coastguard Worker
4831*d5c09012SAndroid Build Coastguard Worker// The data that will be profiled.
4832*d5c09012SAndroid Build Coastguard Workermessage DataProfileLocation {
4833*d5c09012SAndroid Build Coastguard Worker  // The location to be scanned.
4834*d5c09012SAndroid Build Coastguard Worker  oneof location {
4835*d5c09012SAndroid Build Coastguard Worker    // The ID of an organization to scan.
4836*d5c09012SAndroid Build Coastguard Worker    int64 organization_id = 1;
4837*d5c09012SAndroid Build Coastguard Worker
4838*d5c09012SAndroid Build Coastguard Worker    // The ID of the Folder within an organization to scan.
4839*d5c09012SAndroid Build Coastguard Worker    int64 folder_id = 2;
4840*d5c09012SAndroid Build Coastguard Worker  }
4841*d5c09012SAndroid Build Coastguard Worker}
4842*d5c09012SAndroid Build Coastguard Worker
4843*d5c09012SAndroid Build Coastguard Worker// Configuration for discovery to scan resources for profile generation.
4844*d5c09012SAndroid Build Coastguard Worker// Only one discovery configuration may exist per organization, folder,
4845*d5c09012SAndroid Build Coastguard Worker// or project.
4846*d5c09012SAndroid Build Coastguard Worker//
4847*d5c09012SAndroid Build Coastguard Worker// The generated data profiles are retained according to the
4848*d5c09012SAndroid Build Coastguard Worker// [data retention policy]
4849*d5c09012SAndroid Build Coastguard Worker// (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).
4850*d5c09012SAndroid Build Coastguard Workermessage DiscoveryConfig {
4851*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
4852*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/DiscoveryConfig"
4853*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/discoveryConfigs/{discovery_config}"
4854*d5c09012SAndroid Build Coastguard Worker  };
4855*d5c09012SAndroid Build Coastguard Worker
4856*d5c09012SAndroid Build Coastguard Worker  // Project and scan location information. Only set when the parent is an org.
4857*d5c09012SAndroid Build Coastguard Worker  message OrgConfig {
4858*d5c09012SAndroid Build Coastguard Worker    // The data to scan: folder, org, or project
4859*d5c09012SAndroid Build Coastguard Worker    DiscoveryStartingLocation location = 1;
4860*d5c09012SAndroid Build Coastguard Worker
4861*d5c09012SAndroid Build Coastguard Worker    // The project that will run the scan. The DLP service
4862*d5c09012SAndroid Build Coastguard Worker    // account that exists within this project must have access to all resources
4863*d5c09012SAndroid Build Coastguard Worker    // that are profiled, and the Cloud DLP API must be enabled.
4864*d5c09012SAndroid Build Coastguard Worker    string project_id = 2;
4865*d5c09012SAndroid Build Coastguard Worker  }
4866*d5c09012SAndroid Build Coastguard Worker
4867*d5c09012SAndroid Build Coastguard Worker  // Whether the discovery config is currently active. New options may be added
4868*d5c09012SAndroid Build Coastguard Worker  // at a later time.
4869*d5c09012SAndroid Build Coastguard Worker  enum Status {
4870*d5c09012SAndroid Build Coastguard Worker    // Unused
4871*d5c09012SAndroid Build Coastguard Worker    STATUS_UNSPECIFIED = 0;
4872*d5c09012SAndroid Build Coastguard Worker
4873*d5c09012SAndroid Build Coastguard Worker    // The discovery config is currently active.
4874*d5c09012SAndroid Build Coastguard Worker    RUNNING = 1;
4875*d5c09012SAndroid Build Coastguard Worker
4876*d5c09012SAndroid Build Coastguard Worker    // The discovery config is paused temporarily.
4877*d5c09012SAndroid Build Coastguard Worker    PAUSED = 2;
4878*d5c09012SAndroid Build Coastguard Worker  }
4879*d5c09012SAndroid Build Coastguard Worker
4880*d5c09012SAndroid Build Coastguard Worker  // Unique resource name for the DiscoveryConfig, assigned by the service when
4881*d5c09012SAndroid Build Coastguard Worker  // the DiscoveryConfig is created, for example
4882*d5c09012SAndroid Build Coastguard Worker  // `projects/dlp-test-project/locations/global/discoveryConfigs/53234423`.
4883*d5c09012SAndroid Build Coastguard Worker  string name = 1;
4884*d5c09012SAndroid Build Coastguard Worker
4885*d5c09012SAndroid Build Coastguard Worker  // Display name (max 100 chars)
4886*d5c09012SAndroid Build Coastguard Worker  string display_name = 11;
4887*d5c09012SAndroid Build Coastguard Worker
4888*d5c09012SAndroid Build Coastguard Worker  // Only set when the parent is an org.
4889*d5c09012SAndroid Build Coastguard Worker  OrgConfig org_config = 2;
4890*d5c09012SAndroid Build Coastguard Worker
4891*d5c09012SAndroid Build Coastguard Worker  // Detection logic for profile generation.
4892*d5c09012SAndroid Build Coastguard Worker  //
4893*d5c09012SAndroid Build Coastguard Worker  // Not all template features are used by Discovery. FindingLimits,
4894*d5c09012SAndroid Build Coastguard Worker  // include_quote and exclude_info_types have no impact on
4895*d5c09012SAndroid Build Coastguard Worker  // Discovery.
4896*d5c09012SAndroid Build Coastguard Worker  //
4897*d5c09012SAndroid Build Coastguard Worker  // Multiple templates may be provided if there is data in multiple regions.
4898*d5c09012SAndroid Build Coastguard Worker  // At most one template must be specified per-region (including "global").
4899*d5c09012SAndroid Build Coastguard Worker  // Each region is scanned using the applicable template. If no region-specific
4900*d5c09012SAndroid Build Coastguard Worker  // template is specified, but a "global" template is specified, it will be
4901*d5c09012SAndroid Build Coastguard Worker  // copied to that region and used instead. If no global or region-specific
4902*d5c09012SAndroid Build Coastguard Worker  // template is provided for a region with data, that region's data will not be
4903*d5c09012SAndroid Build Coastguard Worker  // scanned.
4904*d5c09012SAndroid Build Coastguard Worker  //
4905*d5c09012SAndroid Build Coastguard Worker  // For more information, see
4906*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/sensitive-data-protection/docs/data-profiles#data-residency.
4907*d5c09012SAndroid Build Coastguard Worker  repeated string inspect_templates = 3;
4908*d5c09012SAndroid Build Coastguard Worker
4909*d5c09012SAndroid Build Coastguard Worker  // Actions to execute at the completion of scanning.
4910*d5c09012SAndroid Build Coastguard Worker  repeated DataProfileAction actions = 4;
4911*d5c09012SAndroid Build Coastguard Worker
4912*d5c09012SAndroid Build Coastguard Worker  // Target to match against for determining what to scan and how frequently.
4913*d5c09012SAndroid Build Coastguard Worker  repeated DiscoveryTarget targets = 5;
4914*d5c09012SAndroid Build Coastguard Worker
4915*d5c09012SAndroid Build Coastguard Worker  // Output only. A stream of errors encountered when the config was activated.
4916*d5c09012SAndroid Build Coastguard Worker  // Repeated errors may result in the config automatically being paused. Output
4917*d5c09012SAndroid Build Coastguard Worker  // only field. Will return the last 100 errors. Whenever the config is
4918*d5c09012SAndroid Build Coastguard Worker  // modified this list will be cleared.
4919*d5c09012SAndroid Build Coastguard Worker  repeated Error errors = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
4920*d5c09012SAndroid Build Coastguard Worker
4921*d5c09012SAndroid Build Coastguard Worker  // Output only. The creation timestamp of a DiscoveryConfig.
4922*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 7
4923*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
4924*d5c09012SAndroid Build Coastguard Worker
4925*d5c09012SAndroid Build Coastguard Worker  // Output only. The last update timestamp of a DiscoveryConfig.
4926*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 8
4927*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
4928*d5c09012SAndroid Build Coastguard Worker
4929*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp of the last time this config was executed.
4930*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp last_run_time = 9
4931*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
4932*d5c09012SAndroid Build Coastguard Worker
4933*d5c09012SAndroid Build Coastguard Worker  // Required. A status for this configuration.
4934*d5c09012SAndroid Build Coastguard Worker  Status status = 10 [(google.api.field_behavior) = REQUIRED];
4935*d5c09012SAndroid Build Coastguard Worker}
4936*d5c09012SAndroid Build Coastguard Worker
4937*d5c09012SAndroid Build Coastguard Worker// Target used to match against for Discovery.
4938*d5c09012SAndroid Build Coastguard Workermessage DiscoveryTarget {
4939*d5c09012SAndroid Build Coastguard Worker  // A target to match against for Discovery.
4940*d5c09012SAndroid Build Coastguard Worker  oneof target {
4941*d5c09012SAndroid Build Coastguard Worker    // BigQuery target for Discovery. The first target to match a table will be
4942*d5c09012SAndroid Build Coastguard Worker    // the one applied.
4943*d5c09012SAndroid Build Coastguard Worker    BigQueryDiscoveryTarget big_query_target = 1;
4944*d5c09012SAndroid Build Coastguard Worker  }
4945*d5c09012SAndroid Build Coastguard Worker}
4946*d5c09012SAndroid Build Coastguard Worker
4947*d5c09012SAndroid Build Coastguard Worker// Target used to match against for discovery with BigQuery tables
4948*d5c09012SAndroid Build Coastguard Workermessage BigQueryDiscoveryTarget {
4949*d5c09012SAndroid Build Coastguard Worker  // Required. The tables the discovery cadence applies to. The first target
4950*d5c09012SAndroid Build Coastguard Worker  // with a matching filter will be the one to apply to a table.
4951*d5c09012SAndroid Build Coastguard Worker  DiscoveryBigQueryFilter filter = 1 [(google.api.field_behavior) = REQUIRED];
4952*d5c09012SAndroid Build Coastguard Worker
4953*d5c09012SAndroid Build Coastguard Worker  // In addition to matching the filter, these conditions must be true
4954*d5c09012SAndroid Build Coastguard Worker  // before a profile is generated.
4955*d5c09012SAndroid Build Coastguard Worker  DiscoveryBigQueryConditions conditions = 2;
4956*d5c09012SAndroid Build Coastguard Worker
4957*d5c09012SAndroid Build Coastguard Worker  // The generation rule includes the logic on how frequently
4958*d5c09012SAndroid Build Coastguard Worker  // to update the data profiles. If not specified, discovery will re-run and
4959*d5c09012SAndroid Build Coastguard Worker  // update no more than once a month if new columns appear in the table.
4960*d5c09012SAndroid Build Coastguard Worker  oneof frequency {
4961*d5c09012SAndroid Build Coastguard Worker    // How often and when to update profiles. New tables that match both the
4962*d5c09012SAndroid Build Coastguard Worker    // filter and conditions are scanned as quickly as possible depending on
4963*d5c09012SAndroid Build Coastguard Worker    // system capacity.
4964*d5c09012SAndroid Build Coastguard Worker    DiscoveryGenerationCadence cadence = 3;
4965*d5c09012SAndroid Build Coastguard Worker
4966*d5c09012SAndroid Build Coastguard Worker    // Tables that match this filter will not have profiles created.
4967*d5c09012SAndroid Build Coastguard Worker    Disabled disabled = 4;
4968*d5c09012SAndroid Build Coastguard Worker  }
4969*d5c09012SAndroid Build Coastguard Worker}
4970*d5c09012SAndroid Build Coastguard Worker
4971*d5c09012SAndroid Build Coastguard Worker// Determines what tables will have profiles generated within an organization
4972*d5c09012SAndroid Build Coastguard Worker// or project. Includes the ability to filter by regular expression patterns
4973*d5c09012SAndroid Build Coastguard Worker// on project ID, dataset ID, and table ID.
4974*d5c09012SAndroid Build Coastguard Workermessage DiscoveryBigQueryFilter {
4975*d5c09012SAndroid Build Coastguard Worker  // Catch-all for all other tables not specified by other filters. Should
4976*d5c09012SAndroid Build Coastguard Worker  // always be last, except for single-table configurations, which will only
4977*d5c09012SAndroid Build Coastguard Worker  // have a TableReference target.
4978*d5c09012SAndroid Build Coastguard Worker  message AllOtherBigQueryTables {}
4979*d5c09012SAndroid Build Coastguard Worker
4980*d5c09012SAndroid Build Coastguard Worker  // Whether the filter applies to a specific set of tables or all other tables
4981*d5c09012SAndroid Build Coastguard Worker  // within the location being profiled. The first filter to match will be
4982*d5c09012SAndroid Build Coastguard Worker  // applied, regardless of the condition. If none is set, will default to
4983*d5c09012SAndroid Build Coastguard Worker  // `other_tables`.
4984*d5c09012SAndroid Build Coastguard Worker  oneof filter {
4985*d5c09012SAndroid Build Coastguard Worker    // A specific set of tables for this filter to apply to. A table collection
4986*d5c09012SAndroid Build Coastguard Worker    // must be specified in only one filter per config.
4987*d5c09012SAndroid Build Coastguard Worker    // If a table id or dataset is empty, Cloud DLP assumes all tables in that
4988*d5c09012SAndroid Build Coastguard Worker    // collection must be profiled. Must specify a project ID.
4989*d5c09012SAndroid Build Coastguard Worker    BigQueryTableCollection tables = 1;
4990*d5c09012SAndroid Build Coastguard Worker
4991*d5c09012SAndroid Build Coastguard Worker    // Catch-all. This should always be the last filter in the list because
4992*d5c09012SAndroid Build Coastguard Worker    // anything above it will apply first. Should only appear once in a
4993*d5c09012SAndroid Build Coastguard Worker    // configuration. If none is specified, a default one will be added
4994*d5c09012SAndroid Build Coastguard Worker    // automatically.
4995*d5c09012SAndroid Build Coastguard Worker    AllOtherBigQueryTables other_tables = 2;
4996*d5c09012SAndroid Build Coastguard Worker  }
4997*d5c09012SAndroid Build Coastguard Worker}
4998*d5c09012SAndroid Build Coastguard Worker
4999*d5c09012SAndroid Build Coastguard Worker// Specifies a collection of BigQuery tables. Used for Discovery.
5000*d5c09012SAndroid Build Coastguard Workermessage BigQueryTableCollection {
5001*d5c09012SAndroid Build Coastguard Worker  // Maximum of 100 entries.
5002*d5c09012SAndroid Build Coastguard Worker  // The first filter containing a pattern that matches a table will be used.
5003*d5c09012SAndroid Build Coastguard Worker  oneof pattern {
5004*d5c09012SAndroid Build Coastguard Worker    // A collection of regular expressions to match a BigQuery table against.
5005*d5c09012SAndroid Build Coastguard Worker    BigQueryRegexes include_regexes = 1;
5006*d5c09012SAndroid Build Coastguard Worker  }
5007*d5c09012SAndroid Build Coastguard Worker}
5008*d5c09012SAndroid Build Coastguard Worker
5009*d5c09012SAndroid Build Coastguard Worker// Requirements that must be true before a table is scanned in discovery for the
5010*d5c09012SAndroid Build Coastguard Worker// first time. There is an AND relationship between the top-level attributes.
5011*d5c09012SAndroid Build Coastguard Worker// Additionally, minimum conditions with an OR relationship that must be met
5012*d5c09012SAndroid Build Coastguard Worker// before Cloud DLP scans a table can be set (like a minimum row count or a
5013*d5c09012SAndroid Build Coastguard Worker// minimum table age).
5014*d5c09012SAndroid Build Coastguard Workermessage DiscoveryBigQueryConditions {
5015*d5c09012SAndroid Build Coastguard Worker  // There is an OR relationship between these attributes. They are used to
5016*d5c09012SAndroid Build Coastguard Worker  // determine if a table should be scanned or not in Discovery.
5017*d5c09012SAndroid Build Coastguard Worker  message OrConditions {
5018*d5c09012SAndroid Build Coastguard Worker    // Minimum number of rows that should be present before Cloud DLP
5019*d5c09012SAndroid Build Coastguard Worker    // profiles a table
5020*d5c09012SAndroid Build Coastguard Worker    int32 min_row_count = 1;
5021*d5c09012SAndroid Build Coastguard Worker
5022*d5c09012SAndroid Build Coastguard Worker    // Minimum age a table must have before Cloud DLP can profile it. Value must
5023*d5c09012SAndroid Build Coastguard Worker    // be 1 hour or greater.
5024*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Duration min_age = 2;
5025*d5c09012SAndroid Build Coastguard Worker  }
5026*d5c09012SAndroid Build Coastguard Worker
5027*d5c09012SAndroid Build Coastguard Worker  // BigQuery table must have been created after this date. Used to avoid
5028*d5c09012SAndroid Build Coastguard Worker  // backfilling.
5029*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp created_after = 1;
5030*d5c09012SAndroid Build Coastguard Worker
5031*d5c09012SAndroid Build Coastguard Worker  // The type of BigQuery tables to scan. If nothing is set the default
5032*d5c09012SAndroid Build Coastguard Worker  // behavior is to scan only tables of type TABLE and to give errors
5033*d5c09012SAndroid Build Coastguard Worker  // for all unsupported tables.
5034*d5c09012SAndroid Build Coastguard Worker  oneof included_types {
5035*d5c09012SAndroid Build Coastguard Worker    // Restrict discovery to specific table types.
5036*d5c09012SAndroid Build Coastguard Worker    BigQueryTableTypes types = 2;
5037*d5c09012SAndroid Build Coastguard Worker
5038*d5c09012SAndroid Build Coastguard Worker    // Restrict discovery to categories of table types.
5039*d5c09012SAndroid Build Coastguard Worker    BigQueryTableTypeCollection type_collection = 3;
5040*d5c09012SAndroid Build Coastguard Worker  }
5041*d5c09012SAndroid Build Coastguard Worker
5042*d5c09012SAndroid Build Coastguard Worker  // At least one of the conditions must be true for a table to be scanned.
5043*d5c09012SAndroid Build Coastguard Worker  OrConditions or_conditions = 4;
5044*d5c09012SAndroid Build Coastguard Worker}
5045*d5c09012SAndroid Build Coastguard Worker
5046*d5c09012SAndroid Build Coastguard Worker// What must take place for a profile to be updated and how
5047*d5c09012SAndroid Build Coastguard Worker// frequently it should occur.
5048*d5c09012SAndroid Build Coastguard Worker// New tables are scanned as quickly as possible depending on system
5049*d5c09012SAndroid Build Coastguard Worker// capacity.
5050*d5c09012SAndroid Build Coastguard Workermessage DiscoveryGenerationCadence {
5051*d5c09012SAndroid Build Coastguard Worker  // Governs when to update data profiles when a schema is modified.
5052*d5c09012SAndroid Build Coastguard Worker  DiscoverySchemaModifiedCadence schema_modified_cadence = 1;
5053*d5c09012SAndroid Build Coastguard Worker
5054*d5c09012SAndroid Build Coastguard Worker  // Governs when to update data profiles when a table is modified.
5055*d5c09012SAndroid Build Coastguard Worker  DiscoveryTableModifiedCadence table_modified_cadence = 2;
5056*d5c09012SAndroid Build Coastguard Worker}
5057*d5c09012SAndroid Build Coastguard Worker
5058*d5c09012SAndroid Build Coastguard Worker// The cadence at which to update data profiles when a table is modified.
5059*d5c09012SAndroid Build Coastguard Workermessage DiscoveryTableModifiedCadence {
5060*d5c09012SAndroid Build Coastguard Worker  // The type of events to consider when deciding if the table has been
5061*d5c09012SAndroid Build Coastguard Worker  // modified and should have the profile updated. Defaults to
5062*d5c09012SAndroid Build Coastguard Worker  // MODIFIED_TIMESTAMP.
5063*d5c09012SAndroid Build Coastguard Worker  repeated BigQueryTableModification types = 1;
5064*d5c09012SAndroid Build Coastguard Worker
5065*d5c09012SAndroid Build Coastguard Worker  // How frequently data profiles can be updated when tables are modified.
5066*d5c09012SAndroid Build Coastguard Worker  // Defaults to never.
5067*d5c09012SAndroid Build Coastguard Worker  DataProfileUpdateFrequency frequency = 2;
5068*d5c09012SAndroid Build Coastguard Worker}
5069*d5c09012SAndroid Build Coastguard Worker
5070*d5c09012SAndroid Build Coastguard Worker// Attributes evaluated to determine if a table has been modified. New values
5071*d5c09012SAndroid Build Coastguard Worker// may be added at a later time.
5072*d5c09012SAndroid Build Coastguard Workerenum BigQueryTableModification {
5073*d5c09012SAndroid Build Coastguard Worker  // Unused.
5074*d5c09012SAndroid Build Coastguard Worker  TABLE_MODIFICATION_UNSPECIFIED = 0;
5075*d5c09012SAndroid Build Coastguard Worker
5076*d5c09012SAndroid Build Coastguard Worker  // A table will be considered modified when the last_modified_time from
5077*d5c09012SAndroid Build Coastguard Worker  // BigQuery has been updated.
5078*d5c09012SAndroid Build Coastguard Worker  TABLE_MODIFIED_TIMESTAMP = 1;
5079*d5c09012SAndroid Build Coastguard Worker}
5080*d5c09012SAndroid Build Coastguard Worker
5081*d5c09012SAndroid Build Coastguard Worker// The cadence at which to update data profiles when a schema is modified.
5082*d5c09012SAndroid Build Coastguard Workermessage DiscoverySchemaModifiedCadence {
5083*d5c09012SAndroid Build Coastguard Worker  // The type of events to consider when deciding if the table's schema
5084*d5c09012SAndroid Build Coastguard Worker  // has been modified and should have the profile updated. Defaults to
5085*d5c09012SAndroid Build Coastguard Worker  // NEW_COLUMNS.
5086*d5c09012SAndroid Build Coastguard Worker  repeated BigQuerySchemaModification types = 1;
5087*d5c09012SAndroid Build Coastguard Worker
5088*d5c09012SAndroid Build Coastguard Worker  // How frequently profiles may be updated when schemas are
5089*d5c09012SAndroid Build Coastguard Worker  // modified. Defaults to monthly.
5090*d5c09012SAndroid Build Coastguard Worker  DataProfileUpdateFrequency frequency = 2;
5091*d5c09012SAndroid Build Coastguard Worker}
5092*d5c09012SAndroid Build Coastguard Worker
5093*d5c09012SAndroid Build Coastguard Worker// Attributes evaluated to determine if a schema has been modified. New values
5094*d5c09012SAndroid Build Coastguard Worker// may be added at a later time.
5095*d5c09012SAndroid Build Coastguard Workerenum BigQuerySchemaModification {
5096*d5c09012SAndroid Build Coastguard Worker  // Unused
5097*d5c09012SAndroid Build Coastguard Worker  SCHEMA_MODIFICATION_UNSPECIFIED = 0;
5098*d5c09012SAndroid Build Coastguard Worker
5099*d5c09012SAndroid Build Coastguard Worker  // Profiles should be regenerated when new columns are added to the table.
5100*d5c09012SAndroid Build Coastguard Worker  // Default.
5101*d5c09012SAndroid Build Coastguard Worker  SCHEMA_NEW_COLUMNS = 1;
5102*d5c09012SAndroid Build Coastguard Worker
5103*d5c09012SAndroid Build Coastguard Worker  // Profiles should be regenerated when columns are removed from the table.
5104*d5c09012SAndroid Build Coastguard Worker  SCHEMA_REMOVED_COLUMNS = 2;
5105*d5c09012SAndroid Build Coastguard Worker}
5106*d5c09012SAndroid Build Coastguard Worker
5107*d5c09012SAndroid Build Coastguard Worker// The location to begin a discovery scan. Denotes an organization ID or folder
5108*d5c09012SAndroid Build Coastguard Worker// ID within an organization.
5109*d5c09012SAndroid Build Coastguard Workermessage DiscoveryStartingLocation {
5110*d5c09012SAndroid Build Coastguard Worker  // The location to be scanned.
5111*d5c09012SAndroid Build Coastguard Worker  oneof location {
5112*d5c09012SAndroid Build Coastguard Worker    // The ID of an organization to scan.
5113*d5c09012SAndroid Build Coastguard Worker    int64 organization_id = 1;
5114*d5c09012SAndroid Build Coastguard Worker
5115*d5c09012SAndroid Build Coastguard Worker    // The ID of the Folder within an organization to scan.
5116*d5c09012SAndroid Build Coastguard Worker    int64 folder_id = 2;
5117*d5c09012SAndroid Build Coastguard Worker  }
5118*d5c09012SAndroid Build Coastguard Worker}
5119*d5c09012SAndroid Build Coastguard Worker
5120*d5c09012SAndroid Build Coastguard Worker// Combines all of the information about a DLP job.
5121*d5c09012SAndroid Build Coastguard Workermessage DlpJob {
5122*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
5123*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/DlpJob"
5124*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/dlpJobs/{dlp_job}"
5125*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/dlpJobs/{dlp_job}"
5126*d5c09012SAndroid Build Coastguard Worker  };
5127*d5c09012SAndroid Build Coastguard Worker
5128*d5c09012SAndroid Build Coastguard Worker  // Possible states of a job. New items may be added.
5129*d5c09012SAndroid Build Coastguard Worker  enum JobState {
5130*d5c09012SAndroid Build Coastguard Worker    // Unused.
5131*d5c09012SAndroid Build Coastguard Worker    JOB_STATE_UNSPECIFIED = 0;
5132*d5c09012SAndroid Build Coastguard Worker
5133*d5c09012SAndroid Build Coastguard Worker    // The job has not yet started.
5134*d5c09012SAndroid Build Coastguard Worker    PENDING = 1;
5135*d5c09012SAndroid Build Coastguard Worker
5136*d5c09012SAndroid Build Coastguard Worker    // The job is currently running. Once a job has finished it will transition
5137*d5c09012SAndroid Build Coastguard Worker    // to FAILED or DONE.
5138*d5c09012SAndroid Build Coastguard Worker    RUNNING = 2;
5139*d5c09012SAndroid Build Coastguard Worker
5140*d5c09012SAndroid Build Coastguard Worker    // The job is no longer running.
5141*d5c09012SAndroid Build Coastguard Worker    DONE = 3;
5142*d5c09012SAndroid Build Coastguard Worker
5143*d5c09012SAndroid Build Coastguard Worker    // The job was canceled before it could be completed.
5144*d5c09012SAndroid Build Coastguard Worker    CANCELED = 4;
5145*d5c09012SAndroid Build Coastguard Worker
5146*d5c09012SAndroid Build Coastguard Worker    // The job had an error and did not complete.
5147*d5c09012SAndroid Build Coastguard Worker    FAILED = 5;
5148*d5c09012SAndroid Build Coastguard Worker
5149*d5c09012SAndroid Build Coastguard Worker    // The job is currently accepting findings via hybridInspect.
5150*d5c09012SAndroid Build Coastguard Worker    // A hybrid job in ACTIVE state may continue to have findings added to it
5151*d5c09012SAndroid Build Coastguard Worker    // through the calling of hybridInspect. After the job has finished no more
5152*d5c09012SAndroid Build Coastguard Worker    // calls to hybridInspect may be made. ACTIVE jobs can transition to DONE.
5153*d5c09012SAndroid Build Coastguard Worker    ACTIVE = 6;
5154*d5c09012SAndroid Build Coastguard Worker  }
5155*d5c09012SAndroid Build Coastguard Worker
5156*d5c09012SAndroid Build Coastguard Worker  // The server-assigned name.
5157*d5c09012SAndroid Build Coastguard Worker  string name = 1;
5158*d5c09012SAndroid Build Coastguard Worker
5159*d5c09012SAndroid Build Coastguard Worker  // The type of job.
5160*d5c09012SAndroid Build Coastguard Worker  DlpJobType type = 2;
5161*d5c09012SAndroid Build Coastguard Worker
5162*d5c09012SAndroid Build Coastguard Worker  // State of a job.
5163*d5c09012SAndroid Build Coastguard Worker  JobState state = 3;
5164*d5c09012SAndroid Build Coastguard Worker
5165*d5c09012SAndroid Build Coastguard Worker  // Job details.
5166*d5c09012SAndroid Build Coastguard Worker  oneof details {
5167*d5c09012SAndroid Build Coastguard Worker    // Results from analyzing risk of a data source.
5168*d5c09012SAndroid Build Coastguard Worker    AnalyzeDataSourceRiskDetails risk_details = 4;
5169*d5c09012SAndroid Build Coastguard Worker
5170*d5c09012SAndroid Build Coastguard Worker    // Results from inspecting a data source.
5171*d5c09012SAndroid Build Coastguard Worker    InspectDataSourceDetails inspect_details = 5;
5172*d5c09012SAndroid Build Coastguard Worker  }
5173*d5c09012SAndroid Build Coastguard Worker
5174*d5c09012SAndroid Build Coastguard Worker  // Time when the job was created.
5175*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 6;
5176*d5c09012SAndroid Build Coastguard Worker
5177*d5c09012SAndroid Build Coastguard Worker  // Time when the job started.
5178*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 7;
5179*d5c09012SAndroid Build Coastguard Worker
5180*d5c09012SAndroid Build Coastguard Worker  // Time when the job finished.
5181*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 8;
5182*d5c09012SAndroid Build Coastguard Worker
5183*d5c09012SAndroid Build Coastguard Worker  // Time when the job was last modified by the system.
5184*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp last_modified = 15;
5185*d5c09012SAndroid Build Coastguard Worker
5186*d5c09012SAndroid Build Coastguard Worker  // If created by a job trigger, the resource name of the trigger that
5187*d5c09012SAndroid Build Coastguard Worker  // instantiated the job.
5188*d5c09012SAndroid Build Coastguard Worker  string job_trigger_name = 10;
5189*d5c09012SAndroid Build Coastguard Worker
5190*d5c09012SAndroid Build Coastguard Worker  // A stream of errors encountered running the job.
5191*d5c09012SAndroid Build Coastguard Worker  repeated Error errors = 11;
5192*d5c09012SAndroid Build Coastguard Worker
5193*d5c09012SAndroid Build Coastguard Worker  // Events that should occur after the job has completed.
5194*d5c09012SAndroid Build Coastguard Worker  repeated ActionDetails action_details = 12;
5195*d5c09012SAndroid Build Coastguard Worker}
5196*d5c09012SAndroid Build Coastguard Worker
5197*d5c09012SAndroid Build Coastguard Worker// The request message for [DlpJobs.GetDlpJob][].
5198*d5c09012SAndroid Build Coastguard Workermessage GetDlpJobRequest {
5199*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the DlpJob resource.
5200*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5201*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5202*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
5203*d5c09012SAndroid Build Coastguard Worker  ];
5204*d5c09012SAndroid Build Coastguard Worker}
5205*d5c09012SAndroid Build Coastguard Worker
5206*d5c09012SAndroid Build Coastguard Worker// The request message for listing DLP jobs.
5207*d5c09012SAndroid Build Coastguard Workermessage ListDlpJobsRequest {
5208*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
5209*d5c09012SAndroid Build Coastguard Worker  //
5210*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on whether you have [specified a
5211*d5c09012SAndroid Build Coastguard Worker  // processing
5212*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5213*d5c09012SAndroid Build Coastguard Worker  //
5214*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
5215*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5216*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
5217*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
5218*d5c09012SAndroid Build Coastguard Worker  //
5219*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
5220*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
5221*d5c09012SAndroid Build Coastguard Worker  // for processing data:
5222*d5c09012SAndroid Build Coastguard Worker  //
5223*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
5224*d5c09012SAndroid Build Coastguard Worker  string parent = 4 [
5225*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5226*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5227*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DlpJob"
5228*d5c09012SAndroid Build Coastguard Worker    }
5229*d5c09012SAndroid Build Coastguard Worker  ];
5230*d5c09012SAndroid Build Coastguard Worker
5231*d5c09012SAndroid Build Coastguard Worker  // Allows filtering.
5232*d5c09012SAndroid Build Coastguard Worker  //
5233*d5c09012SAndroid Build Coastguard Worker  // Supported syntax:
5234*d5c09012SAndroid Build Coastguard Worker  //
5235*d5c09012SAndroid Build Coastguard Worker  // * Filter expressions are made up of one or more restrictions.
5236*d5c09012SAndroid Build Coastguard Worker  // * Restrictions can be combined by `AND` or `OR` logical operators. A
5237*d5c09012SAndroid Build Coastguard Worker  // sequence of restrictions implicitly uses `AND`.
5238*d5c09012SAndroid Build Coastguard Worker  // * A restriction has the form of `{field} {operator} {value}`.
5239*d5c09012SAndroid Build Coastguard Worker  // * Supported fields/values for inspect jobs:
5240*d5c09012SAndroid Build Coastguard Worker  //     - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED
5241*d5c09012SAndroid Build Coastguard Worker  //     - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY
5242*d5c09012SAndroid Build Coastguard Worker  //     - `trigger_name` - The name of the trigger that created the job.
5243*d5c09012SAndroid Build Coastguard Worker  //     - 'end_time` - Corresponds to the time the job finished.
5244*d5c09012SAndroid Build Coastguard Worker  //     - 'start_time` - Corresponds to the time the job finished.
5245*d5c09012SAndroid Build Coastguard Worker  // * Supported fields for risk analysis jobs:
5246*d5c09012SAndroid Build Coastguard Worker  //     - `state` - RUNNING|CANCELED|FINISHED|FAILED
5247*d5c09012SAndroid Build Coastguard Worker  //     - 'end_time` - Corresponds to the time the job finished.
5248*d5c09012SAndroid Build Coastguard Worker  //     - 'start_time` - Corresponds to the time the job finished.
5249*d5c09012SAndroid Build Coastguard Worker  // * The operator must be `=` or `!=`.
5250*d5c09012SAndroid Build Coastguard Worker  //
5251*d5c09012SAndroid Build Coastguard Worker  // Examples:
5252*d5c09012SAndroid Build Coastguard Worker  //
5253*d5c09012SAndroid Build Coastguard Worker  // * inspected_storage = cloud_storage AND state = done
5254*d5c09012SAndroid Build Coastguard Worker  // * inspected_storage = cloud_storage OR inspected_storage = bigquery
5255*d5c09012SAndroid Build Coastguard Worker  // * inspected_storage = cloud_storage AND (state = done OR state = canceled)
5256*d5c09012SAndroid Build Coastguard Worker  // * end_time > \"2017-12-12T00:00:00+00:00\"
5257*d5c09012SAndroid Build Coastguard Worker  //
5258*d5c09012SAndroid Build Coastguard Worker  // The length of this field should be no more than 500 characters.
5259*d5c09012SAndroid Build Coastguard Worker  string filter = 1;
5260*d5c09012SAndroid Build Coastguard Worker
5261*d5c09012SAndroid Build Coastguard Worker  // The standard list page size.
5262*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
5263*d5c09012SAndroid Build Coastguard Worker
5264*d5c09012SAndroid Build Coastguard Worker  // The standard list page token.
5265*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
5266*d5c09012SAndroid Build Coastguard Worker
5267*d5c09012SAndroid Build Coastguard Worker  // The type of job. Defaults to `DlpJobType.INSPECT`
5268*d5c09012SAndroid Build Coastguard Worker  DlpJobType type = 5;
5269*d5c09012SAndroid Build Coastguard Worker
5270*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by,
5271*d5c09012SAndroid Build Coastguard Worker  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5272*d5c09012SAndroid Build Coastguard Worker  // default sorting order is ascending. Redundant space characters are
5273*d5c09012SAndroid Build Coastguard Worker  // insignificant.
5274*d5c09012SAndroid Build Coastguard Worker  //
5275*d5c09012SAndroid Build Coastguard Worker  // Example: `name asc, end_time asc, create_time desc`
5276*d5c09012SAndroid Build Coastguard Worker  //
5277*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
5278*d5c09012SAndroid Build Coastguard Worker  //
5279*d5c09012SAndroid Build Coastguard Worker  // - `create_time`: corresponds to the time the job was created.
5280*d5c09012SAndroid Build Coastguard Worker  // - `end_time`: corresponds to the time the job ended.
5281*d5c09012SAndroid Build Coastguard Worker  // - `name`: corresponds to the job's name.
5282*d5c09012SAndroid Build Coastguard Worker  // - `state`: corresponds to `state`
5283*d5c09012SAndroid Build Coastguard Worker  string order_by = 6;
5284*d5c09012SAndroid Build Coastguard Worker
5285*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
5286*d5c09012SAndroid Build Coastguard Worker  string location_id = 7;
5287*d5c09012SAndroid Build Coastguard Worker}
5288*d5c09012SAndroid Build Coastguard Worker
5289*d5c09012SAndroid Build Coastguard Worker// The response message for listing DLP jobs.
5290*d5c09012SAndroid Build Coastguard Workermessage ListDlpJobsResponse {
5291*d5c09012SAndroid Build Coastguard Worker  // A list of DlpJobs that matches the specified filter in the request.
5292*d5c09012SAndroid Build Coastguard Worker  repeated DlpJob jobs = 1;
5293*d5c09012SAndroid Build Coastguard Worker
5294*d5c09012SAndroid Build Coastguard Worker  // The standard List next-page token.
5295*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
5296*d5c09012SAndroid Build Coastguard Worker}
5297*d5c09012SAndroid Build Coastguard Worker
5298*d5c09012SAndroid Build Coastguard Worker// The request message for canceling a DLP job.
5299*d5c09012SAndroid Build Coastguard Workermessage CancelDlpJobRequest {
5300*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the DlpJob resource to be cancelled.
5301*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5302*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5303*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
5304*d5c09012SAndroid Build Coastguard Worker  ];
5305*d5c09012SAndroid Build Coastguard Worker}
5306*d5c09012SAndroid Build Coastguard Worker
5307*d5c09012SAndroid Build Coastguard Worker// The request message for finishing a DLP hybrid job.
5308*d5c09012SAndroid Build Coastguard Workermessage FinishDlpJobRequest {
5309*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the DlpJob resource to be finished.
5310*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5311*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5312*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
5313*d5c09012SAndroid Build Coastguard Worker  ];
5314*d5c09012SAndroid Build Coastguard Worker}
5315*d5c09012SAndroid Build Coastguard Worker
5316*d5c09012SAndroid Build Coastguard Worker// The request message for deleting a DLP job.
5317*d5c09012SAndroid Build Coastguard Workermessage DeleteDlpJobRequest {
5318*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the DlpJob resource to be deleted.
5319*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5320*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5321*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
5322*d5c09012SAndroid Build Coastguard Worker  ];
5323*d5c09012SAndroid Build Coastguard Worker}
5324*d5c09012SAndroid Build Coastguard Worker
5325*d5c09012SAndroid Build Coastguard Worker// Request message for CreateDeidentifyTemplate.
5326*d5c09012SAndroid Build Coastguard Workermessage CreateDeidentifyTemplateRequest {
5327*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
5328*d5c09012SAndroid Build Coastguard Worker  //
5329*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on the scope of the request
5330*d5c09012SAndroid Build Coastguard Worker  // (project or organization) and whether you have [specified a processing
5331*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5332*d5c09012SAndroid Build Coastguard Worker  //
5333*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
5334*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5335*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
5336*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
5337*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, location specified:<br/>
5338*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5339*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, no location specified (defaults to global):<br/>
5340*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>
5341*d5c09012SAndroid Build Coastguard Worker  //
5342*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
5343*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
5344*d5c09012SAndroid Build Coastguard Worker  // for processing data:
5345*d5c09012SAndroid Build Coastguard Worker  //
5346*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
5347*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
5348*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5349*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5350*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DeidentifyTemplate"
5351*d5c09012SAndroid Build Coastguard Worker    }
5352*d5c09012SAndroid Build Coastguard Worker  ];
5353*d5c09012SAndroid Build Coastguard Worker
5354*d5c09012SAndroid Build Coastguard Worker  // Required. The DeidentifyTemplate to create.
5355*d5c09012SAndroid Build Coastguard Worker  DeidentifyTemplate deidentify_template = 2
5356*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
5357*d5c09012SAndroid Build Coastguard Worker
5358*d5c09012SAndroid Build Coastguard Worker  // The template id can contain uppercase and lowercase letters,
5359*d5c09012SAndroid Build Coastguard Worker  // numbers, and hyphens; that is, it must match the regular
5360*d5c09012SAndroid Build Coastguard Worker  // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
5361*d5c09012SAndroid Build Coastguard Worker  // characters. Can be empty to allow the system to generate one.
5362*d5c09012SAndroid Build Coastguard Worker  string template_id = 3;
5363*d5c09012SAndroid Build Coastguard Worker
5364*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
5365*d5c09012SAndroid Build Coastguard Worker  string location_id = 4;
5366*d5c09012SAndroid Build Coastguard Worker}
5367*d5c09012SAndroid Build Coastguard Worker
5368*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateDeidentifyTemplate.
5369*d5c09012SAndroid Build Coastguard Workermessage UpdateDeidentifyTemplateRequest {
5370*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of organization and deidentify template to be
5371*d5c09012SAndroid Build Coastguard Worker  // updated, for example
5372*d5c09012SAndroid Build Coastguard Worker  // `organizations/433245324/deidentifyTemplates/432452342` or
5373*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/deidentifyTemplates/432452342.
5374*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5375*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5376*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5377*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/DeidentifyTemplate"
5378*d5c09012SAndroid Build Coastguard Worker    }
5379*d5c09012SAndroid Build Coastguard Worker  ];
5380*d5c09012SAndroid Build Coastguard Worker
5381*d5c09012SAndroid Build Coastguard Worker  // New DeidentifyTemplate value.
5382*d5c09012SAndroid Build Coastguard Worker  DeidentifyTemplate deidentify_template = 2;
5383*d5c09012SAndroid Build Coastguard Worker
5384*d5c09012SAndroid Build Coastguard Worker  // Mask to control which fields get updated.
5385*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
5386*d5c09012SAndroid Build Coastguard Worker}
5387*d5c09012SAndroid Build Coastguard Worker
5388*d5c09012SAndroid Build Coastguard Worker// Request message for GetDeidentifyTemplate.
5389*d5c09012SAndroid Build Coastguard Workermessage GetDeidentifyTemplateRequest {
5390*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization and deidentify template to be
5391*d5c09012SAndroid Build Coastguard Worker  // read, for example `organizations/433245324/deidentifyTemplates/432452342`
5392*d5c09012SAndroid Build Coastguard Worker  // or projects/project-id/deidentifyTemplates/432452342.
5393*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5394*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5395*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5396*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/DeidentifyTemplate"
5397*d5c09012SAndroid Build Coastguard Worker    }
5398*d5c09012SAndroid Build Coastguard Worker  ];
5399*d5c09012SAndroid Build Coastguard Worker}
5400*d5c09012SAndroid Build Coastguard Worker
5401*d5c09012SAndroid Build Coastguard Worker// Request message for ListDeidentifyTemplates.
5402*d5c09012SAndroid Build Coastguard Workermessage ListDeidentifyTemplatesRequest {
5403*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
5404*d5c09012SAndroid Build Coastguard Worker  //
5405*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on the scope of the request
5406*d5c09012SAndroid Build Coastguard Worker  // (project or organization) and whether you have [specified a processing
5407*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5408*d5c09012SAndroid Build Coastguard Worker  //
5409*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
5410*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5411*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
5412*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
5413*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, location specified:<br/>
5414*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5415*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, no location specified (defaults to global):<br/>
5416*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>
5417*d5c09012SAndroid Build Coastguard Worker  //
5418*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
5419*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
5420*d5c09012SAndroid Build Coastguard Worker  // for processing data:
5421*d5c09012SAndroid Build Coastguard Worker  //
5422*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
5423*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
5424*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5425*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5426*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/DeidentifyTemplate"
5427*d5c09012SAndroid Build Coastguard Worker    }
5428*d5c09012SAndroid Build Coastguard Worker  ];
5429*d5c09012SAndroid Build Coastguard Worker
5430*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval. Comes from the previous call
5431*d5c09012SAndroid Build Coastguard Worker  // to `ListDeidentifyTemplates`.
5432*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
5433*d5c09012SAndroid Build Coastguard Worker
5434*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by the server. If zero server
5435*d5c09012SAndroid Build Coastguard Worker  // returns a page of max size 100.
5436*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
5437*d5c09012SAndroid Build Coastguard Worker
5438*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by,
5439*d5c09012SAndroid Build Coastguard Worker  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5440*d5c09012SAndroid Build Coastguard Worker  // default sorting order is ascending. Redundant space characters are
5441*d5c09012SAndroid Build Coastguard Worker  // insignificant.
5442*d5c09012SAndroid Build Coastguard Worker  //
5443*d5c09012SAndroid Build Coastguard Worker  // Example: `name asc,update_time, create_time desc`
5444*d5c09012SAndroid Build Coastguard Worker  //
5445*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
5446*d5c09012SAndroid Build Coastguard Worker  //
5447*d5c09012SAndroid Build Coastguard Worker  // - `create_time`: corresponds to the time the template was created.
5448*d5c09012SAndroid Build Coastguard Worker  // - `update_time`: corresponds to the time the template was last updated.
5449*d5c09012SAndroid Build Coastguard Worker  // - `name`: corresponds to the template's name.
5450*d5c09012SAndroid Build Coastguard Worker  // - `display_name`: corresponds to the template's display name.
5451*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
5452*d5c09012SAndroid Build Coastguard Worker
5453*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
5454*d5c09012SAndroid Build Coastguard Worker  string location_id = 5;
5455*d5c09012SAndroid Build Coastguard Worker}
5456*d5c09012SAndroid Build Coastguard Worker
5457*d5c09012SAndroid Build Coastguard Worker// Response message for ListDeidentifyTemplates.
5458*d5c09012SAndroid Build Coastguard Workermessage ListDeidentifyTemplatesResponse {
5459*d5c09012SAndroid Build Coastguard Worker  // List of deidentify templates, up to page_size in
5460*d5c09012SAndroid Build Coastguard Worker  // ListDeidentifyTemplatesRequest.
5461*d5c09012SAndroid Build Coastguard Worker  repeated DeidentifyTemplate deidentify_templates = 1;
5462*d5c09012SAndroid Build Coastguard Worker
5463*d5c09012SAndroid Build Coastguard Worker  // If the next page is available then the next page token to be used in the
5464*d5c09012SAndroid Build Coastguard Worker  // following ListDeidentifyTemplates request.
5465*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
5466*d5c09012SAndroid Build Coastguard Worker}
5467*d5c09012SAndroid Build Coastguard Worker
5468*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteDeidentifyTemplate.
5469*d5c09012SAndroid Build Coastguard Workermessage DeleteDeidentifyTemplateRequest {
5470*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization and deidentify template to be
5471*d5c09012SAndroid Build Coastguard Worker  // deleted, for example
5472*d5c09012SAndroid Build Coastguard Worker  // `organizations/433245324/deidentifyTemplates/432452342` or
5473*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/deidentifyTemplates/432452342.
5474*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5475*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5476*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5477*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/DeidentifyTemplate"
5478*d5c09012SAndroid Build Coastguard Worker    }
5479*d5c09012SAndroid Build Coastguard Worker  ];
5480*d5c09012SAndroid Build Coastguard Worker}
5481*d5c09012SAndroid Build Coastguard Worker
5482*d5c09012SAndroid Build Coastguard Worker// Configuration for a custom dictionary created from a data source of any size
5483*d5c09012SAndroid Build Coastguard Worker// up to the maximum size defined in the
5484*d5c09012SAndroid Build Coastguard Worker// [limits](https://cloud.google.com/sensitive-data-protection/limits) page. The
5485*d5c09012SAndroid Build Coastguard Worker// artifacts of dictionary creation are stored in the specified Cloud Storage
5486*d5c09012SAndroid Build Coastguard Worker// location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries
5487*d5c09012SAndroid Build Coastguard Worker// that satisfy the size requirements.
5488*d5c09012SAndroid Build Coastguard Workermessage LargeCustomDictionaryConfig {
5489*d5c09012SAndroid Build Coastguard Worker  // Location to store dictionary artifacts in Cloud Storage. These files
5490*d5c09012SAndroid Build Coastguard Worker  // will only be accessible by project owners and the DLP API. If any of these
5491*d5c09012SAndroid Build Coastguard Worker  // artifacts are modified, the dictionary is considered invalid and can no
5492*d5c09012SAndroid Build Coastguard Worker  // longer be used.
5493*d5c09012SAndroid Build Coastguard Worker  CloudStoragePath output_path = 1;
5494*d5c09012SAndroid Build Coastguard Worker
5495*d5c09012SAndroid Build Coastguard Worker  // Source of the dictionary.
5496*d5c09012SAndroid Build Coastguard Worker  oneof source {
5497*d5c09012SAndroid Build Coastguard Worker    // Set of files containing newline-delimited lists of dictionary phrases.
5498*d5c09012SAndroid Build Coastguard Worker    CloudStorageFileSet cloud_storage_file_set = 2;
5499*d5c09012SAndroid Build Coastguard Worker
5500*d5c09012SAndroid Build Coastguard Worker    // Field in a BigQuery table where each cell represents a dictionary phrase.
5501*d5c09012SAndroid Build Coastguard Worker    BigQueryField big_query_field = 3;
5502*d5c09012SAndroid Build Coastguard Worker  }
5503*d5c09012SAndroid Build Coastguard Worker}
5504*d5c09012SAndroid Build Coastguard Worker
5505*d5c09012SAndroid Build Coastguard Worker// Summary statistics of a custom dictionary.
5506*d5c09012SAndroid Build Coastguard Workermessage LargeCustomDictionaryStats {
5507*d5c09012SAndroid Build Coastguard Worker  // Approximate number of distinct phrases in the dictionary.
5508*d5c09012SAndroid Build Coastguard Worker  int64 approx_num_phrases = 1;
5509*d5c09012SAndroid Build Coastguard Worker}
5510*d5c09012SAndroid Build Coastguard Worker
5511*d5c09012SAndroid Build Coastguard Worker// Configuration for stored infoTypes. All fields and subfield are provided
5512*d5c09012SAndroid Build Coastguard Worker// by the user. For more information, see
5513*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/sensitive-data-protection/docs/creating-custom-infotypes.
5514*d5c09012SAndroid Build Coastguard Workermessage StoredInfoTypeConfig {
5515*d5c09012SAndroid Build Coastguard Worker  // Display name of the StoredInfoType (max 256 characters).
5516*d5c09012SAndroid Build Coastguard Worker  string display_name = 1;
5517*d5c09012SAndroid Build Coastguard Worker
5518*d5c09012SAndroid Build Coastguard Worker  // Description of the StoredInfoType (max 256 characters).
5519*d5c09012SAndroid Build Coastguard Worker  string description = 2;
5520*d5c09012SAndroid Build Coastguard Worker
5521*d5c09012SAndroid Build Coastguard Worker  // Stored infotype types.
5522*d5c09012SAndroid Build Coastguard Worker  oneof type {
5523*d5c09012SAndroid Build Coastguard Worker    // StoredInfoType where findings are defined by a dictionary of phrases.
5524*d5c09012SAndroid Build Coastguard Worker    LargeCustomDictionaryConfig large_custom_dictionary = 3;
5525*d5c09012SAndroid Build Coastguard Worker
5526*d5c09012SAndroid Build Coastguard Worker    // Store dictionary-based CustomInfoType.
5527*d5c09012SAndroid Build Coastguard Worker    CustomInfoType.Dictionary dictionary = 4;
5528*d5c09012SAndroid Build Coastguard Worker
5529*d5c09012SAndroid Build Coastguard Worker    // Store regular expression-based StoredInfoType.
5530*d5c09012SAndroid Build Coastguard Worker    CustomInfoType.Regex regex = 5;
5531*d5c09012SAndroid Build Coastguard Worker  }
5532*d5c09012SAndroid Build Coastguard Worker}
5533*d5c09012SAndroid Build Coastguard Worker
5534*d5c09012SAndroid Build Coastguard Worker// Statistics for a StoredInfoType.
5535*d5c09012SAndroid Build Coastguard Workermessage StoredInfoTypeStats {
5536*d5c09012SAndroid Build Coastguard Worker  // Stat types
5537*d5c09012SAndroid Build Coastguard Worker  oneof type {
5538*d5c09012SAndroid Build Coastguard Worker    // StoredInfoType where findings are defined by a dictionary of phrases.
5539*d5c09012SAndroid Build Coastguard Worker    LargeCustomDictionaryStats large_custom_dictionary = 1;
5540*d5c09012SAndroid Build Coastguard Worker  }
5541*d5c09012SAndroid Build Coastguard Worker}
5542*d5c09012SAndroid Build Coastguard Worker
5543*d5c09012SAndroid Build Coastguard Worker// Version of a StoredInfoType, including the configuration used to build it,
5544*d5c09012SAndroid Build Coastguard Worker// create timestamp, and current state.
5545*d5c09012SAndroid Build Coastguard Workermessage StoredInfoTypeVersion {
5546*d5c09012SAndroid Build Coastguard Worker  // StoredInfoType configuration.
5547*d5c09012SAndroid Build Coastguard Worker  StoredInfoTypeConfig config = 1;
5548*d5c09012SAndroid Build Coastguard Worker
5549*d5c09012SAndroid Build Coastguard Worker  // Create timestamp of the version. Read-only, determined by the system
5550*d5c09012SAndroid Build Coastguard Worker  // when the version is created.
5551*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2;
5552*d5c09012SAndroid Build Coastguard Worker
5553*d5c09012SAndroid Build Coastguard Worker  // Stored info type version state. Read-only, updated by the system
5554*d5c09012SAndroid Build Coastguard Worker  // during dictionary creation.
5555*d5c09012SAndroid Build Coastguard Worker  StoredInfoTypeState state = 3;
5556*d5c09012SAndroid Build Coastguard Worker
5557*d5c09012SAndroid Build Coastguard Worker  // Errors that occurred when creating this storedInfoType version, or
5558*d5c09012SAndroid Build Coastguard Worker  // anomalies detected in the storedInfoType data that render it unusable. Only
5559*d5c09012SAndroid Build Coastguard Worker  // the five most recent errors will be displayed, with the most recent error
5560*d5c09012SAndroid Build Coastguard Worker  // appearing first.
5561*d5c09012SAndroid Build Coastguard Worker  //
5562*d5c09012SAndroid Build Coastguard Worker  // For example, some of the data for stored custom dictionaries is put in
5563*d5c09012SAndroid Build Coastguard Worker  // the user's Cloud Storage bucket, and if this data is modified or
5564*d5c09012SAndroid Build Coastguard Worker  // deleted by the user or another system, the dictionary becomes invalid.
5565*d5c09012SAndroid Build Coastguard Worker  //
5566*d5c09012SAndroid Build Coastguard Worker  // If any errors occur, fix the problem indicated by the error message and
5567*d5c09012SAndroid Build Coastguard Worker  // use the UpdateStoredInfoType API method to create another version of the
5568*d5c09012SAndroid Build Coastguard Worker  // storedInfoType to continue using it, reusing the same `config` if it was
5569*d5c09012SAndroid Build Coastguard Worker  // not the source of the error.
5570*d5c09012SAndroid Build Coastguard Worker  repeated Error errors = 4;
5571*d5c09012SAndroid Build Coastguard Worker
5572*d5c09012SAndroid Build Coastguard Worker  // Statistics about this storedInfoType version.
5573*d5c09012SAndroid Build Coastguard Worker  StoredInfoTypeStats stats = 5;
5574*d5c09012SAndroid Build Coastguard Worker}
5575*d5c09012SAndroid Build Coastguard Worker
5576*d5c09012SAndroid Build Coastguard Worker// StoredInfoType resource message that contains information about the current
5577*d5c09012SAndroid Build Coastguard Worker// version and any pending updates.
5578*d5c09012SAndroid Build Coastguard Workermessage StoredInfoType {
5579*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
5580*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/StoredInfoType"
5581*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/storedInfoTypes/{stored_info_type}"
5582*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/storedInfoTypes/{stored_info_type}"
5583*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/storedInfoTypes/{stored_info_type}"
5584*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/storedInfoTypes/{stored_info_type}"
5585*d5c09012SAndroid Build Coastguard Worker  };
5586*d5c09012SAndroid Build Coastguard Worker
5587*d5c09012SAndroid Build Coastguard Worker  // Resource name.
5588*d5c09012SAndroid Build Coastguard Worker  string name = 1;
5589*d5c09012SAndroid Build Coastguard Worker
5590*d5c09012SAndroid Build Coastguard Worker  // Current version of the stored info type.
5591*d5c09012SAndroid Build Coastguard Worker  StoredInfoTypeVersion current_version = 2;
5592*d5c09012SAndroid Build Coastguard Worker
5593*d5c09012SAndroid Build Coastguard Worker  // Pending versions of the stored info type. Empty if no versions are
5594*d5c09012SAndroid Build Coastguard Worker  // pending.
5595*d5c09012SAndroid Build Coastguard Worker  repeated StoredInfoTypeVersion pending_versions = 3;
5596*d5c09012SAndroid Build Coastguard Worker}
5597*d5c09012SAndroid Build Coastguard Worker
5598*d5c09012SAndroid Build Coastguard Worker// Request message for CreateStoredInfoType.
5599*d5c09012SAndroid Build Coastguard Workermessage CreateStoredInfoTypeRequest {
5600*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
5601*d5c09012SAndroid Build Coastguard Worker  //
5602*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on the scope of the request
5603*d5c09012SAndroid Build Coastguard Worker  // (project or organization) and whether you have [specified a processing
5604*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5605*d5c09012SAndroid Build Coastguard Worker  //
5606*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
5607*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5608*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
5609*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
5610*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, location specified:<br/>
5611*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var>
5612*d5c09012SAndroid Build Coastguard Worker  // + Organizations scope, no location specified (defaults to global):<br/>
5613*d5c09012SAndroid Build Coastguard Worker  //   `organizations/`<var>ORG_ID</var>
5614*d5c09012SAndroid Build Coastguard Worker  //
5615*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
5616*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
5617*d5c09012SAndroid Build Coastguard Worker  // for processing data:
5618*d5c09012SAndroid Build Coastguard Worker  //
5619*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
5620*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
5621*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5622*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5623*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/StoredInfoType"
5624*d5c09012SAndroid Build Coastguard Worker    }
5625*d5c09012SAndroid Build Coastguard Worker  ];
5626*d5c09012SAndroid Build Coastguard Worker
5627*d5c09012SAndroid Build Coastguard Worker  // Required. Configuration of the storedInfoType to create.
5628*d5c09012SAndroid Build Coastguard Worker  StoredInfoTypeConfig config = 2 [(google.api.field_behavior) = REQUIRED];
5629*d5c09012SAndroid Build Coastguard Worker
5630*d5c09012SAndroid Build Coastguard Worker  // The storedInfoType ID can contain uppercase and lowercase letters,
5631*d5c09012SAndroid Build Coastguard Worker  // numbers, and hyphens; that is, it must match the regular
5632*d5c09012SAndroid Build Coastguard Worker  // expression: `[a-zA-Z\d-_]+`. The maximum length is 100
5633*d5c09012SAndroid Build Coastguard Worker  // characters. Can be empty to allow the system to generate one.
5634*d5c09012SAndroid Build Coastguard Worker  string stored_info_type_id = 3;
5635*d5c09012SAndroid Build Coastguard Worker
5636*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
5637*d5c09012SAndroid Build Coastguard Worker  string location_id = 4;
5638*d5c09012SAndroid Build Coastguard Worker}
5639*d5c09012SAndroid Build Coastguard Worker
5640*d5c09012SAndroid Build Coastguard Worker// Request message for UpdateStoredInfoType.
5641*d5c09012SAndroid Build Coastguard Workermessage UpdateStoredInfoTypeRequest {
5642*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of organization and storedInfoType to be updated,
5643*d5c09012SAndroid Build Coastguard Worker  // for example `organizations/433245324/storedInfoTypes/432452342` or
5644*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/storedInfoTypes/432452342.
5645*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5646*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5647*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5648*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/StoredInfoType"
5649*d5c09012SAndroid Build Coastguard Worker    }
5650*d5c09012SAndroid Build Coastguard Worker  ];
5651*d5c09012SAndroid Build Coastguard Worker
5652*d5c09012SAndroid Build Coastguard Worker  // Updated configuration for the storedInfoType. If not provided, a new
5653*d5c09012SAndroid Build Coastguard Worker  // version of the storedInfoType will be created with the existing
5654*d5c09012SAndroid Build Coastguard Worker  // configuration.
5655*d5c09012SAndroid Build Coastguard Worker  StoredInfoTypeConfig config = 2;
5656*d5c09012SAndroid Build Coastguard Worker
5657*d5c09012SAndroid Build Coastguard Worker  // Mask to control which fields get updated.
5658*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
5659*d5c09012SAndroid Build Coastguard Worker}
5660*d5c09012SAndroid Build Coastguard Worker
5661*d5c09012SAndroid Build Coastguard Worker// Request message for GetStoredInfoType.
5662*d5c09012SAndroid Build Coastguard Workermessage GetStoredInfoTypeRequest {
5663*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization and storedInfoType to be read,
5664*d5c09012SAndroid Build Coastguard Worker  // for example `organizations/433245324/storedInfoTypes/432452342` or
5665*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/storedInfoTypes/432452342.
5666*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5667*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5668*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5669*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/StoredInfoType"
5670*d5c09012SAndroid Build Coastguard Worker    }
5671*d5c09012SAndroid Build Coastguard Worker  ];
5672*d5c09012SAndroid Build Coastguard Worker}
5673*d5c09012SAndroid Build Coastguard Worker
5674*d5c09012SAndroid Build Coastguard Worker// Request message for ListStoredInfoTypes.
5675*d5c09012SAndroid Build Coastguard Workermessage ListStoredInfoTypesRequest {
5676*d5c09012SAndroid Build Coastguard Worker  // Required. Parent resource name.
5677*d5c09012SAndroid Build Coastguard Worker  //
5678*d5c09012SAndroid Build Coastguard Worker  // The format of this value varies depending on the scope of the request
5679*d5c09012SAndroid Build Coastguard Worker  // (project or organization) and whether you have [specified a processing
5680*d5c09012SAndroid Build Coastguard Worker  // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location):
5681*d5c09012SAndroid Build Coastguard Worker  //
5682*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, location specified:<br/>
5683*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var>
5684*d5c09012SAndroid Build Coastguard Worker  // + Projects scope, no location specified (defaults to global):<br/>
5685*d5c09012SAndroid Build Coastguard Worker  //   `projects/`<var>PROJECT_ID</var>
5686*d5c09012SAndroid Build Coastguard Worker  //
5687*d5c09012SAndroid Build Coastguard Worker  // The following example `parent` string specifies a parent project with the
5688*d5c09012SAndroid Build Coastguard Worker  // identifier `example-project`, and specifies the `europe-west3` location
5689*d5c09012SAndroid Build Coastguard Worker  // for processing data:
5690*d5c09012SAndroid Build Coastguard Worker  //
5691*d5c09012SAndroid Build Coastguard Worker  //     parent=projects/example-project/locations/europe-west3
5692*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
5693*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5694*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5695*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/StoredInfoType"
5696*d5c09012SAndroid Build Coastguard Worker    }
5697*d5c09012SAndroid Build Coastguard Worker  ];
5698*d5c09012SAndroid Build Coastguard Worker
5699*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval. Comes from the previous call
5700*d5c09012SAndroid Build Coastguard Worker  // to `ListStoredInfoTypes`.
5701*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
5702*d5c09012SAndroid Build Coastguard Worker
5703*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by the server. If zero server
5704*d5c09012SAndroid Build Coastguard Worker  // returns a page of max size 100.
5705*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
5706*d5c09012SAndroid Build Coastguard Worker
5707*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by,
5708*d5c09012SAndroid Build Coastguard Worker  // followed by `asc` or `desc` postfix. This list is case insensitive. The
5709*d5c09012SAndroid Build Coastguard Worker  // default sorting order is ascending. Redundant space characters are
5710*d5c09012SAndroid Build Coastguard Worker  // insignificant.
5711*d5c09012SAndroid Build Coastguard Worker  //
5712*d5c09012SAndroid Build Coastguard Worker  // Example: `name asc, display_name, create_time desc`
5713*d5c09012SAndroid Build Coastguard Worker  //
5714*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
5715*d5c09012SAndroid Build Coastguard Worker  //
5716*d5c09012SAndroid Build Coastguard Worker  // - `create_time`: corresponds to the time the most recent version of the
5717*d5c09012SAndroid Build Coastguard Worker  // resource was created.
5718*d5c09012SAndroid Build Coastguard Worker  // - `state`: corresponds to the state of the resource.
5719*d5c09012SAndroid Build Coastguard Worker  // - `name`: corresponds to resource name.
5720*d5c09012SAndroid Build Coastguard Worker  // - `display_name`: corresponds to info type's display name.
5721*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
5722*d5c09012SAndroid Build Coastguard Worker
5723*d5c09012SAndroid Build Coastguard Worker  // Deprecated. This field has no effect.
5724*d5c09012SAndroid Build Coastguard Worker  string location_id = 5;
5725*d5c09012SAndroid Build Coastguard Worker}
5726*d5c09012SAndroid Build Coastguard Worker
5727*d5c09012SAndroid Build Coastguard Worker// Response message for ListStoredInfoTypes.
5728*d5c09012SAndroid Build Coastguard Workermessage ListStoredInfoTypesResponse {
5729*d5c09012SAndroid Build Coastguard Worker  // List of storedInfoTypes, up to page_size in ListStoredInfoTypesRequest.
5730*d5c09012SAndroid Build Coastguard Worker  repeated StoredInfoType stored_info_types = 1;
5731*d5c09012SAndroid Build Coastguard Worker
5732*d5c09012SAndroid Build Coastguard Worker  // If the next page is available then the next page token to be used
5733*d5c09012SAndroid Build Coastguard Worker  // in the following ListStoredInfoTypes request.
5734*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
5735*d5c09012SAndroid Build Coastguard Worker}
5736*d5c09012SAndroid Build Coastguard Worker
5737*d5c09012SAndroid Build Coastguard Worker// Request message for DeleteStoredInfoType.
5738*d5c09012SAndroid Build Coastguard Workermessage DeleteStoredInfoTypeRequest {
5739*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization and storedInfoType to be
5740*d5c09012SAndroid Build Coastguard Worker  // deleted, for example `organizations/433245324/storedInfoTypes/432452342` or
5741*d5c09012SAndroid Build Coastguard Worker  // projects/project-id/storedInfoTypes/432452342.
5742*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5743*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5744*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5745*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/StoredInfoType"
5746*d5c09012SAndroid Build Coastguard Worker    }
5747*d5c09012SAndroid Build Coastguard Worker  ];
5748*d5c09012SAndroid Build Coastguard Worker}
5749*d5c09012SAndroid Build Coastguard Worker
5750*d5c09012SAndroid Build Coastguard Worker// Request to search for potentially sensitive info in a custom location.
5751*d5c09012SAndroid Build Coastguard Workermessage HybridInspectJobTriggerRequest {
5752*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the trigger to execute a hybrid inspect on, for
5753*d5c09012SAndroid Build Coastguard Worker  // example `projects/dlp-test-project/jobTriggers/53234423`.
5754*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5755*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5756*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/JobTrigger" }
5757*d5c09012SAndroid Build Coastguard Worker  ];
5758*d5c09012SAndroid Build Coastguard Worker
5759*d5c09012SAndroid Build Coastguard Worker  // The item to inspect.
5760*d5c09012SAndroid Build Coastguard Worker  HybridContentItem hybrid_item = 3;
5761*d5c09012SAndroid Build Coastguard Worker}
5762*d5c09012SAndroid Build Coastguard Worker
5763*d5c09012SAndroid Build Coastguard Worker// Request to search for potentially sensitive info in a custom location.
5764*d5c09012SAndroid Build Coastguard Workermessage HybridInspectDlpJobRequest {
5765*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the job to execute a hybrid inspect on, for
5766*d5c09012SAndroid Build Coastguard Worker  // example `projects/dlp-test-project/dlpJob/53234423`.
5767*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
5768*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5769*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "dlp.googleapis.com/DlpJob" }
5770*d5c09012SAndroid Build Coastguard Worker  ];
5771*d5c09012SAndroid Build Coastguard Worker
5772*d5c09012SAndroid Build Coastguard Worker  // The item to inspect.
5773*d5c09012SAndroid Build Coastguard Worker  HybridContentItem hybrid_item = 3;
5774*d5c09012SAndroid Build Coastguard Worker}
5775*d5c09012SAndroid Build Coastguard Worker
5776*d5c09012SAndroid Build Coastguard Worker// An individual hybrid item to inspect. Will be stored temporarily during
5777*d5c09012SAndroid Build Coastguard Worker// processing.
5778*d5c09012SAndroid Build Coastguard Workermessage HybridContentItem {
5779*d5c09012SAndroid Build Coastguard Worker  // The item to inspect.
5780*d5c09012SAndroid Build Coastguard Worker  ContentItem item = 1;
5781*d5c09012SAndroid Build Coastguard Worker
5782*d5c09012SAndroid Build Coastguard Worker  // Supplementary information that will be added to each finding.
5783*d5c09012SAndroid Build Coastguard Worker  HybridFindingDetails finding_details = 2;
5784*d5c09012SAndroid Build Coastguard Worker}
5785*d5c09012SAndroid Build Coastguard Worker
5786*d5c09012SAndroid Build Coastguard Worker// Populate to associate additional data with each finding.
5787*d5c09012SAndroid Build Coastguard Workermessage HybridFindingDetails {
5788*d5c09012SAndroid Build Coastguard Worker  // Details about the container where the content being inspected is from.
5789*d5c09012SAndroid Build Coastguard Worker  Container container_details = 1;
5790*d5c09012SAndroid Build Coastguard Worker
5791*d5c09012SAndroid Build Coastguard Worker  // Offset in bytes of the line, from the beginning of the file, where the
5792*d5c09012SAndroid Build Coastguard Worker  // finding  is located. Populate if the item being scanned is only part of a
5793*d5c09012SAndroid Build Coastguard Worker  // bigger item, such as a shard of a file and you want to track the absolute
5794*d5c09012SAndroid Build Coastguard Worker  // position of the finding.
5795*d5c09012SAndroid Build Coastguard Worker  int64 file_offset = 2;
5796*d5c09012SAndroid Build Coastguard Worker
5797*d5c09012SAndroid Build Coastguard Worker  // Offset of the row for tables. Populate if the row(s) being scanned are
5798*d5c09012SAndroid Build Coastguard Worker  // part of a bigger dataset and you want to keep track of their absolute
5799*d5c09012SAndroid Build Coastguard Worker  // position.
5800*d5c09012SAndroid Build Coastguard Worker  int64 row_offset = 3;
5801*d5c09012SAndroid Build Coastguard Worker
5802*d5c09012SAndroid Build Coastguard Worker  // If the container is a table, additional information to make findings
5803*d5c09012SAndroid Build Coastguard Worker  // meaningful such as the columns that are primary keys. If not known ahead
5804*d5c09012SAndroid Build Coastguard Worker  // of time, can also be set within each inspect hybrid call and the two
5805*d5c09012SAndroid Build Coastguard Worker  // will be merged. Note that identifying_fields will only be stored to
5806*d5c09012SAndroid Build Coastguard Worker  // BigQuery, and only if the BigQuery action has been included.
5807*d5c09012SAndroid Build Coastguard Worker  TableOptions table_options = 4;
5808*d5c09012SAndroid Build Coastguard Worker
5809*d5c09012SAndroid Build Coastguard Worker  // Labels to represent user provided metadata about the data being inspected.
5810*d5c09012SAndroid Build Coastguard Worker  // If configured by the job, some key values may be required.
5811*d5c09012SAndroid Build Coastguard Worker  // The labels associated with `Finding`'s produced by hybrid
5812*d5c09012SAndroid Build Coastguard Worker  // inspection.
5813*d5c09012SAndroid Build Coastguard Worker  //
5814*d5c09012SAndroid Build Coastguard Worker  // Label keys must be between 1 and 63 characters long and must conform
5815*d5c09012SAndroid Build Coastguard Worker  // to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
5816*d5c09012SAndroid Build Coastguard Worker  //
5817*d5c09012SAndroid Build Coastguard Worker  // Label values must be between 0 and 63 characters long and must conform
5818*d5c09012SAndroid Build Coastguard Worker  // to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
5819*d5c09012SAndroid Build Coastguard Worker  //
5820*d5c09012SAndroid Build Coastguard Worker  // No more than 10 labels can be associated with a given finding.
5821*d5c09012SAndroid Build Coastguard Worker  //
5822*d5c09012SAndroid Build Coastguard Worker  // Examples:
5823*d5c09012SAndroid Build Coastguard Worker  // * `"environment" : "production"`
5824*d5c09012SAndroid Build Coastguard Worker  // * `"pipeline" : "etl"`
5825*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 5;
5826*d5c09012SAndroid Build Coastguard Worker}
5827*d5c09012SAndroid Build Coastguard Worker
5828*d5c09012SAndroid Build Coastguard Worker// Quota exceeded errors will be thrown once quota has been met.
5829*d5c09012SAndroid Build Coastguard Workermessage HybridInspectResponse {}
5830*d5c09012SAndroid Build Coastguard Worker
5831*d5c09012SAndroid Build Coastguard Worker// Operators available for comparing the value of fields.
5832*d5c09012SAndroid Build Coastguard Workerenum RelationalOperator {
5833*d5c09012SAndroid Build Coastguard Worker  // Unused
5834*d5c09012SAndroid Build Coastguard Worker  RELATIONAL_OPERATOR_UNSPECIFIED = 0;
5835*d5c09012SAndroid Build Coastguard Worker
5836*d5c09012SAndroid Build Coastguard Worker  // Equal. Attempts to match even with incompatible types.
5837*d5c09012SAndroid Build Coastguard Worker  EQUAL_TO = 1;
5838*d5c09012SAndroid Build Coastguard Worker
5839*d5c09012SAndroid Build Coastguard Worker  // Not equal to. Attempts to match even with incompatible types.
5840*d5c09012SAndroid Build Coastguard Worker  NOT_EQUAL_TO = 2;
5841*d5c09012SAndroid Build Coastguard Worker
5842*d5c09012SAndroid Build Coastguard Worker  // Greater than.
5843*d5c09012SAndroid Build Coastguard Worker  GREATER_THAN = 3;
5844*d5c09012SAndroid Build Coastguard Worker
5845*d5c09012SAndroid Build Coastguard Worker  // Less than.
5846*d5c09012SAndroid Build Coastguard Worker  LESS_THAN = 4;
5847*d5c09012SAndroid Build Coastguard Worker
5848*d5c09012SAndroid Build Coastguard Worker  // Greater than or equals.
5849*d5c09012SAndroid Build Coastguard Worker  GREATER_THAN_OR_EQUALS = 5;
5850*d5c09012SAndroid Build Coastguard Worker
5851*d5c09012SAndroid Build Coastguard Worker  // Less than or equals.
5852*d5c09012SAndroid Build Coastguard Worker  LESS_THAN_OR_EQUALS = 6;
5853*d5c09012SAndroid Build Coastguard Worker
5854*d5c09012SAndroid Build Coastguard Worker  // Exists
5855*d5c09012SAndroid Build Coastguard Worker  EXISTS = 7;
5856*d5c09012SAndroid Build Coastguard Worker}
5857*d5c09012SAndroid Build Coastguard Worker
5858*d5c09012SAndroid Build Coastguard Worker// Type of the match which can be applied to different ways of matching, like
5859*d5c09012SAndroid Build Coastguard Worker// Dictionary, regular expression and intersecting with findings of another
5860*d5c09012SAndroid Build Coastguard Worker// info type.
5861*d5c09012SAndroid Build Coastguard Workerenum MatchingType {
5862*d5c09012SAndroid Build Coastguard Worker  // Invalid.
5863*d5c09012SAndroid Build Coastguard Worker  MATCHING_TYPE_UNSPECIFIED = 0;
5864*d5c09012SAndroid Build Coastguard Worker
5865*d5c09012SAndroid Build Coastguard Worker  // Full match.
5866*d5c09012SAndroid Build Coastguard Worker  //
5867*d5c09012SAndroid Build Coastguard Worker  // - Dictionary: join of Dictionary results matched complete finding quote
5868*d5c09012SAndroid Build Coastguard Worker  // - Regex: all regex matches fill a finding quote start to end
5869*d5c09012SAndroid Build Coastguard Worker  // - Exclude info type: completely inside affecting info types findings
5870*d5c09012SAndroid Build Coastguard Worker  MATCHING_TYPE_FULL_MATCH = 1;
5871*d5c09012SAndroid Build Coastguard Worker
5872*d5c09012SAndroid Build Coastguard Worker  // Partial match.
5873*d5c09012SAndroid Build Coastguard Worker  //
5874*d5c09012SAndroid Build Coastguard Worker  // - Dictionary: at least one of the tokens in the finding matches
5875*d5c09012SAndroid Build Coastguard Worker  // - Regex: substring of the finding matches
5876*d5c09012SAndroid Build Coastguard Worker  // - Exclude info type: intersects with affecting info types findings
5877*d5c09012SAndroid Build Coastguard Worker  MATCHING_TYPE_PARTIAL_MATCH = 2;
5878*d5c09012SAndroid Build Coastguard Worker
5879*d5c09012SAndroid Build Coastguard Worker  // Inverse match.
5880*d5c09012SAndroid Build Coastguard Worker  //
5881*d5c09012SAndroid Build Coastguard Worker  // - Dictionary: no tokens in the finding match the dictionary
5882*d5c09012SAndroid Build Coastguard Worker  // - Regex: finding doesn't match the regex
5883*d5c09012SAndroid Build Coastguard Worker  // - Exclude info type: no intersection with affecting info types findings
5884*d5c09012SAndroid Build Coastguard Worker  MATCHING_TYPE_INVERSE_MATCH = 3;
5885*d5c09012SAndroid Build Coastguard Worker}
5886*d5c09012SAndroid Build Coastguard Worker
5887*d5c09012SAndroid Build Coastguard Worker// Deprecated and unused.
5888*d5c09012SAndroid Build Coastguard Workerenum ContentOption {
5889*d5c09012SAndroid Build Coastguard Worker  // Includes entire content of a file or a data stream.
5890*d5c09012SAndroid Build Coastguard Worker  CONTENT_UNSPECIFIED = 0;
5891*d5c09012SAndroid Build Coastguard Worker
5892*d5c09012SAndroid Build Coastguard Worker  // Text content within the data, excluding any metadata.
5893*d5c09012SAndroid Build Coastguard Worker  CONTENT_TEXT = 1;
5894*d5c09012SAndroid Build Coastguard Worker
5895*d5c09012SAndroid Build Coastguard Worker  // Images found in the data.
5896*d5c09012SAndroid Build Coastguard Worker  CONTENT_IMAGE = 2;
5897*d5c09012SAndroid Build Coastguard Worker}
5898*d5c09012SAndroid Build Coastguard Worker
5899*d5c09012SAndroid Build Coastguard Worker// Type of metadata containing the finding.
5900*d5c09012SAndroid Build Coastguard Workerenum MetadataType {
5901*d5c09012SAndroid Build Coastguard Worker  // Unused
5902*d5c09012SAndroid Build Coastguard Worker  METADATATYPE_UNSPECIFIED = 0;
5903*d5c09012SAndroid Build Coastguard Worker
5904*d5c09012SAndroid Build Coastguard Worker  // General file metadata provided by Cloud Storage.
5905*d5c09012SAndroid Build Coastguard Worker  STORAGE_METADATA = 2;
5906*d5c09012SAndroid Build Coastguard Worker}
5907*d5c09012SAndroid Build Coastguard Worker
5908*d5c09012SAndroid Build Coastguard Worker// Parts of the APIs which use certain infoTypes.
5909*d5c09012SAndroid Build Coastguard Workerenum InfoTypeSupportedBy {
5910*d5c09012SAndroid Build Coastguard Worker  // Unused.
5911*d5c09012SAndroid Build Coastguard Worker  ENUM_TYPE_UNSPECIFIED = 0;
5912*d5c09012SAndroid Build Coastguard Worker
5913*d5c09012SAndroid Build Coastguard Worker  // Supported by the inspect operations.
5914*d5c09012SAndroid Build Coastguard Worker  INSPECT = 1;
5915*d5c09012SAndroid Build Coastguard Worker
5916*d5c09012SAndroid Build Coastguard Worker  // Supported by the risk analysis operations.
5917*d5c09012SAndroid Build Coastguard Worker  RISK_ANALYSIS = 2;
5918*d5c09012SAndroid Build Coastguard Worker}
5919*d5c09012SAndroid Build Coastguard Worker
5920*d5c09012SAndroid Build Coastguard Worker// An enum to represent the various types of DLP jobs.
5921*d5c09012SAndroid Build Coastguard Workerenum DlpJobType {
5922*d5c09012SAndroid Build Coastguard Worker  // Defaults to INSPECT_JOB.
5923*d5c09012SAndroid Build Coastguard Worker  DLP_JOB_TYPE_UNSPECIFIED = 0;
5924*d5c09012SAndroid Build Coastguard Worker
5925*d5c09012SAndroid Build Coastguard Worker  // The job inspected Google Cloud for sensitive data.
5926*d5c09012SAndroid Build Coastguard Worker  INSPECT_JOB = 1;
5927*d5c09012SAndroid Build Coastguard Worker
5928*d5c09012SAndroid Build Coastguard Worker  // The job executed a Risk Analysis computation.
5929*d5c09012SAndroid Build Coastguard Worker  RISK_ANALYSIS_JOB = 2;
5930*d5c09012SAndroid Build Coastguard Worker}
5931*d5c09012SAndroid Build Coastguard Worker
5932*d5c09012SAndroid Build Coastguard Worker// State of a StoredInfoType version.
5933*d5c09012SAndroid Build Coastguard Workerenum StoredInfoTypeState {
5934*d5c09012SAndroid Build Coastguard Worker  // Unused
5935*d5c09012SAndroid Build Coastguard Worker  STORED_INFO_TYPE_STATE_UNSPECIFIED = 0;
5936*d5c09012SAndroid Build Coastguard Worker
5937*d5c09012SAndroid Build Coastguard Worker  // StoredInfoType version is being created.
5938*d5c09012SAndroid Build Coastguard Worker  PENDING = 1;
5939*d5c09012SAndroid Build Coastguard Worker
5940*d5c09012SAndroid Build Coastguard Worker  // StoredInfoType version is ready for use.
5941*d5c09012SAndroid Build Coastguard Worker  READY = 2;
5942*d5c09012SAndroid Build Coastguard Worker
5943*d5c09012SAndroid Build Coastguard Worker  // StoredInfoType creation failed. All relevant error messages are returned in
5944*d5c09012SAndroid Build Coastguard Worker  // the `StoredInfoTypeVersion` message.
5945*d5c09012SAndroid Build Coastguard Worker  FAILED = 3;
5946*d5c09012SAndroid Build Coastguard Worker
5947*d5c09012SAndroid Build Coastguard Worker  // StoredInfoType is no longer valid because artifacts stored in
5948*d5c09012SAndroid Build Coastguard Worker  // user-controlled storage were modified. To fix an invalid StoredInfoType,
5949*d5c09012SAndroid Build Coastguard Worker  // use the `UpdateStoredInfoType` method to create a new version.
5950*d5c09012SAndroid Build Coastguard Worker  INVALID = 4;
5951*d5c09012SAndroid Build Coastguard Worker}
5952*d5c09012SAndroid Build Coastguard Worker
5953*d5c09012SAndroid Build Coastguard Worker// Request to list the profiles generated for a given organization or project.
5954*d5c09012SAndroid Build Coastguard Workermessage ListProjectDataProfilesRequest {
5955*d5c09012SAndroid Build Coastguard Worker  // Required. organizations/{org_id}/locations/{loc_id}
5956*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
5957*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
5958*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
5959*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/ProjectDataProfile"
5960*d5c09012SAndroid Build Coastguard Worker    }
5961*d5c09012SAndroid Build Coastguard Worker  ];
5962*d5c09012SAndroid Build Coastguard Worker
5963*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval.
5964*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
5965*d5c09012SAndroid Build Coastguard Worker
5966*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by the server. If zero, server
5967*d5c09012SAndroid Build Coastguard Worker  // returns a page of max size 100.
5968*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
5969*d5c09012SAndroid Build Coastguard Worker
5970*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by, followed by `asc` or `desc`
5971*d5c09012SAndroid Build Coastguard Worker  // postfix. This list is case insensitive. The default sorting order is
5972*d5c09012SAndroid Build Coastguard Worker  // ascending. Redundant space characters are insignificant. Only one order
5973*d5c09012SAndroid Build Coastguard Worker  // field at a time is allowed.
5974*d5c09012SAndroid Build Coastguard Worker  //
5975*d5c09012SAndroid Build Coastguard Worker  // Examples:
5976*d5c09012SAndroid Build Coastguard Worker  // * `project_id`
5977*d5c09012SAndroid Build Coastguard Worker  // * `sensitivity_level desc`
5978*d5c09012SAndroid Build Coastguard Worker  //
5979*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
5980*d5c09012SAndroid Build Coastguard Worker  //
5981*d5c09012SAndroid Build Coastguard Worker  // - `project_id`: GCP project ID
5982*d5c09012SAndroid Build Coastguard Worker  // - `sensitivity_level`: How sensitive the data in a project is, at most.
5983*d5c09012SAndroid Build Coastguard Worker  // - `data_risk_level`: How much risk is associated with this data.
5984*d5c09012SAndroid Build Coastguard Worker  // - `profile_last_generated`: When the profile was last updated in epoch
5985*d5c09012SAndroid Build Coastguard Worker  // seconds.
5986*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
5987*d5c09012SAndroid Build Coastguard Worker
5988*d5c09012SAndroid Build Coastguard Worker  // Allows filtering.
5989*d5c09012SAndroid Build Coastguard Worker  //
5990*d5c09012SAndroid Build Coastguard Worker  // Supported syntax:
5991*d5c09012SAndroid Build Coastguard Worker  //
5992*d5c09012SAndroid Build Coastguard Worker  // * Filter expressions are made up of one or more restrictions.
5993*d5c09012SAndroid Build Coastguard Worker  // * Restrictions can be combined by `AND` or `OR` logical operators. A
5994*d5c09012SAndroid Build Coastguard Worker  // sequence of restrictions implicitly uses `AND`.
5995*d5c09012SAndroid Build Coastguard Worker  // * A restriction has the form of `{field} {operator} {value}`.
5996*d5c09012SAndroid Build Coastguard Worker  // * Supported fields/values:
5997*d5c09012SAndroid Build Coastguard Worker  //     - `sensitivity_level` - HIGH|MODERATE|LOW
5998*d5c09012SAndroid Build Coastguard Worker  //     - `data_risk_level` - HIGH|MODERATE|LOW
5999*d5c09012SAndroid Build Coastguard Worker  //     - `status_code` - an RPC status code as defined in
6000*d5c09012SAndroid Build Coastguard Worker  //     https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto
6001*d5c09012SAndroid Build Coastguard Worker  // * The operator must be `=` or `!=`.
6002*d5c09012SAndroid Build Coastguard Worker  //
6003*d5c09012SAndroid Build Coastguard Worker  // Examples:
6004*d5c09012SAndroid Build Coastguard Worker  //
6005*d5c09012SAndroid Build Coastguard Worker  // * `project_id = 12345 AND status_code = 1`
6006*d5c09012SAndroid Build Coastguard Worker  // * `project_id = 12345 AND sensitivity_level = HIGH`
6007*d5c09012SAndroid Build Coastguard Worker  //
6008*d5c09012SAndroid Build Coastguard Worker  // The length of this field should be no more than 500 characters.
6009*d5c09012SAndroid Build Coastguard Worker  string filter = 5;
6010*d5c09012SAndroid Build Coastguard Worker}
6011*d5c09012SAndroid Build Coastguard Worker
6012*d5c09012SAndroid Build Coastguard Worker// List of profiles generated for a given organization or project.
6013*d5c09012SAndroid Build Coastguard Workermessage ListProjectDataProfilesResponse {
6014*d5c09012SAndroid Build Coastguard Worker  // List of data profiles.
6015*d5c09012SAndroid Build Coastguard Worker  repeated ProjectDataProfile project_data_profiles = 1;
6016*d5c09012SAndroid Build Coastguard Worker
6017*d5c09012SAndroid Build Coastguard Worker  // The next page token.
6018*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
6019*d5c09012SAndroid Build Coastguard Worker}
6020*d5c09012SAndroid Build Coastguard Worker
6021*d5c09012SAndroid Build Coastguard Worker// Request to list the profiles generated for a given organization or project.
6022*d5c09012SAndroid Build Coastguard Workermessage ListTableDataProfilesRequest {
6023*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization or project, for
6024*d5c09012SAndroid Build Coastguard Worker  // example `organizations/433245324/locations/europe` or
6025*d5c09012SAndroid Build Coastguard Worker  // `projects/project-id/locations/asia`.
6026*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
6027*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
6028*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
6029*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/TableDataProfile"
6030*d5c09012SAndroid Build Coastguard Worker    }
6031*d5c09012SAndroid Build Coastguard Worker  ];
6032*d5c09012SAndroid Build Coastguard Worker
6033*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval.
6034*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
6035*d5c09012SAndroid Build Coastguard Worker
6036*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by the server. If zero, server
6037*d5c09012SAndroid Build Coastguard Worker  // returns a page of max size 100.
6038*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
6039*d5c09012SAndroid Build Coastguard Worker
6040*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by, followed by `asc` or `desc`
6041*d5c09012SAndroid Build Coastguard Worker  // postfix. This list is case insensitive. The default sorting order is
6042*d5c09012SAndroid Build Coastguard Worker  // ascending. Redundant space characters are insignificant. Only one order
6043*d5c09012SAndroid Build Coastguard Worker  // field at a time is allowed.
6044*d5c09012SAndroid Build Coastguard Worker  //
6045*d5c09012SAndroid Build Coastguard Worker  // Examples:
6046*d5c09012SAndroid Build Coastguard Worker  // * `project_id asc`
6047*d5c09012SAndroid Build Coastguard Worker  // * `table_id`
6048*d5c09012SAndroid Build Coastguard Worker  // * `sensitivity_level desc`
6049*d5c09012SAndroid Build Coastguard Worker  //
6050*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
6051*d5c09012SAndroid Build Coastguard Worker  //
6052*d5c09012SAndroid Build Coastguard Worker  // - `project_id`: The GCP project ID.
6053*d5c09012SAndroid Build Coastguard Worker  // - `dataset_id`: The ID of a BigQuery dataset.
6054*d5c09012SAndroid Build Coastguard Worker  // - `table_id`: The ID of a BigQuery table.
6055*d5c09012SAndroid Build Coastguard Worker  // - `sensitivity_level`: How sensitive the data in a table is, at most.
6056*d5c09012SAndroid Build Coastguard Worker  // - `data_risk_level`: How much risk is associated with this data.
6057*d5c09012SAndroid Build Coastguard Worker  // - `profile_last_generated`: When the profile was last updated in epoch
6058*d5c09012SAndroid Build Coastguard Worker  // seconds.
6059*d5c09012SAndroid Build Coastguard Worker  // - `last_modified`: The last time the resource was modified.
6060*d5c09012SAndroid Build Coastguard Worker  // - `resource_visibility`: Visibility restriction for this resource.
6061*d5c09012SAndroid Build Coastguard Worker  // - `row_count`: Number of rows in this resource.
6062*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
6063*d5c09012SAndroid Build Coastguard Worker
6064*d5c09012SAndroid Build Coastguard Worker  // Allows filtering.
6065*d5c09012SAndroid Build Coastguard Worker  //
6066*d5c09012SAndroid Build Coastguard Worker  // Supported syntax:
6067*d5c09012SAndroid Build Coastguard Worker  //
6068*d5c09012SAndroid Build Coastguard Worker  // * Filter expressions are made up of one or more restrictions.
6069*d5c09012SAndroid Build Coastguard Worker  // * Restrictions can be combined by `AND` or `OR` logical operators. A
6070*d5c09012SAndroid Build Coastguard Worker  // sequence of restrictions implicitly uses `AND`.
6071*d5c09012SAndroid Build Coastguard Worker  // * A restriction has the form of `{field} {operator} {value}`.
6072*d5c09012SAndroid Build Coastguard Worker  // * Supported fields/values:
6073*d5c09012SAndroid Build Coastguard Worker  //     - `project_id` - The GCP project ID.
6074*d5c09012SAndroid Build Coastguard Worker  //     - `dataset_id` - The BigQuery dataset ID.
6075*d5c09012SAndroid Build Coastguard Worker  //     - `table_id` - The ID of the BigQuery table.
6076*d5c09012SAndroid Build Coastguard Worker  //     - `sensitivity_level` - HIGH|MODERATE|LOW
6077*d5c09012SAndroid Build Coastguard Worker  //     - `data_risk_level` - HIGH|MODERATE|LOW
6078*d5c09012SAndroid Build Coastguard Worker  //     - `resource_visibility`: PUBLIC|RESTRICTED
6079*d5c09012SAndroid Build Coastguard Worker  //     - `status_code` - an RPC status code as defined in
6080*d5c09012SAndroid Build Coastguard Worker  //     https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto
6081*d5c09012SAndroid Build Coastguard Worker  // * The operator must be `=` or `!=`.
6082*d5c09012SAndroid Build Coastguard Worker  //
6083*d5c09012SAndroid Build Coastguard Worker  // Examples:
6084*d5c09012SAndroid Build Coastguard Worker  //
6085*d5c09012SAndroid Build Coastguard Worker  // * `project_id = 12345 AND status_code = 1`
6086*d5c09012SAndroid Build Coastguard Worker  // * `project_id = 12345 AND sensitivity_level = HIGH`
6087*d5c09012SAndroid Build Coastguard Worker  // * `project_id = 12345 AND resource_visibility = PUBLIC`
6088*d5c09012SAndroid Build Coastguard Worker  //
6089*d5c09012SAndroid Build Coastguard Worker  // The length of this field should be no more than 500 characters.
6090*d5c09012SAndroid Build Coastguard Worker  string filter = 5;
6091*d5c09012SAndroid Build Coastguard Worker}
6092*d5c09012SAndroid Build Coastguard Worker
6093*d5c09012SAndroid Build Coastguard Worker// List of profiles generated for a given organization or project.
6094*d5c09012SAndroid Build Coastguard Workermessage ListTableDataProfilesResponse {
6095*d5c09012SAndroid Build Coastguard Worker  // List of data profiles.
6096*d5c09012SAndroid Build Coastguard Worker  repeated TableDataProfile table_data_profiles = 1;
6097*d5c09012SAndroid Build Coastguard Worker
6098*d5c09012SAndroid Build Coastguard Worker  // The next page token.
6099*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
6100*d5c09012SAndroid Build Coastguard Worker}
6101*d5c09012SAndroid Build Coastguard Worker
6102*d5c09012SAndroid Build Coastguard Worker// Request to list the profiles generated for a given organization or project.
6103*d5c09012SAndroid Build Coastguard Workermessage ListColumnDataProfilesRequest {
6104*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name of the organization or project, for
6105*d5c09012SAndroid Build Coastguard Worker  // example `organizations/433245324/locations/europe` or
6106*d5c09012SAndroid Build Coastguard Worker  // `projects/project-id/locations/asia`.
6107*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
6108*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
6109*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
6110*d5c09012SAndroid Build Coastguard Worker      child_type: "dlp.googleapis.com/ColumnDataProfile"
6111*d5c09012SAndroid Build Coastguard Worker    }
6112*d5c09012SAndroid Build Coastguard Worker  ];
6113*d5c09012SAndroid Build Coastguard Worker
6114*d5c09012SAndroid Build Coastguard Worker  // Page token to continue retrieval.
6115*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
6116*d5c09012SAndroid Build Coastguard Worker
6117*d5c09012SAndroid Build Coastguard Worker  // Size of the page. This value can be limited by the server. If zero, server
6118*d5c09012SAndroid Build Coastguard Worker  // returns a page of max size 100.
6119*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3;
6120*d5c09012SAndroid Build Coastguard Worker
6121*d5c09012SAndroid Build Coastguard Worker  // Comma separated list of fields to order by, followed by `asc` or `desc`
6122*d5c09012SAndroid Build Coastguard Worker  // postfix. This list is case insensitive. The default sorting order is
6123*d5c09012SAndroid Build Coastguard Worker  // ascending. Redundant space characters are insignificant. Only one order
6124*d5c09012SAndroid Build Coastguard Worker  // field at a time is allowed.
6125*d5c09012SAndroid Build Coastguard Worker  //
6126*d5c09012SAndroid Build Coastguard Worker  // Examples:
6127*d5c09012SAndroid Build Coastguard Worker  // * `project_id asc`
6128*d5c09012SAndroid Build Coastguard Worker  // * `table_id`
6129*d5c09012SAndroid Build Coastguard Worker  // * `sensitivity_level desc`
6130*d5c09012SAndroid Build Coastguard Worker  //
6131*d5c09012SAndroid Build Coastguard Worker  // Supported fields are:
6132*d5c09012SAndroid Build Coastguard Worker  //
6133*d5c09012SAndroid Build Coastguard Worker  // - `project_id`: The Google Cloud project ID.
6134*d5c09012SAndroid Build Coastguard Worker  // - `dataset_id`: The ID of a BigQuery dataset.
6135*d5c09012SAndroid Build Coastguard Worker  // - `table_id`: The ID of a BigQuery table.
6136*d5c09012SAndroid Build Coastguard Worker  // - `sensitivity_level`: How sensitive the data in a column is, at most.
6137*d5c09012SAndroid Build Coastguard Worker  // - `data_risk_level`: How much risk is associated with this data.
6138*d5c09012SAndroid Build Coastguard Worker  // - `profile_last_generated`: When the profile was last updated in epoch
6139*d5c09012SAndroid Build Coastguard Worker  // seconds.
6140*d5c09012SAndroid Build Coastguard Worker  string order_by = 4;
6141*d5c09012SAndroid Build Coastguard Worker
6142*d5c09012SAndroid Build Coastguard Worker  // Allows filtering.
6143*d5c09012SAndroid Build Coastguard Worker  //
6144*d5c09012SAndroid Build Coastguard Worker  // Supported syntax:
6145*d5c09012SAndroid Build Coastguard Worker  //
6146*d5c09012SAndroid Build Coastguard Worker  // * Filter expressions are made up of one or more restrictions.
6147*d5c09012SAndroid Build Coastguard Worker  // * Restrictions can be combined by `AND` or `OR` logical operators. A
6148*d5c09012SAndroid Build Coastguard Worker  // sequence of restrictions implicitly uses `AND`.
6149*d5c09012SAndroid Build Coastguard Worker  // * A restriction has the form of `{field} {operator} {value}`.
6150*d5c09012SAndroid Build Coastguard Worker  // * Supported fields/values:
6151*d5c09012SAndroid Build Coastguard Worker  //     - `table_data_profile_name` - The name of the related table data
6152*d5c09012SAndroid Build Coastguard Worker  //     profile.
6153*d5c09012SAndroid Build Coastguard Worker  //     - `project_id` - The Google Cloud project ID. (REQUIRED)
6154*d5c09012SAndroid Build Coastguard Worker  //     - `dataset_id` - The BigQuery dataset ID. (REQUIRED)
6155*d5c09012SAndroid Build Coastguard Worker  //     - `table_id` - The BigQuery table ID. (REQUIRED)
6156*d5c09012SAndroid Build Coastguard Worker  //     - `field_id` - The ID of the BigQuery field.
6157*d5c09012SAndroid Build Coastguard Worker  //     - `info_type` - The infotype detected in the resource.
6158*d5c09012SAndroid Build Coastguard Worker  //     - `sensitivity_level` - HIGH|MEDIUM|LOW
6159*d5c09012SAndroid Build Coastguard Worker  //     - `data_risk_level`: How much risk is associated with this data.
6160*d5c09012SAndroid Build Coastguard Worker  //     - `status_code` - an RPC status code as defined in
6161*d5c09012SAndroid Build Coastguard Worker  //     https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto
6162*d5c09012SAndroid Build Coastguard Worker  // * The operator must be `=` for project_id, dataset_id, and table_id. Other
6163*d5c09012SAndroid Build Coastguard Worker  //   filters also support `!=`.
6164*d5c09012SAndroid Build Coastguard Worker  //
6165*d5c09012SAndroid Build Coastguard Worker  // Examples:
6166*d5c09012SAndroid Build Coastguard Worker  //
6167*d5c09012SAndroid Build Coastguard Worker  // * project_id = 12345 AND status_code = 1
6168*d5c09012SAndroid Build Coastguard Worker  // * project_id = 12345 AND sensitivity_level = HIGH
6169*d5c09012SAndroid Build Coastguard Worker  // * project_id = 12345 AND info_type = STREET_ADDRESS
6170*d5c09012SAndroid Build Coastguard Worker  //
6171*d5c09012SAndroid Build Coastguard Worker  // The length of this field should be no more than 500 characters.
6172*d5c09012SAndroid Build Coastguard Worker  string filter = 5;
6173*d5c09012SAndroid Build Coastguard Worker}
6174*d5c09012SAndroid Build Coastguard Worker
6175*d5c09012SAndroid Build Coastguard Worker// List of profiles generated for a given organization or project.
6176*d5c09012SAndroid Build Coastguard Workermessage ListColumnDataProfilesResponse {
6177*d5c09012SAndroid Build Coastguard Worker  // List of data profiles.
6178*d5c09012SAndroid Build Coastguard Worker  repeated ColumnDataProfile column_data_profiles = 1;
6179*d5c09012SAndroid Build Coastguard Worker
6180*d5c09012SAndroid Build Coastguard Worker  // The next page token.
6181*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
6182*d5c09012SAndroid Build Coastguard Worker}
6183*d5c09012SAndroid Build Coastguard Worker
6184*d5c09012SAndroid Build Coastguard Worker// Score is a summary of all elements in the data profile.
6185*d5c09012SAndroid Build Coastguard Worker// A higher number means more risk.
6186*d5c09012SAndroid Build Coastguard Workermessage DataRiskLevel {
6187*d5c09012SAndroid Build Coastguard Worker  // Various score levels for resources.
6188*d5c09012SAndroid Build Coastguard Worker  enum DataRiskLevelScore {
6189*d5c09012SAndroid Build Coastguard Worker    // Unused.
6190*d5c09012SAndroid Build Coastguard Worker    RISK_SCORE_UNSPECIFIED = 0;
6191*d5c09012SAndroid Build Coastguard Worker
6192*d5c09012SAndroid Build Coastguard Worker    // Low risk - Lower indication of sensitive data that appears to have
6193*d5c09012SAndroid Build Coastguard Worker    // additional access restrictions in place or no indication of sensitive
6194*d5c09012SAndroid Build Coastguard Worker    // data found.
6195*d5c09012SAndroid Build Coastguard Worker    RISK_LOW = 10;
6196*d5c09012SAndroid Build Coastguard Worker
6197*d5c09012SAndroid Build Coastguard Worker    // Medium risk - Sensitive data may be present but additional access or fine
6198*d5c09012SAndroid Build Coastguard Worker    // grain access restrictions appear to be present.  Consider limiting
6199*d5c09012SAndroid Build Coastguard Worker    // access even further or transform data to mask.
6200*d5c09012SAndroid Build Coastguard Worker    RISK_MODERATE = 20;
6201*d5c09012SAndroid Build Coastguard Worker
6202*d5c09012SAndroid Build Coastguard Worker    // High risk – SPII may be present. Access controls may include public
6203*d5c09012SAndroid Build Coastguard Worker    // ACLs. Exfiltration of data may lead to user data loss. Re-identification
6204*d5c09012SAndroid Build Coastguard Worker    // of users may be possible. Consider limiting usage and or removing SPII.
6205*d5c09012SAndroid Build Coastguard Worker    RISK_HIGH = 30;
6206*d5c09012SAndroid Build Coastguard Worker  }
6207*d5c09012SAndroid Build Coastguard Worker
6208*d5c09012SAndroid Build Coastguard Worker  // The score applied to the resource.
6209*d5c09012SAndroid Build Coastguard Worker  DataRiskLevelScore score = 1;
6210*d5c09012SAndroid Build Coastguard Worker}
6211*d5c09012SAndroid Build Coastguard Worker
6212*d5c09012SAndroid Build Coastguard Worker// An aggregated profile for this project, based on the resources profiled
6213*d5c09012SAndroid Build Coastguard Worker// within it.
6214*d5c09012SAndroid Build Coastguard Workermessage ProjectDataProfile {
6215*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
6216*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/ProjectDataProfile"
6217*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/projectDataProfiles/{project_data_profile}"
6218*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/projectDataProfiles/{project_data_profile}"
6219*d5c09012SAndroid Build Coastguard Worker  };
6220*d5c09012SAndroid Build Coastguard Worker  // The resource name of the profile.
6221*d5c09012SAndroid Build Coastguard Worker  string name = 1;
6222*d5c09012SAndroid Build Coastguard Worker
6223*d5c09012SAndroid Build Coastguard Worker  // Project ID that was profiled.
6224*d5c09012SAndroid Build Coastguard Worker  string project_id = 2;
6225*d5c09012SAndroid Build Coastguard Worker
6226*d5c09012SAndroid Build Coastguard Worker  // The last time the profile was generated.
6227*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp profile_last_generated = 3;
6228*d5c09012SAndroid Build Coastguard Worker
6229*d5c09012SAndroid Build Coastguard Worker  // The sensitivity score of this project.
6230*d5c09012SAndroid Build Coastguard Worker  SensitivityScore sensitivity_score = 4;
6231*d5c09012SAndroid Build Coastguard Worker
6232*d5c09012SAndroid Build Coastguard Worker  // The data risk level of this project.
6233*d5c09012SAndroid Build Coastguard Worker  DataRiskLevel data_risk_level = 5;
6234*d5c09012SAndroid Build Coastguard Worker
6235*d5c09012SAndroid Build Coastguard Worker  // Success or error status of the last attempt to profile the project.
6236*d5c09012SAndroid Build Coastguard Worker  ProfileStatus profile_status = 7;
6237*d5c09012SAndroid Build Coastguard Worker}
6238*d5c09012SAndroid Build Coastguard Worker
6239*d5c09012SAndroid Build Coastguard Worker// How broadly the data in the resource has been shared. New items may be added
6240*d5c09012SAndroid Build Coastguard Worker// over time. A higher number means more restricted.
6241*d5c09012SAndroid Build Coastguard Workerenum ResourceVisibility {
6242*d5c09012SAndroid Build Coastguard Worker  // Unused.
6243*d5c09012SAndroid Build Coastguard Worker  RESOURCE_VISIBILITY_UNSPECIFIED = 0;
6244*d5c09012SAndroid Build Coastguard Worker
6245*d5c09012SAndroid Build Coastguard Worker  // Visible to any user.
6246*d5c09012SAndroid Build Coastguard Worker  RESOURCE_VISIBILITY_PUBLIC = 10;
6247*d5c09012SAndroid Build Coastguard Worker
6248*d5c09012SAndroid Build Coastguard Worker  // Visible only to specific users.
6249*d5c09012SAndroid Build Coastguard Worker  RESOURCE_VISIBILITY_RESTRICTED = 20;
6250*d5c09012SAndroid Build Coastguard Worker}
6251*d5c09012SAndroid Build Coastguard Worker
6252*d5c09012SAndroid Build Coastguard Worker// Snapshot of the configurations used to generate the profile.
6253*d5c09012SAndroid Build Coastguard Workermessage DataProfileConfigSnapshot {
6254*d5c09012SAndroid Build Coastguard Worker  // A copy of the inspection config used to generate this profile. This
6255*d5c09012SAndroid Build Coastguard Worker  // is a copy of the inspect_template specified in `DataProfileJobConfig`.
6256*d5c09012SAndroid Build Coastguard Worker  InspectConfig inspect_config = 2;
6257*d5c09012SAndroid Build Coastguard Worker
6258*d5c09012SAndroid Build Coastguard Worker  // A copy of the configuration used to generate this profile. This is
6259*d5c09012SAndroid Build Coastguard Worker  // deprecated, and the DiscoveryConfig field is preferred moving forward.
6260*d5c09012SAndroid Build Coastguard Worker  // DataProfileJobConfig will still be written here for Discovery in BigQuery
6261*d5c09012SAndroid Build Coastguard Worker  // for backwards compatibility, but will not be updated with new fields, while
6262*d5c09012SAndroid Build Coastguard Worker  // DiscoveryConfig will.
6263*d5c09012SAndroid Build Coastguard Worker  DataProfileJobConfig data_profile_job = 3 [deprecated = true];
6264*d5c09012SAndroid Build Coastguard Worker
6265*d5c09012SAndroid Build Coastguard Worker  // A copy of the configuration used to generate this profile.
6266*d5c09012SAndroid Build Coastguard Worker  DiscoveryConfig discovery_config = 4;
6267*d5c09012SAndroid Build Coastguard Worker
6268*d5c09012SAndroid Build Coastguard Worker  // Name of the inspection template used to generate this profile
6269*d5c09012SAndroid Build Coastguard Worker  string inspect_template_name = 5;
6270*d5c09012SAndroid Build Coastguard Worker
6271*d5c09012SAndroid Build Coastguard Worker  // Timestamp when the template was modified
6272*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp inspect_template_modified_time = 6;
6273*d5c09012SAndroid Build Coastguard Worker}
6274*d5c09012SAndroid Build Coastguard Worker
6275*d5c09012SAndroid Build Coastguard Worker// The profile for a scanned table.
6276*d5c09012SAndroid Build Coastguard Workermessage TableDataProfile {
6277*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
6278*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/TableDataProfile"
6279*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/tableDataProfiles/{table_data_profile}"
6280*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/tableDataProfiles/{table_data_profile}"
6281*d5c09012SAndroid Build Coastguard Worker  };
6282*d5c09012SAndroid Build Coastguard Worker  // Possible states of a profile. New items may be added.
6283*d5c09012SAndroid Build Coastguard Worker  enum State {
6284*d5c09012SAndroid Build Coastguard Worker    // Unused.
6285*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
6286*d5c09012SAndroid Build Coastguard Worker
6287*d5c09012SAndroid Build Coastguard Worker    // The profile is currently running. Once a profile has finished it will
6288*d5c09012SAndroid Build Coastguard Worker    // transition to DONE.
6289*d5c09012SAndroid Build Coastguard Worker    RUNNING = 1;
6290*d5c09012SAndroid Build Coastguard Worker
6291*d5c09012SAndroid Build Coastguard Worker    // The profile is no longer generating.
6292*d5c09012SAndroid Build Coastguard Worker    // If profile_status.status.code is 0, the profile succeeded, otherwise, it
6293*d5c09012SAndroid Build Coastguard Worker    // failed.
6294*d5c09012SAndroid Build Coastguard Worker    DONE = 2;
6295*d5c09012SAndroid Build Coastguard Worker  }
6296*d5c09012SAndroid Build Coastguard Worker
6297*d5c09012SAndroid Build Coastguard Worker  // The name of the profile.
6298*d5c09012SAndroid Build Coastguard Worker  string name = 1;
6299*d5c09012SAndroid Build Coastguard Worker
6300*d5c09012SAndroid Build Coastguard Worker  // The resource type that was profiled.
6301*d5c09012SAndroid Build Coastguard Worker  DataSourceType data_source_type = 36;
6302*d5c09012SAndroid Build Coastguard Worker
6303*d5c09012SAndroid Build Coastguard Worker  // The resource name to the project data profile for this table.
6304*d5c09012SAndroid Build Coastguard Worker  string project_data_profile = 2;
6305*d5c09012SAndroid Build Coastguard Worker
6306*d5c09012SAndroid Build Coastguard Worker  // The Google Cloud project ID that owns the resource.
6307*d5c09012SAndroid Build Coastguard Worker  string dataset_project_id = 24;
6308*d5c09012SAndroid Build Coastguard Worker
6309*d5c09012SAndroid Build Coastguard Worker  // If supported, the location where the dataset's data is stored.
6310*d5c09012SAndroid Build Coastguard Worker  // See https://cloud.google.com/bigquery/docs/locations for supported
6311*d5c09012SAndroid Build Coastguard Worker  // locations.
6312*d5c09012SAndroid Build Coastguard Worker  string dataset_location = 29;
6313*d5c09012SAndroid Build Coastguard Worker
6314*d5c09012SAndroid Build Coastguard Worker  // If the resource is BigQuery, the  dataset ID.
6315*d5c09012SAndroid Build Coastguard Worker  string dataset_id = 25;
6316*d5c09012SAndroid Build Coastguard Worker
6317*d5c09012SAndroid Build Coastguard Worker  // If the resource is BigQuery, the BigQuery table ID.
6318*d5c09012SAndroid Build Coastguard Worker  string table_id = 26;
6319*d5c09012SAndroid Build Coastguard Worker
6320*d5c09012SAndroid Build Coastguard Worker  // The resource name of the resource profiled.
6321*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/apis/design/resource_names#full_resource_name
6322*d5c09012SAndroid Build Coastguard Worker  string full_resource = 3;
6323*d5c09012SAndroid Build Coastguard Worker
6324*d5c09012SAndroid Build Coastguard Worker  // Success or error status from the most recent profile generation attempt.
6325*d5c09012SAndroid Build Coastguard Worker  // May be empty if the profile is still being generated.
6326*d5c09012SAndroid Build Coastguard Worker  ProfileStatus profile_status = 21;
6327*d5c09012SAndroid Build Coastguard Worker
6328*d5c09012SAndroid Build Coastguard Worker  // State of a profile.
6329*d5c09012SAndroid Build Coastguard Worker  State state = 22;
6330*d5c09012SAndroid Build Coastguard Worker
6331*d5c09012SAndroid Build Coastguard Worker  // The sensitivity score of this table.
6332*d5c09012SAndroid Build Coastguard Worker  SensitivityScore sensitivity_score = 5;
6333*d5c09012SAndroid Build Coastguard Worker
6334*d5c09012SAndroid Build Coastguard Worker  // The data risk level of this table.
6335*d5c09012SAndroid Build Coastguard Worker  DataRiskLevel data_risk_level = 6;
6336*d5c09012SAndroid Build Coastguard Worker
6337*d5c09012SAndroid Build Coastguard Worker  // The infoTypes predicted from this table's data.
6338*d5c09012SAndroid Build Coastguard Worker  repeated InfoTypeSummary predicted_info_types = 27;
6339*d5c09012SAndroid Build Coastguard Worker
6340*d5c09012SAndroid Build Coastguard Worker  // Other infoTypes found in this table's data.
6341*d5c09012SAndroid Build Coastguard Worker  repeated OtherInfoTypeSummary other_info_types = 28;
6342*d5c09012SAndroid Build Coastguard Worker
6343*d5c09012SAndroid Build Coastguard Worker  // The snapshot of the configurations used to generate the profile.
6344*d5c09012SAndroid Build Coastguard Worker  DataProfileConfigSnapshot config_snapshot = 7;
6345*d5c09012SAndroid Build Coastguard Worker
6346*d5c09012SAndroid Build Coastguard Worker  // The time when this table was last modified
6347*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp last_modified_time = 8;
6348*d5c09012SAndroid Build Coastguard Worker
6349*d5c09012SAndroid Build Coastguard Worker  // Optional. The time when this table expires.
6350*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp expiration_time = 9;
6351*d5c09012SAndroid Build Coastguard Worker
6352*d5c09012SAndroid Build Coastguard Worker  // The number of columns profiled in the table.
6353*d5c09012SAndroid Build Coastguard Worker  int64 scanned_column_count = 10;
6354*d5c09012SAndroid Build Coastguard Worker
6355*d5c09012SAndroid Build Coastguard Worker  // The number of columns skipped in the table because of an error.
6356*d5c09012SAndroid Build Coastguard Worker  int64 failed_column_count = 11;
6357*d5c09012SAndroid Build Coastguard Worker
6358*d5c09012SAndroid Build Coastguard Worker  // The size of the table when the profile was generated.
6359*d5c09012SAndroid Build Coastguard Worker  int64 table_size_bytes = 12;
6360*d5c09012SAndroid Build Coastguard Worker
6361*d5c09012SAndroid Build Coastguard Worker  // Number of rows in the table when the profile was generated.
6362*d5c09012SAndroid Build Coastguard Worker  // This will not be populated for BigLake tables.
6363*d5c09012SAndroid Build Coastguard Worker  int64 row_count = 13;
6364*d5c09012SAndroid Build Coastguard Worker
6365*d5c09012SAndroid Build Coastguard Worker  // How the table is encrypted.
6366*d5c09012SAndroid Build Coastguard Worker  EncryptionStatus encryption_status = 14;
6367*d5c09012SAndroid Build Coastguard Worker
6368*d5c09012SAndroid Build Coastguard Worker  // How broadly a resource has been shared.
6369*d5c09012SAndroid Build Coastguard Worker  ResourceVisibility resource_visibility = 15;
6370*d5c09012SAndroid Build Coastguard Worker
6371*d5c09012SAndroid Build Coastguard Worker  // The last time the profile was generated.
6372*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp profile_last_generated = 16;
6373*d5c09012SAndroid Build Coastguard Worker
6374*d5c09012SAndroid Build Coastguard Worker  // The labels applied to the resource at the time the profile was generated.
6375*d5c09012SAndroid Build Coastguard Worker  map<string, string> resource_labels = 17;
6376*d5c09012SAndroid Build Coastguard Worker
6377*d5c09012SAndroid Build Coastguard Worker  // The time at which the table was created.
6378*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 23;
6379*d5c09012SAndroid Build Coastguard Worker}
6380*d5c09012SAndroid Build Coastguard Worker
6381*d5c09012SAndroid Build Coastguard Worker// Success or errors for the profile generation.
6382*d5c09012SAndroid Build Coastguard Workermessage ProfileStatus {
6383*d5c09012SAndroid Build Coastguard Worker  // Profiling status code and optional message. The `status.code` value is 0
6384*d5c09012SAndroid Build Coastguard Worker  // (default value) for OK.
6385*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status status = 1;
6386*d5c09012SAndroid Build Coastguard Worker
6387*d5c09012SAndroid Build Coastguard Worker  // Time when the profile generation status was updated
6388*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp timestamp = 3;
6389*d5c09012SAndroid Build Coastguard Worker}
6390*d5c09012SAndroid Build Coastguard Worker
6391*d5c09012SAndroid Build Coastguard Worker// How a resource is encrypted.
6392*d5c09012SAndroid Build Coastguard Workerenum EncryptionStatus {
6393*d5c09012SAndroid Build Coastguard Worker  // Unused.
6394*d5c09012SAndroid Build Coastguard Worker  ENCRYPTION_STATUS_UNSPECIFIED = 0;
6395*d5c09012SAndroid Build Coastguard Worker
6396*d5c09012SAndroid Build Coastguard Worker  // Google manages server-side encryption keys on your behalf.
6397*d5c09012SAndroid Build Coastguard Worker  ENCRYPTION_GOOGLE_MANAGED = 1;
6398*d5c09012SAndroid Build Coastguard Worker
6399*d5c09012SAndroid Build Coastguard Worker  // Customer provides the key.
6400*d5c09012SAndroid Build Coastguard Worker  ENCRYPTION_CUSTOMER_MANAGED = 2;
6401*d5c09012SAndroid Build Coastguard Worker}
6402*d5c09012SAndroid Build Coastguard Worker
6403*d5c09012SAndroid Build Coastguard Worker// The infoType details for this column.
6404*d5c09012SAndroid Build Coastguard Workermessage InfoTypeSummary {
6405*d5c09012SAndroid Build Coastguard Worker  // The infoType.
6406*d5c09012SAndroid Build Coastguard Worker  InfoType info_type = 1;
6407*d5c09012SAndroid Build Coastguard Worker
6408*d5c09012SAndroid Build Coastguard Worker  // Not populated for predicted infotypes.
6409*d5c09012SAndroid Build Coastguard Worker  int32 estimated_prevalence = 2 [deprecated = true];
6410*d5c09012SAndroid Build Coastguard Worker}
6411*d5c09012SAndroid Build Coastguard Worker
6412*d5c09012SAndroid Build Coastguard Worker// Infotype details for other infoTypes found within a column.
6413*d5c09012SAndroid Build Coastguard Workermessage OtherInfoTypeSummary {
6414*d5c09012SAndroid Build Coastguard Worker  // The other infoType.
6415*d5c09012SAndroid Build Coastguard Worker  InfoType info_type = 1;
6416*d5c09012SAndroid Build Coastguard Worker
6417*d5c09012SAndroid Build Coastguard Worker  // Approximate percentage of non-null rows that contained data detected by
6418*d5c09012SAndroid Build Coastguard Worker  // this infotype.
6419*d5c09012SAndroid Build Coastguard Worker  int32 estimated_prevalence = 2;
6420*d5c09012SAndroid Build Coastguard Worker
6421*d5c09012SAndroid Build Coastguard Worker  // Whether this infoType was excluded from sensitivity and risk analysis due
6422*d5c09012SAndroid Build Coastguard Worker  // to factors such as low prevalence (subject to change).
6423*d5c09012SAndroid Build Coastguard Worker  bool excluded_from_analysis = 3;
6424*d5c09012SAndroid Build Coastguard Worker}
6425*d5c09012SAndroid Build Coastguard Worker
6426*d5c09012SAndroid Build Coastguard Worker// Bucketized nullness percentage levels. A higher level means a higher
6427*d5c09012SAndroid Build Coastguard Worker// percentage of the column is null.
6428*d5c09012SAndroid Build Coastguard Workerenum NullPercentageLevel {
6429*d5c09012SAndroid Build Coastguard Worker  // Unused.
6430*d5c09012SAndroid Build Coastguard Worker  NULL_PERCENTAGE_LEVEL_UNSPECIFIED = 0;
6431*d5c09012SAndroid Build Coastguard Worker
6432*d5c09012SAndroid Build Coastguard Worker  // Very few null entries.
6433*d5c09012SAndroid Build Coastguard Worker  NULL_PERCENTAGE_VERY_LOW = 1;
6434*d5c09012SAndroid Build Coastguard Worker
6435*d5c09012SAndroid Build Coastguard Worker  // Some null entries.
6436*d5c09012SAndroid Build Coastguard Worker  NULL_PERCENTAGE_LOW = 2;
6437*d5c09012SAndroid Build Coastguard Worker
6438*d5c09012SAndroid Build Coastguard Worker  // A few null entries.
6439*d5c09012SAndroid Build Coastguard Worker  NULL_PERCENTAGE_MEDIUM = 3;
6440*d5c09012SAndroid Build Coastguard Worker
6441*d5c09012SAndroid Build Coastguard Worker  // A lot of null entries.
6442*d5c09012SAndroid Build Coastguard Worker  NULL_PERCENTAGE_HIGH = 4;
6443*d5c09012SAndroid Build Coastguard Worker}
6444*d5c09012SAndroid Build Coastguard Worker
6445*d5c09012SAndroid Build Coastguard Worker// Bucketized uniqueness score levels. A higher uniqueness score is a strong
6446*d5c09012SAndroid Build Coastguard Worker// signal that the column may contain a unique identifier like user id. A low
6447*d5c09012SAndroid Build Coastguard Worker// value indicates that the column contains few unique values like booleans or
6448*d5c09012SAndroid Build Coastguard Worker// other classifiers.
6449*d5c09012SAndroid Build Coastguard Workerenum UniquenessScoreLevel {
6450*d5c09012SAndroid Build Coastguard Worker  // Some columns do not have estimated uniqueness. Possible reasons include
6451*d5c09012SAndroid Build Coastguard Worker  // having too few values.
6452*d5c09012SAndroid Build Coastguard Worker  UNIQUENESS_SCORE_LEVEL_UNSPECIFIED = 0;
6453*d5c09012SAndroid Build Coastguard Worker
6454*d5c09012SAndroid Build Coastguard Worker  // Low uniqueness, possibly a boolean, enum or similiarly typed column.
6455*d5c09012SAndroid Build Coastguard Worker  UNIQUENESS_SCORE_LOW = 1;
6456*d5c09012SAndroid Build Coastguard Worker
6457*d5c09012SAndroid Build Coastguard Worker  // Medium uniqueness.
6458*d5c09012SAndroid Build Coastguard Worker  UNIQUENESS_SCORE_MEDIUM = 2;
6459*d5c09012SAndroid Build Coastguard Worker
6460*d5c09012SAndroid Build Coastguard Worker  // High uniqueness, possibly a column of free text or unique identifiers.
6461*d5c09012SAndroid Build Coastguard Worker  UNIQUENESS_SCORE_HIGH = 3;
6462*d5c09012SAndroid Build Coastguard Worker}
6463*d5c09012SAndroid Build Coastguard Worker
6464*d5c09012SAndroid Build Coastguard Worker// The profile for a scanned column within a table.
6465*d5c09012SAndroid Build Coastguard Workermessage ColumnDataProfile {
6466*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
6467*d5c09012SAndroid Build Coastguard Worker    type: "dlp.googleapis.com/ColumnDataProfile"
6468*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/locations/{location}/columnDataProfiles/{column_data_profile}"
6469*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/columnDataProfiles/{column_data_profile}"
6470*d5c09012SAndroid Build Coastguard Worker  };
6471*d5c09012SAndroid Build Coastguard Worker  // Possible states of a profile. New items may be added.
6472*d5c09012SAndroid Build Coastguard Worker  enum State {
6473*d5c09012SAndroid Build Coastguard Worker    // Unused.
6474*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
6475*d5c09012SAndroid Build Coastguard Worker
6476*d5c09012SAndroid Build Coastguard Worker    // The profile is currently running. Once a profile has finished it will
6477*d5c09012SAndroid Build Coastguard Worker    // transition to DONE.
6478*d5c09012SAndroid Build Coastguard Worker    RUNNING = 1;
6479*d5c09012SAndroid Build Coastguard Worker
6480*d5c09012SAndroid Build Coastguard Worker    // The profile is no longer generating.
6481*d5c09012SAndroid Build Coastguard Worker    // If profile_status.status.code is 0, the profile succeeded, otherwise, it
6482*d5c09012SAndroid Build Coastguard Worker    // failed.
6483*d5c09012SAndroid Build Coastguard Worker    DONE = 2;
6484*d5c09012SAndroid Build Coastguard Worker  }
6485*d5c09012SAndroid Build Coastguard Worker
6486*d5c09012SAndroid Build Coastguard Worker  // Data types of the data in a column. Types may be added over time.
6487*d5c09012SAndroid Build Coastguard Worker  enum ColumnDataType {
6488*d5c09012SAndroid Build Coastguard Worker    // Invalid type.
6489*d5c09012SAndroid Build Coastguard Worker    COLUMN_DATA_TYPE_UNSPECIFIED = 0;
6490*d5c09012SAndroid Build Coastguard Worker
6491*d5c09012SAndroid Build Coastguard Worker    // Encoded as a string in decimal format.
6492*d5c09012SAndroid Build Coastguard Worker    TYPE_INT64 = 1;
6493*d5c09012SAndroid Build Coastguard Worker
6494*d5c09012SAndroid Build Coastguard Worker    // Encoded as a boolean "false" or "true".
6495*d5c09012SAndroid Build Coastguard Worker    TYPE_BOOL = 2;
6496*d5c09012SAndroid Build Coastguard Worker
6497*d5c09012SAndroid Build Coastguard Worker    // Encoded as a number, or string "NaN", "Infinity" or "-Infinity".
6498*d5c09012SAndroid Build Coastguard Worker    TYPE_FLOAT64 = 3;
6499*d5c09012SAndroid Build Coastguard Worker
6500*d5c09012SAndroid Build Coastguard Worker    // Encoded as a string value.
6501*d5c09012SAndroid Build Coastguard Worker    TYPE_STRING = 4;
6502*d5c09012SAndroid Build Coastguard Worker
6503*d5c09012SAndroid Build Coastguard Worker    // Encoded as a base64 string per RFC 4648, section 4.
6504*d5c09012SAndroid Build Coastguard Worker    TYPE_BYTES = 5;
6505*d5c09012SAndroid Build Coastguard Worker
6506*d5c09012SAndroid Build Coastguard Worker    // Encoded as an RFC 3339 timestamp with mandatory "Z" time zone string:
6507*d5c09012SAndroid Build Coastguard Worker    // 1985-04-12T23:20:50.52Z
6508*d5c09012SAndroid Build Coastguard Worker    TYPE_TIMESTAMP = 6;
6509*d5c09012SAndroid Build Coastguard Worker
6510*d5c09012SAndroid Build Coastguard Worker    // Encoded as RFC 3339 full-date format string: 1985-04-12
6511*d5c09012SAndroid Build Coastguard Worker    TYPE_DATE = 7;
6512*d5c09012SAndroid Build Coastguard Worker
6513*d5c09012SAndroid Build Coastguard Worker    // Encoded as RFC 3339 partial-time format string: 23:20:50.52
6514*d5c09012SAndroid Build Coastguard Worker    TYPE_TIME = 8;
6515*d5c09012SAndroid Build Coastguard Worker
6516*d5c09012SAndroid Build Coastguard Worker    // Encoded as RFC 3339 full-date "T" partial-time: 1985-04-12T23:20:50.52
6517*d5c09012SAndroid Build Coastguard Worker    TYPE_DATETIME = 9;
6518*d5c09012SAndroid Build Coastguard Worker
6519*d5c09012SAndroid Build Coastguard Worker    // Encoded as WKT
6520*d5c09012SAndroid Build Coastguard Worker    TYPE_GEOGRAPHY = 10;
6521*d5c09012SAndroid Build Coastguard Worker
6522*d5c09012SAndroid Build Coastguard Worker    // Encoded as a decimal string.
6523*d5c09012SAndroid Build Coastguard Worker    TYPE_NUMERIC = 11;
6524*d5c09012SAndroid Build Coastguard Worker
6525*d5c09012SAndroid Build Coastguard Worker    // Container of ordered fields, each with a type and field name.
6526*d5c09012SAndroid Build Coastguard Worker    TYPE_RECORD = 12;
6527*d5c09012SAndroid Build Coastguard Worker
6528*d5c09012SAndroid Build Coastguard Worker    // Decimal type.
6529*d5c09012SAndroid Build Coastguard Worker    TYPE_BIGNUMERIC = 13;
6530*d5c09012SAndroid Build Coastguard Worker
6531*d5c09012SAndroid Build Coastguard Worker    // Json type.
6532*d5c09012SAndroid Build Coastguard Worker    TYPE_JSON = 14;
6533*d5c09012SAndroid Build Coastguard Worker  }
6534*d5c09012SAndroid Build Coastguard Worker
6535*d5c09012SAndroid Build Coastguard Worker  // The possible policy states for a column.
6536*d5c09012SAndroid Build Coastguard Worker  enum ColumnPolicyState {
6537*d5c09012SAndroid Build Coastguard Worker    // No policy tags.
6538*d5c09012SAndroid Build Coastguard Worker    COLUMN_POLICY_STATE_UNSPECIFIED = 0;
6539*d5c09012SAndroid Build Coastguard Worker
6540*d5c09012SAndroid Build Coastguard Worker    // Column has policy tag applied.
6541*d5c09012SAndroid Build Coastguard Worker    COLUMN_POLICY_TAGGED = 1;
6542*d5c09012SAndroid Build Coastguard Worker  }
6543*d5c09012SAndroid Build Coastguard Worker
6544*d5c09012SAndroid Build Coastguard Worker  // The name of the profile.
6545*d5c09012SAndroid Build Coastguard Worker  string name = 1;
6546*d5c09012SAndroid Build Coastguard Worker
6547*d5c09012SAndroid Build Coastguard Worker  // Success or error status from the most recent profile generation attempt.
6548*d5c09012SAndroid Build Coastguard Worker  // May be empty if the profile is still being generated.
6549*d5c09012SAndroid Build Coastguard Worker  ProfileStatus profile_status = 17;
6550*d5c09012SAndroid Build Coastguard Worker
6551*d5c09012SAndroid Build Coastguard Worker  // State of a profile.
6552*d5c09012SAndroid Build Coastguard Worker  State state = 18;
6553*d5c09012SAndroid Build Coastguard Worker
6554*d5c09012SAndroid Build Coastguard Worker  // The last time the profile was generated.
6555*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp profile_last_generated = 3;
6556*d5c09012SAndroid Build Coastguard Worker
6557*d5c09012SAndroid Build Coastguard Worker  // The resource name of the table data profile.
6558*d5c09012SAndroid Build Coastguard Worker  string table_data_profile = 4;
6559*d5c09012SAndroid Build Coastguard Worker
6560*d5c09012SAndroid Build Coastguard Worker  // The resource name of the resource this column is within.
6561*d5c09012SAndroid Build Coastguard Worker  string table_full_resource = 5;
6562*d5c09012SAndroid Build Coastguard Worker
6563*d5c09012SAndroid Build Coastguard Worker  // The Google Cloud project ID that owns the profiled resource.
6564*d5c09012SAndroid Build Coastguard Worker  string dataset_project_id = 19;
6565*d5c09012SAndroid Build Coastguard Worker
6566*d5c09012SAndroid Build Coastguard Worker  // The BigQuery location where the dataset's data is stored.
6567*d5c09012SAndroid Build Coastguard Worker  // See https://cloud.google.com/bigquery/docs/locations for supported
6568*d5c09012SAndroid Build Coastguard Worker  // locations.
6569*d5c09012SAndroid Build Coastguard Worker  string dataset_location = 20;
6570*d5c09012SAndroid Build Coastguard Worker
6571*d5c09012SAndroid Build Coastguard Worker  // The BigQuery dataset ID.
6572*d5c09012SAndroid Build Coastguard Worker  string dataset_id = 21;
6573*d5c09012SAndroid Build Coastguard Worker
6574*d5c09012SAndroid Build Coastguard Worker  // The BigQuery table ID.
6575*d5c09012SAndroid Build Coastguard Worker  string table_id = 22;
6576*d5c09012SAndroid Build Coastguard Worker
6577*d5c09012SAndroid Build Coastguard Worker  // The name of the column.
6578*d5c09012SAndroid Build Coastguard Worker  string column = 6;
6579*d5c09012SAndroid Build Coastguard Worker
6580*d5c09012SAndroid Build Coastguard Worker  // The sensitivity of this column.
6581*d5c09012SAndroid Build Coastguard Worker  SensitivityScore sensitivity_score = 7;
6582*d5c09012SAndroid Build Coastguard Worker
6583*d5c09012SAndroid Build Coastguard Worker  // The data risk level for this column.
6584*d5c09012SAndroid Build Coastguard Worker  DataRiskLevel data_risk_level = 8;
6585*d5c09012SAndroid Build Coastguard Worker
6586*d5c09012SAndroid Build Coastguard Worker  // If it's been determined this column can be identified as a single type,
6587*d5c09012SAndroid Build Coastguard Worker  // this will be set. Otherwise the column either has unidentifiable content
6588*d5c09012SAndroid Build Coastguard Worker  // or mixed types.
6589*d5c09012SAndroid Build Coastguard Worker  InfoTypeSummary column_info_type = 9;
6590*d5c09012SAndroid Build Coastguard Worker
6591*d5c09012SAndroid Build Coastguard Worker  // Other types found within this column. List will be unordered.
6592*d5c09012SAndroid Build Coastguard Worker  repeated OtherInfoTypeSummary other_matches = 10;
6593*d5c09012SAndroid Build Coastguard Worker
6594*d5c09012SAndroid Build Coastguard Worker  // Approximate percentage of entries being null in the column.
6595*d5c09012SAndroid Build Coastguard Worker  NullPercentageLevel estimated_null_percentage = 23;
6596*d5c09012SAndroid Build Coastguard Worker
6597*d5c09012SAndroid Build Coastguard Worker  // Approximate uniqueness of the column.
6598*d5c09012SAndroid Build Coastguard Worker  UniquenessScoreLevel estimated_uniqueness_score = 24;
6599*d5c09012SAndroid Build Coastguard Worker
6600*d5c09012SAndroid Build Coastguard Worker  // The likelihood that this column contains free-form text.
6601*d5c09012SAndroid Build Coastguard Worker  // A value close to 1 may indicate the column is likely to contain
6602*d5c09012SAndroid Build Coastguard Worker  // free-form or natural language text.
6603*d5c09012SAndroid Build Coastguard Worker  // Range in 0-1.
6604*d5c09012SAndroid Build Coastguard Worker  double free_text_score = 13;
6605*d5c09012SAndroid Build Coastguard Worker
6606*d5c09012SAndroid Build Coastguard Worker  // The data type of a given column.
6607*d5c09012SAndroid Build Coastguard Worker  ColumnDataType column_type = 14;
6608*d5c09012SAndroid Build Coastguard Worker
6609*d5c09012SAndroid Build Coastguard Worker  // Indicates if a policy tag has been applied to the column.
6610*d5c09012SAndroid Build Coastguard Worker  ColumnPolicyState policy_state = 15;
6611*d5c09012SAndroid Build Coastguard Worker}
6612*d5c09012SAndroid Build Coastguard Worker
6613*d5c09012SAndroid Build Coastguard Worker// Request to get a project data profile.
6614*d5c09012SAndroid Build Coastguard Workermessage GetProjectDataProfileRequest {
6615*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name, for example
6616*d5c09012SAndroid Build Coastguard Worker  // `organizations/12345/locations/us/projectDataProfiles/53234423`.
6617*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
6618*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
6619*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
6620*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/ProjectDataProfile"
6621*d5c09012SAndroid Build Coastguard Worker    }
6622*d5c09012SAndroid Build Coastguard Worker  ];
6623*d5c09012SAndroid Build Coastguard Worker}
6624*d5c09012SAndroid Build Coastguard Worker
6625*d5c09012SAndroid Build Coastguard Worker// Request to get a table data profile.
6626*d5c09012SAndroid Build Coastguard Workermessage GetTableDataProfileRequest {
6627*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name, for example
6628*d5c09012SAndroid Build Coastguard Worker  // `organizations/12345/locations/us/tableDataProfiles/53234423`.
6629*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
6630*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
6631*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
6632*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/TableDataProfile"
6633*d5c09012SAndroid Build Coastguard Worker    }
6634*d5c09012SAndroid Build Coastguard Worker  ];
6635*d5c09012SAndroid Build Coastguard Worker}
6636*d5c09012SAndroid Build Coastguard Worker
6637*d5c09012SAndroid Build Coastguard Worker// Request to get a column data profile.
6638*d5c09012SAndroid Build Coastguard Workermessage GetColumnDataProfileRequest {
6639*d5c09012SAndroid Build Coastguard Worker  // Required. Resource name, for example
6640*d5c09012SAndroid Build Coastguard Worker  // `organizations/12345/locations/us/columnDataProfiles/53234423`.
6641*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
6642*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
6643*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
6644*d5c09012SAndroid Build Coastguard Worker      type: "dlp.googleapis.com/ColumnDataProfile"
6645*d5c09012SAndroid Build Coastguard Worker    }
6646*d5c09012SAndroid Build Coastguard Worker  ];
6647*d5c09012SAndroid Build Coastguard Worker}
6648*d5c09012SAndroid Build Coastguard Worker
6649*d5c09012SAndroid Build Coastguard Worker// A condition for determining whether a Pub/Sub should be triggered.
6650*d5c09012SAndroid Build Coastguard Workermessage DataProfilePubSubCondition {
6651*d5c09012SAndroid Build Coastguard Worker  // Various score levels for resources.
6652*d5c09012SAndroid Build Coastguard Worker  enum ProfileScoreBucket {
6653*d5c09012SAndroid Build Coastguard Worker    // Unused.
6654*d5c09012SAndroid Build Coastguard Worker    PROFILE_SCORE_BUCKET_UNSPECIFIED = 0;
6655*d5c09012SAndroid Build Coastguard Worker
6656*d5c09012SAndroid Build Coastguard Worker    // High risk/sensitivity detected.
6657*d5c09012SAndroid Build Coastguard Worker    HIGH = 1;
6658*d5c09012SAndroid Build Coastguard Worker
6659*d5c09012SAndroid Build Coastguard Worker    // Medium or high risk/sensitivity detected.
6660*d5c09012SAndroid Build Coastguard Worker    MEDIUM_OR_HIGH = 2;
6661*d5c09012SAndroid Build Coastguard Worker  }
6662*d5c09012SAndroid Build Coastguard Worker
6663*d5c09012SAndroid Build Coastguard Worker  // A condition consisting of a value.
6664*d5c09012SAndroid Build Coastguard Worker  message PubSubCondition {
6665*d5c09012SAndroid Build Coastguard Worker    // The value for the condition to trigger.
6666*d5c09012SAndroid Build Coastguard Worker    oneof value {
6667*d5c09012SAndroid Build Coastguard Worker      // The minimum data risk score that triggers the condition.
6668*d5c09012SAndroid Build Coastguard Worker      ProfileScoreBucket minimum_risk_score = 1;
6669*d5c09012SAndroid Build Coastguard Worker
6670*d5c09012SAndroid Build Coastguard Worker      // The minimum sensitivity level that triggers the condition.
6671*d5c09012SAndroid Build Coastguard Worker      ProfileScoreBucket minimum_sensitivity_score = 2;
6672*d5c09012SAndroid Build Coastguard Worker    }
6673*d5c09012SAndroid Build Coastguard Worker  }
6674*d5c09012SAndroid Build Coastguard Worker
6675*d5c09012SAndroid Build Coastguard Worker  // An expression, consisting of an operator and conditions.
6676*d5c09012SAndroid Build Coastguard Worker  message PubSubExpressions {
6677*d5c09012SAndroid Build Coastguard Worker    // Logical operators for conditional checks.
6678*d5c09012SAndroid Build Coastguard Worker    enum PubSubLogicalOperator {
6679*d5c09012SAndroid Build Coastguard Worker      // Unused.
6680*d5c09012SAndroid Build Coastguard Worker      LOGICAL_OPERATOR_UNSPECIFIED = 0;
6681*d5c09012SAndroid Build Coastguard Worker
6682*d5c09012SAndroid Build Coastguard Worker      // Conditional OR.
6683*d5c09012SAndroid Build Coastguard Worker      OR = 1;
6684*d5c09012SAndroid Build Coastguard Worker
6685*d5c09012SAndroid Build Coastguard Worker      // Conditional AND.
6686*d5c09012SAndroid Build Coastguard Worker      AND = 2;
6687*d5c09012SAndroid Build Coastguard Worker    }
6688*d5c09012SAndroid Build Coastguard Worker
6689*d5c09012SAndroid Build Coastguard Worker    // The operator to apply to the collection of conditions.
6690*d5c09012SAndroid Build Coastguard Worker    PubSubLogicalOperator logical_operator = 1;
6691*d5c09012SAndroid Build Coastguard Worker
6692*d5c09012SAndroid Build Coastguard Worker    // Conditions to apply to the expression.
6693*d5c09012SAndroid Build Coastguard Worker    repeated PubSubCondition conditions = 2;
6694*d5c09012SAndroid Build Coastguard Worker  }
6695*d5c09012SAndroid Build Coastguard Worker
6696*d5c09012SAndroid Build Coastguard Worker  // An expression.
6697*d5c09012SAndroid Build Coastguard Worker  PubSubExpressions expressions = 1;
6698*d5c09012SAndroid Build Coastguard Worker}
6699*d5c09012SAndroid Build Coastguard Worker
6700*d5c09012SAndroid Build Coastguard Worker// Pub/Sub topic message for a DataProfileAction.PubSubNotification event.
6701*d5c09012SAndroid Build Coastguard Worker// To receive a message of protocol buffer schema type, convert the message data
6702*d5c09012SAndroid Build Coastguard Worker// to an object of this proto class.
6703*d5c09012SAndroid Build Coastguard Workermessage DataProfilePubSubMessage {
6704*d5c09012SAndroid Build Coastguard Worker  // If `DetailLevel` is `TABLE_PROFILE` this will be fully populated.
6705*d5c09012SAndroid Build Coastguard Worker  // Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and
6706*d5c09012SAndroid Build Coastguard Worker  // `full_resource` will be populated.
6707*d5c09012SAndroid Build Coastguard Worker  TableDataProfile profile = 1;
6708*d5c09012SAndroid Build Coastguard Worker
6709*d5c09012SAndroid Build Coastguard Worker  // The event that caused the Pub/Sub message to be sent.
6710*d5c09012SAndroid Build Coastguard Worker  DataProfileAction.EventType event = 2;
6711*d5c09012SAndroid Build Coastguard Worker}
6712*d5c09012SAndroid Build Coastguard Worker
6713*d5c09012SAndroid Build Coastguard Worker// Message used to identify the type of resource being profiled.
6714*d5c09012SAndroid Build Coastguard Workermessage DataSourceType {
6715*d5c09012SAndroid Build Coastguard Worker  // Output only. An identifying string to the type of resource being profiled.
6716*d5c09012SAndroid Build Coastguard Worker  // Current values: google/bigquery/table, google/project
6717*d5c09012SAndroid Build Coastguard Worker  string data_source = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
6718*d5c09012SAndroid Build Coastguard Worker}
6719