google-cloud-dlp 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,66 @@
1
+ {
2
+ "interfaces": {
3
+ "google.privacy.dlp.v2beta1.DlpService": {
4
+ "retry_codes": {
5
+ "idempotent": [
6
+ "DEADLINE_EXCEEDED",
7
+ "UNAVAILABLE"
8
+ ],
9
+ "non_idempotent": []
10
+ },
11
+ "retry_params": {
12
+ "default": {
13
+ "initial_retry_delay_millis": 100,
14
+ "retry_delay_multiplier": 1.3,
15
+ "max_retry_delay_millis": 60000,
16
+ "initial_rpc_timeout_millis": 20000,
17
+ "rpc_timeout_multiplier": 1.0,
18
+ "max_rpc_timeout_millis": 20000,
19
+ "total_timeout_millis": 600000
20
+ }
21
+ },
22
+ "methods": {
23
+ "InspectContent": {
24
+ "timeout_millis": 60000,
25
+ "retry_codes_name": "non_idempotent",
26
+ "retry_params_name": "default"
27
+ },
28
+ "RedactContent": {
29
+ "timeout_millis": 60000,
30
+ "retry_codes_name": "non_idempotent",
31
+ "retry_params_name": "default"
32
+ },
33
+ "DeidentifyContent": {
34
+ "timeout_millis": 60000,
35
+ "retry_codes_name": "idempotent",
36
+ "retry_params_name": "default"
37
+ },
38
+ "AnalyzeDataSourceRisk": {
39
+ "timeout_millis": 60000,
40
+ "retry_codes_name": "idempotent",
41
+ "retry_params_name": "default"
42
+ },
43
+ "CreateInspectOperation": {
44
+ "timeout_millis": 60000,
45
+ "retry_codes_name": "non_idempotent",
46
+ "retry_params_name": "default"
47
+ },
48
+ "ListInspectFindings": {
49
+ "timeout_millis": 60000,
50
+ "retry_codes_name": "idempotent",
51
+ "retry_params_name": "default"
52
+ },
53
+ "ListInfoTypes": {
54
+ "timeout_millis": 60000,
55
+ "retry_codes_name": "idempotent",
56
+ "retry_params_name": "default"
57
+ },
58
+ "ListRootCategories": {
59
+ "timeout_millis": 60000,
60
+ "retry_codes_name": "idempotent",
61
+ "retry_params_name": "default"
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,1241 @@
1
+ # Copyright 2017 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Google
16
+ module Privacy
17
+ module Dlp
18
+ ##
19
+ # # DLP API Contents
20
+ #
21
+ # | Class | Description |
22
+ # | ----- | ----------- |
23
+ # | [DlpServiceClient][] | The Google Data Loss Prevention API provides methods for detection of privacy-sensitive fragments in text, images, and Google Cloud Platform storage repositories. |
24
+ # | [Data Types][] | Data types for Google::Cloud::Dlp::V2beta1 |
25
+ #
26
+ # [DlpServiceClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-dlp/latest/google/privacy/dlp/v2beta1/dlpserviceclient
27
+ # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-dlp/latest/google/privacy/dlp/v2beta1/datatypes
28
+ #
29
+ module V2beta1
30
+ # Configuration description of the scanning process.
31
+ # When used with redactContent only info_types and min_likelihood are currently
32
+ # used.
33
+ # @!attribute [rw] info_types
34
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InfoType>]
35
+ # Restricts what info_types to look for. The values must correspond to
36
+ # InfoType values returned by ListInfoTypes or found in documentation.
37
+ # Empty info_types runs all enabled detectors.
38
+ # @!attribute [rw] min_likelihood
39
+ # @return [Google::Privacy::Dlp::V2beta1::Likelihood]
40
+ # Only returns findings equal or above this threshold.
41
+ # @!attribute [rw] max_findings
42
+ # @return [Integer]
43
+ # Limits the number of findings per content item or long running operation.
44
+ # @!attribute [rw] include_quote
45
+ # @return [true, false]
46
+ # When true, a contextual quote from the data that triggered a finding is
47
+ # included in the response; see Finding.quote.
48
+ # @!attribute [rw] exclude_types
49
+ # @return [true, false]
50
+ # When true, excludes type information of the findings.
51
+ # @!attribute [rw] info_type_limits
52
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InspectConfig::InfoTypeLimit>]
53
+ # Configuration of findings limit given for specified info types.
54
+ # @!attribute [rw] custom_info_types
55
+ # @return [Array<Google::Privacy::Dlp::V2beta1::CustomInfoType>]
56
+ # Custom info types provided by the user.
57
+ class InspectConfig
58
+ # Max findings configuration per info type, per content item or long running
59
+ # operation.
60
+ # @!attribute [rw] info_type
61
+ # @return [Google::Privacy::Dlp::V2beta1::InfoType]
62
+ # Type of information the findings limit applies to. Only one limit per
63
+ # info_type should be provided. If InfoTypeLimit does not have an
64
+ # info_type, the DLP API applies the limit against all info_types that are
65
+ # found but not specified in another InfoTypeLimit.
66
+ # @!attribute [rw] max_findings
67
+ # @return [Integer]
68
+ # Max findings limit for the given infoType.
69
+ class InfoTypeLimit; end
70
+ end
71
+
72
+ # Additional configuration for inspect long running operations.
73
+ # @!attribute [rw] max_item_findings
74
+ # @return [Integer]
75
+ # Max number of findings per file, Datastore entity, or database row.
76
+ class OperationConfig; end
77
+
78
+ # Container structure for the content to inspect.
79
+ # @!attribute [rw] type
80
+ # @return [String]
81
+ # Type of the content, as defined in Content-Type HTTP header.
82
+ # Supported types are: all "text" types, octet streams, PNG images,
83
+ # JPEG images.
84
+ # @!attribute [rw] data
85
+ # @return [String]
86
+ # Content data to inspect or redact.
87
+ # @!attribute [rw] value
88
+ # @return [String]
89
+ # String data to inspect or redact.
90
+ # @!attribute [rw] table
91
+ # @return [Google::Privacy::Dlp::V2beta1::Table]
92
+ # Structured content for inspection.
93
+ class ContentItem; end
94
+
95
+ # Structured content to inspect. Up to 50,000 +Value+s per request allowed.
96
+ # @!attribute [rw] headers
97
+ # @return [Array<Google::Privacy::Dlp::V2beta1::FieldId>]
98
+ # @!attribute [rw] rows
99
+ # @return [Array<Google::Privacy::Dlp::V2beta1::Table::Row>]
100
+ class Table
101
+ # @!attribute [rw] values
102
+ # @return [Array<Google::Privacy::Dlp::V2beta1::Value>]
103
+ class Row; end
104
+ end
105
+
106
+ # All the findings for a single scanned item.
107
+ # @!attribute [rw] findings
108
+ # @return [Array<Google::Privacy::Dlp::V2beta1::Finding>]
109
+ # List of findings for an item.
110
+ # @!attribute [rw] findings_truncated
111
+ # @return [true, false]
112
+ # If true, then this item might have more findings than were returned,
113
+ # and the findings returned are an arbitrary subset of all findings.
114
+ # The findings list might be truncated because the input items were too
115
+ # large, or because the server reached the maximum amount of resources
116
+ # allowed for a single API call. For best results, divide the input into
117
+ # smaller batches.
118
+ class InspectResult; end
119
+
120
+ # Container structure describing a single finding within a string or image.
121
+ # @!attribute [rw] quote
122
+ # @return [String]
123
+ # The specific string that may be potentially sensitive info.
124
+ # @!attribute [rw] info_type
125
+ # @return [Google::Privacy::Dlp::V2beta1::InfoType]
126
+ # The specific type of info the string might be.
127
+ # @!attribute [rw] likelihood
128
+ # @return [Google::Privacy::Dlp::V2beta1::Likelihood]
129
+ # Estimate of how likely it is that the info_type is correct.
130
+ # @!attribute [rw] location
131
+ # @return [Google::Privacy::Dlp::V2beta1::Location]
132
+ # Location of the info found.
133
+ # @!attribute [rw] create_time
134
+ # @return [Google::Protobuf::Timestamp]
135
+ # Timestamp when finding was detected.
136
+ class Finding; end
137
+
138
+ # Specifies the location of a finding within its source item.
139
+ # @!attribute [rw] byte_range
140
+ # @return [Google::Privacy::Dlp::V2beta1::Range]
141
+ # Zero-based byte offsets within a content item.
142
+ # @!attribute [rw] codepoint_range
143
+ # @return [Google::Privacy::Dlp::V2beta1::Range]
144
+ # Character offsets within a content item, included when content type
145
+ # is a text. Default charset assumed to be UTF-8.
146
+ # @!attribute [rw] image_boxes
147
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ImageLocation>]
148
+ # Location within an image's pixels.
149
+ # @!attribute [rw] record_key
150
+ # @return [Google::Privacy::Dlp::V2beta1::RecordKey]
151
+ # Key of the finding.
152
+ # @!attribute [rw] field_id
153
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
154
+ # Field id of the field containing the finding.
155
+ # @!attribute [rw] table_location
156
+ # @return [Google::Privacy::Dlp::V2beta1::TableLocation]
157
+ # Location within a +ContentItem.Table+.
158
+ class Location; end
159
+
160
+ # Location of a finding within a +ContentItem.Table+.
161
+ # @!attribute [rw] row_index
162
+ # @return [Integer]
163
+ # The zero-based index of the row where the finding is located.
164
+ class TableLocation; end
165
+
166
+ # Generic half-open interval [start, end)
167
+ # @!attribute [rw] start
168
+ # @return [Integer]
169
+ # Index of the first character of the range (inclusive).
170
+ # @!attribute [rw] end
171
+ # @return [Integer]
172
+ # Index of the last character of the range (exclusive).
173
+ class Range; end
174
+
175
+ # Bounding box encompassing detected text within an image.
176
+ # @!attribute [rw] top
177
+ # @return [Integer]
178
+ # Top coordinate of the bounding box. (0,0) is upper left.
179
+ # @!attribute [rw] left
180
+ # @return [Integer]
181
+ # Left coordinate of the bounding box. (0,0) is upper left.
182
+ # @!attribute [rw] width
183
+ # @return [Integer]
184
+ # Width of the bounding box in pixels.
185
+ # @!attribute [rw] height
186
+ # @return [Integer]
187
+ # Height of the bounding box in pixels.
188
+ class ImageLocation; end
189
+
190
+ # Request to search for potentially sensitive info in a list of items
191
+ # and replace it with a default or provided content.
192
+ # @!attribute [rw] inspect_config
193
+ # @return [Google::Privacy::Dlp::V2beta1::InspectConfig]
194
+ # Configuration for the inspector.
195
+ # @!attribute [rw] items
196
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ContentItem>]
197
+ # The list of items to inspect. Up to 100 are allowed per request.
198
+ # @!attribute [rw] replace_configs
199
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RedactContentRequest::ReplaceConfig>]
200
+ # The strings to replace findings text findings with. Must specify at least
201
+ # one of these or one ImageRedactionConfig if redacting images.
202
+ # @!attribute [rw] image_redaction_configs
203
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RedactContentRequest::ImageRedactionConfig>]
204
+ # The configuration for specifying what content to redact from images.
205
+ class RedactContentRequest
206
+ # @!attribute [rw] info_type
207
+ # @return [Google::Privacy::Dlp::V2beta1::InfoType]
208
+ # Type of information to replace. Only one ReplaceConfig per info_type
209
+ # should be provided. If ReplaceConfig does not have an info_type, the DLP
210
+ # API matches it against all info_types that are found but not specified in
211
+ # another ReplaceConfig.
212
+ # @!attribute [rw] replace_with
213
+ # @return [String]
214
+ # Content replacing sensitive information of given type. Max 256 chars.
215
+ class ReplaceConfig; end
216
+
217
+ # Configuration for determining how redaction of images should occur.
218
+ # @!attribute [rw] info_type
219
+ # @return [Google::Privacy::Dlp::V2beta1::InfoType]
220
+ # Only one per info_type should be provided per request. If not
221
+ # specified, and redact_all_text is false, the DLP API will redact all
222
+ # text that it matches against all info_types that are found, but not
223
+ # specified in another ImageRedactionConfig.
224
+ # @!attribute [rw] redact_all_text
225
+ # @return [true, false]
226
+ # If true, all text found in the image, regardless whether it matches an
227
+ # info_type, is redacted.
228
+ # @!attribute [rw] redaction_color
229
+ # @return [Google::Privacy::Dlp::V2beta1::Color]
230
+ # The color to use when redacting content from an image. If not specified,
231
+ # the default is black.
232
+ class ImageRedactionConfig; end
233
+ end
234
+
235
+ # Represents a color in the RGB color space.
236
+ # @!attribute [rw] red
237
+ # @return [Float]
238
+ # The amount of red in the color as a value in the interval [0, 1].
239
+ # @!attribute [rw] green
240
+ # @return [Float]
241
+ # The amount of green in the color as a value in the interval [0, 1].
242
+ # @!attribute [rw] blue
243
+ # @return [Float]
244
+ # The amount of blue in the color as a value in the interval [0, 1].
245
+ class Color; end
246
+
247
+ # Results of redacting a list of items.
248
+ # @!attribute [rw] items
249
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ContentItem>]
250
+ # The redacted content.
251
+ class RedactContentResponse; end
252
+
253
+ # Request to de-identify a list of items.
254
+ # @!attribute [rw] deidentify_config
255
+ # @return [Google::Privacy::Dlp::V2beta1::DeidentifyConfig]
256
+ # Configuration for the de-identification of the list of content items.
257
+ # @!attribute [rw] inspect_config
258
+ # @return [Google::Privacy::Dlp::V2beta1::InspectConfig]
259
+ # Configuration for the inspector.
260
+ # @!attribute [rw] items
261
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ContentItem>]
262
+ # The list of items to inspect. Up to 100 are allowed per request.
263
+ # All items will be treated as text/*.
264
+ class DeidentifyContentRequest; end
265
+
266
+ # Results of de-identifying a list of items.
267
+ # @!attribute [rw] items
268
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ContentItem>]
269
+ # @!attribute [rw] summaries
270
+ # @return [Array<Google::Privacy::Dlp::V2beta1::DeidentificationSummary>]
271
+ # A review of the transformations that took place for each item.
272
+ class DeidentifyContentResponse; end
273
+
274
+ # Request to search for potentially sensitive info in a list of items.
275
+ # @!attribute [rw] inspect_config
276
+ # @return [Google::Privacy::Dlp::V2beta1::InspectConfig]
277
+ # Configuration for the inspector.
278
+ # @!attribute [rw] items
279
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ContentItem>]
280
+ # The list of items to inspect. Items in a single request are
281
+ # considered "related" unless inspect_config.independent_inputs is true.
282
+ # Up to 100 are allowed per request.
283
+ class InspectContentRequest; end
284
+
285
+ # Results of inspecting a list of items.
286
+ # @!attribute [rw] results
287
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InspectResult>]
288
+ # Each content_item from the request has a result in this list, in the
289
+ # same order as the request.
290
+ class InspectContentResponse; end
291
+
292
+ # Request for scheduling a scan of a data subset from a Google Platform data
293
+ # repository.
294
+ # @!attribute [rw] inspect_config
295
+ # @return [Google::Privacy::Dlp::V2beta1::InspectConfig]
296
+ # Configuration for the inspector.
297
+ # @!attribute [rw] storage_config
298
+ # @return [Google::Privacy::Dlp::V2beta1::StorageConfig]
299
+ # Specification of the data set to process.
300
+ # @!attribute [rw] output_config
301
+ # @return [Google::Privacy::Dlp::V2beta1::OutputStorageConfig]
302
+ # Optional location to store findings.
303
+ # @!attribute [rw] operation_config
304
+ # @return [Google::Privacy::Dlp::V2beta1::OperationConfig]
305
+ # Additional configuration settings for long running operations.
306
+ class CreateInspectOperationRequest; end
307
+
308
+ # Cloud repository for storing output.
309
+ # @!attribute [rw] table
310
+ # @return [Google::Privacy::Dlp::V2beta1::BigQueryTable]
311
+ # Store findings in a new table in the dataset.
312
+ # @!attribute [rw] storage_path
313
+ # @return [Google::Privacy::Dlp::V2beta1::CloudStoragePath]
314
+ # The path to a Google Cloud Storage location to store output.
315
+ # The bucket must already exist and
316
+ # the Google APIs service account for DLP must have write permission to
317
+ # write to the given bucket.
318
+ # Results are split over multiple csv files with each file name matching
319
+ # the pattern "[operation_id]_[count].csv", for example
320
+ # +3094877188788974909_1.csv+. The +operation_id+ matches the
321
+ # identifier for the Operation, and the +count+ is a counter used for
322
+ # tracking the number of files written.
323
+ #
324
+ # The CSV file(s) contain the following columns regardless of storage type
325
+ # scanned:
326
+ # * id
327
+ # * info_type
328
+ # * likelihood
329
+ # * byte size of finding
330
+ # * quote
331
+ # * timestamp
332
+ #
333
+ # For Cloud Storage the next columns are:
334
+ #
335
+ # * file_path
336
+ # * start_offset
337
+ #
338
+ # For Cloud Datastore the next columns are:
339
+ #
340
+ # * project_id
341
+ # * namespace_id
342
+ # * path
343
+ # * column_name
344
+ # * offset
345
+ #
346
+ # For BigQuery the next columns are:
347
+ #
348
+ # * row_number
349
+ # * project_id
350
+ # * dataset_id
351
+ # * table_id
352
+ class OutputStorageConfig; end
353
+
354
+ # Statistics regarding a specific InfoType.
355
+ # @!attribute [rw] info_type
356
+ # @return [Google::Privacy::Dlp::V2beta1::InfoType]
357
+ # The type of finding this stat is for.
358
+ # @!attribute [rw] count
359
+ # @return [Integer]
360
+ # Number of findings for this info type.
361
+ class InfoTypeStatistics; end
362
+
363
+ # Metadata returned within GetOperation for an inspect request.
364
+ # @!attribute [rw] processed_bytes
365
+ # @return [Integer]
366
+ # Total size in bytes that were processed.
367
+ # @!attribute [rw] total_estimated_bytes
368
+ # @return [Integer]
369
+ # Estimate of the number of bytes to process.
370
+ # @!attribute [rw] info_type_stats
371
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InfoTypeStatistics>]
372
+ # @!attribute [rw] create_time
373
+ # @return [Google::Protobuf::Timestamp]
374
+ # The time which this request was started.
375
+ # @!attribute [rw] request_inspect_config
376
+ # @return [Google::Privacy::Dlp::V2beta1::InspectConfig]
377
+ # The inspect config used to create the Operation.
378
+ # @!attribute [rw] request_storage_config
379
+ # @return [Google::Privacy::Dlp::V2beta1::StorageConfig]
380
+ # The storage config used to create the Operation.
381
+ # @!attribute [rw] request_output_config
382
+ # @return [Google::Privacy::Dlp::V2beta1::OutputStorageConfig]
383
+ # Optional location to store findings.
384
+ class InspectOperationMetadata; end
385
+
386
+ # The operational data.
387
+ # @!attribute [rw] name
388
+ # @return [String]
389
+ # The server-assigned name, which is only unique within the same service that
390
+ # originally returns it. If you use the default HTTP mapping, the
391
+ # +name+ should have the format of +inspect/results/{id}+.
392
+ class InspectOperationResult; end
393
+
394
+ # Request for the list of results in a given inspect operation.
395
+ # @!attribute [rw] name
396
+ # @return [String]
397
+ # Identifier of the results set returned as metadata of
398
+ # the longrunning operation created by a call to InspectDataSource.
399
+ # Should be in the format of +inspect/results/{id}+.
400
+ # @!attribute [rw] page_size
401
+ # @return [Integer]
402
+ # Maximum number of results to return.
403
+ # If 0, the implementation selects a reasonable value.
404
+ # @!attribute [rw] page_token
405
+ # @return [String]
406
+ # The value returned by the last +ListInspectFindingsResponse+; indicates
407
+ # that this is a continuation of a prior +ListInspectFindings+ call, and that
408
+ # the system should return the next page of data.
409
+ # @!attribute [rw] filter
410
+ # @return [String]
411
+ # Restricts findings to items that match. Supports info_type and likelihood.
412
+ #
413
+ # Examples:
414
+ #
415
+ # * info_type=EMAIL_ADDRESS
416
+ # * info_type=PHONE_NUMBER,EMAIL_ADDRESS
417
+ # * likelihood=VERY_LIKELY
418
+ # * likelihood=VERY_LIKELY,LIKELY
419
+ # * info_type=EMAIL_ADDRESS,likelihood=VERY_LIKELY,LIKELY
420
+ class ListInspectFindingsRequest; end
421
+
422
+ # Response to the ListInspectFindings request.
423
+ # @!attribute [rw] result
424
+ # @return [Google::Privacy::Dlp::V2beta1::InspectResult]
425
+ # The results.
426
+ # @!attribute [rw] next_page_token
427
+ # @return [String]
428
+ # If not empty, indicates that there may be more results that match the
429
+ # request; this value should be passed in a new +ListInspectFindingsRequest+.
430
+ class ListInspectFindingsResponse; end
431
+
432
+ # Description of the information type (infoType).
433
+ # @!attribute [rw] name
434
+ # @return [String]
435
+ # Internal name of the infoType.
436
+ # @!attribute [rw] display_name
437
+ # @return [String]
438
+ # Human readable form of the infoType name.
439
+ # @!attribute [rw] categories
440
+ # @return [Array<Google::Privacy::Dlp::V2beta1::CategoryDescription>]
441
+ # List of categories this infoType belongs to.
442
+ class InfoTypeDescription; end
443
+
444
+ # Request for the list of info types belonging to a given category,
445
+ # or all supported info types if no category is specified.
446
+ # @!attribute [rw] category
447
+ # @return [String]
448
+ # Category name as returned by ListRootCategories.
449
+ # @!attribute [rw] language_code
450
+ # @return [String]
451
+ # Optional BCP-47 language code for localized info type friendly
452
+ # names. If omitted, or if localized strings are not available,
453
+ # en-US strings will be returned.
454
+ class ListInfoTypesRequest; end
455
+
456
+ # Response to the ListInfoTypes request.
457
+ # @!attribute [rw] info_types
458
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InfoTypeDescription>]
459
+ # Set of sensitive info types belonging to a category.
460
+ class ListInfoTypesResponse; end
461
+
462
+ # Info Type Category description.
463
+ # @!attribute [rw] name
464
+ # @return [String]
465
+ # Internal name of the category.
466
+ # @!attribute [rw] display_name
467
+ # @return [String]
468
+ # Human readable form of the category name.
469
+ class CategoryDescription; end
470
+
471
+ # Request for root categories of Info Types supported by the API.
472
+ # Example values might include "FINANCE", "HEALTH", "FAST", "DEFAULT".
473
+ # @!attribute [rw] language_code
474
+ # @return [String]
475
+ # Optional language code for localized friendly category names.
476
+ # If omitted or if localized strings are not available,
477
+ # en-US strings will be returned.
478
+ class ListRootCategoriesRequest; end
479
+
480
+ # Response for ListRootCategories request.
481
+ # @!attribute [rw] categories
482
+ # @return [Array<Google::Privacy::Dlp::V2beta1::CategoryDescription>]
483
+ # List of all into type categories supported by the API.
484
+ class ListRootCategoriesResponse; end
485
+
486
+ # Request for creating a risk analysis operation.
487
+ # @!attribute [rw] privacy_metric
488
+ # @return [Google::Privacy::Dlp::V2beta1::PrivacyMetric]
489
+ # Privacy metric to compute.
490
+ # @!attribute [rw] source_table
491
+ # @return [Google::Privacy::Dlp::V2beta1::BigQueryTable]
492
+ # Input dataset to compute metrics over.
493
+ class AnalyzeDataSourceRiskRequest; end
494
+
495
+ # Privacy metric to compute for reidentification risk analysis.
496
+ # @!attribute [rw] numerical_stats_config
497
+ # @return [Google::Privacy::Dlp::V2beta1::PrivacyMetric::NumericalStatsConfig]
498
+ # @!attribute [rw] categorical_stats_config
499
+ # @return [Google::Privacy::Dlp::V2beta1::PrivacyMetric::CategoricalStatsConfig]
500
+ # @!attribute [rw] k_anonymity_config
501
+ # @return [Google::Privacy::Dlp::V2beta1::PrivacyMetric::KAnonymityConfig]
502
+ # @!attribute [rw] l_diversity_config
503
+ # @return [Google::Privacy::Dlp::V2beta1::PrivacyMetric::LDiversityConfig]
504
+ class PrivacyMetric
505
+ # Compute numerical stats over an individual column, including
506
+ # min, max, and quantiles.
507
+ # @!attribute [rw] field
508
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
509
+ # Field to compute numerical stats on. Supported types are
510
+ # integer, float, date, datetime, timestamp, time.
511
+ class NumericalStatsConfig; end
512
+
513
+ # Compute numerical stats over an individual column, including
514
+ # number of distinct values and value count distribution.
515
+ # @!attribute [rw] field
516
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
517
+ # Field to compute categorical stats on. All column types are
518
+ # supported except for arrays and structs. However, it may be more
519
+ # informative to use NumericalStats when the field type is supported,
520
+ # depending on the data.
521
+ class CategoricalStatsConfig; end
522
+
523
+ # k-anonymity metric, used for analysis of reidentification risk.
524
+ # @!attribute [rw] quasi_ids
525
+ # @return [Array<Google::Privacy::Dlp::V2beta1::FieldId>]
526
+ # Set of fields to compute k-anonymity over. When multiple fields are
527
+ # specified, they are considered a single composite key. Structs and
528
+ # repeated data types are not supported; however, nested fields are
529
+ # supported so long as they are not structs themselves or nested within
530
+ # a repeated field.
531
+ # @!attribute [rw] entity_id
532
+ # @return [Google::Privacy::Dlp::V2beta1::EntityId]
533
+ # Optional message indicating that each distinct +EntityId+ should not
534
+ # contribute to the k-anonymity count more than once per equivalence class.
535
+ class KAnonymityConfig; end
536
+
537
+ # l-diversity metric, used for analysis of reidentification risk.
538
+ # @!attribute [rw] quasi_ids
539
+ # @return [Array<Google::Privacy::Dlp::V2beta1::FieldId>]
540
+ # Set of quasi-identifiers indicating how equivalence classes are
541
+ # defined for the l-diversity computation. When multiple fields are
542
+ # specified, they are considered a single composite key.
543
+ # @!attribute [rw] sensitive_attribute
544
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
545
+ # Sensitive field for computing the l-value.
546
+ class LDiversityConfig; end
547
+ end
548
+
549
+ # Metadata returned within the
550
+ # [+riskAnalysis.operations.get+](https://cloud.google.com/dlp/docs/reference/rest/v2beta1/riskAnalysis.operations/get)
551
+ # for risk analysis.
552
+ # @!attribute [rw] create_time
553
+ # @return [Google::Protobuf::Timestamp]
554
+ # The time which this request was started.
555
+ # @!attribute [rw] requested_privacy_metric
556
+ # @return [Google::Privacy::Dlp::V2beta1::PrivacyMetric]
557
+ # Privacy metric to compute.
558
+ # @!attribute [rw] requested_source_table
559
+ # @return [Google::Privacy::Dlp::V2beta1::BigQueryTable]
560
+ # Input dataset to compute metrics over.
561
+ class RiskAnalysisOperationMetadata; end
562
+
563
+ # Result of a risk analysis
564
+ # [+Operation+](https://cloud.google.com/dlp/docs/reference/rest/v2beta1/inspect.operations)
565
+ # request.
566
+ # @!attribute [rw] numerical_stats_result
567
+ # @return [Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::NumericalStatsResult]
568
+ # @!attribute [rw] categorical_stats_result
569
+ # @return [Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::CategoricalStatsResult]
570
+ # @!attribute [rw] k_anonymity_result
571
+ # @return [Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::KAnonymityResult]
572
+ # @!attribute [rw] l_diversity_result
573
+ # @return [Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::LDiversityResult]
574
+ class RiskAnalysisOperationResult
575
+ # Result of the numerical stats computation.
576
+ # @!attribute [rw] min_value
577
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
578
+ # Minimum value appearing in the column.
579
+ # @!attribute [rw] max_value
580
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
581
+ # Maximum value appearing in the column.
582
+ # @!attribute [rw] quantile_values
583
+ # @return [Array<Google::Privacy::Dlp::V2beta1::Value>]
584
+ # List of 99 values that partition the set of field values into 100 equal
585
+ # sized buckets.
586
+ class NumericalStatsResult; end
587
+
588
+ # Result of the categorical stats computation.
589
+ # @!attribute [rw] value_frequency_histogram_buckets
590
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::CategoricalStatsResult::CategoricalStatsHistogramBucket>]
591
+ # Histogram of value frequencies in the column.
592
+ class CategoricalStatsResult
593
+ # Histogram bucket of value frequencies in the column.
594
+ # @!attribute [rw] value_frequency_lower_bound
595
+ # @return [Integer]
596
+ # Lower bound on the value frequency of the values in this bucket.
597
+ # @!attribute [rw] value_frequency_upper_bound
598
+ # @return [Integer]
599
+ # Upper bound on the value frequency of the values in this bucket.
600
+ # @!attribute [rw] bucket_size
601
+ # @return [Integer]
602
+ # Total number of records in this bucket.
603
+ # @!attribute [rw] bucket_values
604
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ValueFrequency>]
605
+ # Sample of value frequencies in this bucket. The total number of
606
+ # values returned per bucket is capped at 20.
607
+ class CategoricalStatsHistogramBucket; end
608
+ end
609
+
610
+ # Result of the k-anonymity computation.
611
+ # @!attribute [rw] equivalence_class_histogram_buckets
612
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::KAnonymityResult::KAnonymityHistogramBucket>]
613
+ # Histogram of k-anonymity equivalence classes.
614
+ class KAnonymityResult
615
+ # The set of columns' values that share the same k-anonymity value.
616
+ # @!attribute [rw] quasi_ids_values
617
+ # @return [Array<Google::Privacy::Dlp::V2beta1::Value>]
618
+ # Set of values defining the equivalence class. One value per
619
+ # quasi-identifier column in the original KAnonymity metric message.
620
+ # The order is always the same as the original request.
621
+ # @!attribute [rw] equivalence_class_size
622
+ # @return [Integer]
623
+ # Size of the equivalence class, for example number of rows with the
624
+ # above set of values.
625
+ class KAnonymityEquivalenceClass; end
626
+
627
+ # Histogram bucket of equivalence class sizes in the table.
628
+ # @!attribute [rw] equivalence_class_size_lower_bound
629
+ # @return [Integer]
630
+ # Lower bound on the size of the equivalence classes in this bucket.
631
+ # @!attribute [rw] equivalence_class_size_upper_bound
632
+ # @return [Integer]
633
+ # Upper bound on the size of the equivalence classes in this bucket.
634
+ # @!attribute [rw] bucket_size
635
+ # @return [Integer]
636
+ # Total number of records in this bucket.
637
+ # @!attribute [rw] bucket_values
638
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::KAnonymityResult::KAnonymityEquivalenceClass>]
639
+ # Sample of equivalence classes in this bucket. The total number of
640
+ # classes returned per bucket is capped at 20.
641
+ class KAnonymityHistogramBucket; end
642
+ end
643
+
644
+ # Result of the l-diversity computation.
645
+ # @!attribute [rw] sensitive_value_frequency_histogram_buckets
646
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::LDiversityResult::LDiversityHistogramBucket>]
647
+ # Histogram of l-diversity equivalence class sensitive value frequencies.
648
+ class LDiversityResult
649
+ # The set of columns' values that share the same l-diversity value.
650
+ # @!attribute [rw] quasi_ids_values
651
+ # @return [Array<Google::Privacy::Dlp::V2beta1::Value>]
652
+ # Quasi-identifier values defining the k-anonymity equivalence
653
+ # class. The order is always the same as the original request.
654
+ # @!attribute [rw] equivalence_class_size
655
+ # @return [Integer]
656
+ # Size of the k-anonymity equivalence class.
657
+ # @!attribute [rw] num_distinct_sensitive_values
658
+ # @return [Integer]
659
+ # Number of distinct sensitive values in this equivalence class.
660
+ # @!attribute [rw] top_sensitive_values
661
+ # @return [Array<Google::Privacy::Dlp::V2beta1::ValueFrequency>]
662
+ # Estimated frequencies of top sensitive values.
663
+ class LDiversityEquivalenceClass; end
664
+
665
+ # Histogram bucket of sensitive value frequencies in the table.
666
+ # @!attribute [rw] sensitive_value_frequency_lower_bound
667
+ # @return [Integer]
668
+ # Lower bound on the sensitive value frequencies of the equivalence
669
+ # classes in this bucket.
670
+ # @!attribute [rw] sensitive_value_frequency_upper_bound
671
+ # @return [Integer]
672
+ # Upper bound on the sensitive value frequencies of the equivalence
673
+ # classes in this bucket.
674
+ # @!attribute [rw] bucket_size
675
+ # @return [Integer]
676
+ # Total number of records in this bucket.
677
+ # @!attribute [rw] bucket_values
678
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RiskAnalysisOperationResult::LDiversityResult::LDiversityEquivalenceClass>]
679
+ # Sample of equivalence classes in this bucket. The total number of
680
+ # classes returned per bucket is capped at 20.
681
+ class LDiversityHistogramBucket; end
682
+ end
683
+ end
684
+
685
+ # A value of a field, including its frequency.
686
+ # @!attribute [rw] value
687
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
688
+ # A value contained in the field in question.
689
+ # @!attribute [rw] count
690
+ # @return [Integer]
691
+ # How many times the value is contained in the field.
692
+ class ValueFrequency; end
693
+
694
+ # Set of primitive values supported by the system.
695
+ # @!attribute [rw] integer_value
696
+ # @return [Integer]
697
+ # @!attribute [rw] float_value
698
+ # @return [Float]
699
+ # @!attribute [rw] string_value
700
+ # @return [String]
701
+ # @!attribute [rw] boolean_value
702
+ # @return [true, false]
703
+ # @!attribute [rw] timestamp_value
704
+ # @return [Google::Protobuf::Timestamp]
705
+ # @!attribute [rw] time_value
706
+ # @return [Google::Type::TimeOfDay]
707
+ # @!attribute [rw] date_value
708
+ # @return [Google::Type::Date]
709
+ class Value; end
710
+
711
+ # The configuration that controls how the data will change.
712
+ # @!attribute [rw] info_type_transformations
713
+ # @return [Google::Privacy::Dlp::V2beta1::InfoTypeTransformations]
714
+ # Treat the dataset as free-form text and apply the same free text
715
+ # transformation everywhere.
716
+ # @!attribute [rw] record_transformations
717
+ # @return [Google::Privacy::Dlp::V2beta1::RecordTransformations]
718
+ # Treat the dataset as structured. Transformations can be applied to
719
+ # specific locations within structured datasets, such as transforming
720
+ # a column within a table.
721
+ class DeidentifyConfig; end
722
+
723
+ # A rule for transforming a value.
724
+ # @!attribute [rw] replace_config
725
+ # @return [Google::Privacy::Dlp::V2beta1::ReplaceValueConfig]
726
+ # @!attribute [rw] redact_config
727
+ # @return [Google::Privacy::Dlp::V2beta1::RedactConfig]
728
+ # @!attribute [rw] character_mask_config
729
+ # @return [Google::Privacy::Dlp::V2beta1::CharacterMaskConfig]
730
+ # @!attribute [rw] crypto_replace_ffx_fpe_config
731
+ # @return [Google::Privacy::Dlp::V2beta1::CryptoReplaceFfxFpeConfig]
732
+ # @!attribute [rw] fixed_size_bucketing_config
733
+ # @return [Google::Privacy::Dlp::V2beta1::FixedSizeBucketingConfig]
734
+ # @!attribute [rw] bucketing_config
735
+ # @return [Google::Privacy::Dlp::V2beta1::BucketingConfig]
736
+ # @!attribute [rw] replace_with_info_type_config
737
+ # @return [Google::Privacy::Dlp::V2beta1::ReplaceWithInfoTypeConfig]
738
+ # @!attribute [rw] time_part_config
739
+ # @return [Google::Privacy::Dlp::V2beta1::TimePartConfig]
740
+ # @!attribute [rw] crypto_hash_config
741
+ # @return [Google::Privacy::Dlp::V2beta1::CryptoHashConfig]
742
+ class PrimitiveTransformation; end
743
+
744
+ # For use with +Date+, +Timestamp+, and +TimeOfDay+, extract or preserve a
745
+ # portion of the value.
746
+ # @!attribute [rw] part_to_extract
747
+ # @return [Google::Privacy::Dlp::V2beta1::TimePartConfig::TimePart]
748
+ class TimePartConfig
749
+ module TimePart
750
+ TIME_PART_UNSPECIFIED = 0
751
+
752
+ # [000-9999]
753
+ YEAR = 1
754
+
755
+ # [1-12]
756
+ MONTH = 2
757
+
758
+ # [1-31]
759
+ DAY_OF_MONTH = 3
760
+
761
+ # [1-7]
762
+ DAY_OF_WEEK = 4
763
+
764
+ # [1-52]
765
+ WEEK_OF_YEAR = 5
766
+
767
+ # [0-24]
768
+ HOUR_OF_DAY = 6
769
+ end
770
+ end
771
+
772
+ # Pseudonymization method that generates surrogates via cryptographic hashing.
773
+ # Uses SHA-256.
774
+ # Outputs a 32 byte digest as an uppercase hex string
775
+ # (for example, 41D1567F7F99F1DC2A5FAB886DEE5BEE).
776
+ # Currently, only string and integer values can be hashed.
777
+ # @!attribute [rw] crypto_key
778
+ # @return [Google::Privacy::Dlp::V2beta1::CryptoKey]
779
+ # The key used by the hash function.
780
+ class CryptoHashConfig; end
781
+
782
+ # Replace each input value with a given +Value+.
783
+ # @!attribute [rw] new_value
784
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
785
+ # Value to replace it with.
786
+ class ReplaceValueConfig; end
787
+
788
+ # Replace each matching finding with the name of the info_type.
789
+ class ReplaceWithInfoTypeConfig; end
790
+
791
+ # Redact a given value. For example, if used with an +InfoTypeTransformation+
792
+ # transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the
793
+ # output would be 'My phone number is '.
794
+ class RedactConfig; end
795
+
796
+ # Characters to skip when doing deidentification of a value. These will be left
797
+ # alone and skipped.
798
+ # @!attribute [rw] characters_to_skip
799
+ # @return [String]
800
+ # @!attribute [rw] common_characters_to_ignore
801
+ # @return [Google::Privacy::Dlp::V2beta1::CharsToIgnore::CharacterGroup]
802
+ class CharsToIgnore
803
+ module CharacterGroup
804
+ CHARACTER_GROUP_UNSPECIFIED = 0
805
+
806
+ # 0-9
807
+ NUMERIC = 1
808
+
809
+ # A-Z
810
+ ALPHA_UPPER_CASE = 2
811
+
812
+ # a-z
813
+ ALPHA_LOWER_CASE = 3
814
+
815
+ # US Punctuation, one of !"#$%&'()*+,-./:;<=>?@[\]^_+{|}~
816
+ PUNCTUATION = 4
817
+
818
+ # Whitespace character, one of [ \t\n\x0B\f\r]
819
+ WHITESPACE = 5
820
+ end
821
+ end
822
+
823
+ # Partially mask a string by replacing a given number of characters with a
824
+ # fixed character. Masking can start from the beginning or end of the string.
825
+ # This can be used on data of any type (numbers, longs, and so on) and when
826
+ # de-identifying structured data we'll attempt to preserve the original data's
827
+ # type. (This allows you to take a long like 123 and modify it to a string like
828
+ # **3.
829
+ # @!attribute [rw] masking_character
830
+ # @return [String]
831
+ # Character to mask the sensitive values&mdash;for example, "*" for an
832
+ # alphabetic string such as name, or "0" for a numeric string such as ZIP
833
+ # code or credit card number. String must have length 1. If not supplied, we
834
+ # will default to "*" for strings, 0 for digits.
835
+ # @!attribute [rw] number_to_mask
836
+ # @return [Integer]
837
+ # Number of characters to mask. If not set, all matching chars will be
838
+ # masked. Skipped characters do not count towards this tally.
839
+ # @!attribute [rw] reverse_order
840
+ # @return [true, false]
841
+ # Mask characters in reverse order. For example, if +masking_character+ is
842
+ # '0', number_to_mask is 14, and +reverse_order+ is false, then
843
+ # 1234-5678-9012-3456 -> 00000000000000-3456
844
+ # If +masking_character+ is '*', +number_to_mask+ is 3, and +reverse_order+
845
+ # is true, then 12345 -> 12***
846
+ # @!attribute [rw] characters_to_ignore
847
+ # @return [Array<Google::Privacy::Dlp::V2beta1::CharsToIgnore>]
848
+ # When masking a string, items in this list will be skipped when replacing.
849
+ # For example, if your string is 555-555-5555 and you ask us to skip +-+ and
850
+ # mask 5 chars with * we would produce ***-*55-5555.
851
+ class CharacterMaskConfig; end
852
+
853
+ # Buckets values based on fixed size ranges. The
854
+ # Bucketing transformation can provide all of this functionality,
855
+ # but requires more configuration. This message is provided as a convenience to
856
+ # the user for simple bucketing strategies.
857
+ # The resulting value will be a hyphenated string of
858
+ # lower_bound-upper_bound.
859
+ # This can be used on data of type: double, long.
860
+ # If the bound Value type differs from the type of data
861
+ # being transformed, we will first attempt converting the type of the data to
862
+ # be transformed to match the type of the bound before comparing.
863
+ # @!attribute [rw] lower_bound
864
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
865
+ # Lower bound value of buckets. All values less than +lower_bound+ are
866
+ # grouped together into a single bucket; for example if +lower_bound+ = 10,
867
+ # then all values less than 10 are replaced with the value “-10”. [Required].
868
+ # @!attribute [rw] upper_bound
869
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
870
+ # Upper bound value of buckets. All values greater than upper_bound are
871
+ # grouped together into a single bucket; for example if +upper_bound+ = 89,
872
+ # then all values greater than 89 are replaced with the value “89+”.
873
+ # [Required].
874
+ # @!attribute [rw] bucket_size
875
+ # @return [Float]
876
+ # Size of each bucket (except for minimum and maximum buckets). So if
877
+ # +lower_bound+ = 10, +upper_bound+ = 89, and +bucket_size+ = 10, then the
878
+ # following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
879
+ # 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. [Required].
880
+ class FixedSizeBucketingConfig; end
881
+
882
+ # Generalization function that buckets values based on ranges. The ranges and
883
+ # replacement values are dynamically provided by the user for custom behavior,
884
+ # such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH
885
+ # This can be used on
886
+ # data of type: number, long, string, timestamp.
887
+ # If the bound +Value+ type differs from the type of data being transformed, we
888
+ # will first attempt converting the type of the data to be transformed to match
889
+ # the type of the bound before comparing.
890
+ # @!attribute [rw] buckets
891
+ # @return [Array<Google::Privacy::Dlp::V2beta1::BucketingConfig::Bucket>]
892
+ class BucketingConfig
893
+ # Buckets represented as ranges, along with replacement values. Ranges must
894
+ # be non-overlapping.
895
+ # @!attribute [rw] min
896
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
897
+ # Lower bound of the range, inclusive. Type should be the same as max if
898
+ # used.
899
+ # @!attribute [rw] max
900
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
901
+ # Upper bound of the range, exclusive; type must match min.
902
+ # @!attribute [rw] replacement_value
903
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
904
+ # Replacement value for this bucket. If not provided
905
+ # the default behavior will be to hyphenate the min-max range.
906
+ class Bucket; end
907
+ end
908
+
909
+ # Replaces an identifier with a surrogate using FPE with the FFX
910
+ # mode of operation.
911
+ # The identifier must be representable by the US-ASCII character set.
912
+ # For a given crypto key and context, the same identifier will be
913
+ # replaced with the same surrogate.
914
+ # Identifiers must be at least two characters long.
915
+ # In the case that the identifier is the empty string, it will be skipped.
916
+ # @!attribute [rw] crypto_key
917
+ # @return [Google::Privacy::Dlp::V2beta1::CryptoKey]
918
+ # The key used by the encryption algorithm. [required]
919
+ # @!attribute [rw] context
920
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
921
+ # A context may be used for higher security since the same
922
+ # identifier in two different contexts likely will be given a distinct
923
+ # surrogate. The principle is that the likeliness is inversely related
924
+ # to the ratio of the number of distinct identifiers per context over the
925
+ # number of possible surrogates: As long as this ratio is small, the
926
+ # likehood is large.
927
+ #
928
+ # If the context is not set, a default tweak will be used.
929
+ # If the context is set but:
930
+ #
931
+ # 1. there is no record present when transforming a given value or
932
+ # 1. the field is not present when transforming a given value,
933
+ #
934
+ # a default tweak will be used.
935
+ #
936
+ # Note that case (1) is expected when an +InfoTypeTransformation+ is
937
+ # applied to both structured and non-structured +ContentItem+s.
938
+ # Currently, the referenced field may be of value type integer or string.
939
+ #
940
+ # The tweak is constructed as a sequence of bytes in big endian byte order
941
+ # such that:
942
+ #
943
+ # * a 64 bit integer is encoded followed by a single byte of value 1
944
+ # * a string is encoded in UTF-8 format followed by a single byte of value 2
945
+ #
946
+ # This is also known as the 'tweak', as in tweakable encryption.
947
+ # @!attribute [rw] common_alphabet
948
+ # @return [Google::Privacy::Dlp::V2beta1::CryptoReplaceFfxFpeConfig::FfxCommonNativeAlphabet]
949
+ # @!attribute [rw] custom_alphabet
950
+ # @return [String]
951
+ # This is supported by mapping these to the alphanumeric characters
952
+ # that the FFX mode natively supports. This happens before/after
953
+ # encryption/decryption.
954
+ # Each character listed must appear only once.
955
+ # Number of characters must be in the range [2, 62].
956
+ # This must be encoded as ASCII.
957
+ # The order of characters does not matter.
958
+ # @!attribute [rw] radix
959
+ # @return [Integer]
960
+ # The native way to select the alphabet. Must be in the range [2, 62].
961
+ class CryptoReplaceFfxFpeConfig
962
+ # These are commonly used subsets of the alphabet that the FFX mode
963
+ # natively supports. In the algorithm, the alphabet is selected using
964
+ # the "radix". Therefore each corresponds to particular radix.
965
+ module FfxCommonNativeAlphabet
966
+ FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED = 0
967
+
968
+ # [0-9] (radix of 10)
969
+ NUMERIC = 1
970
+
971
+ # [0-9A-F] (radix of 16)
972
+ HEXADECIMAL = 2
973
+
974
+ # [0-9A-Z] (radix of 36)
975
+ UPPER_CASE_ALPHA_NUMERIC = 3
976
+
977
+ # [0-9A-Za-z] (radix of 62)
978
+ ALPHA_NUMERIC = 4
979
+ end
980
+ end
981
+
982
+ # This is a data encryption key (DEK) (as opposed to
983
+ # a key encryption key (KEK) stored by KMS).
984
+ # When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
985
+ # IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
986
+ # unwrap the data crypto key.
987
+ # @!attribute [rw] transient
988
+ # @return [Google::Privacy::Dlp::V2beta1::TransientCryptoKey]
989
+ # @!attribute [rw] unwrapped
990
+ # @return [Google::Privacy::Dlp::V2beta1::UnwrappedCryptoKey]
991
+ # @!attribute [rw] kms_wrapped
992
+ # @return [Google::Privacy::Dlp::V2beta1::KmsWrappedCryptoKey]
993
+ class CryptoKey; end
994
+
995
+ # Use this to have a random data crypto key generated.
996
+ # It will be discarded after the operation/request finishes.
997
+ # @!attribute [rw] name
998
+ # @return [String]
999
+ # Name of the key. [required]
1000
+ # This is an arbitrary string used to differentiate different keys.
1001
+ # A unique key is generated per name: two separate +TransientCryptoKey+
1002
+ # protos share the same generated key if their names are the same.
1003
+ # When the data crypto key is generated, this name is not used in any way
1004
+ # (repeating the api call will result in a different key being generated).
1005
+ class TransientCryptoKey; end
1006
+
1007
+ # Using raw keys is prone to security risks due to accidentally
1008
+ # leaking the key. Choose another type of key if possible.
1009
+ # @!attribute [rw] key
1010
+ # @return [String]
1011
+ # The AES 128/192/256 bit key. [required]
1012
+ class UnwrappedCryptoKey; end
1013
+
1014
+ # Include to use an existing data crypto key wrapped by KMS.
1015
+ # Authorization requires the following IAM permissions when sending a request
1016
+ # to perform a crypto transformation using a kms-wrapped crypto key:
1017
+ # dlp.kms.encrypt
1018
+ # @!attribute [rw] wrapped_key
1019
+ # @return [String]
1020
+ # The wrapped data crypto key. [required]
1021
+ # @!attribute [rw] crypto_key_name
1022
+ # @return [String]
1023
+ # The resource name of the KMS CryptoKey to use for unwrapping. [required]
1024
+ class KmsWrappedCryptoKey; end
1025
+
1026
+ # A type of transformation that will scan unstructured text and
1027
+ # apply various +PrimitiveTransformation+s to each finding, where the
1028
+ # transformation is applied to only values that were identified as a specific
1029
+ # info_type.
1030
+ # @!attribute [rw] transformations
1031
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InfoTypeTransformations::InfoTypeTransformation>]
1032
+ # Transformation for each info type. Cannot specify more than one
1033
+ # for a given info type. [required]
1034
+ class InfoTypeTransformations
1035
+ # A transformation to apply to text that is identified as a specific
1036
+ # info_type.
1037
+ # @!attribute [rw] info_types
1038
+ # @return [Array<Google::Privacy::Dlp::V2beta1::InfoType>]
1039
+ # Info types to apply the transformation to. Empty list will match all
1040
+ # available info types for this transformation.
1041
+ # @!attribute [rw] primitive_transformation
1042
+ # @return [Google::Privacy::Dlp::V2beta1::PrimitiveTransformation]
1043
+ # Primitive transformation to apply to the info type. [required]
1044
+ class InfoTypeTransformation; end
1045
+ end
1046
+
1047
+ # The transformation to apply to the field.
1048
+ # @!attribute [rw] fields
1049
+ # @return [Array<Google::Privacy::Dlp::V2beta1::FieldId>]
1050
+ # Input field(s) to apply the transformation to. [required]
1051
+ # @!attribute [rw] condition
1052
+ # @return [Google::Privacy::Dlp::V2beta1::RecordCondition]
1053
+ # Only apply the transformation if the condition evaluates to true for the
1054
+ # given +RecordCondition+. The conditions are allowed to reference fields
1055
+ # that are not used in the actual transformation. [optional]
1056
+ #
1057
+ # Example Use Cases:
1058
+ #
1059
+ # * Apply a different bucket transformation to an age column if the zip code
1060
+ # column for the same record is within a specific range.
1061
+ # * Redact a field if the date of birth field is greater than 85.
1062
+ # @!attribute [rw] primitive_transformation
1063
+ # @return [Google::Privacy::Dlp::V2beta1::PrimitiveTransformation]
1064
+ # Apply the transformation to the entire field.
1065
+ # @!attribute [rw] info_type_transformations
1066
+ # @return [Google::Privacy::Dlp::V2beta1::InfoTypeTransformations]
1067
+ # Treat the contents of the field as free text, and selectively
1068
+ # transform content that matches an +InfoType+.
1069
+ class FieldTransformation; end
1070
+
1071
+ # A type of transformation that is applied over structured data such as a
1072
+ # table.
1073
+ # @!attribute [rw] field_transformations
1074
+ # @return [Array<Google::Privacy::Dlp::V2beta1::FieldTransformation>]
1075
+ # Transform the record by applying various field transformations.
1076
+ # @!attribute [rw] record_suppressions
1077
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RecordSuppression>]
1078
+ # Configuration defining which records get suppressed entirely. Records that
1079
+ # match any suppression rule are omitted from the output [optional].
1080
+ class RecordTransformations; end
1081
+
1082
+ # Configuration to suppress records whose suppression conditions evaluate to
1083
+ # true.
1084
+ # @!attribute [rw] condition
1085
+ # @return [Google::Privacy::Dlp::V2beta1::RecordCondition]
1086
+ class RecordSuppression; end
1087
+
1088
+ # A condition for determining whether a transformation should be applied to
1089
+ # a field.
1090
+ # @!attribute [rw] expressions
1091
+ # @return [Google::Privacy::Dlp::V2beta1::RecordCondition::Expressions]
1092
+ class RecordCondition
1093
+ # The field type of +value+ and +field+ do not need to match to be
1094
+ # considered equal, but not all comparisons are possible.
1095
+ #
1096
+ # A +value+ of type:
1097
+ #
1098
+ # * +string+ can be compared against all other types
1099
+ # * +boolean+ can only be compared against other booleans
1100
+ # * +integer+ can be compared against doubles or a string if the string value
1101
+ # can be parsed as an integer.
1102
+ # * +double+ can be compared against integers or a string if the string can
1103
+ # be parsed as a double.
1104
+ # * +Timestamp+ can be compared against strings in RFC 3339 date string
1105
+ # format.
1106
+ # * +TimeOfDay+ can be compared against timestamps and strings in the format
1107
+ # of 'HH:mm:ss'.
1108
+ #
1109
+ # If we fail to compare do to type mismatch, a warning will be given and
1110
+ # the condition will evaluate to false.
1111
+ # @!attribute [rw] field
1112
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
1113
+ # Field within the record this condition is evaluated against. [required]
1114
+ # @!attribute [rw] operator
1115
+ # @return [Google::Privacy::Dlp::V2beta1::RelationalOperator]
1116
+ # Operator used to compare the field or info type to the value. [required]
1117
+ # @!attribute [rw] value
1118
+ # @return [Google::Privacy::Dlp::V2beta1::Value]
1119
+ # Value to compare against. [Required, except for +EXISTS+ tests.]
1120
+ class Condition; end
1121
+
1122
+ # @!attribute [rw] conditions
1123
+ # @return [Array<Google::Privacy::Dlp::V2beta1::RecordCondition::Condition>]
1124
+ class Conditions; end
1125
+
1126
+ # A collection of expressions
1127
+ # @!attribute [rw] logical_operator
1128
+ # @return [Google::Privacy::Dlp::V2beta1::RecordCondition::Expressions::LogicalOperator]
1129
+ # The operator to apply to the result of conditions. Default and currently
1130
+ # only supported value is +AND+.
1131
+ # @!attribute [rw] conditions
1132
+ # @return [Google::Privacy::Dlp::V2beta1::RecordCondition::Conditions]
1133
+ class Expressions
1134
+ module LogicalOperator
1135
+ LOGICAL_OPERATOR_UNSPECIFIED = 0
1136
+
1137
+ AND = 1
1138
+ end
1139
+ end
1140
+ end
1141
+
1142
+ # High level summary of deidentification.
1143
+ # @!attribute [rw] transformed_bytes
1144
+ # @return [Integer]
1145
+ # Total size in bytes that were transformed in some way.
1146
+ # @!attribute [rw] transformation_summaries
1147
+ # @return [Array<Google::Privacy::Dlp::V2beta1::TransformationSummary>]
1148
+ # Transformations applied to the dataset.
1149
+ class DeidentificationSummary; end
1150
+
1151
+ # Summary of a single tranformation.
1152
+ # @!attribute [rw] info_type
1153
+ # @return [Google::Privacy::Dlp::V2beta1::InfoType]
1154
+ # Set if the transformation was limited to a specific info_type.
1155
+ # @!attribute [rw] field
1156
+ # @return [Google::Privacy::Dlp::V2beta1::FieldId]
1157
+ # Set if the transformation was limited to a specific FieldId.
1158
+ # @!attribute [rw] transformation
1159
+ # @return [Google::Privacy::Dlp::V2beta1::PrimitiveTransformation]
1160
+ # The specific transformation these stats apply to.
1161
+ # @!attribute [rw] field_transformations
1162
+ # @return [Array<Google::Privacy::Dlp::V2beta1::FieldTransformation>]
1163
+ # The field transformation that was applied. This list will contain
1164
+ # multiple only in the case of errors.
1165
+ # @!attribute [rw] record_suppress
1166
+ # @return [Google::Privacy::Dlp::V2beta1::RecordSuppression]
1167
+ # The specific suppression option these stats apply to.
1168
+ # @!attribute [rw] results
1169
+ # @return [Array<Google::Privacy::Dlp::V2beta1::TransformationSummary::SummaryResult>]
1170
+ class TransformationSummary
1171
+ # A collection that informs the user the number of times a particular
1172
+ # +TransformationResultCode+ and error details occurred.
1173
+ # @!attribute [rw] count
1174
+ # @return [Integer]
1175
+ # @!attribute [rw] code
1176
+ # @return [Google::Privacy::Dlp::V2beta1::TransformationSummary::TransformationResultCode]
1177
+ # @!attribute [rw] details
1178
+ # @return [String]
1179
+ # A place for warnings or errors to show up if a transformation didn't
1180
+ # work as expected.
1181
+ class SummaryResult; end
1182
+
1183
+ # Possible outcomes of transformations.
1184
+ module TransformationResultCode
1185
+ TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0
1186
+
1187
+ SUCCESS = 1
1188
+
1189
+ ERROR = 2
1190
+ end
1191
+ end
1192
+
1193
+ # Categorization of results based on how likely they are to represent a match,
1194
+ # based on the number of elements they contain which imply a match.
1195
+ module Likelihood
1196
+ # Default value; information with all likelihoods is included.
1197
+ LIKELIHOOD_UNSPECIFIED = 0
1198
+
1199
+ # Few matching elements.
1200
+ VERY_UNLIKELY = 1
1201
+
1202
+ UNLIKELY = 2
1203
+
1204
+ # Some matching elements.
1205
+ POSSIBLE = 3
1206
+
1207
+ LIKELY = 4
1208
+
1209
+ # Many matching elements.
1210
+ VERY_LIKELY = 5
1211
+ end
1212
+
1213
+ # Operators available for comparing the value of fields.
1214
+ module RelationalOperator
1215
+ RELATIONAL_OPERATOR_UNSPECIFIED = 0
1216
+
1217
+ # Equal.
1218
+ EQUAL_TO = 1
1219
+
1220
+ # Not equal to.
1221
+ NOT_EQUAL_TO = 2
1222
+
1223
+ # Greater than.
1224
+ GREATER_THAN = 3
1225
+
1226
+ # Less than.
1227
+ LESS_THAN = 4
1228
+
1229
+ # Greater than or equals.
1230
+ GREATER_THAN_OR_EQUALS = 5
1231
+
1232
+ # Less than or equals.
1233
+ LESS_THAN_OR_EQUALS = 6
1234
+
1235
+ # Exists
1236
+ EXISTS = 7
1237
+ end
1238
+ end
1239
+ end
1240
+ end
1241
+ end